NEWS
Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden
-
Ich musste gestern meine Shelly 2.5 durch Shelly2pm3g ersetzen und nun MQTT für das Auslesen der Position und das Steuern der Rolläden verwenden.
Ich hatte bereits eine mqtt.0 Instanz als Broker installiert und damit mein Garagentor angesteuert. Ich habe als mqtt.1 einen MQTT Client aufgesetzt und beiße mir hier die Zähne aus:
Wie komme ich an Position, State und Command um die Datenpunkte an shuttercontrol übergeben zu können?
Sind das Subscribe Pattern im Client-Settings Tab oder muss ich hier ein Prefix (cover:0 z.B. ?) und Masken zum Bekanntgeben eigener States in den MQTT Einstellungen verwenden?
Ein Screenshot aus den Instanzeinstellungen für den MQTT-Client (bei mir mqtt.1) würde da sehr helfen.
P.S.: Die Verbindung als Client/Subscriber habe ich zum MQTT Broker (Instanz mqtt.0) konfiguriert mit den gleichen Credentials und die Verbindung klappt problemlos.
-
@m-m warum so schwer und nicht den Shelly Adapter?
-
@wendy2702 Weil ich mir für MQTT den Adapter eingerichtet hab. Es gab einen Grund warum ich damals nicht eine zweite Shelly Instanz erstellt habe aber das ist schon länger her. Und das möchte ich nicht mehr ändern.
Es muss ja mit MQTT auch gehen.
-
@m-m Wieso zweite Shelly Instanz?
Und wieso MQTT Instanz als Client? Der Shelly ist doch der Client.
Klar, gehen tut vieles ob es aber Sinn macht das Rad neu zu erfinden ist immer ansichtssache.
-
@wendy2702 Weil ich es so gelesen habe, dass man dazu einen MQTT Client braucht.
Warum frage ich hier wie es geht? Wenn ich es richtig gemacht hätte, würde ich jetzt im Garten sitzen.
Verrat mir doch wie Du das mit dem Shelly Adapter gemacht hast und dann kann ich was mit Deinem Beitrag anfangen.
-
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Weil ich es so gelesen habe, dass man dazu einen MQTT Client braucht.
was ist denn dein MQTT Broker?
-
@homoran "Ich hatte bereits eine mqtt.0 Instanz als Broker installiert..."
Ich lasse mqtt.0 als MQTT Broker laufen.
Die Shelly2pm3g werden auch alle erkannt aber ich habe dort keine cover:0.position (zum Beispiel) die ich in Shuttercontrol angeben könnte.
-
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Verrat mir doch wie Du das mit dem Shelly Adapter gemacht hast und dann kann ich was mit Deinem Beitrag anfangen.
Steht eigentlich hier:
https://forum.iobroker.net/topic/80766/einstieg-in-smarthome-rollladen/22?page=2
und hier beschrieben was zu machen ist:
https://github.com/iobroker-community-adapters/ioBroker.shelly/blob/master/docs/de/protocol-mqtt.md
Hoffe du kannst jetzt mit meinem Beitrag was anfangen und liegst Zeitnah im Garten.
EDIT: kann leider keine Screenshots liefern da es bei einem Freund ist der aktuell in Urlaub weilt. Einrichten war aber eine Sache von 10-15 Minuten.
-
@M-M
da kann ich jetzt nur zitieren@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Ein Screenshot aus den Instanzeinstellungen für den MQTT-Client (bei mir mqtt.1) würde da sehr helfen.
oder warum du nicht den mqtt-client Adapter verwendest
-
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Die Shelly2pm3g werden auch alle erkannt aber ich habe dort keine cover:0.position
Hast du denn den Shelly auf Cover umgestellt?
-
@m-m said in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
@wendy2702 Weil ich mir für MQTT den Adapter eingerichtet hab. Es gab einen Grund warum ich damals nicht eine zweite Shelly Instanz erstellt habe aber das ist schon länger her. Und das möchte ich nicht mehr ändern.
Und welcher Grund war das?
Und was verstehst du unter ""damals" und "schon länger her"?Es muss ja mit MQTT auch gehen.
Ja es geht mit MQTT. Ist halt nur mehr Aufwand da du dir die Topics dann entsprechend selbst zerpflücken
musst. Musst nur einen MQTT Broler (Server) irgendwo einrichten (extern oder mit mqtt Adapter). Und den Shelly dorthin verbinden lassen. Damit sollte es dann gehen.Die Shelly2pm3g werden auch alle erkannt aber ich habe dort keine cover:0.position (zum Beispiel) die ich in Shuttercontrol angeben könnte.
Du musst wie gesagt die Topics selbst zerlegen.
Die cover position solltest du im json des Topics '/status/cover:${coverId}' finden. Das json musst du halt selbst parsen. Die Auftrennung in States erledigt der Shelly Adapter (der ist mehr als ein mqtt Broker -
@homoran Der MQTT Client läuft bei mir als mqtt.1
Es geht darum dass ich nicht weiss wie ich an die Datenpunkte für Postion, State und Command komme.
-
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
@homoran Der MQTT Client läuft bei mir als mqtt.1
Es geht darum dass ich nicht weiss wie ich an die Datenpunkte für Postion, State und Command komme.
Zitiere ich mich mal selber:
@wendy2702 sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Die Shelly2pm3g werden auch alle erkannt aber ich habe dort keine cover:0.position
Hast du denn den Shelly auf Cover umgestellt?
EDIT: lege mich jetzt in den Garten.
-
@m-m sagte in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
Es geht darum dass ich nicht weiss wie ich an die Datenpunkte für Postion, State und Command komme.
Du musst die gepublishten Topics die im allgemeinen eine Payload im json Format haben parsen und dir die Daten rausholen die du brauchst. Es gibt in mqtt keine so bequemen fertigen States wie im Shelly Adapter
-
@mcm1957 Ich weiss es nicht mehr. shelly.0 läuft für die Gen1 als COAP / HTTP.
Und anstatt shelly.1 für den MQTT Broker zu verwenden habe ich das mit mqtt.0 gemacht. Das hatte was mit dem Shelly 1 Plus und Addon zu tun den ich für das Garagentor angeschafft habe und der erste Shelly war den ich nicht mehr über COAP steuern konnte. Irgendwas konnte ich damals (vor 2 Jahren?) mit dem Shelly Adapter nicht machen oder einfacher mit dem MQTT Adapter.
Nun fehlen mir aber z.B. die Datenpunkte für die Position des Rolladens mit denen ich Shuttercontrol füttern muss.
-
@wendy2702 Ja, habe ich umgestellt und kann sie auch über die Shelly App steuern.
-
@m-m
Wie schon 2mal geschrieben:
Im MQTT Protokoll gibt es TOPICs die der Shelly sendet. Wie diese Aufgebaut sind, findes du in der Shelly Documentation. Die jeweiligen jsons musst du SELBST zerlegen um an die speziellen Daten ranzukommen und selbst zusammenbauen wenn du was senden willst.MQTT ist ein Transportprotokoll und kenn den INHALT der Shelly Topics nicht.
Das Zerlegen der MQTT Topics erledigt der Shelly Adapter - den du aber nicht verwenden willst.
EDIT:
Schau einfach mal welche Topics der Shelly postet und schau dir die dort übermittelten JSON Daten an. Die kannst du dann z.B. per Script zerlegen und weiter bearbeiten. -
@m-m läuft jetzt eine Shelly Instanz für dein Garagentor bei dir ohne Coap und schon mit MQTT?
Dann richte das im Shelly 2pm ein und du bist fertig.
-
@wendy2702 said in Shelly 2pm Gen3 mit MQTT-Client für Shuttercontrol verwenden:
@m-m läuft jetzt eine Shelly Instanz für dein Garagentor bei dir ohne Coap und schon mit MQTT?
Dann richte das im Shelly 2pm ein und du bist fertig.
Er kriegt ja verbindung wenn ich es richtig sehe.
Nur suchet er einen STATE mit cover:position den er mit dem shuttercontrol verbinden kann. Nur GETRENNTE States wirds mit mqtt nicht spielen ... -
@mcm1957 ja, deshalb meine Frage ob er schon eine Shelly Instanz mit MQTT laufen hat.
Dann hätte er seine Objekte in 5 Minuten
Wenn er aber partout per MQTT Adapter machen will kann ich beim Zerlegen der Daten nicht helfen.