Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Mqtt best practice

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mqtt best practice

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dos1973 @mickym last edited by dos1973

      @mickym

      hi nochmals eine Frage.
      ich spiele derzeit etwas mit einer shelly Vintage un dem Mqtt herum.
      die Lampe über den command mit on/ off geht, jetzt wollte ich aber mal etwas mehr aber ich bekomme es nicht hin.

      ich hab das bsp direkt von der Shelly website genommen.

      Bildschirmfoto 2021-09-27 um 00.04.15.png

      versuche das derzeit noch über den mqqt explorer---

      Bildschirmfoto 2021-09-27 um 00.02.08.png

      mach ich etwas falsch?

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

        irgendetwas ist hier "buggy", wenn ich den Befehl absetze, ist der shelly für 30sekunden offline...

        mickym 2 Replies Last reply Reply Quote 0
        • mickym
          mickym Most Active @dos1973 last edited by mickym

          @dos1973 das JSON Objekt musst Du in ein neu zu erstellenden set DP schreiben, nicht in command. Ausserdem darfst Du bei mqtt nicht ein JSON Objekt beschreiben, sondern einen String. Sprich Du musst das JSON Objekt in einen String umwandeln.

          In Javascript nutzt DU dazu stringify

          Ob die Konvertierung im Blockly nach String funktioniert weiss ich nicht.

          In Node-Red setze ich zum Beispiel direkt den Dimmwert in dem JSON Objekt und wandel es dann in einen String um.

          Sprich Du darfst in Deinem mqtt Client kein JSON Objekt sondern einen String übergeben

          b98e7d25-380f-4767-8b4f-792d11a175da-image.png

          Ob Dein mqtt Explorer die Konvertierung selbst durchführt, weiß ich nicht, gehe aber eigentlich davon aus.

          Die Struktur sieht eigentlich identisch zum Dimmer aus:

          3ba1a511-b1a3-43a1-8b86-80d08ea6607b-image.png

          Wenn alles geklappt hat - wird der status DP zum Beispiel mit dem aktuellen Dimmwert aktualisiert:

          c2529a1c-8a2d-4e95-baf2-ca8aac745194-image.png

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @dos1973 last edited by

            @dos1973 sagte in Mqtt best practice:

            irgendetwas ist hier "buggy", wenn ich den Befehl absetze, ist der shelly für 30sekunden offline...

            Dann bootet der Shelly neu

            D 1 Reply Last reply Reply Quote 0
            • D
              dos1973 @mickym last edited by dos1973

              @mickym
              ich versuche eben dein Bsp von vorher nachzubauen...

              Bildschirmfoto 2021-09-27 um 19.03.33.png

              Bildschirmfoto 2021-09-27 um 19.01.33.png

              aber ich bekomme bei dem payload ein Fehler
              Bildschirmfoto 2021-09-27 um 19.02.17.png

              kannst du nochmals nachhelfen 😉

              edit: auf String umgestellt, ist der Fehler weg...

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @dos1973 last edited by mickym

                @dos1973 Du musst kannst das schon als Objekt machen - die JSON Node wandelt Objekte in String um und umgekehrt, wenn man es nicht explizit angibt.

                4d4e3dc1-ad4c-40ab-976c-e6c2f2e47afe-image.png

                Da der Dimmer identisch zu dem VIntage funktioniert - habe ich es bei mir ausprobiert und gibt überhaupt kein Problem

                d744ac18-d56c-461e-b73a-af186e767a58-image.png

                Hier der Flow zum Import - die mqtt out Node musst halt noch setzen:

                [
                   {
                       "id": "e7ba93bc.d0a76",
                       "type": "change",
                       "z": "169f5b00.a13415",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "{\"brightness\":100,\"turn\":\"on\",\"transition\":500}",
                               "tot": "json"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 590,
                       "y": 880,
                       "wires": [
                           [
                               "8d56af93.953c4"
                           ]
                       ]
                   },
                   {
                       "id": "bc65361e.f542b8",
                       "type": "inject",
                       "z": "169f5b00.a13415",
                       "name": "",
                       "props": [
                           {
                               "p": "topic",
                               "v": "true",
                               "vt": "bool"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "x": 410,
                       "y": 880,
                       "wires": [
                           [
                               "e7ba93bc.d0a76"
                           ]
                       ]
                   },
                   {
                       "id": "8d56af93.953c4",
                       "type": "json",
                       "z": "169f5b00.a13415",
                       "name": "",
                       "property": "payload",
                       "action": "",
                       "pretty": false,
                       "x": 790,
                       "y": 880,
                       "wires": [
                           [
                               "1ad1e9c5.dbaa86",
                               "9696c9c7.db3af8"
                           ]
                       ]
                   },
                   {
                       "id": "1ad1e9c5.dbaa86",
                       "type": "debug",
                       "z": "169f5b00.a13415",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 970,
                       "y": 880,
                       "wires": []
                   }
                ]
                

                Bei der Change Node musst halt wieder darauf achten, dass Du ein JSON Objekt verwendest:

                28531f50-c983-4174-bfe5-6d11020a8102-image.png

                Im status - wird nur die transitiontime nicht korrekt wieder gegeben.

                D 1 Reply Last reply Reply Quote 0
                • D
                  dos1973 @mickym last edited by

                  @mickym
                  das führt dazu dass der shelly rebootet.

                  Bildschirmfoto 2021-09-27 um 19.25.45.png

                  mickym 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @dos1973 last edited by mickym

                    @dos1973 Dann hat der Shelly hier ggf. einen Fehler - schau mal Parameter für Parameter. Vielleicht lässt mal die transition time weg.

                    Im Prinzip funktioniert es auch, wenn Du das Objekt im set Punkt direkt beschreibst.

                    Das tut bei mir:

                    f457d07e-43d1-46b7-9393-238ee9874007-image.png

                    1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @dos1973 last edited by

                      @dos1973 Mach Dir keinen Kopf - die vintage Dinger haben wohl mit dem Dimmen generell ein Problem:

                      Liegt also nicht an Dir oder an den Tools:

                      https://www.shelly-support.eu/forum/index.php?thread/11261-shelly-vintage-mqtt-set-brightness-is-not-working/

                      D 1 Reply Last reply Reply Quote 1
                      • D
                        dos1973 @mickym last edited by

                        @mickym

                        ok, nur on off im payload funktioniert. Der Link bestätigt den Fehler.
                        habe eben noch das aktuellste update geladen.

                        Gibt es denn noch eine alternative Möglichkeit, den Dimmlevel zu steuern?

                        ich habe noch einen Spot im Schrank... werde damit mal testen

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @dos1973 last edited by mickym

                          @dos1973 Ich würde zwar auf das FW Update warten, aber Du kannst natürlich auch das HTTP Protokoll verwenden.

                          06e9d5d2-9602-4403-8785-cc4c2a56ff2a-image.png

                          Dieser Flow funktioniert bei mir auch:

                          [
                              {
                                  "id": "9e845204.a7a12",
                                  "type": "change",
                                  "z": "169f5b00.a13415",
                                  "name": "",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "{\"brightness\":100,\"turn\":\"on\"}",
                                          "tot": "json"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 590,
                                  "y": 1020,
                                  "wires": [
                                      [
                                          "730a2f24.f40f1"
                                      ]
                                  ]
                              },
                              {
                                  "id": "c518e7ea.47b508",
                                  "type": "inject",
                                  "z": "169f5b00.a13415",
                                  "name": "",
                                  "props": [
                                      {
                                          "p": "topic",
                                          "v": "true",
                                          "vt": "bool"
                                      }
                                  ],
                                  "repeat": "",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "topic": "",
                                  "x": 410,
                                  "y": 1020,
                                  "wires": [
                                      [
                                          "9e845204.a7a12"
                                      ]
                                  ]
                              },
                              {
                                  "id": "24213500.57389c",
                                  "type": "debug",
                                  "z": "169f5b00.a13415",
                                  "name": "",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "true",
                                  "targetType": "full",
                                  "statusVal": "",
                                  "statusType": "auto",
                                  "x": 990,
                                  "y": 1020,
                                  "wires": []
                              },
                              {
                                  "id": "730a2f24.f40f1",
                                  "type": "http request",
                                  "z": "169f5b00.a13415",
                                  "name": "",
                                  "method": "GET",
                                  "ret": "txt",
                                  "paytoqs": "query",
                                  "url": "http://192.168.xxx.xxx/light/0/parameters",
                                  "tls": "",
                                  "persist": false,
                                  "proxy": "",
                                  "authType": "",
                                  "x": 790,
                                  "y": 1020,
                                  "wires": [
                                      [
                                          "24213500.57389c"
                                      ]
                                  ]
                              }
                          ]
                          

                          Musst halt Deine IP Adresse verwenden und wenn Deine Shellies mit Kennwort gesichert sind, das halt in die Basisauthentifizierung angeben.

                          Wenn alles OK ist, dann solltest Du über die HTTP Schnittstelle ein Returncode=200 zurück bekommen.

                          dc969aa8-b6cd-4b82-99af-2655a357dbd5-image.png

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dos1973 @mickym last edited by dos1973

                            @mickym
                            das klappt 1 A. Also das gefällt mir richtig gut.

                            ich schau mal dass ich den Spot rauskrame...

                            Danke Dir - fühl dich gedrückt 😉

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

                              @dos1973
                              noch was, das "inject" würde ich durch eine Vis DP button ersetzen und könnte dann schalten, könnte die flows dann um weitere "flows" ergänzen um eine Gruppe von Leuchten zu steuern?

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @dos1973 last edited by mickym

                                @dos1973 Du musst halt die Inject Node durch eine iobroker IN Node ersetzen und auf den DP setzen, den Du mit VIS akutalisierst.

                                Falls Du mit einem Button mehrere Shellies gleichzeitig steuern willst verzweigst Du wie es Dir passt.

                                4c87587f-749b-49c5-87d7-24e7bdc2b1ac-image.png

                                Wenn die 3 der Gruppe immer die gleichen Parameter enthalten sollen machst Du halt

                                770f916d-0744-465e-8d0e-11c31e1a6789-image.png

                                Langsam sollte das Prinzip von NodeRed ja einleuchten. 😉

                                D 1 Reply Last reply Reply Quote 1
                                • D
                                  dos1973 @mickym last edited by

                                  @mickym
                                  so langsam finde ich gefallen an node-red... 🙂 ist schon recht einfach schnell Abläufe zu erstellen (mit deinem Vorlagen).
                                  Das Problem wie bei allen neuen Sachen, erstmal die richtigen Kärtchen zu identifizieren.

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @dos1973 last edited by

                                    @dos1973 Ich würde ggf. trotzdem später warten und nicht mqtt mit http mischen. Gibt zwar beide Möglichkeiten, aber macht das halt ggf. später schlechter wartbar oder für die Fehlersuche transparent.

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      dos1973 @mickym last edited by dos1973

                                      @mickym

                                      ist mir ja schon etas "unangenehm" aber ich suche seit 2 Stunden?!

                                      ich habe vor ein paar Tagen alles eingerichtet und jetzt fällt mir ein Shelly2.5 raus.
                                      Ich kann keine Befehle mehr absetzen, command on / off etc.

                                      ich habe den Shelly rebooted, mqtt deaktiviert, aktiviert. Mqtt Instanz gestartet...
                                      eigentlich alles. Alle anderen funktionieren noch - nur der ist weg und ich bekomme den nicht wieder eingebunden.

                                      Wüsste nichts mehr was ich noch machen kann. Idee?

                                      die states werden aktualisiert, wenn ich über das webfrostend schalte.
                                      Bildschirmfoto 2021-09-28 um 20.53.17.png

                                      mickym D 2 Replies Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @dos1973 last edited by

                                        @dos1973 Das was Du markiert hast - gibt den Status wieder - steuern tust Du über den Datenpunkt. Schau auch mal in das Log, ob irgendwelche Fehlermeldungen auftauchen.

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

                                          @dos1973 sagte in Mqtt best practice:

                                          die states werden aktualisiert, wenn ich über das webfrontend schalte.

                                          das meine ich
                                          Über command kann ich nicht schalten

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @dos1973 last edited by mickym

                                            @dos1973 nun step für step - geht es mit Deinem mqtt Frontend - direkt mit mosquitto? Oder auch möglich kannst Du über NodeRed und mqtt out schalten oder klappt es nur über den iobroker mqtt Adapter nicht?

                                            D 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

                                            814
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            mosquitto mqtt shellys
                                            6
                                            136
                                            9887
                                            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