Das ist die "normale" Shelly integraton für NodeRed, die habe ich drauf. Das ist aber nicht das, was Skyrock oben schrieb, zumindes kann ich das damit nicht so wie gezeigt umsetzen.
Klapp ja jetzt auch mit dinem Vorschlag.
Das ist die "normale" Shelly integraton für NodeRed, die habe ich drauf. Das ist aber nicht das, was Skyrock oben schrieb, zumindes kann ich das damit nicht so wie gezeigt umsetzen.
Klapp ja jetzt auch mit dinem Vorschlag.
Alles anzeigenZur Eingangsfrage:
Es muss unter MQTT ggf. "generic Status Update over MQTT" aktiviert werden, damit der Wert gesendet wird. Ich habe solch einen Shelly nicht, um es zu testen.
Was ankommt kann man mit dem MQTT-Explorer sehen.
Parsen geht am einfachsten mit dem MQTT JSON Node unter Node Red.
Vielleicht hilft dir der Punkt unter "MQTT Control" weiter:
https://shelly-api-docs.shelly.cloud/gen2/Component…er#mqtt-control
Wenn es mir zu aufwändig wird, dann greife ich auf http zurück, was Node Red ja ebenfalls kann. Leider finde ich die API zunehmend unverständlicher und habe kein Gerät zum Testen. Vielleicht hilft es weiter:
https://shelly-api-docs.shelly.cloud/gen2/Devices/Gen2/ShellyPlus2PM
Ansonsten meldet sich hoffentlich noch wer.
Das war ein guter Hinweis, Danke
Das lässt sich gut und sehr einfach in NodeRed integrieren. Hier mal für NodeRed ein Beispiel zum kopieren und einfügen. (für die Nachwelt )
[
{
"id": "f4f73ec1dd3bcc19",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "3311f50c720f3ec1",
"type": "inject",
"z": "f4f73ec1dd3bcc19",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 520,
"y": 360,
"wires": [
[
"c9166774cfc17d0c"
]
]
},
{
"id": "c9166774cfc17d0c",
"type": "http request",
"z": "f4f73ec1dd3bcc19",
"name": "Open",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://192.168.178.140/rpc/Cover.open?id=0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 690,
"y": 360,
"wires": [
[
"2fd7f0bb8f1ae51e"
]
]
},
{
"id": "87b9987321d99e24",
"type": "inject",
"z": "f4f73ec1dd3bcc19",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 520,
"y": 440,
"wires": [
[
"35ef4326f8866e11"
]
]
},
{
"id": "35ef4326f8866e11",
"type": "http request",
"z": "f4f73ec1dd3bcc19",
"name": "Close",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://192.168.178.140/rpc/Cover.close?id=0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 690,
"y": 440,
"wires": [
[
"3d78677e971e5042"
]
]
},
{
"id": "62135a1a685d2bbd",
"type": "inject",
"z": "f4f73ec1dd3bcc19",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 520,
"y": 400,
"wires": [
[
"a7cfce6664e109b7"
]
]
},
{
"id": "a7cfce6664e109b7",
"type": "http request",
"z": "f4f73ec1dd3bcc19",
"name": "Stop",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://192.168.178.140/rpc/Cover.stop?id=0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 690,
"y": 400,
"wires": [
[
"933e3f697df6523f"
]
]
},
{
"id": "2fd7f0bb8f1ae51e",
"type": "debug",
"z": "f4f73ec1dd3bcc19",
"name": "debug 145",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 850,
"y": 360,
"wires": []
},
{
"id": "933e3f697df6523f",
"type": "debug",
"z": "f4f73ec1dd3bcc19",
"name": "debug 146",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 850,
"y": 400,
"wires": []
},
{
"id": "3d78677e971e5042",
"type": "debug",
"z": "f4f73ec1dd3bcc19",
"name": "debug 147",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 850,
"y": 440,
"wires": []
},
{
"id": "b841c6e7d54a9adc",
"type": "http request",
"z": "f4f73ec1dd3bcc19",
"name": "35%",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://192.168.178.140/rpc/Cover.GoToPosition?id=0&pos=35",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 690,
"y": 480,
"wires": [
[
"1cc22a377c3d3dc3"
]
]
},
{
"id": "9801ee907969e142",
"type": "inject",
"z": "f4f73ec1dd3bcc19",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 520,
"y": 480,
"wires": [
[
"b841c6e7d54a9adc"
]
]
},
{
"id": "1cc22a377c3d3dc3",
"type": "debug",
"z": "f4f73ec1dd3bcc19",
"name": "debug 148",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 850,
"y": 480,
"wires": []
},
{
"id": "9d357cb4c066f9a7",
"type": "comment",
"z": "f4f73ec1dd3bcc19",
"name": "Anmerkung!!!!!",
"info": " - Die IP_Adresse des Shelly`s muss in \"Open, Stop, Close, 35%\" angepasst werden.\n - Es ist empfehlenswert, dass der Shelly im Router eine fest IP-Adresse zugewieden bekommt",
"x": 540,
"y": 300,
"wires": []
}
]
Alles anzeigen
Sollte dann so aussehen:
Besten Dank, Peter
Das ist doch aber nicht die Shelly-Integration? Das ist ein Weg, dass Node Red über Home Assistant geht und Home Assistant dann die Meldungen liefert oder den Status setzt.
Die Shelly-Integration ist doch noch was anderes?
Das habe ich Tatsächlich auch nicht verstanden und eine solche Erweiterung in NodeRed auch nicht gefunden. Wenn es diese Erweiterung ohne home assistant gibt, würde mich das dennoch interessieren.
Guten Morgen,
ich habe mich hier im Forum angemeldet, da ich bei einer Kleinigkeit Hilfe brauche, die in diesem Chat schon einmal angeschnitten wurde. Das kommt weiter unten, aber erstmal….
….möchte ich mich mal vorstellen.
Ich bin Peter und versuche mir durch Smart Home das Leben zu erleichtern und Abläufe zu optimieren um Energie zu sparen. Das funktioniert auch erstaunlich gut und die Shellys in Verbindung mit meinen PV-Anlagen (PV 17kWp und 25kWh Akku‘s) sind da nicht mehr weg zu denken.
Leider sind meine English und Programmierkenntnisse alles andere als ausreichend, dass fällt mir gern mal auf die Füße, wie auch bei dem Problem, dass ich jetzt habe.
Wie sieht mein Aufbau aus?
Ich steuere Rollläden mit Sellys 2.5 wie folgt. Mit einem ESP32 werte ich meine vorhandenen Jarolift 433 Funktaster aus und schicke die Befehle der Taster über eine MQTT-Nachricht an NodeRed. In NodeRed fließen noch andere Werte wie Temperatur, Sonnenstand, Zustand Alarmanlage usw. ein und dort wird dann entschieden welcher Rollladen was machen soll. Wieder über eine MQTT-Nachricht, werden die einzelnen Shelly 2.5 angesteuert und der jeweilige Rollladen wird hoch- und runtergefahren. Das klappt alles in allem zuverlässig und reibungslos.
Nun mein Problem
Ich möchte weitere Rollläden einbinden und habe 7 Shelly Plus 2PM gekauft, da diese von den Shelly 2.5 abgelöst wurden. Die werden aber leider anderes angesteuert und das bekomme ich nicht gelöst.
Bei den Shelly 2.5 sehen die Befehle so aus:
msg.payload = {
roller: 0,
go: "open"
}
msg.payload = {
roller: 0,
go: "stop"
}
msg.payload = {
roller: 0,
go: "close"
}
Wie muss die "msg.payload" Nachricht bei dem Shelly Plus 2PM aussehen?
Nach meinem Verständnis müsste da was mit „cover“ anstatt „roller“ stehen, aber ich bekomme es nicht hin. Gibt es auch einen Befehl der sagt, fahre auf 70%?
Schon mal danke im Voraus, Gruß Peter