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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Stromzähler per Sonoff ESP8266 auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jaschkopf @martin last edited by

      @martin Ich verwende diesen Lesekopf: https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-ttl-ausgang
      Dazu gibt es auch einen anderen Thread von mir bezüglich einer Sammelbestellung: https://forum.iobroker.net/topic/25224/sammelbestellung-volkszähler

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

        @Jaschkopf Hallo, ich bin ein ziemliches Greenhorn in Sachen ioBroker. Ich arbeite hierbei in einer Windows-Umgebung. Atom ist installiert, das Tasmota Branch heruntergeladen und in Atom entsprechend angepasst. Hardware ist ein AZ-D1-Mini. Ich habe deine Anleitung bis zum Flashen so weit durchgeführt.

        Zum Flaschen habe ich einen AZ-FTDI-Adapter und ich verwende das Windows-Flashtool ESP8266 Flasher von Kindermann. Ab jetzt hänge ich:
        Gnd = OK
        RX/TX getauscht, d.h. RX-FTDI = TX-D1-Mini und TX-FTDI = RX-D1-Mini
        +5V

        Wie bekomme ich den D1-Mini in den Flashmode und welche Datei aus dem Branch muss ich zum flashen wählen?

        J 1 Reply Last reply Reply Quote 0
        • J
          Jaschkopf @RalfTh last edited by

          @RalfTh Also den FTDI Adapter kannst du weg lassen. Der AZ-D1-Mini hat einen CH340G USB Controller an Board. Damit kannst du deinen D1-Mini direkt per Micro USB an den Rechner hängen. Das flashen kannst du auch direkt über Atom bzw. PlatformIO durchführen. Dazu den COM-Port raus suchen und in der Datei platromio.ini in Zeile 71-82 den Port eingeben und die anderen Zeile auskommentieren. Bei mir sieht das so aus:

          board_build.f_cpu         = 80000000L
          monitor_speed             = 115200
          upload_speed              = 115200
          ; *** Upload Serial reset method for Wemos and NodeMCU
          upload_resetmethod        = nodemcu
          upload_port               = COM5
          ;upload_port = /dev/cu.wchusbserial1420
          ;upload_port = /dev/cu.SLAB_USBtoUART
          ;upload_port = /dev/cu.usbserial-00002014B
          

          Wenn das passt kannst du oben Links auf "upload" klicken. Am D1 musst du sonst nichts machen. Nur anstecken.

          Gruß Jaschkopf

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

            @Jaschkopf Vielen Dank für die schnelle Antwort. Jetzt verstehe ich auch diese Zeilen. Habe alles geändert. Beim Versuch des Uploads mit "Upload to remote device" ALT+CMD+R gibt es allerdings eine Fehlermeldung: "Platformio failed to run Command: remote" und weiter "Please make sure that "build" Package ist installed and activated.

            Im Verzeichnis buid_output/Firmware ist allerdings ein Binary vorhanden mit heutigen Erstellungsdatum:

            Keine Ahnung was da läuft.

            1 Reply Last reply Reply Quote 0
            • J
              Jaschkopf last edited by

              Seltsam. Versuch mal Atom und platformio neu zu installieren. Der Setup von platformio dauert mit unter sehr lange und beim 1. Build werden nochmal Pakete runter geladen.

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

                @Jaschkopf Mach ich. Habe das bin jetzt mit FlashESP286.exe geflasht. Hier das Ergebnis:

                aa4db864-69b6-43b1-b0e6-a013d7f9619c-image.png

                Das Skript habe ich auch mal so eingestellt. Bei mir arbeitet ein Zähler von der Firma:

                a8b69bcf-ce0c-4967-a2a0-6ff62585ae4f-image.png

                Ich hoffe, das passt so mit dem Skript.

                Bleibt nur noch ein letztes Problem: Ich habe den Sensor von ELV, da der Volkszähler nicht erhältlich ist. GND und +5V(das braucht wohl der Sensor von ELV) habe ich schon gefunden.

                fe939257-64cb-488a-b7c7-1c87b00feacd-image.png

                Ich tippe auf Pin6

                Bliebe für mich der Anschluss an +5V, GND und RX am ESP?!

                J 1 Reply Last reply Reply Quote 0
                • J
                  Jaschkopf @RalfTh last edited by

                  @RalfTh der Lesekopf den du da hast ist dazu da um Blinkimpulse der s0 Schnittstelle auszuwerten. Damit kann ich dir leider nicht weiter helfen. Ich habe aber noch Volkszähler Bausätze hier liegen falls du Interesse hast. So lange du keine Werte angezeigt bekommst stimmt etwas noch nicht. Du kannst aber in der Konsole die Rohwerte anzeigen lassen. Der Befehl "sensor53 d1" aktiviert die Debug Ausgabe des 1. Zählers.

                  Gruß Jascha

                  RalfTh 2 Replies Last reply Reply Quote 0
                  • RalfTh
                    RalfTh @Jaschkopf last edited by RalfTh

                    @Jaschkopf Ich habe dir da einen falschen Schaltplan gepostet. Ich habe diesen Bausatz
                    mit Infrarot Sender und Empfänger.

                    Ich hätte Interesse an einem Bausatz des Volkszählers. Was soll der denn Kosten?

                    J 1 Reply Last reply Reply Quote 0
                    • J
                      Jaschkopf @RalfTh last edited by

                      @RalfTh Ob der Lesekopf von ELV überhaupt mit einer NodeMCU funktioniert kann ich dir nicht sagen. Hab dazu keinen Schaltplan gefunden. Wegen einem Volkszähler Lesekopf schreib mir doch einfach eine PN.

                      Gruß Jaschkopf

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

                        @Jaschkopf
                        in Deiner Anleitung steht:

                        Zeile 454:
                        ALT:
                        NEU: #define USE_SML_M

                        jedoch in der orig. my_user_config.h steht in Zeile 454:

                        // #define USE_DISPLAY_ILI9488
                        // [DisplayModel 8] [I2cDriver38] (Touch)

                        einfach Zeile anfügen oder Zeile ersetzen?

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          Jaschkopf @mkrobe last edited by

                          @mkrobe Die Zeile muss neu erstellt werden. Bei mir beginnt in Zeile 453 der Bereich "Serial Sensors" mit einem Kommentar. In dem Bereich muss die Zeile eingefügt werden. Je nachdem was vorher in der Datei geändert wird können sich die Zeilennummern verschieben. Bei mir sieht das so aus:

                          // -- Serial sensors ------------------------------
                          #define USE_SML_M
                          #define USE_MHZ19                                // Add support for MH-Z19 CO2 sensor (+2k code)
                          #define USE_SENSEAIR                             // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code)
                            #define CO2_LOW              800               // Below this CO2 value show green light (needs PWM or WS2812 RG(B) led and enable with SetOption18 1)
                            #define CO2_HIGH             1200              // Above this CO2 value show red light (needs PWM or WS2812 RG(B) led and enable with SetOption18 1)
                          #define USE_PMS5003                              // Add support for PMS5003 and PMS7003 particle concentration sensor (+1k3 code)
                            //#define PMS_MODEL_PMS3003                      // Enable support of PMS3003 instead of PMS5003/PMS7003 (needs the USE_PMS5003 above)
                          #define USE_NOVA_SDS                             // Add support for SDS011 and SDS021 particle concentration sensor (+1k5 code)
                            #define STARTING_OFFSET      30                // Turn on NovaSDS XX-seconds before tele_period is reached
                          //#define USE_HPMA                                 // Add support for Honeywell HPMA115S0 particle concentration sensor (+1k4)
                          #define USE_SERIAL_BRIDGE                        // Add support for software Serial Bridge (+0k8 code)
                          //#define USE_MP3_PLAYER                           // Use of the DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop
                            #define MP3_VOLUME           10                // Set the startup volume on init, the range can be 0..30(max)
                          //#define USE_AZ7798                               // Add support for AZ-Instrument 7798 CO2 datalogger (+1k6 code)
                          //#define USE_PN532_HSU                            // Add support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem)
                          //  #define USE_PN532_CAUSE_EVENTS                 // Cause event execution for PN532_UID= and PN532_DATA=[if defined] (+ 30 bytes code)
                          //  #define USE_PN532_DATA_FUNCTION                // Add sensor40 command support for erase, setting data block content (+1k7 code, 388 bytes mem)
                          //  #define USE_PN532_DATA_RAW                     // Allow DATA block to be used by non-alpha-numberic data (+ 80 bytes code, 48 bytes ram)
                          //#define USE_RDM6300                              // Add support for RDM6300 125kHz RFID Reader (+0k8)
                          //#define USE_IBEACON                              // Add support for bluetooth LE passive scan of ibeacon devices (uses HM17 module)
                          

                          Gruß Jaschkopf

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

                            @Jaschkopf Der Lesekopf ist montiert. Das Skript hab meines AZ-Delivery D1 mini habe ich folgendermaßen mit dem Volkszähler verbunden:

                            Gnd, +3,3V und Rxd des Volkszählers an GPIO13(D7) des D1 Mini angeschlossen.

                            26374a0f-3376-4db4-adb7-1816a867f15e-image.png

                            Leider bekomme ich nichts angezeigt.

                            8f101830-e8ff-4c8e-b6bc-6b0c444cd99d-image.png

                            Die Zeile 2 des Zählers wechselt regelmäßig zwischen den einzelnen, möglichen Ausgabewerten. Mache ich da noch was verkehrt?

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              Jaschkopf @RalfTh last edited by

                              @RalfTh sagte in Stromzähler per Sonoff ESP8266 auslesen:

                              @Jaschkopf Der Lesekopf ist montiert. Das Skript hab meines AZ-Delivery D1 mini habe ich folgendermaßen mit dem Volkszähler verbunden:

                              Gnd, +3,3V und Rxd des Volkszählers an GPIO13(D7) des D1 Mini angeschlossen.

                              26374a0f-3376-4db4-adb7-1816a867f15e-image.png

                              Leider bekomme ich nichts angezeigt.

                              8f101830-e8ff-4c8e-b6bc-6b0c444cd99d-image.png

                              Die Zeile 2 des Zählers wechselt regelmäßig zwischen den einzelnen, möglichen Ausgabewerten. Mache ich da noch was verkehrt?

                              Hast du schon ein Skript erstellt? Was für eine Zähler hast du? Ggf muss der mit einem Pin freigeschaltet werden bevor er Daten ausgibt. Oder manche Zähler benötigen eine Startsequenz damit sie Daten senden. Das solltest du noch in Erfahrung bringen.

                              RalfTh Guano Apes 2 Replies Last reply Reply Quote 0
                              • RalfTh
                                RalfTh @Jaschkopf last edited by RalfTh

                                @Jaschkopf Das Skript sieht so aus, wie du es oben beschrieben hast. Ich habe einen Zähler von EMH, Typ HW8E2A5L0EK2P (siehe mein Post vom 22.01.) Das Protokoll ist SML und die Baudrate 9600Bd. PIN habe ich erhalten und eingegeben. Deshalb kann ich ja die Werte in der zweiten Zeile des Zählers abrufen.

                                J 1 Reply Last reply Reply Quote 0
                                • J
                                  Jaschkopf @RalfTh last edited by

                                  @RalfTh gib mal "sensor53 d1" in die Konsole ein. Damit aktiviert du das debuging und kannst die rohwerte in der Konsole sehen. Der Zähler sollte seine Daten 1x pro sek ausgeben. Wenn du in der Konsole keine Werte siehst stimmt mit der Hardware etwas nicht.

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

                                    @Jaschkopf Hier das LOG:


                                    22:04:21 CMD: sensor53 d1
                                    22:04:21 MQT: stat/tasmota/RESULT = {"Time":"2020-02-04T22:04:21","SML":{"CMD":"dump: 1"}}
                                    22:04:30 MQT: tele/tasmota/STATE = {"Time":"2020-02-04T22:04:30","Uptime":"0T00:51:02","UptimeSec":3062,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER":"ON","Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":6,"RSSI":70,"Signal":-65,"LinkCount":1,"Downtime":"0T00:00:06"}}
                                    22:04:30 MQT: tele/tasmota/SENSOR = {"Time":"2020-02-04T22:04:30","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}
                                    22:04:40 MQT: tele/tasmota/STATE = {"Time":"2020-02-04T22:04:40","Uptime":"0T00:51:12","UptimeSec":3072,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":1,"POWER":"ON","Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":6,"RSSI":66,"Signal":-67,"LinkCount":1,"Downtime":"0T00:00:06"}}
                                    22:04:40 MQT: tele/tasmota/SENSOR = {"Time":"2020-02-04T22:04:40","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}
                                    22:04:50 MQT: tele/tasmota/STATE = {"Time":"2020-02-04T22:04:50","Uptime":"0T00:51:22","UptimeSec":3082,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER":"ON","Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":6,"RSSI":70,"Signal":-65,"LinkCount":1,"Downtime":"0T00:00:06"}}
                                    22:04:50 MQT: tele/tasmota/SENSOR = {"Time":"2020-02-04T22:04:50","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}
                                    22:05:00 MQT: tele/tasmota/STATE = {"Time":"2020-02-04T22:05:00","Uptime":"0T00:51:32","UptimeSec":3092,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER":"ON","Wifi":{"AP":1,"SSId":"Palatina","BSSId":"5C:49:79:55:9E:DC","Channel":6,"RSSI":68,"Signal":-66,"LinkCount":1,"Downtime":"0T00:00:06"}}
                                    22:05:00 MQT: tele/tasmota/SENSOR = {"Time":"2020-02-04T22:05:00","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      Jaschkopf @RalfTh last edited by

                                      @RalfTh also außer das alle 10sek die Daten per mqtt gesendet werden passiert da nichts. Ggf sind bei deinem Zähler sende und Empfangs led umgedreht. Prüf das mal mit deiner Handykamera ob dein Zähler überhaupt Daten ausgibt und wenn ja auf welcher Seite. Ich muss meine Lesekopf auch um 180° verdreht aufsetzen (Kabel nach oben) damit er funktioniert.

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

                                        @Jaschkopf OK, danke.Ich werde das morgen mal probieren. Bei mir ist links der Lichtsensoreingang und rechts die Datenschnittstelle. Habe dazu ein Bild meines Energieversorgers erhalten.

                                        J 2 Replies Last reply Reply Quote 0
                                        • J
                                          Jaschkopf @RalfTh last edited by

                                          @RalfTh ich meine bei mir ist die Schnittstelle genauso angeordnet. Probier mal den Lesekopf um 180° mit dem Kabel nach oben aufzusetzen

                                          1 Reply Last reply Reply Quote 0
                                          • J
                                            Jaschkopf @RalfTh last edited by

                                            @RalfTh mir ist gerade noch was eingefallen. Wenn du das Skript 1:1 übernommen hast, muss RXD auf Pin 13 liegen. Du bist aber auf GPIO13, was Pin 7 entspricht. Einen Pin 13 hat der D1 ja garnicht. Versuch mal im Skript in Sektion >M die Zeile für die Zählerdefinition zu ändern auf Pin 7:

                                            >M
                                            +1,7,s,1,9600,SML
                                            

                                            PS: Wenn du das Debugging mit "sensor53 d1" aktiviert hast wird die Werteausgabe über das Webinterface gestoppt. Wenn du auf der Startseite wieder Werte haben willst musst du entweder den D1 neustarten oder mit "sendor53 d0" das Debugging wieder ausschalten.

                                            Gruß Jaschkopf

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            944
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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