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. Shelly 3EM Pro Datenpunkte

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Shelly 3EM Pro Datenpunkte

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
5 Beiträge 3 Kommentatoren 1.4k Aufrufe 3 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.
  • K Offline
    K Offline
    killroy2
    schrieb am zuletzt editiert von
    #1

    Hallo
    ich habe den Shelly 3EM Pro über MQQT angebunden.
    die Messwerte sind unter status emdata:
    a1c2ac45-2b88-49ea-bce6-03632a760ea6-image.png

    das Format ist zusammengewürfelt:
    1e29434b-ff01-426e-bf45-bb4e0d78098a-image.png

    Das ist insofern hinderlich, dass ich die Daten z.B. nicht Loggen kann.
    Gibt es da eine einfache Abhilfe?

    mfg

    Samson71S T 2 Antworten Letzte Antwort
    0
    • K killroy2

      Hallo
      ich habe den Shelly 3EM Pro über MQQT angebunden.
      die Messwerte sind unter status emdata:
      a1c2ac45-2b88-49ea-bce6-03632a760ea6-image.png

      das Format ist zusammengewürfelt:
      1e29434b-ff01-426e-bf45-bb4e0d78098a-image.png

      Das ist insofern hinderlich, dass ich die Daten z.B. nicht Loggen kann.
      Gibt es da eine einfache Abhilfe?

      mfg

      Samson71S Offline
      Samson71S Offline
      Samson71
      Global Moderator
      schrieb am zuletzt editiert von
      #2

      @killroy2 sagte in Shelly 3EM Pro Datenpunkte:

      Gibt es da eine einfache Abhilfe?

      Shelly Adapter benutzen?

      Markus

      Bitte beachten:
      Hinweise für gute Forenbeiträge
      Maßnahmen zum Schutz des Forums

      1 Antwort Letzte Antwort
      1
      • K Offline
        K Offline
        killroy2
        schrieb am zuletzt editiert von
        #3

        @Samson71 Danke für den Tip. Einen zweiten MQTT Broker laufen zu lassen für den kleinen Vorteil der besseren Darstellung gefällt mir für mich persönlich nicht.
        Ich habe jetzt doch ein Skript gebastelt, was den Job macht. Es ist nur sehr grob getestet.

        //split shelly 3 pro em json
        
        const idShellyPro3EM = "shellypro3em-yourid";
        const idEmJson = "mqtt.0."+idShellyPro3EM + ".status.em:0";
        const idEmdataJson = "mqtt.0."+idShellyPro3EM + ".status.emdata:0";
        const userdataPath = "0_userdata.0.ShellyPro3EM.";
         
        on(idEmJson, function(dp) {
            let id = "a_current";
            let obj = JSON.parse(dp.state.val);
            let storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.current', unit: 'A'});
        
            id = "b_current";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.current', unit: 'A'});
        
            id = "c_current";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.current', unit: 'A'});
        
            id = "n_current";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.current', unit: 'A'});
        
            id = "total_current";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.current', unit: 'A'});
        
            id = "a_voltage";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.voltage', unit: 'V'});
        
            id = "b_voltage";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.voltage', unit: 'V'});
        
            id = "c_voltage";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.voltage', unit: 'V'});
        
            id = "a_act_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'W'});
        
            id = "b_act_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'W'});
        
            id = "c_act_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'W'});
        
            id = "total_act_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'W'});
        
            id = "a_aprt_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'VA'});
        
            id = "b_aprt_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'VA'});
        
            id = "c_aprt_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'VA'});
        
            id = "total_aprt_power";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power', unit: 'VA'});
        
            id = "a_pf";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value'});
        
            id = "b_pf";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value'});
        
            id = "c_pf";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value'});
        });
        
        on(idEmdataJson, function(dp) {
            let id = "a_total_act_energy";
            let obj = JSON.parse(dp.state.val);
            let storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "b_total_act_energy";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "c_total_act_energy";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "total_act";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "a_total_act_ret_energy";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "b_total_act_ret_energy";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "c_total_act_ret_energy";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});
        
            id = "total_act_ret";
            obj = JSON.parse(dp.state.val);
            storageId = userdataPath + id;
            if(existsState(storageId)) setState(storageId, obj[id], true);
            else createState(storageId, obj[id], {type: 'number', name: id, role: 'value.power.consumption', unit: 'Wh'});    
        });
        
        1 Antwort Letzte Antwort
        0
        • K killroy2

          Hallo
          ich habe den Shelly 3EM Pro über MQQT angebunden.
          die Messwerte sind unter status emdata:
          a1c2ac45-2b88-49ea-bce6-03632a760ea6-image.png

          das Format ist zusammengewürfelt:
          1e29434b-ff01-426e-bf45-bb4e0d78098a-image.png

          Das ist insofern hinderlich, dass ich die Daten z.B. nicht Loggen kann.
          Gibt es da eine einfache Abhilfe?

          mfg

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

          @killroy2
          Ich hab dazu ein Skript geschrieben. https://github.com/ticaki/iobroker-skript-sammlung/blob/main/mqtt-shellyplus.js

          EDIT: wenn ich mich recht entsinne konnte der shelly adapter nicht mit 3em pro

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          K 1 Antwort Letzte Antwort
          0
          • T ticaki

            @killroy2
            Ich hab dazu ein Skript geschrieben. https://github.com/ticaki/iobroker-skript-sammlung/blob/main/mqtt-shellyplus.js

            EDIT: wenn ich mich recht entsinne konnte der shelly adapter nicht mit 3em pro

            K Offline
            K Offline
            killroy2
            schrieb am zuletzt editiert von
            #5

            @ticaki
            Danke für den Link, dein Skript funktioniert für mich und ist universell.
            Der Shelly Adapter kann mittlerweile Pro 3 EM

            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

            590

            Online

            32.7k

            Benutzer

            82.4k

            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