Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Stromzähler liefert nur zwei Daten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Stromzähler liefert nur zwei Daten

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      guitardoc @Samson71 last edited by

      @samson71 Bei mir gibt es da ca. 20 verschiedene Sonoff devices zur Auswahl. Ich habe es mal mit dem Sonoff Basic versucht, da ändert sich an der Datenübertragung in den ioB aber nichts...
      a4277671-d835-4e06-82ce-a6d244f5f477-image.png

      Samson71 1 Reply Last reply Reply Quote 0
      • G
        guergen @Blockmove last edited by

        @blockmove Kannst du mal schreiben wie die heissen? Ich bin noch nicht fündig geworden 😉

        1 Reply Last reply Reply Quote 0
        • Samson71
          Samson71 Global Moderator @guitardoc last edited by Samson71

          @guitardoc
          Bei mir ist "Hichi" direkt in der Auswahlliste.

          Ich habe meine ich aber auch eine angepasste Tasmota Version geflasht.

          G 1 Reply Last reply Reply Quote 0
          • G
            guitardoc @Samson71 last edited by

            @samson71 Weisst du noch wo du diese Tasmota-Version her hattest? Dann mache ich die bei mir auch drauf.

            Samson71 1 Reply Last reply Reply Quote 0
            • Samson71
              Samson71 Global Moderator @guitardoc last edited by Samson71

              @guitardoc
              Hatte ich kürzlich erst irgendwo hier als Link verteilt glaube ich. Muss ich raussuchen. Bin im Moment aber nur mobil per Mäusekino unterwegs. Da ist das etwas schwieriger als vor der 49'er Kommandozentrale.

              EDIT
              Hier gibt es angepasste Images:
              https://ottelo.jimdofree.com/stromzähler-auslesen-tasmota/#Downloads

              G 1 Reply Last reply Reply Quote 0
              • G
                guitardoc @Samson71 last edited by

                @samson71 🙂 Hatte ich in deinen Posts auch gerade entdeckt...

                Von dort hab ich das Image auch genommen. Gleich das oberste: Tasmota 13.3.0 (14.12.2023). Da ist aber kein Hichi drin, hab noch mal die Liste durchsucht. Nix.

                Samson71 Codierknecht 2 Replies Last reply Reply Quote 0
                • Samson71
                  Samson71 Global Moderator @guitardoc last edited by

                  @guitardoc
                  Ich kann zu Hause gerne mal in meinen schauen. Ist eine 12er Version. Wird aber nichts vor Morgen. Bin erst spät zu Hause.

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    guitardoc @Samson71 last edited by

                    @samson71 said in Stromzähler liefert nur zwei Daten:

                    Wird aber nichts vor Morgen. Bin erst spät zu Hause.

                    Kein Problem - hat Zeit. Noch zur Info - mein Chip ist ein ESP8266EX - also ich meine der, wo das Tasmota drauf soll... 🙂

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      TT-Tom @guitardoc last edited by

                      @guitardoc

                      Hast du den Sonoff Adapter auf dein iobroker installiert??

                      1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @guitardoc last edited by

                        @guitardoc sagte in Stromzähler liefert nur zwei Daten:

                        Da ist aber kein Hichi drin

                        Da muss auch kein "Hichi" drin sein. Davon weiß Tasmota nix - muss es auch nicht.
                        Bei mir ist "ESP32-DevKit(1)" konfiguriert. Ist aber eigentlich völlig wurscht.

                        Der Sonoff-Adapter bekommt die Daten per MQTT und fummelt die für Dich fein säuberlich auseinander.

                        9084ce47-050a-409e-88d6-551b7f3a64cc-grafik.png

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          guitardoc @Codierknecht last edited by

                          Ahhh - jetzt verstehe ich erst mal. Ihr holt die Daten über einen Sonoff-Adapter im ioB rein und nicht über eine Auswahl in Tasmota auf dem Wemos.
                          Nein, ich hab nur den MQTT Adapter, über den hole ich auch die Daten von dem Gaszähler rein. Ich dachte, darüber funktioniert das dann auch mit dem Stromzähler (funktioniert ja auch, nur dass die Daten als JSON ankommen).
                          Da muss ich mich erstmal mit dem Sonoff Adapter beschäftigen.

                          Thomas Braun Samson71 2 Replies Last reply Reply Quote 0
                          • Thomas Braun
                            Thomas Braun Most Active @guitardoc last edited by

                            @guitardoc sagte in Stromzähler liefert nur zwei Daten:

                            Nein, ich hab nur den MQTT Adapter, über den hole ich auch die Daten von dem Gaszähler rein. Ich dachte, darüber funktioniert das dann auch mit dem Stromzähler (funktioniert ja auch, nur dass die Daten als JSON ankommen).

                            Geht natürlich auch mit dem mqtt-Adapter. Allerdings legt man sich da noch ein Skript dazwischen, das das JSON auseinander nimmt. Bei mir schaut das so aus:

                            // where the mqtt messages arrive
                            
                            const mqttDatenpunktObjectId = 'mqtt.0.tele.bitshake_smartmeter.SENSOR';
                            
                            // where the states should appear
                            
                            const userDataFolder = '0_userdata.0.stromzaehler';
                            
                             
                            
                            // ############## end user config
                            
                             
                            
                            // receive
                            
                            on(mqttDatenpunktObjectId, (obj) => {
                            
                              const jsonString = obj.state.val;
                            
                              const jsonData = JSON.parse(jsonString);
                            
                             
                            
                              function createObjectsRecursively(parent, data) {
                            
                                for (const key in data) {
                            
                                  const obj = data[key];
                            
                                  const stateName = `${parent}.${key}`;
                            
                                 
                            
                                  if (typeof obj === 'object') {
                            
                                    createObjectsRecursively(stateName, obj);
                            
                                  } else {
                            
                                   let value = obj;  
                            
                             
                            
                                    // Check if the state already exists. If it does, just update the value.
                            
                                    // If it does not exist create the states.
                            
                                    if (!existsState(stateName)) {
                            
                                      // If the state does not exist, create it and set the value
                            
                                      createState(stateName, value, {
                            
                                        name: key,
                            
                                        type: typeof value,
                            
                                        role: "value",
                            
                                        read: true,
                            
                                        write: true
                            
                                      });
                            
                                      log(`Created state ${stateName}`);
                            
                                      
                            
                                    } else {
                            
                                      setState(stateName, value, true);
                            
                                    }
                            
                                  }
                            
                                }
                            
                              }
                            
                               createObjectsRecursively(userDataFolder, jsonData);
                            
                            });
                            
                            Codierknecht 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Thomas Braun last edited by Codierknecht

                              @thomas-braun sagte in Stromzähler liefert nur zwei Daten:

                              Geht natürlich auch mit dem mqtt-Adapter. Allerdings legt man sich da noch ein Skript dazwischen, das das JSON auseinander nimmt. Bei mir schaut das so aus:

                              Oder man legt sich für die einzelnen Datenpunkte jeweils einen Alias an und holt den Wert über die Konvertierungsfunktion aus dem JSON.

                              Wobei allerdings der Sonoff-Adapter für Tasmota am besten geeignet ist.
                              Einfacher geht's kaum.

                              Thomas Braun 1 Reply Last reply Reply Quote 0
                              • Thomas Braun
                                Thomas Braun Most Active @Codierknecht last edited by

                                @codierknecht sagte in Stromzähler liefert nur zwei Daten:

                                Wobei allerdings der Sonoff-Adapter für Tasmota am besten geeignet ist.

                                Ich weiger mich einfach 'falsch' bezeichnete Adapter zu verwenden... 😉

                                1 Reply Last reply Reply Quote 0
                                • Samson71
                                  Samson71 Global Moderator @guitardoc last edited by

                                  @guitardoc sagte in Stromzähler liefert nur zwei Daten:

                                  Ahhh - jetzt verstehe ich erst mal. Ihr holt die Daten über einen Sonoff-Adapter im ioB rein und nicht über eine Auswahl in Tasmota auf dem Wemos.

                                  Dann haben wir aneinander vorbeigeschrieben. Tasmota auf dem Wemos ist schon ganz richtig. Wie aber die Bezeichnung dort ist interessiert eigentlich nicht. Da hat @Codierknecht ganz recht. Aber ja, ich meinte auch in meinen Ausführungen den Sonoff-Adapter zu nutzen anstatt den MQTT-Adapter. Dann bekommst Du ohne weiteres die Datenpunkte in der Vereinzelung.

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    guitardoc @Samson71 last edited by guitardoc

                                    @samson71 So, jetzt hab ich es hinbekommen. Da hatte ich wohl wirklich einen Knoten im Gehirn und hab das mit dem Sonoff völlig falsch verstanden. Aber jetzt kommen die Daten strukturiert rein. Ich hab dem Sonoff Adapter den Port 1888 gegeben, da kann er darüber nur den Stromzähler und den Gaszähler ziehen und andere Geräte laufen davon unabhängig über den MQTT Adapter mit dem Port 1886. Ich hoffe, ich habe da keinen Fehler damit eingebaut.

                                    Denn es ergibt sich gleich die nächste Frage - kann man irgendwo einstellen, in welchen Abständen der Sonoff-Adapter die Daten zieht? Ich habe in den Einstellungen dazu nichts entdeckt. Im Moment zieht er die Daten alle 5 Minuten wenn ich das richtig sehe und das ist mir zu lang - mich interessiert schon die momentane Leistung, und die liefert der Hichi ja in Sekundenabständen.

                                    EDIT: Hab es gefunden - unter Telemetrie im Tasmota.

                                    Samson71 Codierknecht 2 Replies Last reply Reply Quote 0
                                    • Samson71
                                      Samson71 Global Moderator @guitardoc last edited by

                                      @guitardoc sagte in Stromzähler liefert nur zwei Daten:

                                      EDIT: Hab es gefunden - unter Telemetrie im Tasmota.

                                      Da kannst problemlos im Normalfall auf 10 Sekunden gehen

                                      1 Reply Last reply Reply Quote 1
                                      • Codierknecht
                                        Codierknecht Developer Most Active @guitardoc last edited by Codierknecht

                                        @guitardoc sagte in Stromzähler liefert nur zwei Daten:

                                        kann man irgendwo einstellen, in welchen Abständen der Sonoff-Adapter die Daten zieht?

                                        Der "zieht" die nicht, sondern erhält die von Tasmota.
                                        Das kannst Du auf dem ESP unter "Configuration" => "Configure Logging" => "Telemetry period" einstellen.
                                        OK, Du hast es selbst rausgefunden.

                                        Minimum sind 10 Sekunden.

                                        Edit: @Samson71 war schneller 😉

                                        G 1 Reply Last reply Reply Quote 1
                                        • G
                                          guitardoc @Codierknecht last edited by guitardoc

                                          Ich habe mal noch eine Frage zu dem Thema. Ich würde gern meinen Gaszähler ebenfalls über den Sonoff Adapter in den ioB holen (bisher läuft der direkt über MQTT). Wenn ich den Port vom MQTT auf Sonoff im Tasmota des Gaszählers ändere, dann kommen nicht mehr alle Daten rein. Ich denke, das liegt an dem Script, was im Gaszähler hinterlegt ist.

                                          Nun hab ich von dem Script keinen blassen Schimmer und hab keine Ahnung, was ich wie abändern müsste, damit die Daten auch alle über den Sonoff Adapter im ioB erscheinen. Kann mir da jemand helfen? Hier das Script des Gaszählers:

                                          >D
                                          p:m1=0
                                          p:g1=0
                                          p:g2=0
                                          p:month1=0
                                          p:month2=0
                                          p:month3=0
                                          p:gesamt=0
                                          c1=0
                                          s1=0
                                          h1=0
                                          hkw1=0
                                          gkw1=0
                                          gkw2=0
                                          mkw1=0
                                          mkw2=0
                                          mkw3=0
                                          mkwgs=0
                                          skw1=0
                                          hgp=0
                                          g1gp=0
                                          g2gp=0
                                          m1gp=0
                                          m2gp=0
                                          m3gp=0
                                          gsgp=0
                                          hr=0
                                          dy=0
                                          zu=0.9542
                                          br=11.484
                                          gp=12.51
                                          gasinit=26826.05
                                          gastotal=0
                                          
                                          >B
                                          =>sensor53 l255
                                          
                                          
                                          >S
                                          h1=s1-m1
                                          hkw1=h1*br*zu
                                          hgp=(hkw1*gp)/100
                                          gkw1=g1*br*zu
                                          gkw2=g2*br*zu
                                          mkw1=month1*br*zu
                                          mkw2=month2*br*zu
                                          mkw3=month3*br*zu
                                          mkwgs=gesamt*br*zu
                                          g1gp=(gkw1*gp)/100
                                          g2gp=(gkw2*gp)/100
                                          m1gp=(mkw1*gp)/100
                                          m2gp=(mkw2*gp)/100
                                          m3gp=(mkw3*gp)/100
                                          gsgp=(mkwgs*gp)/100
                                          skw1=s1*br*zu
                                          
                                          hr=hours
                                          dy=day
                                          if chg[hr]>0
                                           and hr==0
                                            then
                                             m1=s1
                                             g2=g1
                                             g1=h1
                                             month1=month1+h1
                                             gesamt=gesamt+h1
                                             if chg[dy]<2
                                              and dy==1
                                               then
                                                month3=month2
                                                month2=month1
                                                month1=0
                                             endif
                                             svars
                                          endif
                                          
                                          
                                          
                                          if upsecs%tper==0{
                                          =>Publish tasmota/%topic%/main/td_m3 %2h1%
                                          =>Publish tele/%topic%/main/td_kwh %2hkw1%
                                          =>Publish tele/%topic%/main/yd_m3 %2g1%
                                          =>Publish tele/%topic%/main/yd_kwh %2gkw1%
                                          =>Publish tele/%topic%/main/dbyd_m3 %2g2%
                                          =>Publish tele/%topic%/main/dbyd_kwh %2gkw2%
                                          =>Publish tele/%topic%/main/value %2s1%
                                          =>Publish tele/%topic%/main/gastotal %2gastotal%
                                          =>Publish tele/%topic%/json {"gastotal": "%2gastotal%", "value": "%2s1%", "today_m3": "%2h1%", "today_kwh": "%2hkw1%", "yesterday_m3": "%2g1%", "yesterday_kwh": "%2gkw1%", "db_yesterday_m3": "%2g2%", "db_yesterday_kwh": "%2gkw2%"}
                                          }
                                          
                                          >T
                                          s1=Counter#C1/100
                                          c1=Counter#C1
                                          gastotal=(c1/100)+gasinit
                                          
                                          >W
                                          GAS gezählt: {m} %3s1% m³
                                          Zählerstand: {m} %gastotal% m³
                                          ============
                                          Zustandszahl: {m} %zu%
                                          Brennwert: {m} %br% kWh/m³
                                          Gaspreis: {m} %gp% Cent/kWh
                                          ============
                                          Verbrauch:
                                          ---------------------
                                          Heute: {m} %2h1% m³ | %2hkw1% kWh
                                          Kosten: {m} %2hgp% €
                                          ---------------------
                                          Gestern: {m} %2g1% m³ | %2gkw1% kWh
                                          Kosten: {m} %2g1gp% €
                                          ---------------------
                                          Vorgestern: {m} %2g2% m³ | %2gkw2% kWh
                                          Kosten: {m} %2g2gp% €
                                          ---------------------
                                          Aktueller Monat: {m} %2month1% m³ | %2m1gp% €
                                          Letzter Monat: {m} %2month2% m³ | %2m2gp% €
                                          Vorletzter Monat: {m} %2month3% m³ | %2m3gp% €
                                          Gesamt: {m} %2gesamt% m³ | %2gsgp% €
                                          
                                          #
                                          

                                          Edit: Die interessanten Daten sind sicher die, welche unter Publish stehen (und die fehlen im Sonoff). Ich vermute, da hat sich der ursprüngliche Programmierer sogar auch noch verschrieben, denn warum steht da überall Tele und einmal Tasmota?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

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

                                          580
                                          Online

                                          32.0k
                                          Users

                                          80.3k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          35
                                          1544
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo