NEWS
Shellys ("Alt und Plus") über MQTT Adapter
-
Hallo,
ich würde gerne auf den Shelly Adapter verzichten und alles über MQTT Adapter und NodeRed erledigen.
Ich haber derzeit im Shelly Adapter folgende Shellys eingebunden:
-
Shelly Plus 1
-
Shelly Plus 1 PM
-
Shelly Motion (Generation 1)
-
Shelly Plug (Generation1)
-
Shelly H und T
-
Shelly Flood
-
Shelly Plus Smoke
-
Shelly Button
MQTT Server ist schon eingerichtet, Node Red ist installiert.
Über ein paar Hilfestellungen was nun zu tun ist würde ich mich freuen.
-
-
@hotspot_2 Gut was hast Du für einen MQTTServer eingerichtet? Einen externen oder den Adapter im iobroker? Hast Du generell schon was mit Node Red gemacht? Oder ist das für Dich der Start?
-
@mickym Ich habe momentan den Adapter im ioBroker eingerichtet. Also den MQTT Broker / Client in der Version 4.0.7. Mit NodeRed habe ich bisher gar nichts gemacht ausser den Adapter installiert und mal im ioBroker die Oberfläche gestartet.
-
@hotspot_2 Ok - mit was arbeitest Du denn sonst oder bisher als Logikmaschine? - Blockly?
-
@mickym Ich arbeite entweder mit Blockly oder Javascript. Letzteres aber nicht sehr intensiv.
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Ich arbeite entweder mit Blockly oder Javascript. Letzteres aber nicht sehr intensiv.
Gut dann bist Du aber grundsätzlich damit vertraut, dass die Datenpunkte triggern - Du mit dem Ergebnis was machst und dann das Ergebnis zur Steuerung wieder in einen anderen Datenpunkt schreibst oder irgendwo debug oder was weiss ich ausgeben lässt.
Auf der linke Seite hast Du die Nodes, die Du nutzen kannst - in der Mitte deine Arbeitsfläche und rechts verschieden Informationstabs.
-
@mickym Hallo ja, damit bin ich vertraut und dem Überblick über NodeRed habe ich mir bereits verschafft. Passt so wie Du es beschrieben hast.
-
@hotspot_2 Gut generell sind Nodes die Informationen die liefern mit nur einem Ausgang auf der rehten Seite. Nodes mit einem Eingang auf der rechten Seite sind als Ausgabe gedacht.
Die Flows laufen also immer von links nach rechts.
Gut - dann lass uns gleich mal in Medias res gehen. Ich würde vorschlagen Du fängst mit einem Shelly Plug der 1. Generation an und einem Shell 1 Plus.
Bislang sind die ja über Port 1882 auf den Shelly Adapter gelaufen. Wenn Du das änderst auf 1883 geht es automatisch zu deinem mqtt-Server Adapter im iobroker.
Unter mqtt - hast Du einen Vorteil gegenüber dem Adapter in dem Du die topics hierarchisch organisieren kannst.
Ich hab beispielsweise eine Hierarchie - nach typ/raum/gerät gewählt - du kannst natürlich auch alles flach lassen:
Du kannst die Geräte also Schritt für Schritt umziehen.
Ein custom MQTT-topic gibst Du im Shelly -Interface hier ein:
-
@mickym Wo nehme ich den die Zuordnung zur Hierarchie vor? Also die MQTT client variable in deinem Screenshot?
-
@hotspot_2 Passt, hast es gerade ergänzt.
Ich ziehe mal ein paar um die ich nicht ganz so dringend brauche (Keller usw.) und dann habe ich mal eine kleine Spielwiese mit der ich starten kann.
-
@hotspot_2 Das klappt schon mal gut. Er hat mir zuerst einen Ornder "shellies" angelegt und den Ordner "licht. Ich habe dann einfach den Prefix auf "shellies/licht/..." geändert und dann sind alle unter "shellies".
-
@hotspot_2 Ok - Nun machen wir erst mal bissi NOde-Red - Neben den Triggern von aussen kann auch selbst Daten triggern und das ist sehr praktisch zum Testen.
Du beginnst also erst mal mit einer Inject Node und verbindest diese mit einer debug Node. In der Inject Node schreibst Du einen beliebigen Text und postest am besten einen Screenshot wie das Debug Fenster aussieht.
Mit dem Drücken der Schaltfläche (gelb) links an der Inject Node triggerst Du - die debug Node gibt die Nachricht aus. Das Debug-Fenster (Bug=Wanze) habe ich mit grünen Pfeil markiert.
Öffnen tust Du die Nodes indem Du sie mit Doppelklick öffnest:
Sobald Du die payload (in der Regel sind hier die Nutzdaten enthalten) eingetragen hast bestätigst Du mit Fertig
Wenn node-geändert wurden sind die mit so einem blauen Punkt markiert:
Dies wird erst dann übernommen wenn Du auf Übernehmen/Deploy klickst:
-
@mickym Noch kurz eine Frage zu den MQTT Prefix in den Shelly Gen 1. Kann es sein das da die Länge der Zeichen begrenzt ist? Da schaffe ich es nicht die Ordnerstruktur einzugeben oder beizubehalten.
-
@hotspot_2 Ich habe nur Gen.1 Geräte mach dich einen Screenshot? Das was ich Dir gepostet habe ist Gen. 1 - ich habe gar keine Gen2 Geräte.
Bei der Gen1 musst Du nur das mit der Cloud rausmachen. Cloud und mqtt gehen bei Gen. 1 Geräten nicht.
-
Da ist dann Schluss mit den Zeichen.
-
@hotspot_2 Mach das mit den shellies raus - das wird automatisch gesetzt.
Also nur schalter/....
Kann sein, dass es hier ein Grenze gibt - bin ich nur nicht drauf gestossen.
-
@mickym Ok, passt. Bei den Gen 1 wird wohl das shellies automatisch gesetzt vorne dran, bei den Gen 2 nicht. Aber passt jetzt. Habe jetzt ein Plus1 und einen Plug drin.
-
@hotspot_2 Gut wie gesagt - mach Dich mal mit NodeRed soweit vertraut und schau ob das mit dem Screenshot und dem DebugFenster klappt.
Also nächstes werden wir NodeRed noch über Mqtt- mit dem Mqtt- Adapter verbinden, weil es generell nicht empfehlenswert ist, direkt in den MQTT-Adapter zu schreiben, wenn dieser als Broker/Server betrieben wird.
-
Hat auch geklappt.
-
@hotspot_2 Sehr gut - nun verbinden wir mal Node-Red noch via MQTT - an deinen MQTT-Broker auch wenn Du direkt auf die Datenpunkte zugreifen könntest, hat das ein paar Vorteile - auch wenn Du dich später mal entschliessen würdest einen externen MQTT-Broker zu nutzen.
Zieh am Besten eine mqtt-IN Node auf den Arbeitsbereich:
Dann klickst Du auf den Bleistift neben dem Serverfeld
Als host kannst Du localhost angeben, da Dein MQTT-Broker auf der gleichen Maschine sind.
Unter Sicherheit gibst Du Deine Anmeldedaten an, falls Du welche benötigst (hast Du ja im Broker) eingegeben.
Eine Client Id - siehe Screenshot empfiehlt sich, damit Du ggf. nachvollziehen kannst, wer sich an Deinem MQTT-Broker anmeldet.
Wenn Du Dich verbinden kannst - dann trägst Du noch als topic ein, dass Dich alle Punkte unter shellies interessieren also shellies/#.