NEWS
Shellys ("Alt und Plus") über MQTT Adapter
-
@hotspot_2 Ja bei mir auch - keine Ahnung was da passiert ist.
Gut dann müssen wir die payload von on auf true und off auf false übersetzen. Dazu bedienen wir uns einer Change Node die wir dazwischen klemmen.
Wir müssen dann aber auch noch den Datentyp des Datenpunktes umändern. Zum Ändern einer payload - wie gesagt eine Change Node nutzen.
-
@mickym Change Node klappt.
-
Achte darauf, dass Du nicht einen String in den Datenpunkt schickst, sondern ein Boolean
Insgesamt sieht das also so aus:
Also für den Status wird on/off in true/false übersetzt -
für die Steuerung muss dann bei Generation 1 true/false wieder in on/off übersetzt werden:
Also immer die Datentypen betrachten. Wenn Du auf Kurs bist, dann melde dich.
-
@mickym Ich brauch doch zwei Change Nodes oder? Einmal von string auf boolean und dann beim anderen wieder von boolean auf string umsetzen.
Aber irgendwie schaltet es dann nicht mehr richtig.
-
@mickym Ich hab Di
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Ich brauch doch zwei Change Nodes oder? Einmal von string auf boolean und dann beim anderen wieder von boolean auf string umsetzen.
Aber irgendwie schaltet es dann nicht mehr richtig.
Datentyp ändern im Datenpunkt - schauen ob deine Change Nodes richtig sind. Ich habs Dir gerade gepostet.
-
@mickym Passt. Jetzt geht alles.
-
@hotspot_2 Gut wie gesagt - nun musst bissi lernen mit Objekten umzugehen. Bei der Generation2 steht der Status des Gerätes in events/rpc.
Da ich keine Shelly der 2. Generation habe - kopiere mal den Inhalt dieses Datenpunktes hier in code-tags.
Eine neue mqtt-IN Node musst Du auf dieses topic setzen.
-
{"src":"shellyplus1-a8032abd46cc","dst":"shellies/licht/obergeschoss/schlafzimmer/events","method":"NotifyStatus","params":{"ts":1679961759.17,"switch:0":{"id":0,"output":false,"source":"WS_in"}}}
-
Nee ich sehe ich glaube hier ist das:
poste mal diesen Inhalt in code-tags hier
-
{"src":"shellyplus1-a8032abd46cc","dst":"shellies/licht/obergeschoss/schlafzimmer/events","method":"NotifyStatus","params":{"ts":1679965237.59,"switch:0":{"id":0,"output":true,"source":"WS_in"}}}
-
@hotspot_2 OK . das kann man wahrscheinlich brauchen. aber bitte den anderen Datenpunkt im Status noch. Also status/switch:0
-
Licht aus:
{"id":0, "source":"WS_in", "output":false,"temperature":{"tC":50.9, "tF":123.5}}
Licht an:
{"id":0, "source":"WS_in", "output":true,"temperature":{"tC":50.8, "tF":123.5}}
-
@hotspot_2 OK - dann ist das der richtig - in der Output eigenschaft steht der Status - dann also bitte die mqtt-In Node auf dieses Status topic und dann eine debug-Node dahinter machen.
-
-
@hotspot_2 Gut jetzt zeige ich Dir wie Du aus einem Objekt die Eigenschaften extrahierst, die Du brauchst. Du klappst an den Pfeilen erst mal die ganzen Objekte auf;
uns interessiert ja die output- Eigenschaft - Du fährst mit der Maus rechts neben die Eigenschaft und kopierst den Pfad:
Nun ändern wir die payload wieder mit einer Change NOde und setzen die Payload auf den Pfad (später wirst Du einfach über einen Punkt. direkt auf die Eigenschaft zugreifen). Also wir setzen die payload, auf payload.output
Auch hier wieder auf den Datentyp achten. In diesem Fall ist es das msg.objekt
-
-
@hotspot_2 Wow bist Du gut. - Na dann können wir hier ja den Status schon mal in userdata schreiben.
-
-
@hotspot_2 und gehts auch auf true, wenn Du einschaltest?
-
@mickym Ich würde mal tippen, nein. Da bräuchten wir noch ein mqtt-out, oder?