NEWS
Shelly i4 plus und mqtt
-
Hi,
ich habe Shelly i4 plus im Einsatz. Kann mir einer helfen und schreiben wie ich die Zustände mit matt abrufe?Ich sehe dass der Online ist. Aber die Input 0-3 nicht. Ich brauche jemanden der mich in die richtige Richtung schubst. Danke vielmals.
Ich vermisse die Datenpunkte.
Hier was ich aktuell habe:
-
@fraso sagte in Shelly i4 plus und matt:
mit matt abrufe?
Wird Dir zwar nicht helfen aber das heisst nicht matt sondern MQTT - solltest Du in der Überschrift auch ändern damit es eindeutig ist
-
@fraso sagte in Shelly i4 plus und matt:
Shelly i4 plus
Ich vermute du vermisst die Datenpunkte dazu,
was passiert denn wenn du die Kontakte schaltest? kurz, 2x kurz, lang -
danke. Tippfehler oder Autokorrektur oder ein Geist.. geändert.
-
Die Plus Geräte arbeiten mit Der Gerneratiob 2. Du wirst sowohl Deine Kommandos als auch die Zustände über den RPC Datenpunkt finden. Ich mag die Schnittstelle zwar auch nicht, aber ist halt die Zukunft:
Hier die Dokumentation: https://shelly-api-docs.shelly.cloud/gen2/ -
@mickym also landet ein JSON im RPC Feld in dem alles drin steht?
-
@bananajoe ja in events/rpc der Status glaub und rpc selbst zum Schalten. . Ich such gerade mal einen anderen Thread mit einem 1 Plus, den ich kürzlich hatte, um zu Zeigen, wie die Kommandos nun aussehen.
-
In der Tat kommt dann ein neuer Datenpunkt. Danke. Manches kann ja so einfach sein....
Jetzt muss ich den "nur" noch von Json auf einen anderen Datenpunkt "übersetzen".
Habe ich so gemacht: Problem: der Json im Datenpunkt Input:0 des mqtt verändert sich korrekt. Aber der TRIGGER schlägt nicht an...
Datenpunkt:
mqtt.0.shellyplusi4-a8032ab61ad4.status.input:0
Java Script:
json = (function () { try {return JSON.parse(getState("mqtt.0.shellyplusi4-a8032ab61ad4.status.input:0").val);} catch(e) {return {};}})(); setState("0_userdata.0.E6-Teich.TROMMLER.CLEAN-SENSOR", getAttr(json, 'state'));
-
@fraso hier ist der Thread, wie man den 1
Plus schaltet: https://forum.iobroker.net/topic/55886/shelly-1pm-plus?_=1657268794617Müsste beim 4er ja dann ähnlich sein. Mit Blockly bin ich aber zu faul mich damit zu beschäftigen. Wahrscheinlich wird das aber mit dem :0 nicht funktionieren, sondern Du musst den ganzen Datenpunkt triggern lassen und dann die Attribute des Objekts überprüfen. Ich denke aber, dass wenn du Attribute von Objekt nimmst, parsed Blockly automatisch
Hier sind Beispiele wie man sich notification Events des 4pm:
https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/InputIn den Event Eigenschaften kann man dann auswerten welcher Tastendruck es war.
Unter General in der verlinkten API kannst du die Channels und die Methoden nachlesen: https://shelly-api-docs.shelly.cloud/gen2/General/RPCProtocol
Du musst dich da halt einlesen, ich habe (zum Glück) noch keine Plus bzw. Generation 2 Geräte
-
das Problem liegt das der Trigger nicht anschlägt. Wenn das gleiche mache mit einem Sekunden - Cron dann liest er das alles aus wie er soll und überträgt in meinen Datenpunkt.
Die Frage die sich stellt: warum springt der Trigger nicht an bei Änderung auf den mqtt Datenpunkt (obwohl Zeitstempel in Objekte das korrekt anzeigt)? Verstehe ich nicht...
Das geht:
Ergebnis DEBUG:
-
Wie gesagt ich bin aber eher Legastheniker was Blockly betrifft und steuere meinen iobroker lieber mit Node-Red. Wenn sich der Datenpunkt ändert ist es ja kein mqtt oder Shelly Ptoblem.
Probier doch mal in der Klammer ein Debug Output, ob er wirklich nicht triggert oder Dein Telegram Block ein Problem hat.
Für das parsen brauchst auch kein JS das geht mit dem Blockly Baustein, Attribut von Objekt. Und als Objekt kannst dieses Mal direkt den Wert des Objektes verwenden.. Blockly parsed das automatisch