NEWS
Shelly 1Plus über mqtt anbinden
-
Hallo zusammen,
Ich habe gestern Abend einen neuen Shelly 1Plus verbaut - dieser ist leider noch nicht im Shelly Adapter unterstützt.
Nun versuche ich ihn per mqtt anzubinden.
Also, im Objekt "mqtt.0.shellyplus1-a8032abe918c.status.switch:0" wird bei On bzw Off folgender String übergeben:
für off:
{"src":"shellyplus1-a8032abe918c","dst":"shellyplus1-a8032abe918c/events","method":"NotifyStatus","params":{"ts":1635344822.11,"switch:0":{"id":0,"output":false,"source":"http"}}}für on:
{"src":"shellyplus1-a8032abe918c","dst":"shellyplus1-a8032abe918c/events","method":"NotifyStatus","params":{"ts":1635344860.12,"switch:0":{"id":0,"output":true,"source":"http"}}}Es ändert sich also der Wert von "output" und von "ts".
Wie kann man auf diese Änderung triggern?
Mit blockly geht das irgendwie nicht... -
@spooky82 Ehrlich gesagt finde ich diese Doku zu der mqtt Doku zur Generation mehr als bescheiden und blicke auch nicht nicht richtig durch.
Sowie ich das verstehe, schaltet man den Shelly über den rpc Ast:
shellyplus1-a8032abe918c/rpc
da müsste man dann folgenden JSON schreiben
{"id":0, "src":"user_1", "method":"Switch.Set", "params":{"id":0,"on":true}}
Diese src - kann ein beliebiger String sein - und soll wohl dazu dienen, dass man unterscheiden kam von wem oder was der Befehl kam.
Es sollte dann unter
user_1/rpc
eine Antwort geben, die je nach voherigem Zustand sowas enthalten soll:
{"was_on": false}
wie gesagt ich kenne diese neue Struktur auch nicht und die Beschreibung finde ich sowas von unlogisch und schlecht aufgebaut. Aber kannst es ja mal so versuchen - wie gesagt ich habe das Gerät nicht, sondern ich versuche nur aus der Beschreibung schlau zu werden.
-
@spooky82 Das triggern ist einfach - es wird einfach der gesamte Wert getrigggert.
Das heißt Du hast nur den Wert in mqtt.0.shellyplus1-a8032abe918c.status.switch.0 als JSON String - den in ein Objekt wandeln und dann musst halt dann über das Attribut rausfieseln.
Statt der String-Zuweisung triggerst Du natürlich über den Datenpunkt und kannst dann ja je nach output Wert triggern.
Im Prinzip musst Du also nur den Wert Deines Triggers "mqtt.0.shellyplus1-a8032abe918c.status.switch:0" (also in Objekt ID einsetzen) in ein Objekt zu wandeln.
-
@mickym Danke - ich werde es gleich ausprobieren!
Edit: Ok, Den Status bekomme ich nun wunderbar hin.
Aber wie schalte ich das jetzt?Danke schön.
-
@spooky82 Na das mit dem Schalten habe ich ja in meinem ersten Posting gesagt - wie gesagt ich kenne diese neue und schlecht dokumentierte neue API auch nicht, aber so weit ich verstanden habe, erstellst Du einen neuen Datenpunkt "rpc" als String unter mqtt.0.shellyplus1-a8032abe918c, also mqtt.0.shellyplus1-a8032abe918c.rpc mit dem Namen shellyplus1-a8032abe918c/rpc und dort schreibst dann den JSON String.
In den schreibst Du dann wie in meinem ersten Posting beschrieben entweder
{"id":0, "src":"user_1", "method":"Switch.Set", "params":{"id":0,"on":true}}
oder
{"id":0, "src":"user_1", "method":"Switch.Set", "params":{"id":0,"on":false}}
ansonsten noch mal mein 1. Posting anschauen - aber wie gesagt - sonst musst ggf. auch noch mal im Shelly Forum nachfragen.
Manchmal frage ich mich warum Entwickler alles komplizierter anstelle von einfacher machen.
-
@mickym said in Shelly 1Plus über mqtt anbinden:
{"id":0, "src":"user_1", "method":"Switch.Set", "params":{"id":0,"on":false}}
Verstanden. Habe ausprobiert - der Shelly schaltet leider nicht
Naja - sehr interessant - ich habe mich echt auf das Device gefreut - werde den 1Plus jetzt aber wohl erstmal durch einen 1erV3 ersetzen und auf ein Update des Adapters (falls es überhaupt möglich ist) warten. -
@spooky82 Wie gesagt dann stell mal im Shelly Forum die Frage.
https://www.shelly-support.eu/forum/index.php?board/139-shelly-plus-1/
-
@spooky82 sagte in Shelly 1Plus über mqtt anbinden:
@mickym said in Shelly 1Plus über mqtt anbinden:
{"id":0, "src":"user_1", "method":"Switch.Set", "params":{"id":0,"on":false}}
Verstanden. Habe ausprobiert - der Shelly schaltet leider nicht
Naja - sehr interessant - ich habe mich echt auf das Device gefreut - werde den 1Plus jetzt aber wohl erstmal durch einen 1erV3 ersetzen und auf ein Update des Adapters (falls es überhaupt möglich ist) warten.Ich hab gesehen, Du warst im Shelly Forum aktiv und es scheint zu funktionieren. Nur Frage, warum hat es nicht funktioniert, wie ich bzw. Du es hier schon probiert hast.
An dem Blockly macht er doch genau das Gleiche:
-
@mickym hi. Ich bin mir ziemlich sicher, dass ich der Grund war, warum es nicht funktioniert hat