Hallo,
seit dem Update auf 1.41.7 bekomme ich bei „Vollständige Synchronisierung“ folgende Fehlermeldung auf Smartphone.
Hallo,
seit dem Update auf 1.41.7 bekomme ich bei „Vollständige Synchronisierung“ folgende Fehlermeldung auf Smartphone.
Die Schnittstelle wurde in 1.41.7 angepasst aber es kann Konstellationen mit der CCU3 zu geben die vielleicht ein Problem haben
Ich empfehle in dem Fall Tipp 3 anzuwenden - dein Log würde aufjedenfall weiterhelfen:
!! Wichtig !! Nach aktivieren der LOG Funktion den Fehler erst nachstellen und dann erst das Log versenden - Danke
Hi @MSR1954,
Willkommen im Forum und vielen Dank für Deine Rückmeldung!
Es scheint als hat irgendein Gerät bzw. der Wert eines Datenpunkt des Gerätes einen ungültigen JSON-Wert, in dem Fall „\.“.
Du könntest das Skript auf Deiner CCU ausführen, um die Ursache zu finden: GetAll.txt (7,6 KB). Das Ergebnis kannst Du dann z.B. in https://jsonlint.com/ einfügen und Validieren lassen.
– Eddy
Hallo @Tom1,
leider kann ich das Problem so hier nicht nachvollziehen.
Damit ich das Problem nachstellen und beheben kann, benötige ich weitere Infos von Dir:
PS: Bitte eröffne in Zukunft ein neues Thema, wenn Dein Problem mit dem Thema nichts zutun hat, um die Übersichtlichkeit beizubehalten.
– Eddy
Hallo,
vielen Dank für den Tipp.
Warum kann ich die Datei GetAll.txt nicht runterladen ?
Rolf
Es kommt kein Fehler. Wenn ich auf den Link klicke passiert nichts.
Habe ich da einen Denkfehler ?
Rolf
Hallo @MSR1954,
komisch, normalerweise sollte der Download starten
Hier als plain text:
Write('{');
boolean dFirst = true;
Write('"Devices":[');
string deviceId;
foreach (deviceId, root.Devices().EnumUsedIDs())
{
object oDevice = dom.GetObject(deviceId);
boolean bDevReady = oDevice.ReadyConfig();
string sDevInterfaceId = oDevice.Interface();
string sDevInterface = dom.GetObject(sDevInterfaceId).Name();
string deviceAddress = oDevice.Address();
if (bDevReady)
{
if (dFirst)
{
dFirst = false;
}
else
{
WriteLine(',');
}
Write('{');
Write('"ID":"' # oDevice.ID());
Write('","Name":"' # oDevice.Name());
Write('","HssType":"' # oDevice.HssType() # '","Address":"' # oDevice.Address() # '","Interface":"' # sDevInterface);
Write('","Datapoints":[');
boolean dpFirst = true;
string sValue;
string sValueType;
string channelId;
foreach(channelId, oDevice.Channels())
{
object oChannel = dom.GetObject(channelId);
string channelName = oChannel.Name();
string channelAddress = oChannel.Address();
integer iChnDir = oChannel.ChnDirection();
if (iChnDir == 2)
{
object oWork = oChannel.DPByHssDP('WORKING');
if (oWork)
{
if (dpFirst)
{
dpFirst = false;
}
else
{
WriteLine(',');
}
oWId = oWork.ID();
Write('{');
Write('"ID":"' # oWork.ID());
Write('","Name":"' # oWork.Name());
Write('","TypeName":"HSSDP","Operations":"5",');
Write('"ValueType":2,"ValueUnit":"","Timestamp":"' # oWork.Timestamp());
Write('","Value":null');
Write(',"ChannelName":' # '"' # channelName # '"');
Write(',"ChannelAddress":' # '"' # channelAddress # '"');
Write(',"DeviceAddress":' # '"' # deviceAddress # '"');
Write(',"ChannelId":' # '"' # channelId # '"');
Write(',"DeviceId":' # '"' # deviceId # '"');
Write('}');
}
object oDir = oChannel.DPByHssDP('DIRECTION');
if (oDir)
{
if (dpFirst)
{
dpFirst = false;
}
else
{
WriteLine(',');
}
Write('{');
Write('"ID":"' # oDir.ID());
Write('","Name":"' # oDir.Name());
Write('","TypeName":"HSSDP","Operations":"5",');
Write('"ValueType":16,"ValueList":"' # oDir.ValueList() # '","Timestamp":"' # oDir.Timestamp());
Write('","Value":null');
Write(',"ChannelName":' # '"' # channelName # '"');
Write(',"ChannelAddress":' # '"' # channelAddress # '"');
Write(',"DeviceAddress":' # '"' # deviceAddress # '"');
Write(',"ChannelId":' # '"' # channelId # '"');
Write(',"DeviceId":' # '"' # deviceId # '"');
Write('}');
}
}
if (oChannel.HssType() == "SMOKE_DETECTOR")
{
object oDP = oChannel.DPByHssDP('STATE');
if(oDP.ID())
{
if (dpFirst)
{
dpFirst = false;
}
else
{
WriteLine(',');
}
Write('{');
Write('"ID":"' # oDP.ID());
Write('","Name":"' # oDP.Name());
Write('","TypeName":"HSSDP');
Write('","Operations":5');
Write(',"ValueType":2');
Write(',"ValueUnit":"');
Write('","Timestamp":"' # oDP.Timestamp());
Write('","Value":');
sValue = oDP.Value();
if (sValue)
{
Write('"' # 'true' # '"');
}
else
{
Write('"' # 'false' # '"');
}
Write(',"ChannelName":' # '"' # channelName # '"');
Write(',"ChannelAddress":' # '"' # channelAddress # '"');
Write(',"DeviceAddress":' # '"' # deviceAddress # '"');
Write(',"ChannelId":' # '"' # channelId # '"');
Write(',"DeviceId":' # '"' # deviceId # '"');
Write('}');
}
}
string sDPId;
foreach(sDPId, oChannel.DPs().EnumUsedIDs())
{
object oDP = dom.GetObject(sDPId);
if (oDP.ID())
{
if (oDP.TypeName() != "VARDP")
{
if (dpFirst)
{
dpFirst = false;
}
else
{
WriteLine(',');
}
sValueType = oDP.ValueType();
Write('{');
Write('"ID":"' # oDP.ID());
Write('","Name":"' # oDP.Name());
Write('","TypeName":"' # oDP.TypeName());
Write('","Operations":' # oDP.Operations());
Write(',"ValueType":' # sValueType);
if (sValueType == 16)
{
Write(',"ValueList":"');
WriteURL(oDP.ValueList());
Write('"');
}
if(oDP.ValueUnit() == '""')
{
Write(',"ValueUnit":"' # "");
}
else
{
Write(',"ValueUnit":"' # oDP.ValueUnit());
}
Write('",');
Write('"Timestamp":"' # oDP.Timestamp());
Write('","Value":');
if (sValueType == 20)
{
Write('"');
WriteURL(oDP.Value());
Write('"');
}
else
{
sValue = oDP.Value();
if (sValueType == 2)
{
if (sValue)
{
Write('"' # 'true' # '"');
}
else
{
Write('"' # 'false' # '"');
}
}
else
{
if (sValue == "")
{
Write('"' # '0' # '"');
}
else
{
Write('"' # sValue # '"');
}
}
}
Write(',"ChannelName":' # '"' # channelName # '"');
Write(',"ChannelAddress":' # '"' # channelAddress # '"');
Write(',"DeviceAddress":' # '"' # deviceAddress # '"');
Write(',"ChannelId":' # '"' # channelId # '"');
Write(',"DeviceId":' # '"' # deviceId # '"');
Write('}');
}
}
}
}
Write(']}');
}
}
Write(']}');
– Eddy
Hallo,
das währe dann das Ergebnis.
Was bedeutet das nun ?
Sorry, aber das ist nicht so meine Welt.
Rolf
Hi @MSR1954,
kannst Du mir die gesamte Ausgabe mal an eschaefer@easy-smarthome.de schicken? Ich schaue es mir dann an.
– Eddy
Hallo @MSR1954,
wie schon in der Mail geschrieben, trotzdem nochmal hier für alle.
Ich sehe jedoch wo das Problem sein könnte.
Im Gerät „CUxD.CUX2801001“, im Datenpunkt „CMD_SETS“ stehen eventuell ungültige JSON-Zeichen (./).
Wenn Du das Gerät nicht brauchst, kannst Du versuchen es zu entfernen und erneut zu versuchen.
Ansonsten warte bis zur nächsten Version der App und es sollte dann funktionieren.
– Eddy
Hallo,
Danke für die Info.
Ich habe es zuerst nochmals probiert, ohne Erfolg.
Dann habe ich das Gerät CUxD.CUX2801001 gelöscht.
Danach hat die „Vollständige Synchronisation“ funktioniert.
Jetzt das Gerät in CUx-Daemon/CCU3 wieder erzeugt und jetzt funktioniert es warum auch immer.
Vielen Dank für die umfangreiche Hilfe.