NEWS
[Aufruf] Test Shelly Adapter
-
Hallo,
es gibt eine neue Version des Shelly Adapter (3.0.8). Unterstützt wird nun auch der Shelly EM. Ich hoffe jemand von Euch hat diesen im Einsatz und kann ordentlich testen. Besonders der Wert Power Factor (PF) interessiert mich. Dieser wird nicht vom Shelly geliefert, sondern muss berechnet werden. Ich hoffe ich habe das richtig umgesetztHier die Neuerungen in der Version 3.0.8
- Add device Shelly EM
- Add state energy for Shelly Plug S, Shelly PM and Shelly 2.5 in CoAP mode
- Add state temperature for Shelly Plug S, Shelly PM and Shelly 2.5 in CoAP mode
- Add state overtemperature for Shelly Plug S, Shelly PM and Shelly 2.5 in CoAP and MQTT mode
- Bugfixing
Die Version steht auf GitHub ab sofort zur Verfügung, als Update bei den Adaptern wahrscheinlich morgen.
VG
Stübi -
Ich habe täglich wenn die Rollläden hoch/runter fahren folgenden Fehler im Log:
2019-07-28 21:23:59.719 - [32minfo[39m: shelly.0 Error handling Shelly data: SyntaxError: Unexpected token P in JSON at position 420 for JSON {"blk":[{"I":0,"D":"Relay0"},{"I":1,"D":"Relay1"},{"I":2,"D":"Device"}],"sen":[{"I":112,"T":"S","D":"State","R":"0/1","L":0},{"I":122,"T":"S","D":"State","R":"0/1","L":1},{"I":111,"T":"W","D":"Power","R":"0/3680","L":2},{"I":113,"T":"S","D":"Position","R":"0/100","L":2}],"act":[{"I":211,"D":"Switch","L":0,"P":[{"I":2011,"D":"ToState","R":"0/1"}]},{"I":221,"D":"Switch","L":1,"P":[{"I":2021,"D":"ToState","R":"0/1"}]}]}P 2019-07-29 21:23:01.705 - [32minfo[39m: shelly.0 Error handling Shelly data: SyntaxError: Unexpected token ` in JSON at position 420 for JSON {"blk":[{"I":0,"D":"Relay0"},{"I":1,"D":"Relay1"},{"I":2,"D":"Device"}],"sen":[{"I":112,"T":"S","D":"State","R":"0/1","L":0},{"I":122,"T":"S","D":"State","R":"0/1","L":1},{"I":111,"T":"W","D":"Power","R":"0/3680","L":2},{"I":113,"T":"S","D":"Position","R":"0/100","L":2}],"act":[{"I":211,"D":"Switch","L":0,"P":[{"I":2011,"D":"ToState","R":"0/1"}]},{"I":221,"D":"Switch","L":1,"P":[{"I":2021,"D":"ToState","R":"0/1"}]}]}`E
An sich funktioniert alles. Ist mir eben nur durch Zufall aufgefallen.
-
@Diginix , danke für den Hinweis. Wenn alles funktioniert, werde ich die Meldung nur noch im Debug Modus anzeigen lassen.
-
@Diginix hinter dem JSON kommen noch "Müllbytes". Es wäre evtl. sauberer alles nach dem letzten } abzuschneiden und dann das JSON zu parsen!?
-
@NemoN , das ist leider ein Fehler von Shelly. Die senden teilweise kaputte JSONs. Ich werde ab Version 3.0.8 diese Fehlerhaften JSONs nur noch im Debug Modus anzeigen. Eine Korrektur des Shelly JSONs in ioBroker werde ich nicht vornehmen, da diese vom Adapter nicht benötigt werden. Diese beschreiben den Aufbau der CoAP Daten-Nachrichten.
-
@Stuebi Hi Stübi,
gerade hatte ich den Fall, das mein Script nicht ging. Flott nachgeschaut und bemerkt, das der Power-Wert nicht gefüllt war. Somit ist klar warum das Script nicht geht.
Hilft MQTT dabei die Power-Werte zu übermitteln? Im Einsatz habe ich die neueste Version des Adapters -
@srkonus , kannst Du mir sagen welches Shelly Gerät du im Einsatz hast? Eigentlich sollte es mit dem Shelly 2, Shelly 2.5, Shelly PM und Shelly Plug S gehen.
-
@Stuebi Ich nutze den Shelly Plug S mit neuester Firmware und neuestem Shelly Adapter
-
@srkonus , welche ioBroker Shelly Adapter Version hast du im Einsarz?
-
@Stuebi Die neueste Version, 3.0.8
Einen Tag später funktionierte es wieder. Der Adapter wird täglich früh morgens neugestartet. -
@srkonus , noch ein paar Fragen hätte ich:
- warum wird der Adapter neu gestartet? Stürzt dieser ab?
- Schaust Du einmal im Logfile nach, ob der Shelly Adapter irgendwann einen Fehler ausgibt?
- Weisst Du ob der Shelly Plug S ab und an eine neue IP Adresse erhält?
Ich habe auch den Shelly Plug S und bei mir werden die Power Werte immer angezeigt.
-
@Stuebi vielen Dank für die schnelle Antwort. Hier mein Versuch alles zu beantworten:
1: warum wird der Adapter neu gestartet? Stürzt dieser ab?
Der Adapter stürzt nicht ab. Nachdem ich das ganze eingerichtet hatte (meine mit Adapter 3.0.3 oder so) habe ich bemerkt das mein Script (Lastabhängiges schalten eines zweiten Plug S) wieder läuft wenn der Adapter neugestartet wurde. Da kam ich auf die Idee einen täglichen Neustart einzubauen2: Schaust Du einmal im Logfile nach, ob der Shelly Adapter irgendwann einen Fehler ausgibt?
Muss ich nachschauen3: Weisst Du ob der Shelly Plug S ab und an eine neue IP Adresse erhält?
Die IP wird als Reservierung vergeben, der Adapter hat immer die gleiche Adresse -
Hier 2 Screenshots meiner PlugS. Es hat gerade nicht funktioniert und über beide PlugS fließt gerade Strom. Die angezeigten 70W von Adapter PlugS-2 hätte den anderen einschalten sollen. Gestern Abend ging das an- sowie das ausschalten. Allerdings habe ich gestern später am Abend einen Adapter (PlugS-1) über die Shelly App einmal ein- und ausgeschaltet.
Im Logfile ist zum Zeitpunkt der "Fehlfunktion" kein Eintrag vom Shelly Adapter. -
@Stuebi Das ausschalten hat gerade auch nicht funktioniert, als ob das schalten über die Shelly App das System durcheinander gebracht hat
-
Wie schaltest du denn die Shellys über ioBroker? Es gibt dazu ein Issue, da hat jemand in den Datenpunkt Switch 1 oder 0 statt true/false (boolean) über VIS reingeschrieben (ohne das er es wusste). Damit hat er den Datenpunkt Switch komplett lahmgelegt.
Kann es daran liegen? -
@Stuebi Das ist mein Script in Java, erstellt habe ich es aber mit Blockly. Da ich auf der Arbeit bin und keinen Zugang nach Hause habe, kopiere ich das Script hier noch einmal rein. Hatte es irgendwann schon einmal hier gepostet:
on({id: "shelly.0.SHPLG-S#7AE7B6#1.Relay0.Power"/*Power*/, change: "ne", ack: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("shelly.0.SHPLG-S#7AE7B6#1.Relay0.Power").val > 20) { setState("shelly.0.SHPLG-S#7ADFCD#1.Relay0.Switch"/*Switch*/, true); } if (getState("shelly.0.SHPLG-S#7AE7B6#1.Relay0.Power").val < 50) { setState("shelly.0.SHPLG-S#7ADFCD#1.Relay0.Switch"/*Switch*/, false); } });
Ich möchte nicht ausschließen, das im Blockly 1/0 verwendet wird, aber das würde man in Java dann auch so sehen.
-
@srkonus , noch eine Frage, kannst Du denn wenn Du in ioBroker auf dem Reiter Objekte stehst, den Datenpunkt shelly.0.SHPLG-S#7ADFCD#1.Relay0.Switch schalten. Also nicht über Dein Blocky Skript?
-
@Stuebi Kann ich dir im Moment nicht sagen. Wüsste auch nicht, wie das geht
-
@srkonus , dafür gehst Du in ioBroker (Admin) auf den Reiter Objekte und suchst den Datenpunkt shelly.0.SHPLG-S#7ADFCD#1.Relay0.Switch . in der Spalte "Wert" kannst Du den Wert mit der Maus auf false/true setzen.
Versuche dieses einmal wenn Dein Blocky Skript bzw. der Shelly nicht mehr tut was es soll. Wenn Du den Wert im Datenpunkt änderst schaue in der Shelly Web App ob sich dort der Wert ändert (d.h. Schalter an/aus). Du kannst auch sicherheitshalber umgekehrt nachschauen. D.h. in der Shelly App den Wert ändern und dann den Inhalt im Datenpunkt shelly.0.SHPLG-S#7ADFCD#1.Relay0.Switch anschauen.
Sollten die Werte in dem Datenpunkt und Shelly Web App nicht identisch sein, deaktiviere einmal Dein Blocky Script (bitte nicht Shelly Adapter neu starten!) und ändere dann nochmals die Werte im Datenpunkt und in der Shelly App. Sind dann die Werte in der Shelly Web App und des Datenpunktes identisch? -
@Stuebi Vielen Dank für deine Antwort. Gerade hat das Script nicht gegriffen. Der Status des Value Switch ist auf true.
Habe das Script jetzt neugestartet, Mal schauen wie nachher beim ausschalten das Verhalten ist