Shelly1PM per MQTT als Ladepunkt konfigurieren?

Fragen zur Nutzung, Features, usw..
Stevie_AN
Beiträge: 301
Registriert: Di Jan 19, 2021 11:04 am

Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Stevie_AN »

Hallo zusammen,

ich könnte mal ein bisschen Starthilfe gebrauchen. Wie hier viewtopic.php?p=64585#p64585 schon kurz angerissen, möchte ich zum Laden unseres Twizy einen Schuko-Ladepunkt mit einem Shelly 1PM realisieren.

Hardwaremäßig ist bereits alles installiert und aktuell hab ich den entsprechenden Shelly über Smarthome 2.0 eingebunden, so dass dieser bei entsprechendem Überschuss geschaltet wird und auch das Logging funktioniert.

Nun kam ja der Tipp, man könne auch einen Ladepunkt per MQTT erstellen - das finde ich sehr interessant, weil dann sowohl das Logging, als auch die Schaltlogik und Umschaltung entsprechend der anderen Ladepunkte möglich wäre.

Nun, wie geht man da vor? Was ich bereits herausgefunden habe: Man kann den Shelly an einen MQTT-Server anbinden über die Developement-Settings. Und in der OpenWB kann ein Ladepunkt via MQTT eingestellt werden.

Wenn ich nun beim Shelly in die MQTT-Settings gehe, taucht schon die erste Frage auf: Hier braucht es einen Benutzernamen und ein Passwort! Was trage ich dort ein? Die Zugangsdaten der OpenWB-Cloud? Oder muss ich in der OpenWB erst einen MQTT-Benutzer erstellen?

In der Ladepunktkonfiguration kann man bei MQTT keine weiteren Einstellungen machen - woher weiß denn die OpenWB, dass sie sich mit dem Shelly verbinden soll?

Ist die ganze Sache doch viel umfangreicher?

Es wäre wirklich super, wenn mir jemand helfen könnte ;) Eventuell hat das ja sogar schon jemand so am Laufen?

Vielen Dank schon mal und schöne Grüße...

Stefan
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
openWB
Site Admin
Beiträge: 7959
Registriert: So Okt 07, 2018 1:50 pm

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von openWB »

Ist die ganze Sache doch viel umfangreicher?
Ja, du brauchst ein „Zwischengerät“ das entsprechend übersetzt.
Sowas sollte sich relativ einfach mit NodeRed machen lassen.
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
Stevie_AN
Beiträge: 301
Registriert: Di Jan 19, 2021 11:04 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Stevie_AN »

openWB hat geschrieben: Mo Mai 09, 2022 7:30 am Sowas sollte sich relativ einfach mit NodeRed machen lassen.
Ok, danke schon mal für das entsprechende Schlagwort "NodeRed". Hab ich schon des öfteren hier gelesen - dann brauche ich in die Richtung vermutlich erst mal einen Einsteigerkurs :)

"relativ einfach"... das macht schon mal Mut!
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
Gero
Beiträge: 2504
Registriert: Sa Feb 20, 2021 9:55 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Gero »

Stevie_AN hat geschrieben: Mo Mai 09, 2022 7:46 am "relativ einfach"... das macht schon mal Mut!
...und hier ist der Einsteigerkurs
viewtopic.php?f=6&t=4285
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Gero
Beiträge: 2504
Registriert: Sa Feb 20, 2021 9:55 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Gero »

Wenn das installiert ist, geht es weiter mit der Konfiguration des (bei mir dritten) Ladepunkts auf MQTT. In der Konfiguration lesen wir, dass mit dem MQTT-Topic openWB/lp/3/AConfigured die openWB dem Ladepunkt mitteilt, mit wieviel Ampere geladen werden soll.

Nun wissen wir, dass wir einen Shelly-Plug mit diesen Befehlen im Browser ein- und ausschalten können: (einfach mal in die Adresszeile reinkopieren und natürlich die IP-Adresse anpassen)

Code: Alles auswählen

http://192.168.178.30/relay/0?turn=on
http://192.168.178.30/relay/0?turn=off
Also basteln wir uns einen Flow (so heißen nodeRED-Programme) mit dem wir erst einmal die openWB-Ladeleistung auslesen und wenn die Vorgabe größer als 6A ist, schalten wir den Shelly ein und sonst aus.

Am Anfang steht also MQTT-Node und packen da das Topic aus dem Hilfetext rein:
mqtt.jpg
In der Konfiguration des Servers muss die openWB angegeben werden, damit nodeRED auch weiß, wo nachgefragt werden muss.

Nun kommt die zweite Node, das entscheiden wie geschaltet werden soll. Das ist eine "Switch"-Node:
switch.jpg
Hier stehen die 6A drin und die Message wird dann entweder auf den oberen (1) oder unteren (2) Ausgang der Node geschickt.

Zu guter Letzt kommen nun noch die den Shelly schaltenden http-Befehle in eigene Nodes:
http.jpg

Und so sieht das Ganze insgesamt aus:

flow.jpg
Und wenn alles klappt, schaltet nun der Shelly, wenn man im Sofort-Lademodus auf der openWB den Ladepunkt 3 aktiviert. Das braucht ein paar Nachdenksekunden bis der Schaltbefehl auch am Shelly ankommt, das liegt aber am Regelintervall der openWB. Nur-PV funktioniert auch schon, es muss nur der Schwellwert angepasst werden.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Gero
Beiträge: 2504
Registriert: Sa Feb 20, 2021 9:55 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Gero »

Nun fehlt nur noch die aufgenommene Leistung. Hier fangen wir mit einer Inject-Node an, die alle 5 Sekunden eine Message in die http-Node schickt. Die wird dadurch angeregt, den Shelly nach den Zählerdaten zu fragen. Die Antwort konvertiert die JSON-Node in Javascript-Objekte, aus denen dann in der nachfolgenden function-Node die aktuell aufgenommenen Watts herausgelesen werden. Das schickt die MQTT-Node dann zurück an die openWB.
Leistung.jpg
Und damit man das nicht alles abtippen muss, hier der Code des Flows:

Code: Alles auswählen

[{"id":"bbc4c862.00704","type":"tab","label":"Shelly Ladepunkt","disabled":false,"info":""},{"id":"efae2fdb.3f1c9","type":"inject","z":"bbc4c862.00704","name":"Poll","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":110,"y":180,"wires":[["a9d4b91e.03b7a"]]},{"id":"a9d4b91e.03b7a","type":"http request","z":"bbc4c862.00704","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.8.30/meter/0","tls":"","persist":false,"proxy":"","authType":"","x":290,"y":180,"wires":[["32042bb9.5569cc"]]},{"id":"32042bb9.5569cc","type":"json","z":"bbc4c862.00704","name":"","property":"payload","action":"","pretty":false,"x":490,"y":180,"wires":[["36706424.22f6fc"]]},{"id":"36706424.22f6fc","type":"function","z":"bbc4c862.00704","name":"","func":"//Leistung extrahieren\nvar p = msg.payload.power;\n//Das Rückgabeobjekt\nvar msg = {};\n\nmsg.payload = Math.ceil( p ); //keine Nachkommastellen\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":640,"y":180,"wires":[["e621d1cf.ca95b8"]]},{"id":"e621d1cf.ca95b8","type":"mqtt out","z":"bbc4c862.00704","name":"","topic":"openWB/set/lp/3/W","qos":"2","retain":"","broker":"c4cb83c8.1bd0c","x":880,"y":180,"wires":[]},{"id":"7bb2dd0c.a607c4","type":"mqtt in","z":"bbc4c862.00704","name":"","topic":"openWB/lp/3/AConfigured","qos":"2","datatype":"auto","broker":"c4cb83c8.1bd0c","x":170,"y":80,"wires":[["ab0d7d62.8c4e58"]]},{"id":"ab0d7d62.8c4e58","type":"switch","z":"bbc4c862.00704","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"6","vt":"num"},{"t":"lt","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":440,"y":80,"wires":[["80e854ec.8fb638"],["b1cf2791.cc2e5"]]},{"id":"80e854ec.8fb638","type":"http request","z":"bbc4c862.00704","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.178.30/relay/0?turn=on","tls":"","persist":false,"proxy":"","authType":"","x":670,"y":40,"wires":[[]]},{"id":"b1cf2791.cc2e5","type":"http request","z":"bbc4c862.00704","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.178.30/relay/0?turn=off","tls":"","persist":false,"proxy":"","authType":"","x":670,"y":100,"wires":[[]]},{"id":"c4cb83c8.1bd0c","type":"mqtt-broker","name":"OpenWB","broker":"wallbox.fritz.box","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"30","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""}]
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Stevie_AN
Beiträge: 301
Registriert: Di Jan 19, 2021 11:04 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Stevie_AN »

Super, vielen Dank Gero!

Heute hatte ich leider keine Zeit, aber sobald es draußen mal etwas weniger zu tun gibt, gehts los!

Ganz schön umfangreich, aber wer nicht wagt, der nicht gewinnt.

Ich hab ja einen 2. Raspberry im Netz, auf dem der Skoda-SoC und der SmartApplianceEnabler läuft... da würde ich auch das NodeRed installieren.

Hoffentlich verträgt sich das 😉

Vielen Dank und schöne Grüße

Stefan
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
Stevie_AN
Beiträge: 301
Registriert: Di Jan 19, 2021 11:04 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Stevie_AN »

Coole Sache, mit dem NodeRed! Auch wenn ich noch nicht alle Funktionen erkenne und es aktuell noch nicht funktioniert, das ist echt ein tolles Programm.
2022-05-10_20h17_56.png
Was muss ich an der openWB noch einstellen? Eine neue MQTT-Brücke einrichten?

Vielen Dank :-)

Stefan


Sorry, Kommando zurück! Es funktioniert :D Zumindest kann ich per Sofortladen den Shelly einschalten. PV-Laden wird morgen probiert!

Ich hatte die OpenWB-IP-Adresse nicht eingegeben und bei der Shelly-IP hatte ich mich vertippt.

Nun sieht es so aus:
2022-05-10_20h39_34.png
Einzig das Debug-Log macht mich ein bisschen nachdenklich. Soll das so?
2022-05-10_20h40_38.png

Wenn man jetzt noch wüsste, was man an die OpenWB schicken muss, damit das Steckersymbol am LP3 angesprochen wird, wäre meine nächste Spielerei:

--> genügend Überschuss vorhanden, Shelly ON, aber kein Stromfluss --> Steckersymbol gelb

--> genügend Überschuss vorhanden, Shelly ON, Stromfluss am Shelly >5A --> Steckersymbol grün

;)
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
rleidner
Beiträge: 793
Registriert: Mo Nov 02, 2020 9:50 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von rleidner »

