Fehlermeldung nach Update auf V 1.41.7 - gelöst

Hallo,

seit dem Update auf 1.41.7 bekomme ich bei „Vollständige Synchronisierung“ folgende Fehlermeldung auf Smartphone.Screenshot_20200523-072428

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:

  1. Genauer Ablauf, welcher zum reproduzierbaren Fehler führt
  2. Platform (iOS, Android, UWP)
  3. Ein Log zum Zeitpunkt des Fehlers

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

Hallo @MSR1954,

gute Frage. Was kommt bei Dir für ein Fehler?

– Eddy

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 :wink:

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

Ashampoo_Snap_Sonntag, 24. Mai 2020_15h16m21s_001_

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.

  • Rolf
2 „Gefällt mir“