Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Shelly-Geräte mit MQTT-Adapter steuern

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    206

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Shelly-Geräte mit MQTT-Adapter steuern

Shelly-Geräte mit MQTT-Adapter steuern

Scheduled Pinned Locked Moved ioBroker Allgemein
52 Posts 8 Posters 6.3k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mickymM Offline
    mickymM Offline
    mickym
    Most Active
    wrote on last edited by mickym
    #21

    @klausstoertebeker Nein - da bin ich leider überfragt.

    Ich bin zwar im Shelly Forum registriert und habe diesen Thread gefunden: https://shelly-forum.com/thread/23609-shelly-wall-display-firmware-1-2-5-mit-thermostatfunktion-released/

    Aber schlau werde ich daraus nicht. Das ist mir im Moment zu speziell - da ist es besser, wenn Du direkt dort weiter fragst.

    Du kannst ja die Kommandos direkt in den Datenpunkten ausprobieren und wenn das funktioniert, dann kann ich ggf. bei der Konvertierungsfunktion helfen, aber zu diesen speziellen Parametern kann ich nichts sagen.

    Es ist ja auch nicht gesagt, dass Du alle Einstellungen über mqtt einstellen kannst, sondern vielleicht gehen bestimmte Einstellungen nur über die Weboberfläche.

    In dem Thread habe ich zu den Parametern nur folgendes gefunden:

    1aa9ad53-ded9-4b5a-9edb-319232fff4b5-image.png

    Sorry - aber ich denke, da musst Du Shelly Support bemühen und wie gesagt Du weißt ja nun dass Du Kommandos immer direkt in das rpc topic unter dem Gerät schreiben musst.

    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.

    KlausStoertebekerK Master67M 2 Replies Last reply
    0
    • mickymM mickym

      @klausstoertebeker Nein - da bin ich leider überfragt.

      Ich bin zwar im Shelly Forum registriert und habe diesen Thread gefunden: https://shelly-forum.com/thread/23609-shelly-wall-display-firmware-1-2-5-mit-thermostatfunktion-released/

      Aber schlau werde ich daraus nicht. Das ist mir im Moment zu speziell - da ist es besser, wenn Du direkt dort weiter fragst.

      Du kannst ja die Kommandos direkt in den Datenpunkten ausprobieren und wenn das funktioniert, dann kann ich ggf. bei der Konvertierungsfunktion helfen, aber zu diesen speziellen Parametern kann ich nichts sagen.

      Es ist ja auch nicht gesagt, dass Du alle Einstellungen über mqtt einstellen kannst, sondern vielleicht gehen bestimmte Einstellungen nur über die Weboberfläche.

      In dem Thread habe ich zu den Parametern nur folgendes gefunden:

      1aa9ad53-ded9-4b5a-9edb-319232fff4b5-image.png

      Sorry - aber ich denke, da musst Du Shelly Support bemühen und wie gesagt Du weißt ja nun dass Du Kommandos immer direkt in das rpc topic unter dem Gerät schreiben musst.

      KlausStoertebekerK Offline
      KlausStoertebekerK Offline
      KlausStoertebeker
      wrote on last edited by
      #22

      @mickym
      Moin moin mickym,
      Du hast erwähnt, dass Du auch Gen 1-Geräte im Einsatz hast. Ich habe fünf Shelly TRV-Thermostatventile und drei Shelly Motion 2-Bewegungsmelder im Einsatz und möchte die auch über MQTT steuern, werde aber aus der Dokumentation nicht richtig schlau.
      Wenn ich das richtig verstanden habe, muss ich die Befehle in den Datenpunkt "command" schreiben. Aber über das Format lässt sich die Dokumentation von Shelly nicht aus.
      Kannst Du mir da weiterhelfen?
      Und noch eine Frage zu "Node-Red":
      Hat "Node-Red" eine eigene Ereignis- und Zeitsteuerung? Hintergrund der Frage ist, dass ich aktuell keine zeit- und ereignisgesteuerten Funktionen aufgerufen bekomme, weil keine Trigger mehr ausgelöst werden
      warum das so ist, weiß ich nicht. Ich habe schon alle Adapter auf die Versionen aus dem stable-Repository umgestellt und nicht benötigte Adapter gelöscht, aber das hat nichts geholfen.
      Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

      ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

      mickymM 1 Reply Last reply
      0
      • KlausStoertebekerK KlausStoertebeker

        @mickym
        Moin moin mickym,
        Du hast erwähnt, dass Du auch Gen 1-Geräte im Einsatz hast. Ich habe fünf Shelly TRV-Thermostatventile und drei Shelly Motion 2-Bewegungsmelder im Einsatz und möchte die auch über MQTT steuern, werde aber aus der Dokumentation nicht richtig schlau.
        Wenn ich das richtig verstanden habe, muss ich die Befehle in den Datenpunkt "command" schreiben. Aber über das Format lässt sich die Dokumentation von Shelly nicht aus.
        Kannst Du mir da weiterhelfen?
        Und noch eine Frage zu "Node-Red":
        Hat "Node-Red" eine eigene Ereignis- und Zeitsteuerung? Hintergrund der Frage ist, dass ich aktuell keine zeit- und ereignisgesteuerten Funktionen aufgerufen bekomme, weil keine Trigger mehr ausgelöst werden
        warum das so ist, weiß ich nicht. Ich habe schon alle Adapter auf die Versionen aus dem stable-Repository umgestellt und nicht benötigte Adapter gelöscht, aber das hat nichts geholfen.
        Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        wrote on last edited by mickym
        #23

        @klausstoertebeker Also die Shelly-Gen1 Geräte sind noch viel einfacher zu bedienen. Ja Du musst das in den command topic schreiben - wobei Du bei den Bewegungsmeldern ja nichts zum steuern hast. Einstellungen kannst Du ggf. über das HTTP Interface bzw. die HTTP API machen (s. settings).

        Hier erst mal die gesamte Doku: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

        Bei den Shelly TRV hast Du mehrere Möglichkeiten: https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv-mqtt

        Du kannst entweder alle Thermostate auf einmal ansprechen (shellies/thermostat/0/command/ to address all TRVs) oder diese einzeln ansprechen ( or shellies/shellytrv-<id>/thermostat/0/command/ to address an individual device) .
        Die command-topics sind auf der Seite eigentlich im Einzelnen alle aufgelistet, was Du machen kannst.

        a3865a57-c799-4612-82fd-64f1d9bd021c-image.png

        Also einfach
        auch als topic unter dem command topic
        shellies/shellytrv-<id>/thermostat/0/command/target_t und dort dann 22.

        Also kein JSON - wie ich vorher geschrieben hatte!!!

        Die command topic sind als generell immer direkt unter der zu steuernden Einheit:
        7a610410-c8cf-464e-9dcc-307caa78eedb-image.png

        Node-Red hat zwar eine eigene Steuerung, aber die basiert natürlich auch darauf, dass das Betriebssystem entsprechend meldet. Insofern ja und nein. Außerdem (s. unten) wird der NodeRed Adapter als Tochterprozess gestartet. Wenn der Iob mit allen Adaptern ein Problem macht, dann auch mit dem NodeRed Adapter.
        Ansonsten wenn Du Hardware ansprichst, werden oft die gleichen NodeJS Bibliotheken verwendet, aber man kann beim Ansprechen der Hardware das als Ersatz zu einem Adapter sehen. Auch wenn ein Adapter nicht funktioniert, kann man es mit einer Node versuchen.
        Quasi onBoard ist ja die Inject Node - die zeitereignisse verarbeiten kann, ansonsten kann ich Dir die cronplus Node empfehlen oder die chronos Nodes (sehr vielfältig) oder auch wenn man grafisch arbeiten möchte die light scheduler NOdes.

        Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

        Wenn Dein iobroker alle Adapter irgendwie tot gestellt hat, dann hättest Du auch mit dem NodeRed Adapter das gleiche Problem, da Du ja NodeRed nicht als Standalone Version betreibst. Was auch nicht sinnvoll ist, da Du dann nicht auf die iobroker Datenpunkte aus NodeRed zugreifen kannst. Sprich jeder Adapter im iobroker ist ja ein Tochterprozess des iobrokers.

        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.

        KlausStoertebekerK 1 Reply Last reply
        0
        • mickymM mickym

          @klausstoertebeker Also die Shelly-Gen1 Geräte sind noch viel einfacher zu bedienen. Ja Du musst das in den command topic schreiben - wobei Du bei den Bewegungsmeldern ja nichts zum steuern hast. Einstellungen kannst Du ggf. über das HTTP Interface bzw. die HTTP API machen (s. settings).

          Hier erst mal die gesamte Doku: https://shelly-api-docs.shelly.cloud/gen1/#common-mqtt-commands

          Bei den Shelly TRV hast Du mehrere Möglichkeiten: https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv-mqtt

          Du kannst entweder alle Thermostate auf einmal ansprechen (shellies/thermostat/0/command/ to address all TRVs) oder diese einzeln ansprechen ( or shellies/shellytrv-<id>/thermostat/0/command/ to address an individual device) .
          Die command-topics sind auf der Seite eigentlich im Einzelnen alle aufgelistet, was Du machen kannst.

          a3865a57-c799-4612-82fd-64f1d9bd021c-image.png

          Also einfach
          auch als topic unter dem command topic
          shellies/shellytrv-<id>/thermostat/0/command/target_t und dort dann 22.

          Also kein JSON - wie ich vorher geschrieben hatte!!!

          Die command topic sind als generell immer direkt unter der zu steuernden Einheit:
          7a610410-c8cf-464e-9dcc-307caa78eedb-image.png

          Node-Red hat zwar eine eigene Steuerung, aber die basiert natürlich auch darauf, dass das Betriebssystem entsprechend meldet. Insofern ja und nein. Außerdem (s. unten) wird der NodeRed Adapter als Tochterprozess gestartet. Wenn der Iob mit allen Adaptern ein Problem macht, dann auch mit dem NodeRed Adapter.
          Ansonsten wenn Du Hardware ansprichst, werden oft die gleichen NodeJS Bibliotheken verwendet, aber man kann beim Ansprechen der Hardware das als Ersatz zu einem Adapter sehen. Auch wenn ein Adapter nicht funktioniert, kann man es mit einer Node versuchen.
          Quasi onBoard ist ja die Inject Node - die zeitereignisse verarbeiten kann, ansonsten kann ich Dir die cronplus Node empfehlen oder die chronos Nodes (sehr vielfältig) oder auch wenn man grafisch arbeiten möchte die light scheduler NOdes.

          Hätte ich beim Einsatz von "Node-Red" das gleiche Problem?

          Wenn Dein iobroker alle Adapter irgendwie tot gestellt hat, dann hättest Du auch mit dem NodeRed Adapter das gleiche Problem, da Du ja NodeRed nicht als Standalone Version betreibst. Was auch nicht sinnvoll ist, da Du dann nicht auf die iobroker Datenpunkte aus NodeRed zugreifen kannst. Sprich jeder Adapter im iobroker ist ja ein Tochterprozess des iobrokers.

          KlausStoertebekerK Offline
          KlausStoertebekerK Offline
          KlausStoertebeker
          wrote on last edited by
          #24

          @mickym
          danke für die Info 🙂

          Ich habe nur noch eine Frage zur command-Syntax. Wenn ich beispielsweise den target_C auf 22 Grad stellen will, was schreibe ich dann in den command-Datenpunkt:

          target_C: 22
          target_C = 22
          target_C?value=22
          

          ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

          mickymM 1 Reply Last reply
          0
          • KlausStoertebekerK KlausStoertebeker

            @mickym
            danke für die Info 🙂

            Ich habe nur noch eine Frage zur command-Syntax. Wenn ich beispielsweise den target_C auf 22 Grad stellen will, was schreibe ich dann in den command-Datenpunkt:

            target_C: 22
            target_C = 22
            target_C?value=22
            
            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            wrote on last edited by mickym
            #25

            @klausstoertebeker Nein es heißt

            1. target_t und nicht target_c und
            2. zweitens ist das ein eigenter topic unter command - in dem Du nur die Zahl publishst.

            Also unter

            shellies/shellytrv-<id>/thermostat/0/command/target_t, also unter thermostat/0 machst Du ein Folder command und darunter ein Datenpunkt target_t und in den schreibst Du eine Zahl als Zieltemperatur.

            In diesem Thread siehst Du dass target_t ein eigenes topic unter command ist:

            eeda97b7-5104-4ec3-80c3-f6ba5f0d3a39-image.png

            Das gilt aber wie gesagt nur für Gen1 Geräte, nicht für Gen3 Geräte

            19ea2fdc-8e84-485f-a8bc-834183a221b1-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.

            KlausStoertebekerK 1 Reply Last reply
            0
            • mickymM mickym

              @klausstoertebeker Nein es heißt

              1. target_t und nicht target_c und
              2. zweitens ist das ein eigenter topic unter command - in dem Du nur die Zahl publishst.

              Also unter

              shellies/shellytrv-<id>/thermostat/0/command/target_t, also unter thermostat/0 machst Du ein Folder command und darunter ein Datenpunkt target_t und in den schreibst Du eine Zahl als Zieltemperatur.

              In diesem Thread siehst Du dass target_t ein eigenes topic unter command ist:

              eeda97b7-5104-4ec3-80c3-f6ba5f0d3a39-image.png

              Das gilt aber wie gesagt nur für Gen1 Geräte, nicht für Gen3 Geräte

              19ea2fdc-8e84-485f-a8bc-834183a221b1-image.png

              KlausStoertebekerK Offline
              KlausStoertebekerK Offline
              KlausStoertebeker
              wrote on last edited by KlausStoertebeker
              #26

              @mickym
              Moin moin mickym,
              ich brauche nochmal Deine Hilfe. Ich möchte aus folgender JSON-formatierter Zeichenkette folgende Information extrahieren

              {
                "src": "shellyplusi4-c4d8d554856c",
                "dst": "shellyplusi4-c4d8d554856c/events",
                "method": "NotifyEvent",
                "params": {
                  "ts": 1742530641.42,
                  "events": [
                    {
                      "component": "input:2",
                      "id": 2,
                      "event": "single_push",
                      "ts": 1742530641.42
                    }
                  ]
                }
              }
              

              folgende Information extrahieren:
              wenn "events" vorhanden dann wenn "component" = "input:2" enthalten gib den Wert von "event" zurück.
              Wie kann ich das mit dem JSON.parse() und/oder anderen JSON.xxxx machen? Ich möchte das in einen Datenpunkt von einem Alias packen, um den RPC-Event-Datenpunkt eines Shelly auszuwerten.

              Hintergrund ist, dass ich nicht nur feststellen will, ob eine Taste gedrückt wurde (hier Taste an "input:2"), sondern auch, um was für einen Tastendruck es sich gehandelt hat (zum Beispiel "einfach", "zweifach", "dreifach", "lang"...)

              Wäre das dann vielleicht sowas wie

              if(JSON.parse(JSON.parse(val).params.events).component == "input:2") JSON.parse(JSON.parse(val).params.events).event; "";
              

              ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

              mickymM 1 Reply Last reply
              0
              • KlausStoertebekerK KlausStoertebeker

                @mickym
                Moin moin mickym,
                ich brauche nochmal Deine Hilfe. Ich möchte aus folgender JSON-formatierter Zeichenkette folgende Information extrahieren

                {
                  "src": "shellyplusi4-c4d8d554856c",
                  "dst": "shellyplusi4-c4d8d554856c/events",
                  "method": "NotifyEvent",
                  "params": {
                    "ts": 1742530641.42,
                    "events": [
                      {
                        "component": "input:2",
                        "id": 2,
                        "event": "single_push",
                        "ts": 1742530641.42
                      }
                    ]
                  }
                }
                

                folgende Information extrahieren:
                wenn "events" vorhanden dann wenn "component" = "input:2" enthalten gib den Wert von "event" zurück.
                Wie kann ich das mit dem JSON.parse() und/oder anderen JSON.xxxx machen? Ich möchte das in einen Datenpunkt von einem Alias packen, um den RPC-Event-Datenpunkt eines Shelly auszuwerten.

                Hintergrund ist, dass ich nicht nur feststellen will, ob eine Taste gedrückt wurde (hier Taste an "input:2"), sondern auch, um was für einen Tastendruck es sich gehandelt hat (zum Beispiel "einfach", "zweifach", "dreifach", "lang"...)

                Wäre das dann vielleicht sowas wie

                if(JSON.parse(JSON.parse(val).params.events).component == "input:2") JSON.parse(JSON.parse(val).params.events).event; "";
                
                mickymM Offline
                mickymM Offline
                mickym
                Most Active
                wrote on last edited by mickym
                #27

                Ob das mit den events so gut ist, bezweifle ich mal - da das ein Array ist und wenn das event an anderer Stelle steht, dann schaust Du in die Röhre. Ich würde lieber bei Status schauen. "If" funktioniert in meinen Augen auch nicht.

                So wie es momentan funktioniert wäre so:

                JSON.parse(val).params.events[0].component === "input:2" ? JSON.parse(val).params.events[0].event  : ""
                

                Aber wie gesagt, dass geht nur wenn das event an 1. Stelle steht. Wenn das komplexer wird, würde ich doch lieber eine Logikamschine nehmen. So funktioniert es halt wenn das an erster Stelle im Array steht.

                Die Frage ist halt - gibt es dennn unter status kein "input:2"
                8beb3228-c48c-43be-9589-719308450eed-image.png

                Wie gesagt, so funktioniert es zwar - aber ich würde immer den status erst abfragen, bevor ich auf events reagiere. Dann kannst Dir auch die Bedingung sparen, da unter status "input:2" auch nur dann aktualisiert wird, wenn getriggert.

                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.

                KlausStoertebekerK 1 Reply Last reply
                0
                • mickymM mickym

                  Ob das mit den events so gut ist, bezweifle ich mal - da das ein Array ist und wenn das event an anderer Stelle steht, dann schaust Du in die Röhre. Ich würde lieber bei Status schauen. "If" funktioniert in meinen Augen auch nicht.

                  So wie es momentan funktioniert wäre so:

                  JSON.parse(val).params.events[0].component === "input:2" ? JSON.parse(val).params.events[0].event  : ""
                  

                  Aber wie gesagt, dass geht nur wenn das event an 1. Stelle steht. Wenn das komplexer wird, würde ich doch lieber eine Logikamschine nehmen. So funktioniert es halt wenn das an erster Stelle im Array steht.

                  Die Frage ist halt - gibt es dennn unter status kein "input:2"
                  8beb3228-c48c-43be-9589-719308450eed-image.png

                  Wie gesagt, so funktioniert es zwar - aber ich würde immer den status erst abfragen, bevor ich auf events reagiere. Dann kannst Dir auch die Bedingung sparen, da unter status "input:2" auch nur dann aktualisiert wird, wenn getriggert.

                  KlausStoertebekerK Offline
                  KlausStoertebekerK Offline
                  KlausStoertebeker
                  wrote on last edited by
                  #28

                  @mickym

                  Hallo mickym,
                  ich kann den Status eines "input:x" offenbar nur auswerten, wenn dieser als "Switch" konfiguriert ist. Dann bekomme ich über "JSON.parse(val).state" den aktuellen Schalterstatus ("true" oder "false").
                  Ich habe aber meine "input:x" als "Button" konfiguriert und wollte auch hier über die "JSON.parse(val).state" Funktion die Art des Tastendrucks auswerten. Aber offenbar ändert sich der "state" nicht, wenn der "input:x" als Button konfiguriert ist - der ist immer "null". Zumindest habe ich mir mal ein Skript geschieben, dass auf eine Statusänderung getriggert war. Aber das hat nie ausgelöst"...

                  JSON.parse(val).params.events[0].component === "input:0" ? JSON.parse(val).params.events[0].event  : ""
                  

                  funktioniert prima, allerdings bekomme ich nun vom Javascript-Adapter ständig folgende Fehlermeldungen:

                  javascript.0   2025-03-23 18:32:00.161  error  Invalid read function for "alias.0.Kueche_Deckenbeleuchtung_Hw-Schalter.Schalter": "JSON.parse(val).params.events[0].component === "input:1" ? JSON.parse(val).params.events[0].event : (null)" => Cannot read properties of undefined (reading '0')
                  

                  Ich schätze aber mal, dass das damit zusammenhängt, dass nicht bei jedem Event auch die Attribute "component" und "event" enthalten sind, oder? Kann man diese Fehler irgendwie abfangen, indem man die read-Funktion anpasst?

                  ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                  mickymM 1 Reply Last reply
                  0
                  • KlausStoertebekerK KlausStoertebeker

                    @mickym

                    Hallo mickym,
                    ich kann den Status eines "input:x" offenbar nur auswerten, wenn dieser als "Switch" konfiguriert ist. Dann bekomme ich über "JSON.parse(val).state" den aktuellen Schalterstatus ("true" oder "false").
                    Ich habe aber meine "input:x" als "Button" konfiguriert und wollte auch hier über die "JSON.parse(val).state" Funktion die Art des Tastendrucks auswerten. Aber offenbar ändert sich der "state" nicht, wenn der "input:x" als Button konfiguriert ist - der ist immer "null". Zumindest habe ich mir mal ein Skript geschieben, dass auf eine Statusänderung getriggert war. Aber das hat nie ausgelöst"...

                    JSON.parse(val).params.events[0].component === "input:0" ? JSON.parse(val).params.events[0].event  : ""
                    

                    funktioniert prima, allerdings bekomme ich nun vom Javascript-Adapter ständig folgende Fehlermeldungen:

                    javascript.0   2025-03-23 18:32:00.161  error  Invalid read function for "alias.0.Kueche_Deckenbeleuchtung_Hw-Schalter.Schalter": "JSON.parse(val).params.events[0].component === "input:1" ? JSON.parse(val).params.events[0].event : (null)" => Cannot read properties of undefined (reading '0')
                    

                    Ich schätze aber mal, dass das damit zusammenhängt, dass nicht bei jedem Event auch die Attribute "component" und "event" enthalten sind, oder? Kann man diese Fehler irgendwie abfangen, indem man die read-Funktion anpasst?

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    wrote on last edited by
                    #29

                    @klausstoertebeker sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                    Ich schätze aber mal, dass das damit zusammenhängt, dass nicht bei jedem Event auch die Attribute "component" und "event" enthalten sind, oder?

                    Ja - deswegen ist events auch ungeeignet. Du sollst unter status den Datenpunkt auswerten. Ein Button hat KEINEN Zustand - deswegen ist er in der Regel true. Das heißt hier prüft man nur auf Aktualisierung.

                    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.

                    KlausStoertebekerK 1 Reply Last reply
                    0
                    • mickymM mickym

                      @klausstoertebeker sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                      Ich schätze aber mal, dass das damit zusammenhängt, dass nicht bei jedem Event auch die Attribute "component" und "event" enthalten sind, oder?

                      Ja - deswegen ist events auch ungeeignet. Du sollst unter status den Datenpunkt auswerten. Ein Button hat KEINEN Zustand - deswegen ist er in der Regel true. Das heißt hier prüft man nur auf Aktualisierung.

                      KlausStoertebekerK Offline
                      KlausStoertebekerK Offline
                      KlausStoertebeker
                      wrote on last edited by
                      #30

                      @mickym

                      Bei mir sind die Buttons "null" - siehe hier:

                      Bildschirmfoto vom 2025-03-23 18-45-26.png

                      ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                      mickymM 1 Reply Last reply
                      0
                      • KlausStoertebekerK KlausStoertebeker

                        @mickym

                        Bei mir sind die Buttons "null" - siehe hier:

                        Bildschirmfoto vom 2025-03-23 18-45-26.png

                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        wrote on last edited by
                        #31

                        @klausstoertebeker und bei denn switches?

                        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.

                        KlausStoertebekerK 1 Reply Last reply
                        0
                        • mickymM mickym

                          @klausstoertebeker und bei denn switches?

                          KlausStoertebekerK Offline
                          KlausStoertebekerK Offline
                          KlausStoertebeker
                          wrote on last edited by
                          #32

                          @mickym

                          Ob die Switches an oder aus sind, siehst Du am Attribut "output": "true" = an...
                          Und ich muss Dir recht geben: Der Status der "input:x" wechselt von "null" auf "true", wenn er gedrückt wird - mea culpa! Vermutlich hat mein damaliges Skript nicht reagirt, weil ich nicht auf einen String sondern auf einen Boolean verglichen habe.

                          Kann man diese Abfrage auch irgendwie in die Alias-read-Funktion packen? Vielleicht in der folgenden Art:

                          JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state === "true" ? JSON.parse(val).params.events[0].event  : "null"
                          

                          ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                          mickymM 1 Reply Last reply
                          0
                          • KlausStoertebekerK KlausStoertebeker

                            @mickym

                            Ob die Switches an oder aus sind, siehst Du am Attribut "output": "true" = an...
                            Und ich muss Dir recht geben: Der Status der "input:x" wechselt von "null" auf "true", wenn er gedrückt wird - mea culpa! Vermutlich hat mein damaliges Skript nicht reagirt, weil ich nicht auf einen String sondern auf einen Boolean verglichen habe.

                            Kann man diese Abfrage auch irgendwie in die Alias-read-Funktion packen? Vielleicht in der folgenden Art:

                            JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state === "true" ? JSON.parse(val).params.events[0].event  : "null"
                            
                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            wrote on last edited by mickym
                            #33

                            @klausstoertebeker

                            === "true" 
                            

                            läßt Du einnfach weg.

                            Also so:

                            JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state ? JSON.parse(val).params.events[0].event : "null"
                            

                            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.

                            KlausStoertebekerK mickymM 2 Replies Last reply
                            0
                            • mickymM mickym

                              @klausstoertebeker

                              === "true" 
                              

                              läßt Du einnfach weg.

                              Also so:

                              JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state ? JSON.parse(val).params.events[0].event : "null"
                              
                              KlausStoertebekerK Offline
                              KlausStoertebekerK Offline
                              KlausStoertebeker
                              wrote on last edited by
                              #34

                              @mickym

                              Habe ich gemacht, und ich erhalte jetzt folgenden Fehler:

                              javascript.0  2025-03-23 19:17:00.212  error  Invalid read function for "alias.0.Wohnzimmer_Esstischlampe_Hw-Schalter.Taster": "JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state ? JSON.parse(val).params.events[0].event : "null"" => missing ) after argument list
                              

                              ioBroker-Host: Raspberry Pi 5 (8GByte RAM) mit Halo8-KI-Hat, Argon ONE M.2-Gehäuse mit 256GByte PCIe-SSD

                              1 Reply Last reply
                              0
                              • mickymM mickym

                                @klausstoertebeker

                                === "true" 
                                

                                läßt Du einnfach weg.

                                Also so:

                                JSON.parse(mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0).state ? JSON.parse(val).params.events[0].event : "null"
                                
                                mickymM Offline
                                mickymM Offline
                                mickym
                                Most Active
                                wrote on last edited by mickym
                                #35

                                @mickym sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                mqtt.0.shellyplus2pm-d48afc7dbd1c.status.input:0

                                Na ist ja auch ein Fehler. In dem parse muss ja auch val. Solange da bei state null ist, dann hilft Dir das nichts. Also ist der Datenpunkt so ungeeignet - dann musst halt doch mit dem Blockly arbeiten.

                                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 Reply Last reply
                                0
                                • mickymM mickym

                                  @klausstoertebeker Nein - da bin ich leider überfragt.

                                  Ich bin zwar im Shelly Forum registriert und habe diesen Thread gefunden: https://shelly-forum.com/thread/23609-shelly-wall-display-firmware-1-2-5-mit-thermostatfunktion-released/

                                  Aber schlau werde ich daraus nicht. Das ist mir im Moment zu speziell - da ist es besser, wenn Du direkt dort weiter fragst.

                                  Du kannst ja die Kommandos direkt in den Datenpunkten ausprobieren und wenn das funktioniert, dann kann ich ggf. bei der Konvertierungsfunktion helfen, aber zu diesen speziellen Parametern kann ich nichts sagen.

                                  Es ist ja auch nicht gesagt, dass Du alle Einstellungen über mqtt einstellen kannst, sondern vielleicht gehen bestimmte Einstellungen nur über die Weboberfläche.

                                  In dem Thread habe ich zu den Parametern nur folgendes gefunden:

                                  1aa9ad53-ded9-4b5a-9edb-319232fff4b5-image.png

                                  Sorry - aber ich denke, da musst Du Shelly Support bemühen und wie gesagt Du weißt ja nun dass Du Kommandos immer direkt in das rpc topic unter dem Gerät schreiben musst.

                                  Master67M Offline
                                  Master67M Offline
                                  Master67
                                  wrote on last edited by
                                  #36

                                  Puh.... ich trottelt hätte auf die Gen. 3 warten sollen!

                                  Mit der Überzeugung das ich die Shellys PlugPlus S per Shelly Adapter im ioBroker steuern kann, habe ich mir 10 Stück gekauft, die Shellys Gen, 1 die bei mir laufen sind alle mit Tasmota geflasht und sind somit im ioBroker
                                  eingebunden.
                                  Gut, nun versuche ich die per Mqtt in den iob zubekommen, aber hier scheitere ich schon an der Übersetzung:
                                  2025-05-01_13-08.png

                                  Keine Ahung wo und wie ich das alles eintragen soll, zum Testen läuft auch noch HA (nutze ich nicht, weil das kein Blockly hat) dort werden die PlugPlus s aber gefunden, ich glaube ich bin langsam zu alt für den sch....

                                  Hat jemand eine "einfache" Anleitung wie ich das so hinbekommen das ist auf die Daten wie Power/Watt usw.. per ioBroker zugreifen kann?

                                  Alternativ würde mir nur dann bleiben die Teile irgendwo im Keller zu verbauen wo sie nur "schalten" und nichts Anzeigen sollen und mit 10 neue Messdosen mit Tasmota drauf zu kaufen 🙂

                                  Gruß Master67

                                  mcm1957M BananaJoeB 2 Replies Last reply
                                  0
                                  • Master67M Master67

                                    Puh.... ich trottelt hätte auf die Gen. 3 warten sollen!

                                    Mit der Überzeugung das ich die Shellys PlugPlus S per Shelly Adapter im ioBroker steuern kann, habe ich mir 10 Stück gekauft, die Shellys Gen, 1 die bei mir laufen sind alle mit Tasmota geflasht und sind somit im ioBroker
                                    eingebunden.
                                    Gut, nun versuche ich die per Mqtt in den iob zubekommen, aber hier scheitere ich schon an der Übersetzung:
                                    2025-05-01_13-08.png

                                    Keine Ahung wo und wie ich das alles eintragen soll, zum Testen läuft auch noch HA (nutze ich nicht, weil das kein Blockly hat) dort werden die PlugPlus s aber gefunden, ich glaube ich bin langsam zu alt für den sch....

                                    Hat jemand eine "einfache" Anleitung wie ich das so hinbekommen das ist auf die Daten wie Power/Watt usw.. per ioBroker zugreifen kann?

                                    Alternativ würde mir nur dann bleiben die Teile irgendwo im Keller zu verbauen wo sie nur "schalten" und nichts Anzeigen sollen und mit 10 neue Messdosen mit Tasmota drauf zu kaufen 🙂

                                    mcm1957M Offline
                                    mcm1957M Offline
                                    mcm1957
                                    wrote on last edited by
                                    #37

                                    @master67
                                    Warum verwendest du nicht den Shelly Adapter?
                                    Shelly Plus Plug S ist voll unterstützt.

                                    Oder lebst die die sprichwörtliche Methode "Warum einfach wenns umständlich auch geht?" 🙂

                                    Da giubts ne deutsche Anleitung auch gratis dazu:
                                    https://github.com/iobroker-community-adapters/ioBroker.shelly/blob/master/docs/de/README.md

                                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                    Support Repositoryverwaltung.

                                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                    LESEN - gute Forenbeitrage

                                    1 Reply Last reply
                                    0
                                    • Master67M Master67

                                      Puh.... ich trottelt hätte auf die Gen. 3 warten sollen!

                                      Mit der Überzeugung das ich die Shellys PlugPlus S per Shelly Adapter im ioBroker steuern kann, habe ich mir 10 Stück gekauft, die Shellys Gen, 1 die bei mir laufen sind alle mit Tasmota geflasht und sind somit im ioBroker
                                      eingebunden.
                                      Gut, nun versuche ich die per Mqtt in den iob zubekommen, aber hier scheitere ich schon an der Übersetzung:
                                      2025-05-01_13-08.png

                                      Keine Ahung wo und wie ich das alles eintragen soll, zum Testen läuft auch noch HA (nutze ich nicht, weil das kein Blockly hat) dort werden die PlugPlus s aber gefunden, ich glaube ich bin langsam zu alt für den sch....

                                      Hat jemand eine "einfache" Anleitung wie ich das so hinbekommen das ist auf die Daten wie Power/Watt usw.. per ioBroker zugreifen kann?

                                      Alternativ würde mir nur dann bleiben die Teile irgendwo im Keller zu verbauen wo sie nur "schalten" und nichts Anzeigen sollen und mit 10 neue Messdosen mit Tasmota drauf zu kaufen 🙂

                                      BananaJoeB Offline
                                      BananaJoeB Offline
                                      BananaJoe
                                      Most Active
                                      wrote on last edited by
                                      #38

                                      @master67 Öhm, laufen deine Shelly Plug S nun mit der Original-Shelly Software? oder mit Tasmota?

                                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 10,5kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                      1 Reply Last reply
                                      0
                                      • Master67M Offline
                                        Master67M Offline
                                        Master67
                                        wrote on last edited by Master67
                                        #39

                                        @mcm1957 sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                        Warum verwendest du nicht den Shelly Adapter?

                                        Das war der Plan.... nur werden im Shelly Adapter die Geräte der 1. Gen gefunden, keinen einzigen PlugPlus S, was mich ja auch Wundert, weil in HA werden die ja auch im Shelly "Adapter" gefunden,
                                        dachte auch erst ist ein Einstellungsproblem, konnte es aber nicht lösen!

                                        @bananajoe sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                        Öhm, laufen deine Shelly Plug S nun mit der Original-Shelly Software? oder mit Tasmota?

                                        Die PlugPlus S sind neu, die kann man nicht mehr mit Tasmota Flashen, also ist die Original Software drauf, nur die Shellys der 1. Gen, laufen (bis auf zwei) mit Tasmota.

                                        So... nur 1. Gen
                                        2025-05-01_16-28.png

                                        Gruß Master67

                                        BananaJoeB mcm1957M 2 Replies Last reply
                                        0
                                        • Master67M Master67

                                          @mcm1957 sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                          Warum verwendest du nicht den Shelly Adapter?

                                          Das war der Plan.... nur werden im Shelly Adapter die Geräte der 1. Gen gefunden, keinen einzigen PlugPlus S, was mich ja auch Wundert, weil in HA werden die ja auch im Shelly "Adapter" gefunden,
                                          dachte auch erst ist ein Einstellungsproblem, konnte es aber nicht lösen!

                                          @bananajoe sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                          Öhm, laufen deine Shelly Plug S nun mit der Original-Shelly Software? oder mit Tasmota?

                                          Die PlugPlus S sind neu, die kann man nicht mehr mit Tasmota Flashen, also ist die Original Software drauf, nur die Shellys der 1. Gen, laufen (bis auf zwei) mit Tasmota.

                                          So... nur 1. Gen
                                          2025-05-01_16-28.png

                                          BananaJoeB Offline
                                          BananaJoeB Offline
                                          BananaJoe
                                          Most Active
                                          wrote on last edited by
                                          #40

                                          @master67 sagte in Shelly-Geräte mit MQTT-Adapter steuern:

                                          Die PlugPlus S sind neu, die kann man nicht mehr mit Tasmota Flashen, also ist die Original Software drauf, nur die Shellys der 1. Gen, laufen (bis auf zwei) mit Tasmota.

                                          Ok, die Shellys mit Tasmota sind nun Tasmotageräte - dann müsstest du diese mit dem Sonoff-Adapter einbinden.
                                          Da steht nur noch Shelly drauf, ansonsten haben die nichts mehr mit Shelly zu tun.

                                          Die neueren Shellys sollten per MQTT laufen, sprechen darüber aber eine völlig andere Syntax.

                                          Die nutzt du über den Shelly Adapter im MQTT-Modus. Wenn du den Adapter konfigurierst (Adapter! Unter iobroker!), stellst du dort den Port, Benutzernamen und Passwort ein:
                                          bd0729b9-cea5-4429-bebb-13b37cc5db53-image.png

                                          Auf den Shellys konfigurierst du dann MQTT mit genau diesen Einstellungen - insbesondere den Port beachten!

                                          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 10,5kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          121

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe