Grüße, Martin
MQTT Gateway 2.x
Einklappen
X
-
Hey, ich wollte euch informieren das ich im LoxWiki einen UDP Transformer für die Shelly Plus hinterlegt habe.
Hintergrund ist die neue API und die damit verbunde Anfrage mit JSON-Payload.
Ich hoffe es ist alles korrekt und Aussagekräftig genug hinterlegt.Kommentar
-
Für den Plus und Pro ist der Mqtt-Aufruf:
<topic>/rpc {"id":123, "src":"<topic>", "method":"Switch.Set", "params":{"id":<schalter>,"on":<true|false>}}
Ich fande das für einen Ausgang, da es dann ja mit true und false für EIN und AUS hinterlegt werden muss, einfach zu umständlich. Deshalb erstellt der Transformer diesen Aufruf mittels "shelly_plus <topic> 0 <v>".
Aber es muss ja niemand nutzen... -
Dafür mach ich das Template damit man nur die ID austauschen muss!
Aber trotzdem Danke da es sicherlich nur gut gemeint war.
-
Shelly scheint das MQTT-Interface ziemlich verhunzt zu haben. Ich werd das mal im Support Forum anbringen.Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Kommentar
-
Ich hab keinen Plus, aber von der (echt besch*** schlecht aufgebauten) Doku her sind deren Datensätze mit Loxone nicht mehr oder kaum mehr auswertbar.
Topics brauchen sie eh überhaupt nicht mehr, dafür wird ein Tastendruck im json in einem Objekt in einem Objekt in einem Array in einem Objekt verschachtelt. Die spinnen doch!
Bei einem Shelly mit zwei Tastern ist nicht mehr identifizierbar, welcher Knopf gedrückt wurde, weil du dazu nicht einfach (wie früher) das anhand des Topics erkennst, sondern du musst es parsen (folglich muss der Parser „Shelly“ kennen).
Ein Event ist jetzt ein Array von Events. Abgesehen davon, dass das völlig unlogisch ist (ein Ereignis ist in MQTT eine Nachricht, nicht 5 Ereignisse in einer Nachricht), muss auch das jetzt durchsucht werden. Wie soll ich eindeutig auf ein Event hören, wenn das Event vielleicht Index 0 oder doch vielleicht Index 3 hat. Es ist nicht mehr eindeutig identifizierbar!
MQTT ist IoT-Kommunikation, gebaut um schlank Daten von und zu „dummen“ Geräten zu übertragen. Jetzt brauchst du einen Parser, der alle Shelly-Geräte kennt, um mit den Daten was anfangen zu können.
Das haben sie komplett verbockt, die MQTT-Schnittstelle der Plus-Serie ist faktisch unbrauchbar.
Wie kann man nur so daneben liegen, wofür MQTT gedacht ist…. 🤦♂️Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Hast du da irgendwas gemacht? Die Payload in der Doku schaut komplett anders aus.
Da ist ein Array drin - aufgrund eines Bugs in meinem Code, den ich nachher wegen Kompatibilität nie wieder ausbessern konnte, wird ein Array mit # in der Incoming Overview aufgelöst. Bei dir nicht...?
HTML-Code:{ "src": "shellypro4pm-f008d1d8b8b8", "dst": "user_1", "method": "NotifyEvent", "params": { "ts": 1631266595.44, "events": [ { "component": "input:0", "id": 0, "event": "single_push", "ts": 1631266595.44 } ] } }
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Da scheint eher die Meinung vorzuherrschen: „Ja es ist komplizierter, aber egal, ich bastel mir da was in Home Assistant!“ …Kommentar
-
Die von Home Assistant finden es toll, wenn sie für jedes x-beliebige Gerät endlich wieder was anderes implementieren können.
Irgendwie verstehen die nicht, dass es nicht das Ziel sein sollte, für jeden Rotz wieder einen neuen Parser zu implementieren, sondern etwas Standardisiertes zu verwenden.
Danke für die moralische Unterstützung :-)
-
-
AlexAn
Hast du zufällig an einem Shelly einen Button dran?
Was kommt denn da rein?
Bei meinem Beispiel (kopiert aus der Dev-Doku) würdest du irgendwie in Loxone "component": "input:0" und "event": "single_push" kombinieren müssen. Weil ich an Loxone nur Wert für Wert übertragen kann, hast du immer kurzzeitig einen falschen Zustand (weil ein Wert schon anders ist, der andere noch alt). Auch, wenn ich kurz darauf den nächsten Wert übertrage, kommt es wieder zu einer Inkonsistenz. Mit dem alten Schema shellies/shelly-12345/input/0=single_push kann das nicht passieren, weil die Übertragung faltisch "transaktionssicher" ist (alle Infos stehen gemeinsam in Topic und Daten).
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Kommentar
-
Versteh den Zusammenhang dieser Einstellung zu den Events nicht.... 🙄
Gerade der Detached Mode sollte doch Tastendruck-Events auslösen.
Keine Ahnung, was die da zusammengeschnitzt haben.
Für mich siehts so aus, als würden sie einfach die internen Daten als JSON rauslassen, damit sie sich nicht extra eine Topic-Hierarchie für MQTT ausdenken müssen.
Ich weiß eh nicht, was die geritten hat. Die Scripting-Funktion ist komplett überflüssig auf dezentralisierten Geräten. Wenn einer kaputt ist, ist die Logik weg.
-
-
Also ich kann mir grade auch mit viel Fantasie nicht vorstellen, dass man dezentral auf den Geräten Skripten soll.
einfach nur widersinnig.
In der Shelly Gruppe war auf einem Screenshot ein Schalter zu sehen, der offensichtlich die alten Topics zurück bringt, oder stimmt das so nicht?Kommentar
-
Shelly einschalten:
Shelly 1:
<model>-<deviceid>/relay/0/command = on
Shelly 1 Plus:
<model>-<deviceid>/rpc = {"id":1, "src":"user_1", "method":"Switch.Set", "params":{"id":0, "on":true}}
Und dann wird eine Antwort an das Topic user_1/ gesendet. Völlig bescheuert.Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Hab das auf Facebook auch mitverfolgt und da ist der Zug abgefahren
Die Shellyjünger sind davon überzeugt dass Allterco immer Recht hat. Beim 40A Schwachsinn glauben die auch noch immer dass das einen Sinn hat.
Glauben auch immer noch an die DWs ...Zuletzt geändert von AlexAn; 15.12.2021, 10:56.Grüße AlexKommentar
-
Hab den Post in FB jetzt auch mal gelesen - die haben den Schuss auch noch nicht gehört :-)
Christian Fenzl - dafür, dass du von MQTT keine Ahnung hast, läuft das MQTT-GW aber verdammt gut und stabil :-)
-
Hallo,
ich habe ein Problem. Mein MQTT Gateway läuft nicht.
Ich habe aber keine Idee warum. Ich habe es mal deinstalliert und wieder installiert ohne Erfolg.
MQTT Gateway not running steht unten an.
Mosquito runnig steht auch an.
was kann ich nachschauen?
Gruß MarkusKommentar
-
Ich würde mal sagen, dass da viel fehlt.
Es steht sogar irgendwo beschrieben, was man alles angeben soll, damit jemand helfen kann.
Es fehlen Versionsnummer des Loxberry und des Plugin und dann sagst Du es startet nicht. Dieses Plugin unterstützt das Loxberry eigene Log-System, da kann man mal in die Logs reinsehen und erhält wahrscheinlich einen Hinweis auf das Problem. Auch kann man die Logstufe höher setzen, auf Info oder Debug. Es gibt nach meiner Meinung auch einen Button zum Neustart des Dienstes, den schonmal genutzt?
Ja, Deine Information sind sehr spärlich.
Ich gebe gern das Beispiel mit dem Auto. „Mein Auto ist auf einmal stehen geblieben, was habe ich falsch gemacht?“ Nach tagelanger Diskussion, ob vielleicht kein Benzin mehr im Tank ist, der Zündschlüssel zurückgestellt wurde, die Batterie leer ist, die Räder keine Luft mehr haben, stellt sich dann auf einmal raus, dass der mit dem Auto gegen ne Wand gefahren ist.
Sinnvolle Hilfe kann es nur mit sinnvollen Informationen geben. -
Hallo Svethi,
danke für diesen Kommentar. Dann wollen wir der Sache mal auf den Grund gehen.
Loxberry Version v2.2.1.2
MQTT Gateway Version v2.0.4
Folgendes habe ich gefunden:
mosquitto.log:
Software error:
Cannot open file: Permission denied at /opt/loxberry/webfrontend/htmlauth/system/tools/logfile.cgi line 235.
Depending of what you have done, report this error to the plugin developer or the LoxBerry-Core team.
Further information you may find in the error logs.
daemonstart.log
MQTT Gateway Daemon start
Running updateconfig.pl to query json
Result is 1
Try {1...100}: Checking if Mosquitto is running...
Starting mqttgateway.pl
Wie gesagt im MQTT Plugin steht:
MQTT Gateway not running
| Mosquitto running (PID2173)
Einen Restart habe ich versucht aber ohne Erfolg. Ich habe es Deinstalliert und wieder Installiert ohne Erfolg. Reboot vom Loxberry ebenfalls ohne Erfolg. Mir fällt auch ncht ein das ich irgendetwas geändert habe.
Danke für Eure Hilfe.
Markus
-
Ist das einzige Log, das du kriegst?
Kein mqttgateway Log?
Sonst erstmal:
LoxBerry Selbsttest - nichts rot?
Das nächste wäre:
- Mit putty anmelden
- /opt/loxberry/bin/plugins/mqttgateway/mqttgateway.pl aufrufen, Ausgaben hier melden.
lg, ChristianHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
Kommentar