Stevie_AN hat geschrieben: Di Mai 10, 2022 6:20 pm
Wenn man jetzt noch wüsste, was man an die OpenWB schicken muss, damit das Steckersymbol am LP3 angesprochen wird, wäre meine nächste Spielerei:

--> genügend Überschuss vorhanden, Shelly ON, aber kein Stromfluss --> Steckersymbol gelb

--> genügend Überschuss vorhanden, Shelly ON, Stromfluss am Shelly >5A --> Steckersymbol grün

;)
Sollte so gehen:
openWB/set/lp/2/plugStat
bzw.
openWB/set/lp/2/chargeStat

plugStat=0, chargeStart=0 kein Stecker
plugStat=1, chargeStart=0 Stecker gelb
plugStat=1, chargeStart=1 Stecker grün

Ich habe eine ähnliche Situation, smart EQ an Ladeziegel mit Fritz-DECT gesteuert.
Bisher hatte ich das als einfaches SH2.0 Gerät bedient und einen Ladepunkt mit MQTT SOC definiert.

Die relativ einfache Lösung in NR war, die SH2.0 Status in diesen Ladepunkt zu via MQTT zu spiegeln.
NR1.JPG
Leider mit dem Nachteil, dass der aktuelle Verbrauch 2 mal angezeigt wird, als SH2.0- und Ladeverbrauch.

Jetzt habe ich eine deutlich aufwändigere Lösung ohne SH2.0 device begonnen.
Damit muss ich die gesamte Steuerung in NR abbilden.
Also auch die Definition der Schwellen und Verzögerungen im NR Dashboard und speichern der Daten, etc.
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Smart EQ forfour
Stevie_AN
Beiträge: 301
Registriert: Di Jan 19, 2021 11:04 am

Re: Shelly1PM per MQTT als Ladepunkt konfigurieren?

Beitrag von Stevie_AN »

Gero hat geschrieben: Mo Mai 09, 2022 10:47 am Nun fehlt nur noch die aufgenommene Leistung. Hier fangen wir mit einer Inject-Node an, die alle 5 Sekunden eine Message in die http-Node schickt. Die wird dadurch angeregt, den Shelly nach den Zählerdaten zu fragen. Die Antwort konvertiert die JSON-Node in Javascript-Objekte, aus denen dann in der nachfolgenden function-Node die aktuell aufgenommenen Watts herausgelesen werden. Das schickt die MQTT-Node dann zurück an die openWB.

Leistung.jpg
Hallo Gero,

also der Shellly-LP geht zuverlässig an und aus. Aber mit dem Auslesen der Leistung klappt es bei mir nicht.
2022-05-11_17h03_18.png
http-request:
2022-05-11_17h04_06.png
function:
2022-05-11_17h05_11.png
Es kommt einfach nichts hinten an. Kannst Du sagen, was ich ich falsch gemacht habe? Wie kann ich eigentlich sehen, was an den einzelnen "nodes" gerade ankommt?

Vielen Dank und schöne Grüße...

Stefan
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
Antworten