Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Adapter] Shelly Adapter mit MQTT

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Adapter] Shelly Adapter mit MQTT

    This topic has been deleted. Only users with topic management privileges can see it.
    • apollon77
      apollon77 @Diggewuff last edited by

      @Diggewuff sagte in [Adapter] Shelly Adapter mit MQTT:

      Der ioBroker und die installierten Adapter sind nicht dafür zuständig um darüber zu entscheiden welche Informationen relevant sind, sondern dafür die Informationen die verfügbar sind zusammenzutragen.
      Der ioBroker kennzeichnet, absichtlich um dem von dir beschriebenen Missverständnis vorzubeugen, bei allen Aktualisierungen ob es sich um reine Aktualisierungen oder Änderungen handelt. Daher finde ich das Aktualisierungen nicht verworfen werden sollten nur weil sie keine Änderungen sind. Wenn jemand nur auf Änderungen reagieren möchte kann er selber entsprechend einschränken.

      Möchte speziell dazu mal meinen Senf dazu geben. Die Antwort ist in meinen Augen ein klares "kommt darauf an". Vor allem bei Adaptern die einen grossen State-Update Traffic mit "identischen Daten" machen kommt regelmässig dieses Thema auf. Eine hohe Anzahl von State updates sorgen für Last CPU-technisch, sorgen für erhöhtes I/O (was vor allem bei SD Karten Systemen immer so eine Sache ist) und je nachdem auch zu gefühlt langsameren Systemen. Daher gibt es mehrere Adapter, die aus diesen Überlegungen heraus bewusst es genau so machen wie der Shelly Adapter - meistens weil es andere User gab deren Systeme mit vielen "unnötigen Updates" überfordert waren.

      Es ist also eine Balance und wenn ein Entwickler das so entscheidet dann ist das im ersten Schritt mal nicht falsch. Bei Shelly kommen die COAP Messages teilweise im Sekundentakt ... Du WILLST nicht das der Adapter diese ganzen Änderungen immer ungefiltert weitergibt. Von daher ist diese genrelle Entscheidung im Falle des Shelly Adapters in meinen Augen vollkommen gerechtfertigt.

      Das das jetzt bei der "Longpush" Funktion so eine Nebeneffekt hat ist blöd und da muss man jetzt überlegen wie man das angeht. Auch das @Stuebi Coap und MQTT "identisch " funktionieren haben will ist nachvollziehbar. Und die Suggestivfrage (sorry) wenig hilfreich 🙂

      Ingo

      D 1 Reply Last reply Reply Quote 0
      • D
        Diggewuff @apollon77 last edited by Diggewuff

        @apollon77
        Hallo Ingo,
        danke für dein konstruktives Feedback. Das Argument bezüglich der Updates im Sekundentakt kann ich nachvollziehen.
        Gibt es im io Broker eigentlich eine Möglichkeit Systemevents auf auf Instanzebene auf Änderungen zu beschränken?
        MQTT arbeitet da natürlich effizienter.
        Daher habe ich mich in meinem pull request fürs erste darauf beschränkt, die Updates unter Verwendung von MQTT optional zur Verfügung zu stellen.
        Was hälst du von der Idee?

        Ps: Sugestivfragen lasse ich nächstes mal weg. Da war ich gestern Abend etwas erregt über geringe Bereitschaft sich der Herausforderung anzunehmen.

        apollon77 1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 @Diggewuff last edited by

          @Diggewuff Am Ende ist jeder Adapter-Entwickler der "Guard" und muss für das implementierte System und Protokoll solche Entscheidungen treffen. Ich glaube nicht das es "geringe Bereitschafft" ist in dem Fall.

          D 1 Reply Last reply Reply Quote 0
          • D
            Diggewuff @apollon77 last edited by Diggewuff

            @apollon77
            Es kann auch ein Missverständnis gewesen sein. Mal sehen was aus dem Pull request wird. Über Feedback zu meinem Vorschlag würde ich mich freuen.
            @Stuebi
            Wäre das nicht eine praktikable Lösung?

            1 Reply Last reply Reply Quote 0
            • B
              BlueBook last edited by

              Hallo zusammen,

              erst einmal danke für den super tollen Adapter 🙂

              Ich hab am Wochenende einen:
              https://shelly.cloud/products/shelly-button-1-smart-home-automation-device/

              connected und freute mich, dass dieser auch funktioniert.

              Der Buttonklick wird unter der variable "Event" angezeigt.
              S für Short
              SS für 2x Short
              usw.

              Allerdings wird (wenn ich es richtige verstehe) (vielleicht mach ich auch etwas falsch?)
              Wenn ich zuerst einmal kurz drücke und warte und dann noch einmal kurz drücke, nicht zweimal
              der Wert "s" gesetzt, sondern nur einmal.
              Wenn ich also auf die Variable "Event" "Lausche" bekomme ich den zweiten Klick (wenn es der gleiche Event wie der Vorgänger ist) nicht mit.

              Sollte man das anders Abfragen?
              Oder sollte das Event ggf. doch doppelt gesetzt werden?

              Viele Grüße
              BB

              Stuebi 1 Reply Last reply Reply Quote 0
              • Stuebi
                Stuebi @BlueBook last edited by

                @BlueBook , die Frage gab es schon ein einmal und wurde an Shelly weitergereicht. Wenn ich mich richtig erinnere, muss man warten bis der Button nicht mehr leuchtet. Anders geht es leider nicht.

                B 1 Reply Last reply Reply Quote 0
                • B
                  BlueBook @Stuebi last edited by

                  @Stuebi Danke für die Info.
                  Ja, mit der Verzögerung hatte ich zuerst auch nicht gerechnet, ist für mich aber okay und auch verständlich, da der Button zum Strom sparen nicht dauerhaft ins WLAN connected ist.
                  Jeder Event braucht so seine 2-3 Sekunden. Man kann aber einstellen, wie lange der Button nach dem Klick aktiv bleibt - so könnte man schnelle Klicks hintereinander beschleunigen.

                  Vielleicht hatte ich mich mit meiner Frage undeutlich ausgedrückt.

                  Folgendes Skript:

                  event.jpg

                  wird, wenn man zwei mal hintereinander die gleiche Aktion ausführt, nur einmal getriggert.
                  Anscheinend wird der Wert in der Variable "Event" nicht neu gesetzt - wenn der gleiche Event ein zweites Mal getriggert wird.
                  Zumindest steht in der Objektansicht bei Event noch der alte Zeitstempel.

                  Das man zweimal hintereinander aber die gleich Aktion ausführt - wenn man z.B. eine Lampe darüber ein- und ausschaltet - halte ich für eine "normale" Anforderung. Diese bekomme ich aber schlecht abgebildet. Dies über die Uptime des Buttons abzufragen - wäre schon ein starker Workaround.

                  Daher meine Frage:
                  Hab ich hier einen Denkfehler?
                  Hat einer dieses Problem schon gelöst?
                  Oder sollte das Event nicht besser doppelt aus dem Adapter gesetzt werden, auch wenn es gleich ist?

                  Gruß
                  BB

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Diggewuff @BlueBook last edited by

                    @BlueBook ich glaube das es sich da um das gleiche Problem handelt, das ich auch habe.

                    @Diggewuff sagte in [Adapter] Shelly Adapter mit MQTT:

                    Der Shelly sendet einen wiederholten Longpress, aber dieser lässt sich nicht auswerten da der Adapter nur werte aktualisiert, wenn sie sich geändert haben. Werte die (nur) aktualisiert werden, werden absichtlich verworfen. Daher ist der Longpress nicht nutzbar. Ich habe das Thema einmal auf GitHub platziert und würde mich dort über Feedback dazu freuen, ob Ihr das so für sinnig haltet, oder ob Ihr auch denkt, dass Aktualisierungen die über MQTT oder CoAP eintreffen auch in die ioBroker states geschrieben werden sollten.

                    Diese Funktionsweise habe ich in einem Fork des Adapters angepasst, sodass man bei Verwendung von MQTT mit einem Haken in den Instanzeistellungen wählen kann, ob die werte auch aktualisiert werden sollen.
                    Wenn du möchtest, kannst du die Funktion gerne mal ausprobieren, vielleicht hilft es dir ja.
                    https://github.com/JoschaMiddendorf/ioBroker.shelly
                    Ich habe die Funktion auch als Pull Request eingereicht, sodass sie in den Adapter übernommen werden kann, wenn @Stuebi einverstanden ist, worauf ich sehr hoffe.
                    https://github.com/schmupu/ioBroker.shelly/pull/209
                    Der Request ist allerdings noch offen.

                    JoschaMiddendorf created this issue in schmupu/ioBroker.shelly

                    closed Implementation of an option in the settings that allows MQTT users to receive updates of unchanged values. #209

                    Stuebi B 2 Replies Last reply Reply Quote 1
                    • Stuebi
                      Stuebi @Diggewuff last edited by

                      @Diggewuff , Shelly stellt es sich wie folgt vor um Events wie Longpush / Shortpush abzufragen:

                      Right now such events are for example shortpush/longpush of buttons – devices will send a property of type “EV” to denote the exact event type
                      (“S” = shortpush, “L” = longpush), and a property of type “EVC” that will increment it’s value when a new event occurs (e.g. to be able
                      to know that two consecutive longpushes are actually two separate events). Please see “Input event” and “Input event counter” in the
                      property list below for additional information.
                      In the future, it’s possible that a type “EVV” (Event validity) will be added too, to denote how long an occurred event should be
                      considered “active” (e.g. for motion, vibration, etc.).

                      Es ist zusätzlich zum Event der Event Counter laut Herstellervorgaben zu berücksichtigen.

                      Stuebi 1 Reply Last reply Reply Quote 0
                      • Stuebi
                        Stuebi @Stuebi last edited by

                        @Diggewuff , ein kleines Update, ich habe Shelly gebeten, dass man analog zum MQTT Protokoll bei den CoAP Nachrichten nur die States in der payload mitschickt die sich wirklich ändern und nicht imm alle states. Mit dieser kleinen Anpassung wäre es ohne weiteres möglich, mehrere longpushes / shortpushes analog zu MQTT hintereinander auszuwerten.
                        Leider will der Shelly Entwickler von OpenHab diese Änderung nicht 😞 Ich habe parallel noch ein Ticket bei Shelly aufgegeben. Ich bin gespannt ob sich da etwas tut.
                        Das Lustige an der Geschichte ist, dass der Shelly DW2 mit Firmware 1.8 genau nur die Werte per CoAP liefert die angefasst wurden und nicht immer alle. Das ist aber ein Fehler in der Firmware 😞

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          Diggewuff @Stuebi last edited by

                          @Stuebi danke für deinen Einsatz. 🙏
                          Könntest du in deiner GitHub repository eventuell einen „latest“ branch zur Verfügung stellen der jeweils den aktuellsten Release beinhaltet? Mir ist aufgefallen das der Master meist schon weiter ist als die releases.
                          Ein latest branch würde es stark vereinfachen den Fork aktuell zu halten.
                          Beste Grüße

                          apollon77 1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 @Diggewuff last edited by

                            @Diggewuff sagte in [Adapter] Shelly Adapter mit MQTT:

                            Ein latest branch würde es stark vereinfachen den Fork aktuell zu halten.

                            Am besten arbeitest Du immer gegen Master - idealweise mergest DU auch während deiner Entwicklung den Master immer in deinem Fork bzw rebased deine ARbeit auf Basis des Master - so ist es später bei dem PR am einfachsten

                            1 Reply Last reply Reply Quote 0
                            • Stuebi
                              Stuebi @Diggewuff last edited by

                              @Diggewuff , ich habe die Funktionalität Deines PRs in der Version 4.0.3 überführt. Den Schalter "Update objects even if there is no value change" gilt nun für CoAP, MQTT und http gleichermassen.
                              Kannst Du die Version 4.0.3 über GitHub laden und bitte testen.

                              D 2 Replies Last reply Reply Quote 0
                              • D
                                Diggewuff @Stuebi last edited by

                                @Stuebi Ich habe 4.0.3 getestet und es funktioniert bis jetzt alles erwartungsgemäß. Sollte mir doch noch etwas auffallen melde ich mich.
                                Danke

                                1 Reply Last reply Reply Quote 0
                                • D
                                  Diggewuff @Stuebi last edited by

                                  @Stuebi
                                  In 4.0.3 werden die Namen selbst umbenannter datenpunkte teilweise überschrieben.

                                  Stuebi 1 Reply Last reply Reply Quote 0
                                  • Stuebi
                                    Stuebi @Diggewuff last edited by

                                    @Diggewuff , ja das kann passieren, aber nur dann wenn im Shelly im Devicename oder Channelname etwas steht.

                                    Bildschirmfoto 2020-08-20 um 07.01.56.png

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      BlueBook @Diggewuff last edited by

                                      @Diggewuff Danke für den Hinweis und auch deine Erweiterungen!

                                      Ich war gerade erfreut zu sehen, dass es eine neue Version gibt.
                                      Hab auf diese upgedatet.

                                      Dabei kam folgendes im Log:

                                      shelly.0	2020-08-23 17:09:52.951	info	(10150) Delete old state: shelly.0.SHBTN-1#xxxxxxxxxx#1.Button.Input
                                      shelly.0	2020-08-23 17:09:52.878	error	(10150) Cound not delete old state: shelly.0.SHBTN-1#xxxxxxxxx#1.Button.Input
                                      host.iobroker	2020-08-23 17:09:52.871	warn	Objects 127.0.0.1:55783 Error from InMemDB: Error: ERROR delObject shelly.0.SHBTN-xxxxxxx.Button.Input: Not exists
                                      shelly.0	2020-08-23 17:09:52.373	info	(10150) Shelly device 192.168.xxx.xxx (shellybutton1 / shellybutton1-xxxxxx / SHBTN-xxxxxxxxx) with CoAP connected!
                                      

                                      Da danach der Button zur keiner Zustandsänderung mehr im ioBroker führte, hab ich alle Instanzvariablen aus den Objekten und das Objekt gelöscht - ich hatte gehofft er erkennt den Button neu und legt diese neu an.

                                      Leider ist das nicht passiert.
                                      Der Button wird jetzt gar nicht mehr erkannt 😕
                                      War wohl doch eine dumme Idee ...

                                      Parallel hab ich die Firmeware des Buttons von 1.7 auf 1.8 erhöht - daher ist es jetzt leider schwer zu sagen, woran es liegt/lag.

                                      Neustarts auf beiden Seiten haben leider nichts gebracht.

                                      Wenn es über Coap nicht läuft, ist es nicht schlimm.
                                      Ich werde es die Tage dann auf MQTT umstellen - dass sollte ja funktionieren.

                                      Wollte euch nur hier das Feedback geben - ggf. hilft es ja 🙂

                                      Gruß
                                      BB

                                      Stuebi 1 Reply Last reply Reply Quote 0
                                      • Stuebi
                                        Stuebi @BlueBook last edited by

                                        @BlueBook , das kann ich nicht bestätigen. Ich habe gerade den Shelly Adapter in der Version 4.0.3 mit CoAP und MQTT und dem Button mit der Firmware 20200812-091606/v1.8.0@8acf41b0 getestet.
                                        Es funktioniert alles wunderbar.

                                        B 1 Reply Last reply Reply Quote 0
                                        • B
                                          BlueBook @Stuebi last edited by

                                          @Stuebi Ich hab es gerade noch mal verglichen.
                                          Gleiche Adapter-Versionen und gleiche Firmeware.
                                          Keine Ahnung warum der Button nicht mehr möchte - lief zuerst super.

                                          Ich hab es eben auch noch einmal über MQTT ausprobiert.
                                          Der Button meldet sich erfolgreich an.
                                          Es kommen sogar updateEvents, aber alle nur mit Event "s".
                                          Ein komisches Verhalten von dem Button. Ich vermute, dass das Firmewareupdate nicht 100% geklappt hat? Ich hab gerade schon einen Reset probiert, er bleibt aber bei der Firmewareversion und löscht "nur" die Einstellungen.

                                          Ich hab es jetzt über den direkt Aufruf der iobroker-RestApi vom Button beholfen, komischerweise funktioniert dies.
                                          Alles nicht wichtig, aber bissel komisch schon.

                                          Liegt aber meiner Meinung nach am Button! und nicht am Adapter.

                                          Schöne Woche euch noch!
                                          Gruß
                                          BB

                                          Stuebi 1 Reply Last reply Reply Quote 0
                                          • Stuebi
                                            Stuebi @BlueBook last edited by

                                            @BlueBook , da es nicht direkt um MQTT geht, bitte weiter hier diskutieren wenn Du die Shelly Adapter Version 4.0.3 installiert hast: https://forum.iobroker.net/topic/36200/test-adapter-shelly-v4-0-3-latest

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            872
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            mqtt shelly
                                            43
                                            213
                                            40772
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo