Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Stromzähler per Sonoff ESP8266 auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Stromzähler per Sonoff ESP8266 auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ctnnemo @Chaot last edited by

      Ich habe es soweit geschafft.
      Zähler wird ausgelesen
      im ESP32 zeigt Tasmota die Werte an und sendet an IOBroker.

      im Objekt SENSOR erhalte ich jedoch dass:

      {
      "Time": "2022-07-08T14:57:20",
      "SML": {
      "Total_in": 68055.5349,
      "Power_curr": 854
      },
      "ESP32": {
      "Temperature": 74.4
      },
      "TempUnit": "C"
      }

      Was muss ich ändern, damit ich den aktuellen Bezug (Power_curr) und den Gesamtbezug (Total_in) einfach nur als Wert bekomme?
      Oder muss ich in einem Skript den Inhalt zerlegen und "auswerten"?

      C 1 Reply Last reply Reply Quote 0
      • C
        ctnnemo @ctnnemo last edited by

        @ctnnemo

        Ich habe den "Sensor" aus dem MQTT - Adapter genommen und nutze jetzt den
        Sonoff - Adapter. Dort wird er korrekt dargestellt.

        1 Reply Last reply Reply Quote 0
        • Steffen Demmin
          Steffen Demmin @toki1973 last edited by

          @toki1973 Wie sieht dein Skript ITRON für Tasmota aus?

          1 Reply Last reply Reply Quote 0
          • oberfragger
            oberfragger last edited by oberfragger

            Ich versuche mich auch gerade am Tasmota-Zähler. Dafür verwende ich einen NodeMCU.
            Der Infrarot-Sensor hat einen USB-A Ausgang.

            Sehe ich das richtig, dass die erste zeile im Script schon auf die GPIOs referenziert? Was muss ich dementsprechend in Tasmota konfigurieren? Nichts? Ich habe die beiden Datenanschlüsse an GPIO1 und GPIO3. Wenn ich Serial RX und TX belege, dann wird im Hauptmenu garnichts angezeigt, da heisst es RX1 ist bereits konfiguriert...oder irgendwie so. Ich habe auch mal im Script 1 und 3 vertauscht (da ich nicht weiss, welcher USB-Anschluss wohin auf dem Empfänger landet... leider kein Erfolg.

            Via ioBroker Smartmeter Adapter funktioniert der Sensor problemlos.

            Habt ihr noch Tips/ Anregungen?

            64c4d81f-c56e-4af3-9a11-903776c48e27-image.png

            >D
            >B
            =>sensor53 r
            >M 1
            +3,1,s,0,9600,MT681
            1,77070100010800ff@1000,Gesamtverbrauch,KWh,Total_in,3
            1,770701000f0700ff@1,Leistung,W,Power_cur,0
            1,77070100150700ff@1,Leistung P1,W,Power_p1,0
            1,77070100290700ff@1,Leistung P2,W,Power_p2,0
            1,770701003d0700ff@1,Leistung P3,W,Power_p3,0
            1,77070100000009ff@#,Service ID,,Meter_id,0|
            #
            

            Leider kann ich den Sensor nicht auseinandernehmen. Der scheint mir verklebt... Das ist vmt. ein Selbstbau IR-Sender/Empfänger mit 3D-Druck. Da das ganze Ding im ioBroker funktioniert, muss ich das doch nciht freileuchten, oder doch?

            Ergänzung. Ich habe den Empfänger an 3,3v, GND, RX und TX angeschlossen. Oder läuft das Teil auf 5V?
            0d9c3637-71c9-473c-bd8c-a24939440027-image.png

            1 Reply Last reply Reply Quote 0
            • Uli Geins
              Uli Geins @RalfTh last edited by Uli Geins

              @ralfth
              Hi, sehr gut das Script. Hast du eventuell eine passende Visualisierung dazu, oder einen Link?
              ba0adb37-5542-4e91-8306-b27b73752fa7-image.png

              RalfTh 1 Reply Last reply Reply Quote 0
              • RalfTh
                RalfTh @Uli Geins last edited by RalfTh

                @uli-geins Hallo, ich habe das in Jarvis visualisiert.
                ebd59f2f-474f-4f71-90f3-392c9474a4d4-grafik.png
                Ich lege nicht sehr großen Wert auf eine "schicke" Visualisierung, obwohl das mit Jarvis sicherlich auch funktioniert. Ich verwende die Daten für Verbrauchs- und Temperaturstatistiken. Ich habe auch noch einen Kalender für Termine und Müll integriert. Ich bin da eher Purist was die smarte Steuerung des Hauses anbelangt.
                1c8e8d50-0f47-4cbb-b244-53495c96f347-grafik.png
                VIS hatte ich mal versucht, allerdings ist mir das zu aufwendig gewesen. Wobei der Müllkalender in VIS gemacht wurde und als iFrame in Jarvis integriert wurde.

                1 Reply Last reply Reply Quote 0
                • H
                  henni774 @m4 last edited by

                  Hallo zusammen erstmal an das Forum!
                  Ich bin fleissiger Leser und hab schon solch manch brauchbare Info hier gefunden!
                  Jetzt komme ich nicht weiter und denke, dass ich hier richtig aufgehoben bin.
                  Ich versuche, mit tasmota meinen smarten Stromzähler auszulesen.
                  Das klappt auch gut über das Webinterface.
                  75d10b80-61f9-49b3-b384-4f855e539642-grafik.png
                  Jedoch sind für meine Anwendung die mqtt-Daten interessanter. Diese werden jedoch von dem ESP8266 nur nach einem Neustart aktualisiert bzw. bereitgestellt.

                  C:\Program Files (x86)\mosquitto>mosquitto_sub -h 192.168.1.133 -t tasmota/#
                  {"ip":"192.168.1.31","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_0DF0CF-4303","mac":"4417930DF0CF","md":"Generic","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"9.2.0.3","t":"tasmota_0DF0CF","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0},"lk":1,"lt_st":0,"sho":[0,0,0,0],"ver":1}
                  {"sn":{"Time":"2022-07-30T10:13:46","SML":{"Total_in":61.6,"Total_out":677.6891,"Power_curr":-1191,"Volt_p1":235.4,"Volt_p2":234.9,"Volt_p3":235.8,"Ampere_p1":1.66,"Ampere_p2":1.73,"Ampere_p3":1.93,"frequency":49.9}},"ver":1}
                  {"ip":"192.168.1.118","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_0D4704-1796","mac":"4417930D4704","md":"Generic","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"9.2.0.3","t":"tasmota_0D4704","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0},"lk":1,"lt_st":0,"sho":[0,0,0,0],"ver":1}
                  {"sn":{"Time":"2022-07-30T20:13:39","SML":{"Total_in":63.1,"Total_out":686.0649,"Power_curr":161,"Volt_p1":233.9,"Volt_p2":234.9,"Volt_p3":234.8,"Ampere_p1":0.70,"Ampere_p2":0.71,"Ampere_p3":0.86,"frequency":50.0}},"ver":1}

                  Da für gewöhnlich das Problem eher vor dem Bildschirm sitzt: Hat jemand einen Rat für mich, wo ich da den Bock drinnen habe?
                  Bei Tasmota unter Logging habe ich schon diverse Telemetry-Periods getestet, alles ohne Erfolg ;-( .
                  Viele Grüße
                  Torsten

                  Chaot 1 Reply Last reply Reply Quote 0
                  • Chaot
                    Chaot @henni774 last edited by

                    @henni774 Mal abgesehen davon das du auf einer uralten Version von Tasmota unterwegs bist wäre es noch recht schön wenn du die Ausgabe in Code Tags packen würdest die man dann besser lesen kann.

                    Was steht in den Einstellungen unter "Telemetrieperiode" (Bei Logging der unterste Punkt)?

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      henni774 @Chaot last edited by

                      @chaot
                      Vielen Dank für Deine Antwort.
                      Bei den Einstellungen unter Telemetrieperiode habe ich aktuell 30, habe aber auch schon 10, 100 und 300 probiert.
                      Mein Script schaut so aus (ich hoffe, das passt so mit der Darstellung) :

                      >D
                      >B
                      ->sensor53 r
                      >M 1
                      +1,4,s,16,9600,SML
                      1,77070100010800ff@1000,Bezug Gesamt,kWh,Total_in,1
                      1,77070100020800ff@1000,Einspeisung,kWh,Total_out,4
                      1,77070100100700ff@1,Aktueller Verbrauch,W,Power_curr,16
                      1,77070100200700ff@1,Volt P1,V,Volt_p1,1
                      1,77070100340700ff@1,Volt P2,V,Volt_p2,1
                      1,77070100480700ff@1,Volt P3,V,Volt_p3,1
                      1,770701001f0700ff@1,Ampere P1,A,Ampere_p1,2
                      1,77070100330700ff@1,Ampere P2,A,Ampere_p2,2
                      1,77070100470700ff@1,Ampere P3,A,Ampere_p3,2
                      ;1,77070100510704ff@1,Phaseangle I-L1/U-L1,deg,phase_angle_p1,1 
                      ;1,7707010051070fff@1,Phaseangle I-L27I-L2,deg,phase_angle_p2,1  
                      ;1,7707010051071aff@1,Phaseangle I-L3/I-L3,deg,phase_angle_p3,1 
                      1,770701000e0700ff@1,Frequenz,Hz,frequency,1
                      #
                      

                      Die Datenabfrage dann so:

                      C:\Program Files (x86)\mosquitto>mosquitto_sub -h 192.168.1.133 -t tasmota/#
                      

                      44b42668-a152-4f81-b7e2-a00646b659c3-grafik.png

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        henni774 @henni774 last edited by henni774

                        Eigenartiger Weise sind die Daten auf der Weboberfläche gefühlt sekündlich aktuell. Über mqtt kommen immer nur die Daten nach dem letzten Neustart des ESP.
                        Grüße
                        Torsten

                        Chaot 2 Replies Last reply Reply Quote 0
                        • Chaot
                          Chaot @henni774 last edited by Chaot

                          @henni774
                          Hast du JSON Export aktiviert?

                          #ifndef USE_SML_M
                          #define USE_SML_M
                          #endif
                          #ifndef USE_SML_SCRIPT_CMD
                          #define USE_SML_SCRIPT_CMD
                          #endif
                          #ifndef USE_SCRIPT_WEB_DISPLAY
                          #define USE_SCRIPT_WEB_DISPLAY
                          #endif
                          #ifndef USE_SCRIPT_JSON_EXPORT
                          #define USE_SCRIPT_JSON_EXPORT
                          #endif
                          

                          Das dann im Script dazu:

                          >J
                          ,"Verbrauch Tag":"%sd%"
                          ,"Verbrauch Monat":"%smn%"
                          ,"Verbrauch Jahr":"%syn%"
                          ,"Zählerstand 0:00Uhr":"%2sm%"
                          ,"Zählerstand Monatsanfang":"%2sma%"
                          ,"Zählerstand Jahrenanfang":"%2sya%"
                          ,"Kosten dieses Jahr":"%2yspr%"
                          

                          Soweit ich mich erinnere habe ich das für MQTT gebraucht.

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            henni774 @Chaot last edited by

                            @chaot
                            Oh, ich glaube, das könnte zielführend werden, danke schön!
                            Wo führe die Aktivierung des JSON Exports durch?

                            Chaot 1 Reply Last reply Reply Quote 0
                            • Chaot
                              Chaot @henni774 last edited by

                              @henni774 Noch was gemerkt:
                              Bei mir läuft web log level auf "2"
                              Dann siehst du zumindest in der Konsolenansicht ob dort aktualisiert wird.

                              Geh auch mal mit der Tasmotaversion auch über 10. Da gab es gerade bei den Scripts einige Veränderungen.

                              1 Reply Last reply Reply Quote 0
                              • Chaot
                                Chaot @henni774 last edited by

                                @henni774
                                Die Aktivierungen musst du beim Erstellen der Firmware angeben. Du hast ja auch SML aktiviert. Also in der userconfig

                                H 1 Reply Last reply Reply Quote 0
                                • H
                                  henni774 @Chaot last edited by

                                  @chaot
                                  Besten Dank, ich werd mich da nachher mal drum kümmern 👍

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    henni774 @henni774 last edited by

                                    @chaot
                                    Hallo Chaote, bin jetzt auf Tasmota 12.0, Json Export ist drin. Aber derzeit ohne Besserung - die mqtt-Daten kommen nur einmal nach dem Neustart.
                                    Wobei ich zu mqtt im Scipt nichts drinnen habe. Erklärt sich mir nicht, warum er dann am Anfang sendet ... .
                                    Es ist zum Mäuse melken ... das aber erscheint mir komisch (kommt aus der Konsole):

                                    17:17:44.424 MQT: tele/tasmota_0D4704/STATE = {"Time":"2022-07-31T17:17:44","Uptime":"0T00:15:40","UptimeSec":940,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":25,"MqttCount":1,"Wifi":{"AP":1,"SSId":"o2-WLAN08","BSSId":"B0:EA:BC:FE:2C:A3","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:04"}}
                                    

                                    Der mqtt-Zähler steht und bleibt auf 1 ....

                                    Hier mal die user_config:

                                    #ifndef _USER_CONFIG_OVERRIDE_H_
                                    #define _USER_CONFIG_OVERRIDE_H_
                                    
                                    
                                    #ifndef USE_SCRIPT
                                    #define USE_SCRIPT //# adds about 17k flash size, variable ram size
                                    #endif
                                    #ifdef USE_RULES
                                    #undef USE_RULES
                                    #endif
                                    #define USE_SML_M
                                    
                                    #undef STA_SSID1
                                    #define STA_SSID1 "o2-WLAN08"// [Ssid1] Wifi SSID
                                    #undef STA_PASS1
                                    #define STA_PASS1 "********" // [Password1] Wifi password
                                    #undef MQTT_HOST
                                    #define MQTT_HOST "192.168.1.133" // [MqttHost]
                                    #undef MQTT_PORT
                                    #define MQTT_PORT 1883 // [MqttPort] MQTT port (10123 on CloudMQTT)
                                    #undef MQTT_USER
                                    #define MQTT_USER "" // [MqttUser] Optional user
                                    #undef MQTT_PASS
                                    #define MQTT_PASS "" // [MqttPassword] Optional password
                                    
                                    #define USE_SCRIPT_WEB_DISPLAY
                                    #define USE_SCRIPT_JSON_EXPORT 
                                    #define USE_EXPRESSION
                                    #define SUPPORT_IF_STATEMENT 
                                    
                                    #ifndef USE_SML_SCRIPT_CMD
                                    #define USE_SML_SCRIPT_CMD
                                    #endif
                                    
                                    #endif
                                    
                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      henni774 @henni774 last edited by

                                      Oha, ich habs ....

                                      H 1 Reply Last reply Reply Quote -1
                                      • H
                                        henni774 @henni774 last edited by

                                        Ich hab den Scriptaufruf völlig ignoriert, jetzt läufts ...

                                        =>publish %topic% %e%;%p%;%s%
                                        

                                        Vielen vielen Dank nochmal für die Hilfe.
                                        Torsten

                                        PS: Wiedermal saß das Problem vor dem Bildschirm .... .

                                        1 Reply Last reply Reply Quote 1
                                        • H
                                          HugoBecker @m4 last edited by

                                          @m4
                                          Hallo M4,
                                          ich möchte über einen WT32-ETH01 und eine Hichi-Lesekopf meinen Stromzähler per SML auslesen.
                                          Arbeiten soll das Ganze über LAN, da kein ausreichender Empfang per WLAN im Sicherungskasten vorhanden ist.
                                          Diese Konstellation scheinst Du ja auch zu nutzen.
                                          Jetzt zu meinem Problem: Egal wie ich das bin-File für den ESP32 auch compiliere (TasmoCompiler, Tasmota Installer oder über Visual Studio Code),
                                          es funktioniert immer nur entweder Ethernet oder Script (SML). Es gelingt mir nicht beides zu Laufen zu bringen.
                                          Wie hast Du das denn geschafft ? Kannst Du mir vielleicht eine nachvollziehbare Lösung nennen ?
                                          Ich wäre wirklich dankbar dafür...
                                          Hugo

                                          1 Reply Last reply Reply Quote 0
                                          • Uli Geins
                                            Uli Geins last edited by Uli Geins

                                            Hi zusammen. Danke an alle, für die wirklich gute Unterstützung und Anregung für's Scripten.
                                            Ich bräuchte bitte Hilfe, da ich irgendwie ein Problem habe die Autarkie meiner PV Anlage mit Speicher in das Script zu bringen.
                                            So schaut die Auswertung momentan aus.

                                            IMG-20220913-WA0013.jpg

                                            Wäre schön, wenn jemand eine Idee zur Formel hat und umsetzen könnte für das Script. Danke ...

                                            Hier noch mein Script.

                                            >D
                                            rssi=0
                                            s1="Tagesverbrauch: {m}<b><span style=>"
                                            v2=0
                                            v3=0
                                            sec=0
                                            hr=0
                                            md=0
                                            yr=0
                                            p:sm=0
                                            sd=0
                                            p:sme=0
                                            sde=0
                                            p:sma=0
                                            p:smb=0
                                            smn=0
                                            smo=0
                                            p:sya=0
                                            p:syb=0
                                            syn=0
                                            syo=0
                                            sspr=0.1993
                                            ssps=0.086
                                            yspr=0
                                            ysps=0
                                            yspt=0
                                            ysgp=150.00
                                            ystag=0
                                            yetag=0
                                            getmon=0
                                            yemon=0
                                            ysyear=0
                                            setoff=72
                                             
                                            >T
                                            v2=SML#Total_in
                                            v3=SML#Total_out
                                            rssi=Wifi#RSSI
                                            
                                            >B
                                            ->sensor53 r
                                             
                                            >S
                                             
                                            ;Tagesverbrauch
                                            hr=hours
                                            if chg[hr]>0
                                            and hr==0
                                            then
                                            sm=v2
                                            sme=v3
                                            svars
                                            endif
                                            if upsecs%tper==0
                                            then
                                            sd=v2-sm
                                            sde=v3-sme
                                            endif
                                             
                                            ;Monatsverbrauch
                                            md=day
                                            if chg[md]>0
                                            and hr==0
                                            and md==1
                                            then
                                            sma=v2
                                            smb=v3
                                            svars
                                            endif
                                            if upsecs%tper==0
                                            then
                                            smn=v2-sma+setoff
                                            smo=v3-smb
                                            endif
                                             
                                            ;Jahresverbrauch
                                            yr=year
                                            if chg[yr]>0
                                            and hr==0
                                            and md==1
                                            then
                                            sya=v2
                                            syb=v3
                                            svars
                                            endif
                                            if upsecs%tper==0
                                            then
                                            syn=v2-sya+setoff
                                            syo=v3-syb
                                            endif
                                             
                                            ;Kosten
                                            ystag=sd*sspr
                                            yetag=sde*ssps
                                            getag=ystag-yetag
                                            yspr=syn*sspr+ysgp
                                            getmon=smn*sspr
                                            yemon=smo*ssps
                                            ysps=syo*ssps
                                            yspt=yspr-ysps
                                            ysyear=syn*sspr
                                            endif
                                             
                                            >J
                                            ,"Verbrauch Tag":"%sd%"
                                            ,"Einspeisung Tag":"%sde%"
                                            ,"Verbrauch Monat":"%smn%"
                                            ,"Einspeisung Monat":"%smo%"
                                            ,"Verbrauch Jahr":"%syn%"
                                            ,"Kosten pro Tag":"%2ystag%"
                                            ,"Ertrag pro Tag":"%2yetag%"
                                            ,"Kosten pro Monat":"%2getmon%"
                                            ,"Ertrag pro Monat":"%2yemon%"
                                             
                                            >W
                                            WLAN Empfang: {m}%rssi% dBm
                                            ==============
                                            Tagesverbrauch: {m} %2sd%  KWh {m} %2ystag%  €
                                            Tagesertrag: {m} %2sde%  KWh {m} %2yetag%  €
                                            Monatsverbrauch: {m} %2smn% KWh {m} %2getmon%  €
                                            Monatsertrag: {m} %2smo% KWh {m} %2yemon%  €
                                            Jahresverbrauch: {m} %2syn% KWh {m} %2ysyear%  €
                                            Jahresertrag: {m} %2syo% KWh {m} %2ysps%  €
                                            ==============
                                            Strom Bezug Preis/kWh:       {m} %4sspr% €
                                            Strom Ertrag Preis/kWh:       {m} %4ssps% €
                                            Strom Grundpreis:      {m} %2ysgp% €
                                            --------------
                                            Strom Bezug lfd. Jahr:{m} %2yspr% €
                                            Strom Ertrag lfd. Jahr:{m} %2ysps% €
                                            Strom Gesamtkosten lfd. Jahr:{m} %2yspt% €
                                            ==============
                                            Strom Zählerstände:
                                            aktuell:         {m} %2v2% KWh
                                            0:00 Uhr:        {m} %2sm% KWh
                                            0:00 UhrEins:        {m} %2sme% KWh
                                            Monatsanfang:    {m} %2sma% KWh
                                            MonatsanfangEins:    {m} %2smb% KWh
                                            Jahresanfang:    {m} %2sya% KWh
                                            ==============
                                             
                                            
                                             
                                            >M 1
                                            +1,3,s,0,9600,SML
                                            1,77070100010800ff@1000,Total Bezug,KWh,Total_in,4  
                                            1,77070100020800ff@1000,Total Ertrag,KWh,Total_out,4  
                                            1,77070100100700ff@1,Current ,W,Power_curr,0
                                            #
                                            
                                            
                                            
                                            Michael Brunner _ 2 Replies Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            939
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            d0-schnittstelle esp8266 sml sonoff stromzähler stromzähler auslesen tasmota volkszähler
                                            83
                                            562
                                            178236
                                            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