Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Tutorial - Shelly via MQTT und NodeRed anbinden
#1
Information 
Vorwort:


Anfangs hatte ich die Shelly (1er, 2.5er, HT's) nur mittels Http Request abgefragt. Je nachdem wie diese verbaut und somit erreichbar waren klappt das bei mir gut oder nicht. Der Shelly hat auf Anfrage des Gekkos seinen Zustand mitgeteilt, aber auch nur dann wenn er erreichbar war. 
 
Seit heute habe ich alle geändert und auf MQTT umgestellt. Dafür nutze ich meinen RasperryPi.
 
Vorteile:
 
·       Shelly überträgt aktiv seinen Status an einen MQTT Server
  • bei Zustandsänderung
  • regelmäßigen Abständen
  • Gekko reagiert schneller auf Schaltänderungen und aktualisiert somit schneller das ICON
  • bei 2.5 Shelly "Echtzeitübertragung" der anliegenden Leistungsabnahme möglich
·       Durch Nutzung des externen MQTT-Servers keine zusätzliche Last am Gekko
 
 
Nachteil:
 
·       MQTT Server notwendig und somit ggf. extra Hardware
·       bei Ausfall der Hardware keine Übermittlung des Shelly-Zustandes
·       erhöhter Konfigurationsaufwand (MQTT und NodeRed)
·       Mit Aktivierung der MQTT Funktion im Shelly deaktiviert sich die Cloud-Funktionalität
 
 
Nachteile überwiegen erstmal, jedoch ist die Reaktion und die garantierte Übermittlung des Status für mich schwerwiegender. Geschalten wird (momentan) weiterhin oldshool via http OUTPUT.
 
 
Was Ihr braucht:
 
1.   MQTT Server (idealerweise auf Raspberry) 
2.   NodeRed Server ohne besondere Nodes (idealerweise auf dem selben Raspberry)
 
 
 
 
Konfiguration des Shelly's anhand eines Shelly 2.5
 
Die MQTT - Funktionalität kann nur in einem klassischen Browser und nicht via App konfiguriert werden. 
Der notwendige Menüpunkt fehlt in der APP schlichtweg. 
 


 
 
1. 

Gewünschten Shelly über IP, in einem Browser, aufrufen. 
Abschließend den Menüpunkt "Internet & Security" aufrufen.



   




2. Unter "Advanced - Developer Settings" den MQTT anschalten. 

Die IP-Adresse des MQTT Servers abändern und einen individuellen Prefix für die spätere Unterscheidbarkeit vergeben. In diesen Beispiel lautet der Prefix 40-shelly. Die Zahl steht bei mir für die IP des Shelly's. Ihr könnt das euren Wünschen anpassen, müsst dies aber später auch in NodeRed mit anpassen.



   



3. Ganz unten auf "Speichern" klicken nicht vergessen.

   



Konfiguration des Nodes
 
 
 
Flow Beispiel


Code:
[{"id":"3d3460e8.8e952","type":"tab","label":"Beispiel Shelly","disabled":false,"info":""},{"id":"a280e942.1e11f8","type":"mqtt in","z":"3d3460e8.8e952","name":"40a-WZ-Steckdose-rechts-AN_AUS","topic":"shellies/40-shelly/relay/0","qos":"0","datatype":"auto","broker":"7438383a.9fc788","x":200,"y":220,"wires":[["d0b21f9d.6da4d"]]},{"id":"69e2b453.ad053c","type":"mqtt in","z":"3d3460e8.8e952","name":"40b-WZ-Steckdose-links-POWER","topic":"shellies/40-shelly/relay/1/power","qos":"0","datatype":"auto","broker":"7438383a.9fc788","x":190,"y":340,"wires":[["c7124f96.8817c"]]},{"id":"a0867ad8.27fe58","type":"mqtt in","z":"3d3460e8.8e952","name":"40a-WZ-Steckdose-rechts-POWER","topic":"shellies/40-shelly/relay/0/power","qos":"0","datatype":"auto","broker":"7438383a.9fc788","x":200,"y":260,"wires":[["dae68b08.a0d5f8"]]},{"id":"77da137e.0598ac","type":"mqtt in","z":"3d3460e8.8e952","name":"40b-WZ-Steckdose-links-AN_AUS","topic":"shellies/40-shelly/relay/1","qos":"0","datatype":"auto","broker":"7438383a.9fc788","x":200,"y":300,"wires":[["d6d357b9.38b908"]]},{"id":"42b3fd2c.9d4a64","type":"function","z":"3d3460e8.8e952","name":"","func":"flow.set('40a-AN_AUS',msg.payload)\nreturn msg;","outputs":0,"noerr":0,"x":1055,"y":220,"wires":[],"l":false},{"id":"e88a71bb.de802","type":"function","z":"3d3460e8.8e952","name":"","func":"flow.set('40b-AN_AUS',msg.payload)\nreturn msg;","outputs":0,"noerr":0,"x":1055,"y":300,"wires":[],"l":false},{"id":"8defc050.1e443","type":"function","z":"3d3460e8.8e952","name":"","func":"flow.set('40a-POWER',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":1055,"y":260,"wires":[],"l":false},{"id":"da05bb21.db4e48","type":"function","z":"3d3460e8.8e952","name":"","func":"flow.set('40b-POWER',Number(msg.payload))\nreturn msg;","outputs":0,"noerr":0,"x":1055,"y":340,"wires":[],"l":false},{"id":"90445e58.da728","type":"trigger","z":"3d3460e8.8e952","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"3","extend":false,"units":"s","reset":"","bytopic":"all","name":"","x":730,"y":260,"wires":[["8defc050.1e443"]]},{"id":"8e696588.c2e278","type":"trigger","z":"3d3460e8.8e952","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"3","extend":false,"units":"s","reset":"","bytopic":"all","name":"","x":730,"y":340,"wires":[["da05bb21.db4e48"]]},{"id":"d0b21f9d.6da4d","type":"rbe","z":"3d3460e8.8e952","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":395,"y":220,"wires":[["42b3fd2c.9d4a64"]],"l":false},{"id":"dae68b08.a0d5f8","type":"rbe","z":"3d3460e8.8e952","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":395,"y":260,"wires":[["90445e58.da728"]],"l":false},{"id":"d6d357b9.38b908","type":"rbe","z":"3d3460e8.8e952","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":395,"y":300,"wires":[["e88a71bb.de802"]],"l":false},{"id":"c7124f96.8817c","type":"rbe","z":"3d3460e8.8e952","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":395,"y":340,"wires":[["8e696588.c2e278"]],"l":false},{"id":"e6967885.87f0c8","type":"http in","z":"3d3460e8.8e952","name":"/Shelly/Schalter","url":"/Shelly/Schalter","method":"get","upload":false,"swaggerDoc":"","x":140,"y":540,"wires":[["a38ea300.f0504"]]},{"id":"a38ea300.f0504","type":"function","z":"3d3460e8.8e952","name":"","func":"//----------------------------------------\\\\\n\nvar o=\n        {\n        Status_40a:flow.get('40a-AN_AUS'),\n        Power_40a:flow.get('40a-POWER'),\n        Status_40b:flow.get('40b-AN_AUS'),\n        Power_40b:flow.get('40b-POWER'),\n        };\nmsg.payload  = JSON.stringify(o);\nreturn msg;","outputs":1,"noerr":0,"x":275,"y":540,"wires":[["a1d949c9.e18888"]],"l":false},{"id":"a1d949c9.e18888","type":"http response","z":"3d3460e8.8e952","name":"HTTP-Response","statusCode":"200","headers":{"content-type":"text/html"},"x":410,"y":540,"wires":[]},{"id":"655f1deb.838944","type":"comment","z":"3d3460e8.8e952","name":"MQTT Topic","info":"","x":130,"y":180,"wires":[]},{"id":"50dd03dc.54c0bc","type":"comment","z":"3d3460e8.8e952","name":"Nur bei Änderung weitergeben","info":"","x":500,"y":180,"wires":[]},{"id":"587fafd2.fe76f","type":"comment","z":"3d3460e8.8e952","name":"maximal aller 3 sek neue Nachricht","info":"","x":800,"y":180,"wires":[]},{"id":"4e4a55ef.679cec","type":"comment","z":"3d3460e8.8e952","name":"Speichern des Wertes in Flow-Variable","info":"","x":1170,"y":180,"wires":[]},{"id":"49f68dea.5d7a14","type":"comment","z":"3d3460e8.8e952","name":"Alle Variablen mittels Http Abrufbar machen","info":"","x":220,"y":480,"wires":[]},{"id":"46f269ab.1b2ba8","type":"comment","z":"3d3460e8.8e952","name":"","info":"","x":760,"y":540,"wires":[]},{"id":"7438383a.9fc788","type":"mqtt-broker","z":"","name":"MQTT Broker","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]


   



Bei einem Shelly 2.5 können zwei Relais unabhängig geschalten werden. Zusätzlich kann jeweils die momentane Leistung abgefragt werden. In diesem Beispiel werden die beiden Schaltzustände und die Leistung erst in Flowvariablen gespeichert und anschließend als http zur Verfügung gestellt.
 
In diesem Beispiel ist die Http Seite unter folgender Adresse erreichbar: [IP eures RedNode]:1880/Shelly/Schalter
 
Achtet darauf euren Prefix in den MQTT Nodes anzupassen, je nachdem was ihr bei der Konfiguration des Shelly gewählt habt. 


   







Konfiguration Gekko
 
 
1. Unter Einstellungen einen HTTP/WebAPI erstellen und auf „Konfigurieren“ klicken.



   




2. für den Shelly 2.5 zum Schalten beider Relais jeweils ein Eingang und ein Ausgang anlegen


   



Statusabfrage Erstes Relay:
 
Typ:                                  Get- INPUT 
Read Int:                            0
Request On:                       [IP eures RedNode]:1880/Shelly/Schalter
Request Off / Parameter:     JSON@Status_40a@on
 
Statusabfrage Zweites Relay:
 
Typ:                                  Get-INPUT 
Read Int:                            0
Request On:                       [IP eures RedNode]:1880/Shelly/Schalter
Request Off / Parameter:     JSON@Status_40b@on
 
Schalten Erstes Relay:
 
Typ:                                  Get-OUTPUT
Read Int:                            0
Request On:                       [IP des Shellys]/relay/0/?turn=on
Request Off / Parameter:     [IP des Shellys]/relay/0/?turn=off
 
Schalten Erstes Relay:
 
Typ:                                  Get-OUTPUT
Read Int:                            0
Request On:                       [IP des Shellys]/relay/1/?turn=on
Request Off / Parameter:     [IP des Shellys]/relay/1/?turn=off
 
 
Andere Shellys müssen gegebenenfalls abgeändert werden. z.B. ein Shelly 1 hat nur ein Relay und somit entfällt hier je einmal IN- und OUTPUT. Die Leistungsabfrage wurde hier erstmal ignoriert. (siehe Folgepost)
 
Vergesst nicht auf Speichern zu klicken.  

Für nähere Informationen zu den einzelnen Produkten siehe >>>hier<<<. 
Auf der Seite findet ihr alle Informationen zu MQTT, API ... der einzelnen Produkte

 

Gruß


Angehängte Dateien
.zip   flows.zip (Größe: 1,44 KB / Downloads: 2)


Nachrichten in diesem Thema
Tutorial - Shelly via MQTT und NodeRed anbinden - von Strabbit - 16.03.2020, 01:08

Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
Information Tutorial - Konfiguration Shelly am Gekko Licht / Steckdose Strabbit 33 7.662 14.11.2020, 01:34
Letzter Beitrag: Strabbit
Information Tutorial- Integration Regenradar Strabbit 6 1.725 09.07.2020, 07:39
Letzter Beitrag: Strabbit
  AVM DECT 200 / 210 an das Gekko anbinden nowtilus 8 5.263 29.05.2019, 17:55
Letzter Beitrag: santos

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste