NEWS
Shelly fährt plötzlich Rolladen herunter / MQTT reconnect
-
Ich habe mehrere shelly 2.5 als Rolladenschalter verbaut.
1-2x täglich fahren plötzlich mehrere (nicht alle) Rolläden ohne erkennbaren Grund herunter.Das ganze tritt auf, seit ich vom shelly auf den mqtt-Adapter umgestellt habe.
Im iobroker log sehe ich zum Zeitpunkt der Rolladenbetätigung bei den betroffenen shellys sowas wieClient [shellyswitch25-E12345] reconnected. Old secret 1234. New secret 5678 Client [shellyswitch25-E12345] subscribes on "mqtt.0.shellies.command" Client [shellyswitch25-E12345] publishOnSubscribe Client [shellyswitch25-E12345] subscribes on "mqtt.0.shellies.xyz-roll.command" ...
Im shelly ist eingestellt
Power On Parameter: StopWas kann die Ursache für dieses Verhalten sein? Hat jemand einen Tip?
-
@axelander Hey, ich habe das gleiche Problem:
Ich spiegle die Homematic Geräte (z.B. Rolläden) ebenfalls über MQTT, habe aber testweise auch einen SHelly2.5 dabei.
Immer wenn sich der Client verbindet (auch Neustart, iobroker start/stop), dann fahren alle Rollos hoch... vermutlich weil das wg. retain noch im Server steht... Das muss so damit ich in meiner MQTT App am Telefon den aktuellen Status sehe.Kann man die Übernahme und damit Ansteuerung bei Client Connect unterdrücken?
Oder beim onDisconnect die retain Werte löschen?@axelander : Startet dein mqtt adapter zyklisch neu?
Schau das mal in der Übersicht Instanzen nach.
Welchen Adapter nutzt du? Server/Client oder nur MQTT Client?Ansonsten falls du kein retain brauchst, dann Häkchen in den Objekten löschen und die relevante Botschaften per
mosquitto_pub -t <topic> -r -n am MQTT Server löschen.Ansonsten bin ich eben auf folgendes gestoßen:
https://stackoverflow.com/questions/36729300/how-to-clear-all-retained-mqtt-messages-from-mosquittoVielleicht könnte man bei jedem mqtt client disconnect nochmal alle retains löschen.
Hat jmd Ideen? -
Klingt für mich auch nach einer Retain Message.
Warum nicht einfach die Shellys mit Tasmota flashen? Bietet sehr viele Optionen. -
@Kugelkopf Die reagieren auch auf die Retain message oder? Macht das einen Unterschied?
Der Auslöser ist der connect vom server der jedem Teilnehmer die retain Werte mitteilt. -
@madjack84
Mir scheint, dass man bei Tasmota wesentlich mehr Einstellungsmöglichkeiten hat. Ich persönlich nutze den Sonoff Adapter und habe damit keine Probleme.
Aber schau doch mal hier vorbei:
Ganz frische Pullrequest
und in der Dokumentation von Tasmota ist auch viel zu finden. Bemühe dort einfach mal die Suche mit "Retain"
Tasmota Docs -
@Kugelkopf danke für die links!
Losant sagt mir auf Anhieb nixZudem verwendet tasmota auch eine cmd und eine stat message. Dort wird genau das auch getrennt.
Shelly hat auf nen reduzierten stat und ein cmd message...
Auf cmd sollte man eben retain setzen, auf stat ist das kein Thema.
-
@madjack84
ich nutze den "MQTT Broker/Client"-Adapter als Typ "Server/broker".
Hatte mir die Einstellungen der Instanz mal genauer angesehen, und habe dann- Bekanntgeben eigene States beim Verbinden
- Bekanntgeben von States bei Subscribe
deaktiviert. Seitdem ist es glaube ich besser, jedenfalls gab es div reconnects aber die Rolladen standen still
Schien mir zumindest eine Erklärung, dass der Status von iobroker/mqtt und shelly auseinanderläuft (warum auch immer), und dann der mqtt seinen status beim reconnect pusht.
Was meinst Du mit "falls du kein retain brauchst, dann Häkchen in den Objekten löschen" - welche retain Häkchen bei den Objekten?
-
@axelander
Hätte früher auch den broker/Client genutzt. Leider war die Verbindung für die clients nicht stabil. Nach umstieg auf einen unabhängigen mosquitto Server und den mqtt Client Adapter funktioniert nun alles super zuverlässig.
Ich fürchte der broker/Client ist etwas buggy und wird aktuell auch nicht weiter entwickelt.Mit dem Client kannst du über das zahnrädchen rechts in den Objekten folgendes einstellen:
Dieses retain Häkchen entfernen. Bin mir leider nicht sicher ob das entfernen nach Einstellung auch die retainten messages löscht
-
Danke für die Info @madjack84
Momentan läufts ja bei mir, werde mir mosquitto bei Gelegenheit dann mal ansehen -
@axelander
Ich habe exakt das gleiche Problem, habe aber gerade diese Woche erst die allerersten Schritte mit smarthome, ioBroker und MQTT gemacht und bin grundsätzlich noch ziemlich verloren - also fällt mir Fehlersuche und Analyse noch schwer. Ich hatte den Shelly-Adapter im Verdacht und ihn wieder deinstalliert...ohne Erfolg.
Ich habe dann aber Deine beiden Tipps nun ebenfalls in der mqtt-broker-instanz eingestellt. Zumindest hat ein Restart der broker-Instanz seit dem nicht mehr zu diesem Verhalten geführt (vorher schon). Ich werde es beobachten.Da ich bei Euch zumindest ein ähnliches Setup erwarte: Gehe ich nun aber Richtig in der Annahme, dass ich den Shelly-Adapter ja nicht mehr benötige, da ich in der Weboberfläche der Shellies den MQTT-Broker configuriert habe und ich nun alle Infos und Steuerung darüber vornehmen kann? Ich verstehe den Vorteil des Shelly-Adapters nicht und auch nicht, warum dieser bei Installation und Eintragung der MQTT-Daten meines Brokers im Shelly-Adapter im Log meckert, dass die IP ja schon benutzt wird - macht der etwa einen eigenen Broker auf? - Warum?
-
@Mojito-Joe
ja, Du brauchst nur einen der beiden Adapter.
Hier gibt es z.b. einen Thread dazu https://forum.iobroker.net/topic/22617/shelly-mit-oder-ohne-mqttder shelly Adapter macht wohl einen eigenen mqtt broker auf, wenn mqtt aktiviert ist. entweder du legst den auf einen anderen port, oder stellst ihn so ein, dass er nur coap macht, oder Du entfernst ihn ganz. (oder den mqtt adapter...)
ich hatte übrigens keine Probleme mehr mti den Rolläden seit Februar
-
@axelander
OK, dann verstehe ich das. Ich habe es jetzt auch genauso gemacht, wie Du vorschlägst:
Habe beide, Shelly.Adapter aber ohne MQTT (nur CoAP) und in den Web-Oberflächen der Relais MQTT aktiviert und auf den MQTT-Broker konfiguriert. So habe ich beides.Den Shelly Adapter brauche ich jedoch weiterhin (glaube ich), da ich die Steuerung meiner Rolläden über Google Home hinbekommen habe und eben die unter dem Shelly-Adapter angebotenen Devices für den iot-Adapter konfiguriert habe. Mir wäre nicht klar, wie ich diese Konfiguration nur mit dem MQTT-Adapter hinbekäme... (Beschreibung siehe hier: https://forum.iobroker.net/post/412981)
-
@Mojito-Joe
naja, soweit ich das nachvollziehen kann hast Du im SchrittUnter "Objekte" zu jedem aufgelisteten Shelly-Device in der Spalte "Raum" den entsprechenden Raum und unter Funktion "Rollo" ausgewählt.
die shellies wohl im shelly.0 Knoten ausgewählt, und nicht im mqtt.0 Knoten?
Jedenfalls sehe ich nicht, wofür Du in dem Setup mqtt brauchst. Ich hatte das mit der Rolladensteuerung über Alexa auch mal versucht, benutze es aber kaum und hat auch nicht so richtig funktioniert.
Interessant fände ich noch, die schedules in den shellies aus iobroker heraus umzuschreiben. Komplett in iobroker auslagern will ich sie nicht, sonst habe ich da ja eine Abhängigkeit. Die schedules kommen aber über mqtt nicht rein. Siehst Du die denn bei den Objekten im shelly Adapter?
-
@axelander
Ja, ich habe die Raumzuordnung im Shelly.0-Obkekt vorgenommen. Ich habe es nicht versucht, denke aber, dass es im MQTT-Objekt nicht das gleiche Ergebnis zusammen mit Google Home bringen wird. Deshalb ist MQTT, was die Rolladensteuerung angeht, tatsächlich nicht notwendig.Ich muss sagen, dass es bei mir sogar sehr gut funktioniert. Meine Freundin hält sich regelmäßig nicht an die meiner Ansicht nach verbindliche Reihenfolge der Befehlswörter [Objekt] im [Raum] [Vorgang] (also z.B. "ROLLO im WOHNZIMMER SCHLIESSEN") und trotzdem funktioniert es in 95% der Fälle. Sehr gut finde ich es, auch die Prozentwerte per Sprache nutzen zu können, wenn man das Rollo nicht ganz schließen will.
Leider sehe ich aber die shedules auch nirgends (weder shelly noch mqtt).