Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Mqtt best practice

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    331

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Mqtt best practice

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
mosquittoshellysmqtt
136 Beiträge 6 Kommentatoren 13.3k Aufrufe 11 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D dos1973

    @mickym sagte in Mqqt best practice:

    Den Vorteil, den Du mit reinem MQTT-hast, ist dass Du nicht wie beim Shelly Adapter darauf warten musst, dass das Gerät mit den entsprechenden Funktionen implementiert wird.

    das ist genau der Grund warum ich das machen wollte.

    command und Set habe ich auch begriffen... :-) ich brauche nochmals ein Bsp für den Status?

    und ich weiß leider nicht wieder der admin von 5 auf 4 gewechselt werden kann, lese ich heute das erste mal.

    btw. Vielen Dank für deine Hilfestellung!

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #30

    @dos1973 Gehe auf Instanzen und in die Einstellungen Deiner Admin Instanz:
    Mach den Haken Alte Benutzeroberfläche an, dann Browserrefresh

    448a60c6-19dd-49b9-b733-fcf865d0d946-image.png

    Dann legst die Datenpunkte wie früher an.
    Dann machst den Haken wieder raus und hast wieder die Admin5 Oberfläche.

    Anschließend lässt Du das Skript drüber laufen, das legt dann aus den fehlenden Objekten Verzeichnisobjekte an.

    Status meldet der Shelly von selbst den brauchst nicht anlegen. Über den Status sendet der Shelly einen JSON mit Einstellungen

    939230e7-bde7-4dcf-96af-31323b06dd31-image.png

    Den status scheint es nur bei dem DImmer zu geben.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    D mickymM 2 Antworten Letzte Antwort
    0
    • mickymM mickym

      @dos1973 Gehe auf Instanzen und in die Einstellungen Deiner Admin Instanz:
      Mach den Haken Alte Benutzeroberfläche an, dann Browserrefresh

      448a60c6-19dd-49b9-b733-fcf865d0d946-image.png

      Dann legst die Datenpunkte wie früher an.
      Dann machst den Haken wieder raus und hast wieder die Admin5 Oberfläche.

      Anschließend lässt Du das Skript drüber laufen, das legt dann aus den fehlenden Objekten Verzeichnisobjekte an.

      Status meldet der Shelly von selbst den brauchst nicht anlegen. Über den Status sendet der Shelly einen JSON mit Einstellungen

      939230e7-bde7-4dcf-96af-31323b06dd31-image.png

      Den status scheint es nur bei dem DImmer zu geben.

      D Offline
      D Offline
      dos1973
      schrieb am zuletzt editiert von dos1973
      #31

      @mickym
      Ok, danke erstmal. Das kann ich erst morgen wieder versuchen.

      Melde mich morgen abend nochmals

      Noch eine Frage:
      Das script führe ich script Adapter aus?

      mickymM 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @dos1973 Gehe auf Instanzen und in die Einstellungen Deiner Admin Instanz:
        Mach den Haken Alte Benutzeroberfläche an, dann Browserrefresh

        448a60c6-19dd-49b9-b733-fcf865d0d946-image.png

        Dann legst die Datenpunkte wie früher an.
        Dann machst den Haken wieder raus und hast wieder die Admin5 Oberfläche.

        Anschließend lässt Du das Skript drüber laufen, das legt dann aus den fehlenden Objekten Verzeichnisobjekte an.

        Status meldet der Shelly von selbst den brauchst nicht anlegen. Über den Status sendet der Shelly einen JSON mit Einstellungen

        939230e7-bde7-4dcf-96af-31323b06dd31-image.png

        Den status scheint es nur bei dem DImmer zu geben.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #32

        @dos1973

        Falls Dich das interessiert, hier habe ich die Problematik mit dem Admin5 und mqtt ausführlich diskutiert:

        https://forum.iobroker.net/topic/46851/datenpunkte-allgemein-und

        https://forum.iobroker.net/topic/46814/admin5-ich-kann-keine-objekte-mehr-manuell-anlegen/289?_=1632336730226

        und gibt inzwischen auch ein github issue

        https://github.com/ioBroker/ioBroker.admin/issues/1067

        Ich hoffe nur nicht - dass das Prio 99 bekommt, da nur als "Enhancement" und nicht als Bug akzeptiert.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • D dos1973

          @mickym
          Ok, danke erstmal. Das kann ich erst morgen wieder versuchen.

          Melde mich morgen abend nochmals

          Noch eine Frage:
          Das script führe ich script Adapter aus?

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #33

          @dos1973 sagte in Mqqt best practice:

          @mickym

          Noch eine Frage:
          Das script führe ich script Adapter aus?

          e59d97a3-9324-42cd-896d-d2c4a7771d19-image.png

          Ja unter Scripts

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          D 1 Antwort Letzte Antwort
          1
          • mickymM mickym

            @dos1973 sagte in Mqqt best practice:

            @mickym

            Noch eine Frage:
            Das script führe ich script Adapter aus?

            e59d97a3-9324-42cd-896d-d2c4a7771d19-image.png

            Ja unter Scripts

            D Offline
            D Offline
            dos1973
            schrieb am zuletzt editiert von
            #34

            @mickym
            ich muss nochmals fragen, was das script macht?!?

            nachdem ich den admin vom 5 auf 4 umgestellt habe, kann ich die states anlegen welche ich benötige. ich hab zwar das script ausgeführt - aber ich habe nicht verstanden warum ich das machen muss.

            bei shelly 2.5 als Rollo habe ich jetzt noch diese DP angelegt
            mqtt.0.shellies.Wohnzimmer_Rollo_links.roller.0.command.pos
            command: für hoch/runter/stop
            pos: für die genaue Positionsfahrt

            mir gefällt nicht so gut dass ich states manuell anlegen muss um die gerate zu steuern.
            Wenn ich irgendwann mal eine Baum lösche und vergesse mir zu notieren was da war, dann geht die Suche wieder los...

            mickymM 1 Antwort Letzte Antwort
            0
            • D dos1973

              @mickym
              ich muss nochmals fragen, was das script macht?!?

              nachdem ich den admin vom 5 auf 4 umgestellt habe, kann ich die states anlegen welche ich benötige. ich hab zwar das script ausgeführt - aber ich habe nicht verstanden warum ich das machen muss.

              bei shelly 2.5 als Rollo habe ich jetzt noch diese DP angelegt
              mqtt.0.shellies.Wohnzimmer_Rollo_links.roller.0.command.pos
              command: für hoch/runter/stop
              pos: für die genaue Positionsfahrt

              mir gefällt nicht so gut dass ich states manuell anlegen muss um die gerate zu steuern.
              Wenn ich irgendwann mal eine Baum lösche und vergesse mir zu notieren was da war, dann geht die Suche wieder los...

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #35

              @dos1973

              @dos1973 sagte in Mqqt best practice:

              @mickym
              ich muss nochmals fragen, was das script macht?!?

              nachdem ich den admin vom 5 auf 4 umgestellt habe, kann ich die states anlegen welche ich benötige. ich hab zwar das script ausgeführt - aber ich habe nicht verstanden warum ich das machen muss.

              Das Skript legt fehlende Objekte an, die erst seit Admin5 nötig sind. Das heißt, wo vorher das Stift-Symbol gefehlt hat (hast Du ja bestätigt), sollte nun ein Stiftsymbol vorhanden sein.
              Dann ist relay nun auch als Objekt Verzeichnis und Du solltest nun wie von mir ursprünglich beschrieben durch Markieren des relay Datenpunktes über das + Datenpunkte hinzufügen können.
              Das Skript legt also bei fehlende Objekten, Objekte vom Typ "Folder" an.

              6f4ba1af-bcea-401d-a7d8-6253d5be4f8e-image.png

              bei shelly 2.5 als Rollo habe ich jetzt noch diese DP angelegt
              mqtt.0.shellies.Wohnzimmer_Rollo_links.roller.0.command.pos
              command: für hoch/runter/stop
              pos: für die genaue Positionsfahrt

              Ja das passt:

              b61625aa-c065-40bc-96df-3a726ec078c4-image.png

              mir gefällt nicht so gut dass ich states manuell anlegen muss um die gerate zu steuern.
              Wenn ich irgendwann mal eine Baum lösche und vergesse mir zu notieren was da war, dann geht die Suche wieder los...

              Nun das ist generell bei mqtt so. Es werden nur die Topics geschrieben, die auch veröffentlicht wurden und ein Gerät veröffentlicht nicht die Topics auf die es hört, da dies zu einer Endlosschleife führen würde.

              Generell empfiehlt es sich, dass Du ggf. noch Aliase anlegst, damit hast Du auch dokumentiert, welche Datenpunkte Du zum steuern verwendest und kannst die Geräte im Fall eines Austauschs einfach austauschen.

              Du kannst ja auch jeden Shelly Typ - die Objektstruktur exportieren, um quasi eine Vorlage zu haben.

              Wenn Du willst kannst Dir ja auch ein kleines Script schreiben, dass Dir über den mosquitto Client alle Datenpunkte anlegt oder Du legst die Datenpunkte über Deine Logikmaschine an, wenn das geht.

              Im NodeRed kannst zum Beispiel einfach angeben, dass Datenpunkte erstellt werden, wenn sie nicht existieren.

              Alles nur ein paar Anregungen. Und wie gesagt ist ja nur Einmalaufwand. ;)

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              D 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @dos1973

                @dos1973 sagte in Mqqt best practice:

                @mickym
                ich muss nochmals fragen, was das script macht?!?

                nachdem ich den admin vom 5 auf 4 umgestellt habe, kann ich die states anlegen welche ich benötige. ich hab zwar das script ausgeführt - aber ich habe nicht verstanden warum ich das machen muss.

                Das Skript legt fehlende Objekte an, die erst seit Admin5 nötig sind. Das heißt, wo vorher das Stift-Symbol gefehlt hat (hast Du ja bestätigt), sollte nun ein Stiftsymbol vorhanden sein.
                Dann ist relay nun auch als Objekt Verzeichnis und Du solltest nun wie von mir ursprünglich beschrieben durch Markieren des relay Datenpunktes über das + Datenpunkte hinzufügen können.
                Das Skript legt also bei fehlende Objekten, Objekte vom Typ "Folder" an.

                6f4ba1af-bcea-401d-a7d8-6253d5be4f8e-image.png

                bei shelly 2.5 als Rollo habe ich jetzt noch diese DP angelegt
                mqtt.0.shellies.Wohnzimmer_Rollo_links.roller.0.command.pos
                command: für hoch/runter/stop
                pos: für die genaue Positionsfahrt

                Ja das passt:

                b61625aa-c065-40bc-96df-3a726ec078c4-image.png

                mir gefällt nicht so gut dass ich states manuell anlegen muss um die gerate zu steuern.
                Wenn ich irgendwann mal eine Baum lösche und vergesse mir zu notieren was da war, dann geht die Suche wieder los...

                Nun das ist generell bei mqtt so. Es werden nur die Topics geschrieben, die auch veröffentlicht wurden und ein Gerät veröffentlicht nicht die Topics auf die es hört, da dies zu einer Endlosschleife führen würde.

                Generell empfiehlt es sich, dass Du ggf. noch Aliase anlegst, damit hast Du auch dokumentiert, welche Datenpunkte Du zum steuern verwendest und kannst die Geräte im Fall eines Austauschs einfach austauschen.

                Du kannst ja auch jeden Shelly Typ - die Objektstruktur exportieren, um quasi eine Vorlage zu haben.

                Wenn Du willst kannst Dir ja auch ein kleines Script schreiben, dass Dir über den mosquitto Client alle Datenpunkte anlegt oder Du legst die Datenpunkte über Deine Logikmaschine an, wenn das geht.

                Im NodeRed kannst zum Beispiel einfach angeben, dass Datenpunkte erstellt werden, wenn sie nicht existieren.

                Alles nur ein paar Anregungen. Und wie gesagt ist ja nur Einmalaufwand. ;)

                D Offline
                D Offline
                dos1973
                schrieb am zuletzt editiert von
                #36

                @mickym

                das mit den Skripten ist so eine Sache :-)
                bin da nicht so bewandert.

                das mit den Alias wäre natürlich jetzt noch am Anfang sinnvoll... muss ich mir auch mal ansehen, welches da der beste Adapter ist, da gibts ja, meine ich auch inzwischen verschiedene Optionen.

                mickymM 1 Antwort Letzte Antwort
                0
                • D dos1973

                  @mickym

                  das mit den Skripten ist so eine Sache :-)
                  bin da nicht so bewandert.

                  das mit den Alias wäre natürlich jetzt noch am Anfang sinnvoll... muss ich mir auch mal ansehen, welches da der beste Adapter ist, da gibts ja, meine ich auch inzwischen verschiedene Optionen.

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #37

                  @dos1973 Ich kann Dir nur den empfehlen, der wirklich mit dem Alias arbeiten und würde von dem anderen Adapter abraten. ;) - Ohne jetzt Namen zu nehmen.

                  Dieser Adapter legt wirkliche Aliase unter alias.0 an und damit werden wirklich die Systemfunktionen genutzt und nicht Funktionen in dem Adapter selbst - wie das die Konkurrenz macht.

                  56181bf1-363f-43e6-96f0-28ea9131ca74-image.png

                  Über den Alias kannst dann auch solche Übersetzungen realisieren, dass Du zum Beispiel ON in true und OFF in false übersetzen lassen kannst, wenn Dir das sinnvoll erscheint:

                  2b742bc0-c737-4eaa-a290-dcc309d38593-image.png

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @dos1973 Ich kann Dir nur den empfehlen, der wirklich mit dem Alias arbeiten und würde von dem anderen Adapter abraten. ;) - Ohne jetzt Namen zu nehmen.

                    Dieser Adapter legt wirkliche Aliase unter alias.0 an und damit werden wirklich die Systemfunktionen genutzt und nicht Funktionen in dem Adapter selbst - wie das die Konkurrenz macht.

                    56181bf1-363f-43e6-96f0-28ea9131ca74-image.png

                    Über den Alias kannst dann auch solche Übersetzungen realisieren, dass Du zum Beispiel ON in true und OFF in false übersetzen lassen kannst, wenn Dir das sinnvoll erscheint:

                    2b742bc0-c737-4eaa-a290-dcc309d38593-image.png

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #38

                    Ich habe aber gerade gesehen, dass Du bei Deinen Shellies sowieso eigene mqtt-Prefixe nutzt. Also Küche etc..

                    Dann brauchst eigentlich keinen Alias. Wenn Du tatsächlich mal ein Gerät austauschen musst, dann kannst Du ja den gleichen Prefix wieder verwenden und musst weder in Deinen Logikmaschinen noch in Deiner Visualisierung was ändern.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    D 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      Ich habe aber gerade gesehen, dass Du bei Deinen Shellies sowieso eigene mqtt-Prefixe nutzt. Also Küche etc..

                      Dann brauchst eigentlich keinen Alias. Wenn Du tatsächlich mal ein Gerät austauschen musst, dann kannst Du ja den gleichen Prefix wieder verwenden und musst weder in Deinen Logikmaschinen noch in Deiner Visualisierung was ändern.

                      D Offline
                      D Offline
                      dos1973
                      schrieb am zuletzt editiert von
                      #39

                      @mickym
                      auch so einer der spät bastelt :-)

                      ja, ich bin noch am ausprobieren und hab da mal mit den Prefixen rumprobiert.
                      ich weiß eben noch nicht was mir u.U. Vorteile / Nachteile bringt. spiele derzeit auch mit dem Alias Adapter

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • D dos1973

                        @mickym
                        auch so einer der spät bastelt :-)

                        ja, ich bin noch am ausprobieren und hab da mal mit den Prefixen rumprobiert.
                        ich weiß eben noch nicht was mir u.U. Vorteile / Nachteile bringt. spiele derzeit auch mit dem Alias Adapter

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #40

                        @dos1973 Ja ich gehöre eher zu den Eulen, als zu den Lerchen.

                        Für Deine Shellies alleine ist der Vorteil eigentlich marginal.

                        Man kann halt eine ähnliche Struktur über verschiedene Gerätetypen machen.

                        Unten habe ich Dir ja im Screenshot gezeigt, wie man zum Beispiel bei Lesen on in true, off in false übersetzt.

                        Man kann aber auch zum Beispiel einzelne Werte direkt aus einem JSON Objekt rauslösen.
                        Der Zustand bzw. das Dimmlevel, sprich die Helligkeit des Shelly Dimmers wird ja im status Wert ausgegeben:

                        7eddd06c-c3e6-4fff-8b5b-aa40911fe2ef-image.png

                        Das kann man dann im Alias direkt rauslösen

                        69eaec98-fa45-492e-aab5-1364f727ebc9-image.png

                        In der Alias Definition gibt man dafür den Befehl in Javascript zum Lesen ein.

                        72695603-d8c3-443c-ba9b-46f8298c4676-image.png

                        Was allerdings mit einem Alias nicht geht, bei Lesen und Schreiben unterschiedliche Datenpunkte als Quelle angeben!!

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        D 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @dos1973 Ja ich gehöre eher zu den Eulen, als zu den Lerchen.

                          Für Deine Shellies alleine ist der Vorteil eigentlich marginal.

                          Man kann halt eine ähnliche Struktur über verschiedene Gerätetypen machen.

                          Unten habe ich Dir ja im Screenshot gezeigt, wie man zum Beispiel bei Lesen on in true, off in false übersetzt.

                          Man kann aber auch zum Beispiel einzelne Werte direkt aus einem JSON Objekt rauslösen.
                          Der Zustand bzw. das Dimmlevel, sprich die Helligkeit des Shelly Dimmers wird ja im status Wert ausgegeben:

                          7eddd06c-c3e6-4fff-8b5b-aa40911fe2ef-image.png

                          Das kann man dann im Alias direkt rauslösen

                          69eaec98-fa45-492e-aab5-1364f727ebc9-image.png

                          In der Alias Definition gibt man dafür den Befehl in Javascript zum Lesen ein.

                          72695603-d8c3-443c-ba9b-46f8298c4676-image.png

                          Was allerdings mit einem Alias nicht geht, bei Lesen und Schreiben unterschiedliche Datenpunkte als Quelle angeben!!

                          D Offline
                          D Offline
                          dos1973
                          schrieb am zuletzt editiert von
                          #41

                          @mickym
                          du überforderst mich :-) scheinst die Möglichkeiten ja wirklich extrem auszunutzen.

                          Ich fange jetzt an die Shellys vom Shelly Adapter auf den Mosquitto umzuziehen.
                          Jetzt weiß ich nur nicht, ob ich mir noch die Alias Struktur geben soll, weil ich ja ale VIS und Script ebenfalls "anfassen" muss...

                          ich mach mal für heute Schluss und schlaf mal eine Nacht drüber.

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • D dos1973

                            @mickym
                            du überforderst mich :-) scheinst die Möglichkeiten ja wirklich extrem auszunutzen.

                            Ich fange jetzt an die Shellys vom Shelly Adapter auf den Mosquitto umzuziehen.
                            Jetzt weiß ich nur nicht, ob ich mir noch die Alias Struktur geben soll, weil ich ja ale VIS und Script ebenfalls "anfassen" muss...

                            ich mach mal für heute Schluss und schlaf mal eine Nacht drüber.

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #42

                            @dos1973
                            Also wie gesagt mit Deinem benutzerspezifischen Prefix - musst Du es wegen den Shellies aus meiner Sicht nicht machen.

                            Schlaf gut - und möge Dich Dein Schlaf erleuchten. ;)

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            D 1 Antwort Letzte Antwort
                            1
                            • mickymM mickym

                              @dos1973
                              Also wie gesagt mit Deinem benutzerspezifischen Prefix - musst Du es wegen den Shellies aus meiner Sicht nicht machen.

                              Schlaf gut - und möge Dich Dein Schlaf erleuchten. ;)

                              D Offline
                              D Offline
                              dos1973
                              schrieb am zuletzt editiert von
                              #43

                              @mickym
                              nochmals ich, gibt es noch einen einfach Trick/ Vorgehensweise um Infos mittels Mqqt aus dem shelly Status abzufragen und als DP anzulegen?

                              http://shelly-ip/status

                              und manche Shellys haben noch den Datenpunkt "announce", da stehen auch einige infos drin, / manche DP sind leer aber eben nicht überall gleich die Regel dazu habe ich noch nicht verstanden

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • D dos1973

                                @mickym
                                nochmals ich, gibt es noch einen einfach Trick/ Vorgehensweise um Infos mittels Mqqt aus dem shelly Status abzufragen und als DP anzulegen?

                                http://shelly-ip/status

                                und manche Shellys haben noch den Datenpunkt "announce", da stehen auch einige infos drin, / manche DP sind leer aber eben nicht überall gleich die Regel dazu habe ich noch nicht verstanden

                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #44

                                @dos1973 Du kannst direkt unter allen shellies nochmal einen Datenpunkt command anlegen oder bei den einzelnen shellies. Dort kann man dann mit announce die shellies zwingen ihren status im info Datenpunkt abzulegen oder bei Bedarf kann man das nutzen um die Firmware zu aktualisieren.

                                siehe: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

                                Im Info-Datenpunkt findest in der Regel fast alle Infos zu dem Shelly in einem JSON zusammengefasst. So auch ob es ein FW Update gibt, welche FW Version etc.

                                3e848d3e-149f-4a15-af4e-6f3b2bc2e57b-image.png

                                Mit announce in dem command Punkte - entweder beim Einzelgerät oder für alle werden die info DP aktualisiert, mit update die normalen states, mit update_fw kannst Du Firmwareupdates anstossen.

                                Aus dem Link siehst, dass die announce Datenpunkte eher alt sind und bis zur FW. 1.6.x genutzt wurden, ab Version 1.8.x wird Info genutzt. Aktuell siehst ja an meinem Screenshot sind wir bei einer FW Version 1.11.x

                                Und wenn Du mit NodeRed arbeiten würdest könntest ja meinen Flow nutzen der daraus einzelne Datenpunkte unter userdata macht - (Wenn derzeit auch mit Nacharbeit wegen Admin5). Zeig es Dir mal an einem Beispiel. Theoretisch könnte Dir so ein Flow auch selbst den Info DP unter mqtt aufdröseln.

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                mickymM 1 Antwort Letzte Antwort
                                1
                                • mickymM mickym

                                  @dos1973 Du kannst direkt unter allen shellies nochmal einen Datenpunkt command anlegen oder bei den einzelnen shellies. Dort kann man dann mit announce die shellies zwingen ihren status im info Datenpunkt abzulegen oder bei Bedarf kann man das nutzen um die Firmware zu aktualisieren.

                                  siehe: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

                                  Im Info-Datenpunkt findest in der Regel fast alle Infos zu dem Shelly in einem JSON zusammengefasst. So auch ob es ein FW Update gibt, welche FW Version etc.

                                  3e848d3e-149f-4a15-af4e-6f3b2bc2e57b-image.png

                                  Mit announce in dem command Punkte - entweder beim Einzelgerät oder für alle werden die info DP aktualisiert, mit update die normalen states, mit update_fw kannst Du Firmwareupdates anstossen.

                                  Aus dem Link siehst, dass die announce Datenpunkte eher alt sind und bis zur FW. 1.6.x genutzt wurden, ab Version 1.8.x wird Info genutzt. Aktuell siehst ja an meinem Screenshot sind wir bei einer FW Version 1.11.x

                                  Und wenn Du mit NodeRed arbeiten würdest könntest ja meinen Flow nutzen der daraus einzelne Datenpunkte unter userdata macht - (Wenn derzeit auch mit Nacharbeit wegen Admin5). Zeig es Dir mal an einem Beispiel. Theoretisch könnte Dir so ein Flow auch selbst den Info DP unter mqtt aufdröseln.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #45

                                  @mickym sagte in Mqqt best practice:

                                  Und wenn Du mit NodeRed arbeiten würdest könntest ja meinen Flow nutzen der daraus einzelne Datenpunkte unter userdata macht - (Wenn derzeit auch mit Nacharbeit wegen Admin5). Zeig es Dir mal an einem Beispiel. Theoretisch könnte Dir so ein Flow auch selbst den Info DP unter mqtt aufdröseln.

                                  Mit diesem kleinen Flow - könntest Du dann alle states aus dem Info Datenpunkt aufdröseln:

                                  5f4be813-e9a7-4ab3-81ed-52e135ec1a8c-image.png

                                  22a7dba1-6199-4b6c-93a3-97e576c8dd35-image.png

                                  Dann muss man halt wieder das javascript drüber jagen - dieses Mal über userdata - damit einmalig die fehlenden Objekte angelegt werden. NodeRed kann im Moment nur states und keine Objekte anlegen.

                                  Fehlende Stiftsymbole !!!

                                  6b9a7240-9168-4461-bf40-3400df32b2f5-image.png

                                  8a656a47-685a-4221-b27c-2340cf0b47e8-image.png

                                  Das Skript macht dann aus allen fehlenden Objekten - Folderobjekte:

                                  1d665166-dc10-4adb-89bb-aaaf59d9b777-image.png

                                  Ist das aber einmal erledigt, dann werden diese Datenpunkte mit Aktualisieren des Info Datenpunktes automatisch aktualisiert.

                                  ee5a15f6-07be-46d4-9c3b-7d92cf8d2abe-image.png

                                  Ich habe deshalb niemals verstanden, warum man Adapter nutzt, die kaum was anderes machen, als kompakte JSON-String Datenpunkte in einzelne Datenpunkte zerlegt. OK man muss keine Datenpunkte selbst anlegen, wenn man Kommandos verschickt. :) - Punkt gegen mqtt. ;)
                                  Bei Bedarf kann man sich ja auch nur einzelne Datenpunkte aus dem JSON rausholen und in einem Alias beispielsweise abspeichern (habe ich ja vorher schon mal gezeigt, wie das geht).

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @mickym sagte in Mqqt best practice:

                                    Und wenn Du mit NodeRed arbeiten würdest könntest ja meinen Flow nutzen der daraus einzelne Datenpunkte unter userdata macht - (Wenn derzeit auch mit Nacharbeit wegen Admin5). Zeig es Dir mal an einem Beispiel. Theoretisch könnte Dir so ein Flow auch selbst den Info DP unter mqtt aufdröseln.

                                    Mit diesem kleinen Flow - könntest Du dann alle states aus dem Info Datenpunkt aufdröseln:

                                    5f4be813-e9a7-4ab3-81ed-52e135ec1a8c-image.png

                                    22a7dba1-6199-4b6c-93a3-97e576c8dd35-image.png

                                    Dann muss man halt wieder das javascript drüber jagen - dieses Mal über userdata - damit einmalig die fehlenden Objekte angelegt werden. NodeRed kann im Moment nur states und keine Objekte anlegen.

                                    Fehlende Stiftsymbole !!!

                                    6b9a7240-9168-4461-bf40-3400df32b2f5-image.png

                                    8a656a47-685a-4221-b27c-2340cf0b47e8-image.png

                                    Das Skript macht dann aus allen fehlenden Objekten - Folderobjekte:

                                    1d665166-dc10-4adb-89bb-aaaf59d9b777-image.png

                                    Ist das aber einmal erledigt, dann werden diese Datenpunkte mit Aktualisieren des Info Datenpunktes automatisch aktualisiert.

                                    ee5a15f6-07be-46d4-9c3b-7d92cf8d2abe-image.png

                                    Ich habe deshalb niemals verstanden, warum man Adapter nutzt, die kaum was anderes machen, als kompakte JSON-String Datenpunkte in einzelne Datenpunkte zerlegt. OK man muss keine Datenpunkte selbst anlegen, wenn man Kommandos verschickt. :) - Punkt gegen mqtt. ;)
                                    Bei Bedarf kann man sich ja auch nur einzelne Datenpunkte aus dem JSON rausholen und in einem Alias beispielsweise abspeichern (habe ich ja vorher schon mal gezeigt, wie das geht).

                                    mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von mickym
                                    #46

                                    In diesem Info Datenpunkt bekommt man in meinen Augen mind. soviel Infos wie in dem Adapter:

                                    8f5854cc-3b20-418e-9a46-5d56ac368148-image.png

                                    So siehst Du zum Beispiel, ob der Shelly gerade mit einem FW Update beschäftigt ist oder auch RAM Belegung ,die Güte des WLAN Signals, Uhrzeit des Shellies usw.

                                    Uptime ist hier die Zeit in Sekunden (nicht Millisekunden ;) ), seitdem das Gerät neu gebootet hat- also 548006 Sekunden sind in diesem Fall ca. 152 Stunden oder vor gut 6 Tagen.

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      In diesem Info Datenpunkt bekommt man in meinen Augen mind. soviel Infos wie in dem Adapter:

                                      8f5854cc-3b20-418e-9a46-5d56ac368148-image.png

                                      So siehst Du zum Beispiel, ob der Shelly gerade mit einem FW Update beschäftigt ist oder auch RAM Belegung ,die Güte des WLAN Signals, Uhrzeit des Shellies usw.

                                      Uptime ist hier die Zeit in Sekunden (nicht Millisekunden ;) ), seitdem das Gerät neu gebootet hat- also 548006 Sekunden sind in diesem Fall ca. 152 Stunden oder vor gut 6 Tagen.

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #47

                                      @dos1973
                                      Falls Du übrigens mal den Shelly über Deine VIS und nicht das WEB-Interface konfigurieren willst und Du feststellst es geht nicht über MQTT, dann bleibt Dir immer noch die HTTP Schnittstelle, mit der kannst quasi alles machen.

                                      Um zum Beispiel den Zeitserver zu ändern stehen Dir ja die unter settings beschriebenen Parameter zur Verfügung:
                                      https://shelly-api-docs.shelly.cloud/gen1/#settings

                                      Ich hab das sowohl mit GET und POST Requests getestet und funktioniert wunderbar:

                                      663eb4bf-82c6-4f25-a8bf-055ba5e9929d-image.png

                                      Die Get-Requests funktionieren zum Testen auch im Browser wunderbar:

                                      Mit
                                      b6f0f924-291c-455f-a169-8c54b803eb67-image.png

                                      kannst also zum Beispiel den SNTP Server setzen:

                                      8a55bbc2-b8dc-475b-874a-cd48471b7637-image.png

                                      So nun hab ich aber glaube genug Möglichkeiten der Steuerung ohne Adapter aufgezeigt. ;)

                                      Ergänzend sei noch hinzugefügt: Natürlich kannst Du solche HTTP Requests auch über Blockly machen - aber ich bin da kein Fan von, deswegen habe ich hier nur begrenztes Wissen, aber dafür gibts ja dann andere hier an Board.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      D 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @dos1973
                                        Falls Du übrigens mal den Shelly über Deine VIS und nicht das WEB-Interface konfigurieren willst und Du feststellst es geht nicht über MQTT, dann bleibt Dir immer noch die HTTP Schnittstelle, mit der kannst quasi alles machen.

                                        Um zum Beispiel den Zeitserver zu ändern stehen Dir ja die unter settings beschriebenen Parameter zur Verfügung:
                                        https://shelly-api-docs.shelly.cloud/gen1/#settings

                                        Ich hab das sowohl mit GET und POST Requests getestet und funktioniert wunderbar:

                                        663eb4bf-82c6-4f25-a8bf-055ba5e9929d-image.png

                                        Die Get-Requests funktionieren zum Testen auch im Browser wunderbar:

                                        Mit
                                        b6f0f924-291c-455f-a169-8c54b803eb67-image.png

                                        kannst also zum Beispiel den SNTP Server setzen:

                                        8a55bbc2-b8dc-475b-874a-cd48471b7637-image.png

                                        So nun hab ich aber glaube genug Möglichkeiten der Steuerung ohne Adapter aufgezeigt. ;)

                                        Ergänzend sei noch hinzugefügt: Natürlich kannst Du solche HTTP Requests auch über Blockly machen - aber ich bin da kein Fan von, deswegen habe ich hier nur begrenztes Wissen, aber dafür gibts ja dann andere hier an Board.

                                        D Offline
                                        D Offline
                                        dos1973
                                        schrieb am zuletzt editiert von
                                        #48

                                        @mickym sagte in Mqqt best practice:

                                        So nun hab ich aber glaube genug Möglichkeiten der Steuerung ohne Adapter aufgezeigt

                                        eindeutiges JA.
                                        eigentlich war/ ist genau das mein Ziel.
                                        Da ich inzwischen Zuviele von den kleinen Dingern habe, möchte ich nicht Abhängig vom Adapter und der Entwicklung sein.

                                        kann der node-red "Status Teil exportiert werden. Das sehen ja bestimmt noch Sachen drin welche im Screenshot nicht ersichtlich sind.

                                        mickymM 2 Antworten Letzte Antwort
                                        0
                                        • D dos1973

                                          @mickym sagte in Mqqt best practice:

                                          So nun hab ich aber glaube genug Möglichkeiten der Steuerung ohne Adapter aufgezeigt

                                          eindeutiges JA.
                                          eigentlich war/ ist genau das mein Ziel.
                                          Da ich inzwischen Zuviele von den kleinen Dingern habe, möchte ich nicht Abhängig vom Adapter und der Entwicklung sein.

                                          kann der node-red "Status Teil exportiert werden. Das sehen ja bestimmt noch Sachen drin welche im Screenshot nicht ersichtlich sind.

                                          mickymM Online
                                          mickymM Online
                                          mickym
                                          Most Active
                                          schrieb am zuletzt editiert von mickym
                                          #49

                                          @dos1973 sagte in Mqqt best practice:

                                          @mickym sagte in Mqqt best practice:

                                          So nun hab ich aber glaube genug Möglichkeiten der Steuerung ohne Adapter aufgezeigt

                                          eindeutiges JA.
                                          eigentlich war/ ist genau das mein Ziel.
                                          Da ich inzwischen Zuviele von den kleinen Dingern habe, möchte ich nicht Abhängig vom Adapter und der Entwicklung sein.

                                          kann der node-red "Status Teil exportiert werden. Das sehen ja bestimmt noch Sachen drin welche im Screenshot nicht ersichtlich sind.

                                          Der Subflow-Node ist hier in meinem Thread genau beschrieben (z. Bsp muss man im NodeRed Adapter die Erstellung von Fremdobjekten zulassen und die Stringkonvertierung ausschalten):
                                          Beides hier nochmal als Screenshot (Projektfunktion brauchst Du nicht):

                                          09557395-1c8d-44fb-a483-56979f4de2f3-image.png

                                          https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur
                                          https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur/9

                                          Ich hab Dir mal nur den Teil exportiert ohne die mqtt-In Node - das kannst ggf. selbst machen oder alternativ eine iobroker-in Node vorne dran hängen:

                                          1daaf436-db13-4487-97e8-e47d3712409e-image.png

                                          Hier der Flow zum Import - enthält dann automatisch die Subflow Node mit Beschreibung:

                                          
                                           [
                                              {
                                                  "id": "c3403a60.92fbb8",
                                                  "type": "subflow",
                                                  "name": "JSON or Obj to IOBroker",
                                                  "info": "# Creates an IOBroker tree\n\nThis node creates an IOBroker tree out of an Java-Object or JSON String.\n\nThe object tree will be created under 0_userdata.0\nIn addition to the JSON-String or Java Object as `msg.payload` it is necessary to specify a `msg.top` properity in addition to the msg-Object.\n\nThe object tree will be created under 0_userdata.0\n\nExisting `msg.topic` entries will be deleted.\nAn iobroker-out node has to be appended to this subflow node. It is not part of the subflow itself. No topic should be specified in the iobroker out node.\n\nIs no `msg.top` property is defined, then you will get an error in the following iobroker-out node (key or topic does not exist) - if you append a debug node to the subflow node you will get the message: \n> Please define msg.top as root for the object structure \n\n# Erstellt einen Objektbaum im ioBroker\n\nDiese Node erstellt einen Objektbaum im ioBroker aus einem JAVA Objekt bzw. einem JSON String. \n\nDer Baum wird in jedem Fall unter 0_userdata.0 erstellt und zwar unter dem Topic der in` msg.top` mitgegeben wurde. In der `msg.payload` befindet sich dann der JSON String oder das entsprechende Objekt.\n\nExistierende `msg.topic `Einträge werden gelöscht.\nEin entsprechende iobroker-out Node muss an den Flow angehängt werden. Sie ist nicht Bestandteil des Subflows. In dieser iobroker-out Node darf kein Topic angegeben werden. \n\nFalls in keine Angabe in msg.top definiert wurde, wird man in der darauffolgenden iobroker-out node den Fehler erhalten, dass kein key oder topic definiert ist. Falls eine debug Node an den Subflow angehängt wirde erhält man folgende Ausgabe:\n> Please define msg.top as root for the object structure ",
                                                  "category": "parser",
                                                  "in": [
                                                      {
                                                          "x": 60,
                                                          "y": 160,
                                                          "wires": [
                                                              {
                                                                  "id": "94876630.f71748"
                                                              }
                                                          ]
                                                      }
                                                  ],
                                                  "out": [
                                                      {
                                                          "x": 2280,
                                                          "y": 260,
                                                          "wires": [
                                                              {
                                                                  "id": "74b0b536.02371c",
                                                                  "port": 0
                                                              },
                                                              {
                                                                  "id": "ab9b1e85.eea2a",
                                                                  "port": 0
                                                              }
                                                          ]
                                                      }
                                                  ],
                                                  "env": [],
                                                  "meta": {},
                                                  "color": "#E2D96E",
                                                  "icon": "node-red/batch.svg"
                                              },
                                              {
                                                  "id": "eea737e7.7e8fb8",
                                                  "type": "split",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "split object",
                                                  "splt": "\\n",
                                                  "spltType": "str",
                                                  "arraySplt": 1,
                                                  "arraySpltType": "len",
                                                  "stream": false,
                                                  "addname": "key",
                                                  "x": 1170,
                                                  "y": 160,
                                                  "wires": [
                                                      [
                                                          "dc473616.c2b508"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "dc473616.c2b508",
                                                  "type": "change",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "add key to topic",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "stateName",
                                                          "pt": "msg",
                                                          "to": "key",
                                                          "tot": "msg"
                                                      },
                                                      {
                                                          "t": "set",
                                                          "p": "topic",
                                                          "pt": "msg",
                                                          "to": "topic  & '.' & key",
                                                          "tot": "jsonata"
                                                      },
                                                      {
                                                          "t": "change",
                                                          "p": "topic",
                                                          "pt": "msg",
                                                          "from": " ",
                                                          "fromt": "str",
                                                          "to": "_",
                                                          "tot": "str"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 1360,
                                                  "y": 160,
                                                  "wires": [
                                                      [
                                                          "78697695.9a72c8"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "78697695.9a72c8",
                                                  "type": "switch",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "is type?",
                                                  "property": "payload",
                                                  "propertyType": "msg",
                                                  "rules": [
                                                      {
                                                          "t": "istype",
                                                          "v": "array",
                                                          "vt": "array"
                                                      },
                                                      {
                                                          "t": "istype",
                                                          "v": "object",
                                                          "vt": "object"
                                                      },
                                                      {
                                                          "t": "else"
                                                      }
                                                  ],
                                                  "checkall": "true",
                                                  "repair": false,
                                                  "outputs": 3,
                                                  "x": 1540,
                                                  "y": 160,
                                                  "wires": [
                                                      [
                                                          "d839cef8.577f1"
                                                      ],
                                                      [
                                                          "eea737e7.7e8fb8"
                                                      ],
                                                      [
                                                          "bdfdae99.f4d9d"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "d839cef8.577f1",
                                                  "type": "split",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "split array",
                                                  "splt": "\\n",
                                                  "spltType": "str",
                                                  "arraySplt": 1,
                                                  "arraySpltType": "len",
                                                  "stream": false,
                                                  "addname": "",
                                                  "x": 580,
                                                  "y": 280,
                                                  "wires": [
                                                      [
                                                          "36327f2d.8efc3"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "36327f2d.8efc3",
                                                  "type": "change",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "add index to topic",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "topic",
                                                          "pt": "msg",
                                                          "to": "topic  & '.' & parts.index",
                                                          "tot": "jsonata"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 770,
                                                  "y": 280,
                                                  "wires": [
                                                      [
                                                          "d8f58d9b.b6a1"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "74b0b536.02371c",
                                                  "type": "change",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "finalize msg.topic",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "top",
                                                          "pt": "msg",
                                                          "to": "'0_userdata.0.' & top",
                                                          "tot": "jsonata"
                                                      },
                                                      {
                                                          "t": "set",
                                                          "p": "topic",
                                                          "pt": "msg",
                                                          "to": "top & topic",
                                                          "tot": "jsonata"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 1970,
                                                  "y": 240,
                                                  "wires": [
                                                      []
                                                  ]
                                              },
                                              {
                                                  "id": "4cdee7cb.910c38",
                                                  "type": "switch",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "is type?",
                                                  "property": "payload",
                                                  "propertyType": "msg",
                                                  "rules": [
                                                      {
                                                          "t": "istype",
                                                          "v": "json",
                                                          "vt": "json"
                                                      },
                                                      {
                                                          "t": "istype",
                                                          "v": "object",
                                                          "vt": "object"
                                                      },
                                                      {
                                                          "t": "istype",
                                                          "v": "array",
                                                          "vt": "array"
                                                      },
                                                      {
                                                          "t": "else"
                                                      }
                                                  ],
                                                  "checkall": "true",
                                                  "repair": false,
                                                  "outputs": 4,
                                                  "x": 400,
                                                  "y": 160,
                                                  "wires": [
                                                      [
                                                          "c1c41535.17d3b8"
                                                      ],
                                                      [
                                                          "eea737e7.7e8fb8"
                                                      ],
                                                      [
                                                          "d839cef8.577f1"
                                                      ],
                                                      [
                                                          "d8f58d9b.b6a1"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "c1c41535.17d3b8",
                                                  "type": "json",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "",
                                                  "property": "payload",
                                                  "action": "",
                                                  "pretty": false,
                                                  "x": 570,
                                                  "y": 120,
                                                  "wires": [
                                                      [
                                                          "3ccd67db.375058"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "bdfdae99.f4d9d",
                                                  "type": "switch",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "is msg.top != null",
                                                  "property": "top",
                                                  "propertyType": "msg",
                                                  "rules": [
                                                      {
                                                          "t": "nnull"
                                                      },
                                                      {
                                                          "t": "null"
                                                      }
                                                  ],
                                                  "checkall": "true",
                                                  "repair": false,
                                                  "outputs": 2,
                                                  "x": 1750,
                                                  "y": 280,
                                                  "wires": [
                                                      [
                                                          "74b0b536.02371c"
                                                      ],
                                                      [
                                                          "7ba7dc21.fdb214"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "7ba7dc21.fdb214",
                                                  "type": "change",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "payload = warning",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "payload",
                                                          "pt": "msg",
                                                          "to": "Please define msg.top as root for the object structure",
                                                          "tot": "str"
                                                      },
                                                      {
                                                          "t": "delete",
                                                          "p": "topic",
                                                          "pt": "msg"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 1970,
                                                  "y": 300,
                                                  "wires": [
                                                      [
                                                          "ab9b1e85.eea2a"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "ab9b1e85.eea2a",
                                                  "type": "rbe",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "",
                                                  "func": "rbe",
                                                  "gap": "",
                                                  "start": "",
                                                  "inout": "out",
                                                  "septopics": true,
                                                  "property": "payload",
                                                  "x": 2130,
                                                  "y": 300,
                                                  "wires": [
                                                      []
                                                  ]
                                              },
                                              {
                                                  "id": "94876630.f71748",
                                                  "type": "change",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "",
                                                  "rules": [
                                                      {
                                                          "t": "delete",
                                                          "p": "topic",
                                                          "pt": "msg"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 210,
                                                  "y": 160,
                                                  "wires": [
                                                      [
                                                          "4cdee7cb.910c38"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "3ccd67db.375058",
                                                  "type": "switch",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "is array?",
                                                  "property": "payload",
                                                  "propertyType": "msg",
                                                  "rules": [
                                                      {
                                                          "t": "istype",
                                                          "v": "array",
                                                          "vt": "array"
                                                      },
                                                      {
                                                          "t": "else"
                                                      }
                                                  ],
                                                  "checkall": "true",
                                                  "repair": false,
                                                  "outputs": 2,
                                                  "x": 700,
                                                  "y": 120,
                                                  "wires": [
                                                      [
                                                          "d839cef8.577f1"
                                                      ],
                                                      [
                                                          "eea737e7.7e8fb8"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "80dde279.c28ec",
                                                  "type": "comment",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "Array",
                                                  "info": "",
                                                  "x": 400,
                                                  "y": 280,
                                                  "wires": []
                                              },
                                              {
                                                  "id": "95ee816e.68a16",
                                                  "type": "comment",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "object",
                                                  "info": "",
                                                  "x": 1140,
                                                  "y": 100,
                                                  "wires": []
                                              },
                                              {
                                                  "id": "d8f58d9b.b6a1",
                                                  "type": "switch",
                                                  "z": "c3403a60.92fbb8",
                                                  "name": "is type?",
                                                  "property": "payload",
                                                  "propertyType": "msg",
                                                  "rules": [
                                                      {
                                                          "t": "istype",
                                                          "v": "object",
                                                          "vt": "object"
                                                      },
                                                      {
                                                          "t": "istype",
                                                          "v": "array",
                                                          "vt": "array"
                                                      },
                                                      {
                                                          "t": "else"
                                                      }
                                                  ],
                                                  "checkall": "true",
                                                  "repair": false,
                                                  "outputs": 3,
                                                  "x": 960,
                                                  "y": 280,
                                                  "wires": [
                                                      [
                                                          "eea737e7.7e8fb8"
                                                      ],
                                                      [
                                                          "d839cef8.577f1"
                                                      ],
                                                      [
                                                          "bdfdae99.f4d9d"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "61325de1.acf564",
                                                  "type": "json",
                                                  "z": "169f5b00.a13415",
                                                  "name": "",
                                                  "property": "payload",
                                                  "action": "",
                                                  "pretty": false,
                                                  "x": 480,
                                                  "y": 220,
                                                  "wires": [
                                                      [
                                                          "cf5f91d.7edbb7"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "cf5f91d.7edbb7",
                                                  "type": "change",
                                                  "z": "169f5b00.a13415",
                                                  "name": "",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "top",
                                                          "pt": "msg",
                                                          "to": "shellies.kueche.spuelmaschine",
                                                          "tot": "str"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 670,
                                                  "y": 220,
                                                  "wires": [
                                                      [
                                                          "f873a8e3.a764f8"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "f873a8e3.a764f8",
                                                  "type": "subflow:c3403a60.92fbb8",
                                                  "z": "169f5b00.a13415",
                                                  "name": "",
                                                  "x": 910,
                                                  "y": 220,
                                                  "wires": [
                                                      [
                                                          "a85e782b.a06c68"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "a85e782b.a06c68",
                                                  "type": "ioBroker out",
                                                  "z": "169f5b00.a13415",
                                                  "name": "",
                                                  "topic": "",
                                                  "ack": "true",
                                                  "autoCreate": "true",
                                                  "stateName": "",
                                                  "role": "",
                                                  "payloadType": "",
                                                  "readonly": "false",
                                                  "stateUnit": "",
                                                  "stateMin": "",
                                                  "stateMax": "",
                                                  "x": 1140,
                                                  "y": 220,
                                                  "wires": []
                                              }
                                          ]
                                          

                                          Standardmässig werden die Datenpunkte nur als Read-Only Datenpunkte angelegt - macht eigentlich auch Sinn, da man damit ja nichts steuert, sondern Informationen liest. Willst Du das alle Datenpunkte, die von dem Flow angelegt werden beschreibbar sind, musst Du das in der iobroker-out Node angeben:

                                          a3e37ac9-e4fd-4cba-a3f5-369fc75d2f6b-image.png

                                          Ausserdem bekommt man glaub sogar Warnungen im LOG wenn man ReadOnly Felder beschreiben will. Ganz blicke ich das auch nicht - alles Admin5 Änderungen.
                                          EDIT2: Na anscheinend kann man die Datenpunkte doch ReadOnly lassen und sie werden es gibt keine Fehlermeldungen wenn der Adapter die Datenpunkte beschreibt. Vielleicht wurde da was geändert im Admin5.

                                          Und wie gesagt in der Hilfe zu der Subflow Node habe ich die Funktionsweise nochmals kurz beschrieben:

                                          b17036cc-33ce-4f05-917e-d419d01a15cb-image.png

                                          Die Bäume werden also als msg.top Datenpunkte ALLE unter 0_userdata.0 angelegt. Wenn Du diese selbst wieder als mqtt topics über die mqtt-out Nodes beschreiben willst, musst halt über eine Change Node die topics wieder anpassen!

                                          Wenn Du nun natürlich mehrere Geräte unter userdata.0 aufgesplittet haben willst brauchst nur den vorderen Teil zu ändern, der hintere kann gleich bleiben.

                                          4a0fcd38-e76e-49a2-a07a-1ca3878a55be-image.png

                                          Zur Veranschaulichung habe ich mal die zugehörigen Nodes gruppiert und beschriftet:

                                          242984df-8170-4cb8-b14f-b36c06112c84-image.png

                                          Man kann aber auch alle 5 Nodes gruppieren und pro Device machen - macht wahrscheinlich keinen Unterschied.

                                          EDIT: Sorry hatte die Code-Tags beim Flow vergessen, habe ich nun nachgetragen, damit man das leichter kopieren kann. Ich hasse das selbst, wenn man da ewig scrollen muss anstelle "Select All" und dann kopieren. ;)

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          321

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe