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. Skripten / Logik
  4. JavaScript
  5. Script um shellyplus und das addon dazu auszulesen (mqtt)

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Script um shellyplus und das addon dazu auszulesen (mqtt)

Geplant Angeheftet Gesperrt Verschoben JavaScript
19 Beiträge 3 Kommentatoren 1.9k Aufrufe 5 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.
  • T ticaki

    nur: Shellyplus

    Weil sich Daten die der mqtt adapter zu shellyplus ausgibt, nicht mit meiner allgemeinen Datenverarbeitung harmonieren, hab ich mir ein Script geschrieben, das die Daten und auch einzelne Kommandos über rpc over mqtt abruft/sendet. Und diese als einzelne Datenpunkte unter "0_userdata" erstellt.

    Aktuell hab ich nur den shellyplus1pm + addon im Einsatz. Damit funktioniert es.

    Das Skript kann:

    • schreibt alle Werte in einen eigenen Datenpunkt in einer Baumstruktur
    • Relais 0 (switch) ist schaltbar, alle weiteren sollten schaltbar sein

    Mit dem auslesen Intervall der Energy Daten bin ich noch nicht zufrieden. Dieses ist aktuell dem Shelly überlassen.
    Das Script fordert beim Start und zur Uhrzeit Minute: 0,20,40 ein Statusupdate zu allem an.
    Für mich ist dieser Intervall nötig, da ich den online Status überwachen lasse.

    Wenn was nicht funktioniert, melden ich behebe das dann. Falls es überhaupt jemand braucht, :)

    https://github.com/ticaki/iobroker-skript-sammlung/blob/main/mqtt-shellyplus.js

    Wie man ein Skript von github kopiert:

    Bildschirmfoto 2023-07-30 um 22.07.27.png

    Und dann im iobroker Javascript editor einfügen

    Einstellungen:

    const prefix = '0_userdata.0.MQTT' // darunter wird gespeichert
    const suchPrefix = 'mqtt.0.shellies2' // hier kommen die Daten her und begrenzen das ganze auf einen subtopic... Einfach das was im Topic bei allen Shellies gleich ist, muß hier stehen und davor die mqtt instanz
    const topicPrefix = 'shellies2' // hier muss der Teil von suchPrefix stehen der im Topic der shellys enthalten ist. Ohne die mqtt instanz
    

    Das erste ist wo es hinsoll, bei mir ist das unter 0_userdata.0.MQTT

    Bildschirmfoto 2023-07-30 um 22.11.27.png

    Das 2. ist wo es her kommt:

    Bildschirmfoto 2023-07-30 um 22.14.53.png
    Das ist der Mqtt Adapter und ein Teil von dem was unter MQTT Prefix im Shelly steht:
    Bildschirmfoto 2023-07-30 um 22.16.14.png

    Bei mir ist shellies2 immer gleich, wenn das Neuland ist schreibt einfach shellies2/ und kopiert dahinter die Client id. Und last 2 und 3 einfach so wie es ist.

    Bildschirmfoto 2023-07-30 um 22.18.23.png

    RPC over MQTT muß im Shelly aktiviert sein

    H Offline
    H Offline
    Hasejs
    schrieb am zuletzt editiert von
    #2

    @ticaki
    Hallo danke für deine Info`s aber ich bekomme dein Skript nicht in den Editor vom Iobroker.
    Rechte Maustaste oder Ctrl + P geht im Editor nicht. Muß ich etwas umstellen?

    Gruß Joachim

    T 1 Antwort Letzte Antwort
    0
    • H Hasejs

      @ticaki
      Hallo danke für deine Info`s aber ich bekomme dein Skript nicht in den Editor vom Iobroker.
      Rechte Maustaste oder Ctrl + P geht im Editor nicht. Muß ich etwas umstellen?

      Gruß Joachim

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #3

      @Hasejs

      P ist das nicht ctrl - v ?

      sitze hier vor einem Mac, aber dabei unterscheiden sich doch nur die Kommandotasten und nicht die Buchstaben

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      H 1 Antwort Letzte Antwort
      0
      • T ticaki

        @Hasejs

        P ist das nicht ctrl - v ?

        sitze hier vor einem Mac, aber dabei unterscheiden sich doch nur die Kommandotasten und nicht die Buchstaben

        H Offline
        H Offline
        Hasejs
        schrieb am zuletzt editiert von
        #4

        @ticaki
        Sorry, klar .... Ich Idiot

        H 1 Antwort Letzte Antwort
        0
        • H Hasejs

          @ticaki
          Sorry, klar .... Ich Idiot

          H Offline
          H Offline
          Hasejs
          schrieb am zuletzt editiert von
          #5

          @hasejs

          Ok !! Hab jetzt Zeile 1-3 nach meinen Bedürfnissen angepasst.

          Bekomme jetzt 2 Fehler (rote Wellenlinien)

          Zeile 122 " if (DEBUG) log(msg)" (unter "msg" rote Wellenlinie)
          Zeile 154 " topic = topic.replaceAll('.','/') " (ReplaceAll rote Wellenlinie)

          Skript wurde nur gespeichert, noch nicht gestartet.

          H 1 Antwort Letzte Antwort
          0
          • H Hasejs

            @hasejs

            Ok !! Hab jetzt Zeile 1-3 nach meinen Bedürfnissen angepasst.

            Bekomme jetzt 2 Fehler (rote Wellenlinien)

            Zeile 122 " if (DEBUG) log(msg)" (unter "msg" rote Wellenlinie)
            Zeile 154 " topic = topic.replaceAll('.','/') " (ReplaceAll rote Wellenlinie)

            Skript wurde nur gespeichert, noch nicht gestartet.

            H Offline
            H Offline
            Hasejs
            schrieb am zuletzt editiert von
            #6

            @hasejs

            Kann ich hier auch einen Snip einfügen ? Bei mir kommt immer ein Error

            H 1 Antwort Letzte Antwort
            0
            • H Hasejs

              @hasejs

              Kann ich hier auch einen Snip einfügen ? Bei mir kommt immer ein Error

              H Offline
              H Offline
              Hasejs
              schrieb am zuletzt editiert von
              #7

              @hasejs
              32e85811-bd78-46b8-9ffc-6a328464d2b7-grafik.png

              9bdfb41d-1d46-4edb-b702-77fbea11f116-grafik.png

              Jetzt geht es.... Forumseite aktualisiert.

              T 1 Antwort Letzte Antwort
              0
              • H Hasejs

                @hasejs
                32e85811-bd78-46b8-9ffc-6a328464d2b7-grafik.png

                9bdfb41d-1d46-4edb-b702-77fbea11f116-grafik.png

                Jetzt geht es.... Forumseite aktualisiert.

                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von ticaki
                #8

                @hasejs
                Die kannst du ignorieren. Der Scripteditor markiert alles rot was er nicht erkennt oder als nicht geeignet einstuft

                msg -> ist ein Objekt also nicht vom Typ string, wird aber korrekt umgewandelt und ins log geschrieben
                replaceAll() ist ein Javascript string Funktion die ebenfalls ausgeführt wird.

                Das Skript läuft bei mir so wie du es kopiert hast und sollte wenn richtig eingestellt auch bei dir funktionieren.
                Bei mir sieht das so aus. :)
                Bildschirmfoto 2023-07-31 um 22.16.58.png

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                H 1 Antwort Letzte Antwort
                0
                • T ticaki

                  @hasejs
                  Die kannst du ignorieren. Der Scripteditor markiert alles rot was er nicht erkennt oder als nicht geeignet einstuft

                  msg -> ist ein Objekt also nicht vom Typ string, wird aber korrekt umgewandelt und ins log geschrieben
                  replaceAll() ist ein Javascript string Funktion die ebenfalls ausgeführt wird.

                  Das Skript läuft bei mir so wie du es kopiert hast und sollte wenn richtig eingestellt auch bei dir funktionieren.
                  Bei mir sieht das so aus. :)
                  Bildschirmfoto 2023-07-31 um 22.16.58.png

                  H Offline
                  H Offline
                  Hasejs
                  schrieb am zuletzt editiert von
                  #9

                  @ticaki

                  Danke hat funktioniert.
                  Die ObjektID`s sind angelegt und werden aktualisiert.

                  Wie kann ich die Gesamtleistung abfragen?

                  2c7994ff-0c93-4bab-968c-65869826d476-grafik.png

                  T 1 Antwort Letzte Antwort
                  0
                  • H Hasejs

                    @ticaki

                    Danke hat funktioniert.
                    Die ObjektID`s sind angelegt und werden aktualisiert.

                    Wie kann ich die Gesamtleistung abfragen?

                    2c7994ff-0c93-4bab-968c-65869826d476-grafik.png

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von ticaki
                    #10

                    @hasejs
                    Ich hab keinen EM3 Pro daher kann ich das nicht bei mir nachschauen. Ich muss mal in der API Doku nachsehen wie man da den Gesamtwert bekommt. Du scheinst ja jetzt die werte für die 3 Phasen zu haben oder?

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    H 1 Antwort Letzte Antwort
                    0
                    • T ticaki

                      @hasejs
                      Ich hab keinen EM3 Pro daher kann ich das nicht bei mir nachschauen. Ich muss mal in der API Doku nachsehen wie man da den Gesamtwert bekommt. Du scheinst ja jetzt die werte für die 3 Phasen zu haben oder?

                      H Offline
                      H Offline
                      Hasejs
                      schrieb am zuletzt editiert von
                      #11

                      @ticaki

                      Ja, die 3 Werte habe ich.
                      Momentan addiere ich sie in einem Blockly Skript.

                      T 1 Antwort Letzte Antwort
                      0
                      • H Hasejs

                        @ticaki

                        Ja, die 3 Werte habe ich.
                        Momentan addiere ich sie in einem Blockly Skript.

                        T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #12

                        @hasejs
                        Ich glaube ich weiß wie, aber bin zu müde und traue mir nicht. Machen wir morgen :)

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        H 1 Antwort Letzte Antwort
                        0
                        • T ticaki

                          @hasejs
                          Ich glaube ich weiß wie, aber bin zu müde und traue mir nicht. Machen wir morgen :)

                          H Offline
                          H Offline
                          Hasejs
                          schrieb am zuletzt editiert von
                          #13

                          @ticaki
                          Alles Gut... mir reichts auch.

                          Bin Dir ehedem sehr Dankbar für deine Super Unterstützung.

                          T 1 Antwort Letzte Antwort
                          0
                          • H Hasejs

                            @ticaki
                            Alles Gut... mir reichts auch.

                            Bin Dir ehedem sehr Dankbar für deine Super Unterstützung.

                            T Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von
                            #14

                            @hasejs
                            Schau mal morgen nach ob die Daten nicht erschienen sind oder in einem anderen Ordner liegen. Eigentlich sollte die da sein.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            A 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @hasejs
                              Schau mal morgen nach ob die Daten nicht erschienen sind oder in einem anderen Ordner liegen. Eigentlich sollte die da sein.

                              A Offline
                              A Offline
                              arminrey
                              schrieb am zuletzt editiert von
                              #15

                              @ticaki

                              Hallo
                              Ich hab mich schon tot-gegoogelt und bin dann hier im Forum auf Deinen Betrag gestoßen. Respekt, nach ein paar Anläufen funktioniert das bei mir auch.

                              Was ich nicht verstehe, dass ich im Netz keinen Aufschrei höre, dass die geloggten Daten von Shelly 2 Generation nicht mehr über ECharts darstellbar sind. Wer Shellys hat möchte doch auch sehen was passiert?

                              Ich war schon fast dabei aufzugeben…. Aber jetzt klappt es …. Vielen Dank:+1: :+1:

                              Armin

                              1 Antwort Letzte Antwort
                              0
                              • T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von ticaki
                                #16

                                v0.11

                                • .ts Datenpunkte löschen vor dem ausführen oder ihr bekommt Warnungen die euch daran erinnern
                                • .ts und sys.unixtime mit einander verlinkt so das in ts immer die zu letztgemeldete Onlinezeit drin steht (brauche ich fürs überwachen)
                                • .ts wird jetzt in millisekunden angezeigt, ebenso wie unixtime denke das ist die Zeit seit dem letzten reset oder reboot

                                steht aber auch im Skript und da werden ich in Zukunft auch jede Änderung erwähnen... wenn sie erwähnenswert ist.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                A 1 Antwort Letzte Antwort
                                0
                                • T ticaki

                                  v0.11

                                  • .ts Datenpunkte löschen vor dem ausführen oder ihr bekommt Warnungen die euch daran erinnern
                                  • .ts und sys.unixtime mit einander verlinkt so das in ts immer die zu letztgemeldete Onlinezeit drin steht (brauche ich fürs überwachen)
                                  • .ts wird jetzt in millisekunden angezeigt, ebenso wie unixtime denke das ist die Zeit seit dem letzten reset oder reboot

                                  steht aber auch im Skript und da werden ich in Zukunft auch jede Änderung erwähnen... wenn sie erwähnenswert ist.

                                  A Offline
                                  A Offline
                                  arminrey
                                  schrieb am zuletzt editiert von
                                  #17

                                  @ticaki

                                  Hallo, am Anfang ist alles super gelaufen. Seit einer Woche gibt es keine Werte mehr. Komisch ist, wenn der MQTT Broker/Client läuft komme ich nicht mehr auf den Shelly der geloggt wird. Schalte ich MQTT Broker/Client aus, dann ist der Shelly wieder online. (Öfters probiert = leider so)

                                  Jetzt vermute ich, dass was nicht an den Einstellungen stimmt. Kannst Du da mal drüber schauen, bin da im Thema leider nicht so fit.

                                  mqtt01.PNG
                                  mqtt02.PNG mqtt03.PNG

                                  Wäre Super wenn ich Hilfe bekomme :-)

                                  Gruß
                                  Armin

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • A arminrey

                                    @ticaki

                                    Hallo, am Anfang ist alles super gelaufen. Seit einer Woche gibt es keine Werte mehr. Komisch ist, wenn der MQTT Broker/Client läuft komme ich nicht mehr auf den Shelly der geloggt wird. Schalte ich MQTT Broker/Client aus, dann ist der Shelly wieder online. (Öfters probiert = leider so)

                                    Jetzt vermute ich, dass was nicht an den Einstellungen stimmt. Kannst Du da mal drüber schauen, bin da im Thema leider nicht so fit.

                                    mqtt01.PNG
                                    mqtt02.PNG mqtt03.PNG

                                    Wäre Super wenn ich Hilfe bekomme :-)

                                    Gruß
                                    Armin

                                    T Nicht stören
                                    T Nicht stören
                                    ticaki
                                    schrieb am zuletzt editiert von ticaki
                                    #18

                                    @arminrey
                                    Ich bin jetzt echt nicht der MQTT Kenner, kann nur sagen was bei mir funktioniert.

                                    Bildschirmfoto 2023-08-28 um 15.00.11.png

                                    Ich denke das "sende auch ack" dein mqtt lahm legt. EDIT: Könnte aber auch daran liegen das du ganz oben bei prefix nix drin stehen hast.

                                    Mein Problem bevor ich diese Einstellungen hatte, war das meine Lampen (zufällig eine oder mehrere) angingen wenn iobroker neugestartet wurde. Das lag an "sende bei verbinden"

                                    Bei mir läufts, hab mir extra fürs "nicht laufen" das Skript geschrieben das jetzt meine Installation überwacht: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/Sensorüberwachung.js

                                    Dafür gibts aber afaik auch nen Adapter

                                    EDIT: ich benutze aber mosquitto als broker. Daher ist mein mqtt adapter als client eingestellt

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • T ticaki

                                      @arminrey
                                      Ich bin jetzt echt nicht der MQTT Kenner, kann nur sagen was bei mir funktioniert.

                                      Bildschirmfoto 2023-08-28 um 15.00.11.png

                                      Ich denke das "sende auch ack" dein mqtt lahm legt. EDIT: Könnte aber auch daran liegen das du ganz oben bei prefix nix drin stehen hast.

                                      Mein Problem bevor ich diese Einstellungen hatte, war das meine Lampen (zufällig eine oder mehrere) angingen wenn iobroker neugestartet wurde. Das lag an "sende bei verbinden"

                                      Bei mir läufts, hab mir extra fürs "nicht laufen" das Skript geschrieben das jetzt meine Installation überwacht: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/Sensorüberwachung.js

                                      Dafür gibts aber afaik auch nen Adapter

                                      EDIT: ich benutze aber mosquitto als broker. Daher ist mein mqtt adapter als client eingestellt

                                      A Offline
                                      A Offline
                                      arminrey
                                      schrieb am zuletzt editiert von
                                      #19

                                      @ticaki

                                      Werte wieder da :-) .... Vielen Dank .... die Antwort war min. 1 Kasten Bier:beer: wert :+1:

                                      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

                                      346

                                      Online

                                      32.4k

                                      Benutzer

                                      81.5k

                                      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