NEWS
iobroker, MQTT und Shelly - Was geht wie?
-
@th-g Na viele haben halt Probleme, da sie sich nicht mit JSONs auseinandersetzen wollen, was nach wie vor noch geht - und lieber Datenpunkte einzeln haben wollen- Wie gesagt in die Cloud kannst Du nicht, aber im lokalen Netz funktioniert auch die Shelly App - selbst wenn Shellies MQTT sprechen.
Ich bin halt ein Anhänger davon die vom Hersteller genutzten MQTT-Schnittstellen zu nutzen und benutze grundsätzlich keine Adapter, die MQTT sprechen. Die Adapter haben sicher für Anfänger Vorteile, aber die Adapter sind halt nur so gut, wie sie die Geräte kennen. Wie oft findest Du hier Threads, dass dieses oder jenes Gerät noch nicht von dem Adapter unterstützt wird. Mit MQTT hast Du solche Probleme nicht, da dies ja die vom Hersteller mitgebrachte Schnittstelle ist. Du kannst halt bei den Gen. 1 geräten das Coap Protokoll nicht nutzen - dies wird nur vom Shelly Adapter unterstützt und damit können die Gen 1 Geräte in der Shelly-Cloud verbleiben. Wenn Du aber eh einen eigenen Remote-Zugang zu Deinem Netz hast, kannst Du darauf ja verzichten.
Bei mir ist alles unter mqtt:
Deshalb habe ich auch keinen sonoff adapter, kein owntracks und kein shelly Adapter.
Wie gesagt im lokalen Netz funktionieren auch die Gen1 Geräte ohne Cloud mit der Shelly App. Damit kannst Du zuhause also die Shellies immer noch per App schalten, falls der iobroker mal wegen Wartungsarbeiten nicht verfügbar ist.
-
Habe mir mal einige Shelly Produkte bestellt und werden das mal testen.
Ich möchte einen Standard haben, der unabhängig von Herstellersoftware ist und deswegen möchte ich versuchen, alles über den MQTT Broker zu machen.
Ich verstehe das noch nicht alles mit JSON aber hier bekommt man ja einen tollen Support wenn man Fragen hat.
-
@th-g Ja kein Problem - beim mir laufen alle Shellies über MQTT wie geschmiert. Ggf. würde ich Dir einen externen Broker empfehlen - wie mosquitto und den MQTT-Adapter als Client zu betreiben, da dieser manchmal bisschen Probleme macht und sich nicht ganz standardmässig verhält. - Aber wie gesagt - ich und @BananaJoe und andere helfen Dir gerne, falls es Probleme gibt.
-
Hallo,
die Shelly Plus 1 sind da und sind verbaut.
Eines der Geräte ist als Taster (Schaltuhr mit 1 Sekunde) an meinem Hörmann Garagentorantrieb angeschlossen. Über die Shelly App funktioniert alles.
Das Gerät ist auch über MQTT im iobroker sichtbar.
Ich möchte nun im VIS über MQTT den Taster auslösen aber ich bekomme es nicht hin.
Was müsste ich tun?
Danke
-
@th-g Du musst noch einen Datenpunkt selbst anlegen.
Ach so warte mal die shelly 1 plus - sind ja die der 2. generation. da musst du den rpc datenpunkt anlegen.
-
Ok aber ich stehe gerade dem Schlauch und kannst du mir bitte sagen, was ich wie wo machen muss?
mqtt.0.shellyplus1-Garagentor.events.rpc hier sehe ich den Status
-
@th-g Du musst eine rpc Datenpunkt anlegen unter dem Gerät - ich such mal hier im Forum - Ja Du musst direkt glaub unter Garagentor noch einen Datenpunkt rpc erstellen - und über den kommunzierst du.
Da schreibst dann
{ "id": 2, "src":"user_1", "method":"Switch.Set", "params": { "id":0, "on":true } }
Eventuell. brauchst unter den params nur die on eigenschschaft.
Ja ist id:0 - hier habe gibst auch einen Thread dazu: https://forum.iobroker.net/post/695061
Wie gesagt den rpc Datenpunkt direkt über den Admin erstellen.
Also direkt unter Garagentor:
mqtt.0.shellyplus1-Garagentor.rpc
Wie gesagt Expertenmodus einstellen:
Falls Dein plus ausgegraut ist musst Du oben drüber gehen und dann den Pfad mit punkt eingeben.
-
Ich habe nun einen JSON DP wie folgt angelegt.
Das steht in den Objektdaten:
{ "common": { "name": "Neuer Zustand", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1677095544892, "_id": "mqtt.0.shellyplus1-Garagentor.events.Neuer_Zustand", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Wo füge ich jetzt deine Daten ein?
-
@th-g Also das Neuer_zustand kannst wieder löschen - du schreibst den JSON in deinen rpc Datenpunkt rein - aber nicht unter events sonder darüber.
Da schreibst den JSON rein:
-
@mickym sagte in iobroker, MQTT und Shelly - Was geht wie?:
Ja kein Problem - beim mir laufen alle Shellies über MQTT wie geschmiert.
Finde solche Aussagen immer Interessant. Klar läuft das. Aber: Den Shelly Adapter installiert man, liest kurz die Doku und konfiguriert alles so. Selbst als Einsteiger ist man (ohne etwas mit Topics oder JSON zu tun zu haben) in 5min fertig.
Jetzt kann man das alles natürlich noch einmal selbst implementieren und die Topics selbst zerlegen und die Payloads zusammenbauen und auf die richtigen Topics publishen um die Geräte anzusteuern. Aber da sitzt man sehr sehr viel länger dran, liest lange in der Shelly API-Dokumentation und muss sich wirklich mit dem Thema auseinandersetzen.
Das sollte jedem klar sein. Also 5min vs. mehrere Stunden.
Ich gucke hier mal zu, wie lange es dauert, bis das per MQTT mit allen benötigten Features bei @TH-G läuft -
@haus-automatisierung Keine Ahnung warum das nun sein muss - es gibt Vor- und Nachteile diese Adapter zu nutzen. Nachteil ist eben, wie man an dem neuesten Thread wieder sieht: https://forum.iobroker.net/topic/63285/mqtt-adapter-für-shellys
EDIT: Ich will doch Deine Arbeit nicht klein reden - aber es ist eine Philosophiefrage. Die Nutzung des Shellie Adapters mit Vor- und Nachteilen steht ja jedem offen. Wie gesagt man ist halt immer darauf angewiesen, dass jemand diese Adapter pflegt und imm aktuell hält. Das ist halt mit reinem MQTT nicht der Fall.
Das sollte jedem klar sein. Also 5min vs. mehrere Stunden.
Wenn man einmal weiß wie es geht, dann hat man das genauso schnell bei anderen Geräten drin. Mag ja sein, dass es das erste Mal länger dauert.
Gut ich habe keine Generation 2 Geräte - aber bei mir tut alles.
-
Habe den DP nun wie folgt angelegt. Ist das nun so richtig?
-
@th-g Nein der rpc Datenpunkt der ist schon da - warum auch immer. hab ihn doch grün markiert. In diesen RPC Datenpunkt schreibst Du einfach den JSON rein.
-
Ah ok.
Das kann man mit dem rpc im Shelly einstellen.
Das steht dort als Obejektdaten:
{ "_id": "mqtt.0.shellyplus1-Garagentor.rpc", "common": { "name": "shellyplus1-Garagentor/rpc", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string" }, "native": { "topic": "shellyplus1-Garagentor/rpc" }, "type": "state", "from": "system.adapter.mqtt.0", "user": "system.user.admin", "ts": 1677059163285, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Das alles ersetze ich jetzt durch deine Daten?
-
@th-g Nein - in dem Datenpunkt steht doch nichts drin. Und nicht die Objektdaten - nicht den Bleistift anklicken, sondern einfach den Wert (null) - doppelklicken und dann bekommst Du eine Eingabemaske. Einfach dahin Doppelklicken wohin der grüne Pfeil zeigt - nicht den Bleistift!!!
-
-
@th-g Genau und bei dem on:true oder on:false - schaltest Du ein und aus. Den Datentyp (Wertetyp) kannst noch auf JSON umstellen. Wichtig ist, dass du den Wert nicht bestätigt schickst - also nicht den Haken rein machen. Klappts denn?
-
Wenn ich die JSON Zeilen da reinkopiere und dann Wert schreiben klicke fährt das Tor hoch. Mehr kann ich noch nicht machen.
Wie ist denn die Logik. Shelly ist als Schalter konfiguriert. Die Schaltuhr steht auf "Wenn eingeschaltet nach 1 Sekunde ausschalten.
Also muss ich doch im VIS den Schalter nur mit true konfigurieren oder?
-
@th-g Ein Shelly 1 kann doch nur ein oder aus geschaltet werden. Du solltest doch erst mal schauen, wie das mit ein und ausschalten über den datenpunkt funktioniert.- VIS kommt erst viel später. Also sag erst mal on das mit dem Ein- und Ausschalten über den JSON so geht.
So wie Du im Shelly konfiguriert hast. schaltet der EIN und nach 1 Sekunde wieder aus. Somit tut der Shelly ja erst mal. Im VIS schickst Du wahrscheinlich nur ein true - weil ein Schalter nichts anderes kann. Entweder machst Du alles über Deine Logikmaschine - oder Du nutzt einen Alias.
-
Es gibt ja kein Ein und Ausschalten. Deswegen ja die Schaltuhr. Das Hörmann Tor braucht einen kurzen Impuls.
Impuls = hoch
Impuls = stop
Impuls = runterAktuell geht beim ersten Auslösen das Tor hoch und mehr kann ich nicht machen, da es nicht geht.
Wird denn bei einem true die Schaltuhr im Shelly berücksichtig oder ist das ein direkter Befehl für das Relais.