NEWS
Sonoff BUG, Objekt wird nicht aktualisiert durch "Received: cmnd/ …" + Patch
-
Hallo zusammen,
ich habe einen Sonoff Basic der als Taster konfiguriert ist und ein Relais (zusammen mit anderen Tastern) schaltet. Um den tatsaechlichen ein/aus Zustand des Relais zu haben wird der Zustand durch Kopplung eines zweiten Relais am GPIO14 Pin gesetzt. Das funktioniert soweit. Der Sonoff produziert korrekte Meldungen an den ioBroker wie etwa:
sonoff.0 2018-02-25 13:30:52.463 debug [DVES_4F8515] Received: cmnd/sonoff/POWER1 = ON
oder
sonoff.0 2018-02-25 13:43:28.808 debug [DVES_4F8515] Received: cmnd/sonoff/POWER1 = OFF
Es wurde auch ein Datenpunkt angelegt:
POWER1 state
DVES_4F8515 POWER1
state switch
Nur hat dieser nie einen Status "true" oder "false". Wie kann ich den oben erhaltenen Befehl in das Setzen dieses Datenpunktes umwandeln?
Nachtrag:
Mir scheint auch jemand anders hat das Problem des nicht-geaenderten Objekts, hier:
http://forum.iobroker.net/viewtopic.php?t=10192
Da schreibt er:
"Es benötigt anscheinend nur den mqtt adapter und nicht den Sonoff Adapter. Der Sonoff Adapter zeigt mir keinen Schalter Status im Gegensatz zum mqtt Adapter:"
Das bedeutet wohl: es ist scheinbar ein Bug…
Und hier waere der von mir vorgeschlagene FIX:
iobroker.sonoff/lib/server.js so aendern ab Zeile 372:
if (parts[0] === 'cmnd') {
// Set Object fix
if (obj.data.common.type === 'number') {
adapter.setState(id, parseFloat(val), true);
} else if (obj.data.common.type === 'boolean') {
adapter.setState(id, val === 'ON' || val === '1' || val === 'true' || val === 'on', true);
} else {
adapter.setState(id, val, true);
}
// remember POWER topic
client._map[stateId] = packet.topic;
-
ich würde das gerne testen, bekomme aber den eintrag leider nicht hin es kommt immer einen Fehlermeldung bei starten des Adapters.
Warscheinlich liegt es daran das ich das nicht richtig anordne weil ich mich damit so überhaupt nicht auskenne.
Ist es möglich die besagte datei inkl. bugfix hochzuladen damit man das einfach nur austauschen muss?
Wäre hilfreich vieleicht auch für andere die der Programmiersprache nicht so mächtig sind.
Vielen dank
-
Ich habe Dir das server.js mit dem Fix hierher gelegt:
https://cloud.ithnet.com/index.php/s/xusBkcjLwYVvXaK
Du brauchst ein PW, schick mir eine persoenliche Nachricht deswegen
-
Hallo!
Kannst du eventuell deinen Fix auf Github committen.
Muss diesen nach jedem update wieder nachziehen…
-
Habe auf github übernommen:
-
Hatte Gestern das gleiche Problem.
Das keine Datenpunkte angelegt werden und oder keine Variableninhalte bei den Objekten angezeigt werden.
Ich dachte erst es läge an meiner MQTT Programmierung, aber in den logs stand es richtig drin.
Bis ich darauf kam, das es sich ein Redraw Problem handelt, das nicht nur den SONOFF oder auch den CUL Adapter betrifft.
Zum Teil konnte ich die Anzeigen hinzaubern, indem ich das Browserfenster aktualisiert habe,
oder den Browser ganz geschlossen und neu geöffnet habe.
Ich kann das ganz genau nachvollziehen, weil ich in einem sehr kurzen Testprogram auf ESP8266 über Pubsubclient,
MQTT Befehle / JsonStrings an den iobroker sende, um ein SONOFF Gerät, like Tasmota zu simmulieren.
Also ohne MQTT-Adapter, nur den SONOFF Adapter benutzt.
Aber wie gesagt diese update Probleme habe ich auch schon beim CUL-Adapter in der selben Form gesehen.
Mal sehen ob da jemand eine Lösung weiß.
Gruß
Mickbaer
-
Habe auf github übernommen:
Danke dafuer, ziemlich viele Zeilen dazu gekommen in der git Version