Hallo,
habe seit ein paar Tagen einen Shelly 1PM 2. gen, den ich gerne mit Node Red steuern möchte. Habe hierzu einige Beiträge gefunden. U.a:
Shelly 1 & 1pm example api flows (flow) - Node-RED
Ich habe den Flow in mein Node Red auf dem Raspi4 kopiert und die Shelly-IP und Shelly-ID angepasst.
Die MQTT Verbindung hat nach einigem hin und her geklappt und es lässt sich damit auch der Status, den der Shelly jede Minute schickt im Broker empfangen.
Ich schaffe es aber nicht über MQTT den Shelly ein- und auszuschalten.
Habe in der Inject Node schon alles versucht:
msg.topic = shellies/shelly1pm-441793cfe6a8/relay/0/command
msg.payload = {"relay":0,"on":1} oder {"relay":0,"on":"true"} oder {"relay":0,"on":true}, oder ....
Auf der anderen Seite kann ich über http den Shelly schalten, ich kann aber z.B. nicht die Updateperiode ändern, oder den Shelly booten. Die zugehörige Function Node sieht so aus (1:1 aus dem oben genannten Beispiel kopiert, nur die IP-Adresse geändert):
var x = msg.payload;
var IP = "192.168.178.32";
msg.url = "http://" + IP + "/settings";
msg.payload = "mqtt_update_period=" + x;
return msg;
Ich bekomme immer vom http-Request Node die Fehlermeldung:
"JSON-Parse-Fehler"
Und last but not least kann ich mit dem Shelly Switch auch nur den Status abfragen, aber den Shelly nicht schalten.
ich vermute, es liegt nur ein Kleinigleiten, aber ich komme alleine nicht weiter.
Ich hoffe man kann mein anfängerhaften Erklärunegn verstehen und es kann mir jeamnd helfen!
Grüße
Sputnick