MK-2001/ioBroker.go-e

State value to set for "go-e.1.temperatures.tempereatureArray" has to be stringified but received type "object"

Jockelflo opened this issue · 10 comments

V 1.0.15
Temperaturen werden gelesen aber nicht den einzelnen Werten zugeteilt.
State value to set for "go-e.1.temperatures.tempereatureArray" has to be stringified but received type "object" kommt als Fehlermeldung sekündlich.

Ist der Adapter tod oder wird es noch einen Bugfix geben?

Für dieses Issue wird es derzeit keinen BugFix geben, da es derzeit kein Bug der V2 ist. Kommt wie in der Version 2 das Objekt richtig an den Datenpunkt an, kommt auch keine Fehlermeldung.

welche V2 ? Denke, der Adapter unterstuetzt nur V1 der API ?

Hardware V2.
Derzeit gibt es die HW in der Version 3. Firmwares 05x.x. Ich habe bereits beim Hersteller angefragt, ob ich eine HW für die Anpassungarbeiten am ioBroker bekommen könnte, auch gegen Tausch meiner V2, leider ohne Rückmeldung. Da ich privat bin,möchte ich mir aber "nur" wegen der community keine neue zusätzliche HW kaufen.

Blöd nur, dass ich 2 V2 Varianten benutze und trotzdem den Fehler habe.

Bitte prüfe, ob der Datenpunkt wirklich auf Object steht:

  1. Editieren:
    image

  2. Werte anpassen:
    image

  3. Bitte mal "array" oder auch "object" auswählen.

Ich kann um einen Kompromiss zu finden gerne in der nächsten Version einen Schalter in der Config einbauen, welches diesen Datenpunkt nicht mehr schreibt.

Newan commented

Habe folgendes drin stehen bei gleichen Log Meldung:

image

Bei Zustandstyp ist bare nichts augewählt:

image

Newan commented

await queue.add(() => this.setState("temperatures.tempereatureArray", { val: o.tma, ack: true }));
to
await queue.add(() => this.setState("temperatures.tempereatureArray", { val: JSON.stringify(o.tma), ack: true }));
oder?

Hallo, ich verwende das geschriebene Array in meinen Scripten. Wenn die Fehlermeldung nicht mehr scheinen soll, vielleicht noch "object" als type eintragen. Bei mir mit Array erscheint die Meldung nicht. Stringify kann ich nicht verwenden, da ich sonst bestehende Scripte abändern muss.

Warum es bei manchen in den Logs erscheint und bei anderen nicht, habe ich noch nicht herausgefunden.

@Newan
Danke, mit deinem Update ist der Fehler weg, und wenn man nur 2 Temperaturen bekommt von der Wallbox, dann 5 Zeilen weiter anstatt
if(tempArr.length === 4) {

aus der 4 eine 2 machen, und die Werte landen in den Datenpunkten. :-)

if(tempArr.length === 2) {