Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Sonoff-Adapter: Tasmota Stromzähler spinnt

    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

    Sonoff-Adapter: Tasmota Stromzähler spinnt

    This topic has been deleted. Only users with topic management privileges can see it.
    • MartinP
      MartinP @BananaJoe last edited by

      @bananajoe
      Ist das Copy & Paste von der Tasmota Webseite für eBZ DD3

      >D
      >B
      TelePeriod 30
      =>sensor53 r
      >M 1
      ; Device: eBZ DD3 2R06 ODZ1
      ; protocol is D0 OBIS ASCII
      ; 9600@7E1 for OP-type devices, 9600@8N1 for SM-type devices
      +1,3,o,0,9600,OP,1
      ; Zählerstand zu +A, tariflos, 
      ; Zählerstände Auflösung 10 µW*h (6 Vorkomma- und 8 Nachkommastellen)
      1,1-0:1.8.0*255(@0.001,Energie Bezug,Wh,1_8_0,8
      ; Zählerstand zu +A, Tarif 1
      ; 1,1-0:1.8.1*255(@0.001,Energie Bezug T1,Wh,1_8_1,8
      ; Zählerstand zu +A, Tarif 2
      ; 1,1-0:1.8.2*255(@0.001,Energie Bezug T2,Wh,1_8_2,8
      ; Zählerstand zu -A, tariflos
      ; 1,1-0:2.8.0*255(@0.001,Energie Export,Wh,2_8_0,8
      ; Summe der Momentan-Leistungen in allen Phasen, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
      1,1-0:16.7.0*255(@1,Leistung,W,16_7_0,18
      ; Momentane Leistung in Phase Lx, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
      1,1-0:36.7.0*255(@1,Leistung L1,W,36_7_0,18
      1,1-0:56.7.0*255(@1,Leistung L2,W,56_7_0,18
      1,1-0:76.7.0*255(@1,Leistung L3,W,76_7_0,18
      ; Spannung in Phase Lx, Auflösung 0,1V (nur über MSB)
      1,1-0:32.7.0*255(@1,Spannung L1,V,32_7_0,1
      1,1-0:52.7.0*255(@1,Spannung L2,V,52_7_0,1
      1,1-0:72.7.0*255(@1,Spannung L3,V,72_7_0,1
      ; Statuswort, 4 Byte Information über den Betriebszustand, HEX string
      ; tasmota can decode one string per device only!
      ;1,1-0:96.5.0*255(@#),Status1,,96_5_0,0
      ;1,1-0:96.8.0*255(@#),Status2,,96_8_0,0
      ; Geräte-Identifikation, Nach DIN 43863-5 
      1,1-0:96.1.0*255(@#),Identifikation,,96_1_0,0
      ;1,1-0:0.0.0*255(@#),Identifikation,,0_0_0,0
      #
      

      f39b1673-8881-4374-a1a2-d57b4b3e5340-grafik.png

      BananaJoe 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @MartinP last edited by

        @martinp also:

        Die Zeile 3

        Teleperiod 30
        

        muss da raus, das ist kein gültiger SML Befehl. Den Befehl musst du einmalig(!) in der normalen Konsole eingeben, dann gilt der Wert.
        Der Rest sieht ok aus, wenn auch viele Kommentare.
        Das würde ich zuerst testen, dann sollten alle 30 Sekunden alle Werte in einem JSON auf dem MQTT-Broker reinkommen.

        Alternativ (aber erst das andere Testen):

        >D
        >B
        =>sensor53 r
        >M 1
        +1,3,o,0,9600,OP,1
        1,1-0:1.8.0*255(@0.001,Energie Bezug,Wh,1_8_0,8
        1,1-0:16.7.0*255(@1,Leistung,W,16_7_0,18
        1,1-0:36.7.0*255(@1,Leistung L1,W,36_7_0,18
        1,1-0:56.7.0*255(@1,Leistung L2,W,56_7_0,18
        1,1-0:76.7.0*255(@1,Leistung L3,W,76_7_0,18
        1,1-0:32.7.0*255(@1,Spannung L1,V,32_7_0,1
        1,1-0:52.7.0*255(@1,Spannung L2,V,52_7_0,1
        1,1-0:72.7.0*255(@1,Spannung L3,V,72_7_0,1
        1,1-0:96.1.0*255(@#),Identifikation,,96_1_0,0
        #
        >S
        =>Publish stromzaehler/tasmota/Energie-Bezug %sml[1]%
        =>Publish stromzaehler/tasmota/Leistung-Summe %sml[2]%
        =>Publish stromzaehler/tasmota/Leistung-L1 %sml[3]%
        =>Publish stromzaehler/tasmota/Leistung-L2 %sml[4]%
        =>Publish stromzaehler/tasmota/Leistung-L3 %sml[5]%
        =>Publish stromzaehler/tasmota/Spannung-L1 %sml[6]%
        =>Publish stromzaehler/tasmota/Spannung-L2 %sml[7]%
        =>Publish stromzaehler/tasmota/Spannung-L3 %sml[8]%
        

        Man beachte die zusätzlichen Zeilen unter dem #
        %sml[1]% steht schlicht "für den ersten Wert den du per SML ermittelt hast", 2,3,4 usw. entsprechend die anderen Werte.
        die Befehle senden diese an das angebenene MQTT-Topic, den Pfad kannst du dir also anpassen.
        Aber(!) die senden bei jeder Änderung, also vermutlich im Sekundentakt. Dafür dann in einzelnen Topics.
        Ich nutze das bei mir nur für die Gesamtleistung, an dem Datenpunkt hängt meine Solarsteuerung für Akku laden und Einspeisung, da will ich den Wert so oft haben.

        MartinP 1 Reply Last reply Reply Quote 0
        • MartinP
          MartinP @BananaJoe last edited by MartinP

          @bananajoe Prinzipiell scheint es zu funktionieren, Gibt aber nur eine Message, und dann Funkstille

          MQTT Explorer über Mosquitto

          {
            "sn": {
              "Time": "2024-11-17T13:09:27",
              "Switch1": "OFF",
              "OP": {
                "1_8_0": 16246407.10444,
                "16_7_0": 818.66,
                "36_7_0": 370.8,
                "56_7_0": 320.28,
                "76_7_0": 127.58,
                "32_7_0": 226.6,
                "52_7_0": 226.4,
                "72_7_0": 227.6,
                "96_1_0": "1EBZ......................."
              }
            },
            "ver": 1
          }
          
          tasmota/discovery/308398B5F63F/sensors
          
          
          MartinP 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @MartinP last edited by MartinP

            Gibt zwei "Materialisierungen"

            Obiges, unter "discovery" da passiert nach dem Ersten Durchlauf nichts mehr ..

            Und dann noch /tele/Stromzaehler..../SENSOR

            Und da rollen sukzessive einzelne Werte durch ...

            {"Time":"2024-11-17T14:04:59","OP":{"16_7_0":739.16}}
            

            Das ist wirklich nicht schön zu verarbeiten ...

            Habe es mal so per Alias probiert ...

            38a2d66d-f468-47b6-a89a-d69a41f9c8ec-grafik.png

            Funktioniert nicht

            MartinP 1 Reply Last reply Reply Quote 0
            • MartinP
              MartinP @MartinP last edited by

              @martinp Noch einmal umgebaut ...

              6be06e03-f6fb-4733-ab15-13f4c0aa745d-grafik.png

              Bei "tele" kommen immer nur die Einzelwerte, die geändert wurden ... das aber SOFORT bei Änderung...

              Bei "discovery" gibt es ein Gesamtbild, das wird aber anscheinend gar nicht, oder nur sporadisch aktualisiert ...

              BananaJoe 1 Reply Last reply Reply Quote 0
              • MartinP
                MartinP last edited by

                Erstes Analyse Blockly ...

                e3134cb7-c728-4894-9b86-f53cd05c1c5d-grafik.png

                1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active last edited by BananaJoe

                  was kommt denn wenn du SENSOR in die Konsole auf dem Tasmota eingibst?
                  Man kann das nämlich auch antriggern, z.B. per MQTT

                  1 Reply Last reply Reply Quote 0
                  • BananaJoe
                    BananaJoe Most Active @MartinP last edited by BananaJoe

                    @martinp sagte in Sonoff-Adapter: Tasmota Stromzähler spinnt:

                    @martinp Noch einmal umgebaut ...

                    6be06e03-f6fb-4733-ab15-13f4c0aa745d-grafik.png

                    Bei "tele" kommen immer nur die Einzelwerte, die geändert wurden ... das aber SOFORT bei Änderung...

                    Bei "discovery" gibt es ein Gesamtbild, das wird aber anscheinend gar nicht, oder nur sporadisch aktualisiert ...

                    Tja, da müsste man mal schauen, ist bestimmt ein Konfiguartionsbefehl der den Unterschied macht.
                    Hast du Rules aktiv?
                    Gib mal nacheinander Rule1, Rule2 etc. in der Konsole ein

                    Ggf. müsste man mit so etwas wie https://github.com/tasmota/decode-config mal die bestehende Konfiguration auseinander nehmen. Normal ist das Verhalten nicht, ich nehme an das ist so eingestellt.
                    Hast du noch die Anleitung nach der du das gebaut hast?

                    MartinP 1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP @BananaJoe last edited by MartinP

                      @bananajoe

                      Da kommt nichts

                      18:17:47.258 CMD: rule 1
                      18:17:47.265 MQT: stat/Stromzaehler_B5F63F/RESULT = {"Command":"Unknown"}
                      
                      18:23:00.228 CMD: rule1
                      18:23:00.236 MQT: stat/Stromzaehler_B5F63F/RESULT = {"Command":"Unknown"}
                      
                      

                      Anscheinend werden einzelne Werte bei jeder Änderung geschickt, und zwischendurch gibt es summarisch noch einmal "alles"...

                      javascript.0
                      	2024-11-17 18:08:40.627	info	script.js.Energiezaehler.Stromzaehler: Entry 1_8_0,16_7_0,36_7_0,56_7_0,76_7_0,32_7_0,52_7_0,72_7_0,96_1_0 =
                      javascript.0
                      	2024-11-17 18:08:40.627	info	script.js.Energiezaehler.Stromzaehler: Entry 1_8_0,16_7_0,36_7_0,56_7_0,76_7_0,32_7_0,52_7_0,72_7_0,96_1_0 =
                      javascript.0
                      	2024-11-17 18:08:40.626	info	script.js.Energiezaehler.Stromzaehler: Entry 1_8_0,16_7_0,36_7_0,56_7_0,76_7_0,32_7_0,52_7_0,72_7_0,96_1_0 =
                      javascript.0
                      	2024-11-17 18:08:40.625	info	script.js.Energiezaehler.Stromzaehler: Entry 1_8_0,16_7_0,36_7_0,56_7_0,76_7_0,32_7_0,52_7_0,72_7_0,96_1_0 =
                      javascript.0
                      	2024-11-17 18:08:40.425	info	script.js.Energiezaehler.Stromzaehler: Entry 76_7_0 =
                      javascript.0
                      	2024-11-17 18:08:40.357	info	script.js.Energiezaehler.Stromzaehler: Entry 56_7_0 =
                      javascript.0
                      	2024-11-17 18:08:40.352	info	script.js.Energiezaehler.Stromzaehler: Entry 36_7_0 =
                      
                      

                      Derzeit bastele ich noch am Blockly und kriege nur die Attribute, und nicht die zugehörigen Werte ... JSONATA ist böse über führende Ziffen in Pfad-Knoten-Namen ...

                      Hast du noch die Anleitung nach der du das gebaut hast?

                      Ich habe hier einfach die Konfiguration (view Script aufklappen) per Zwischenablage kopiert und auf meinen Node-MCU kopiert ..

                      https://tasmota.github.io/docs/Smart-Meter-Interface/#ebz-dd3-obissml

                      BananaJoe 1 Reply Last reply Reply Quote 0
                      • BananaJoe
                        BananaJoe Most Active @MartinP last edited by BananaJoe

                        @martinp wenn man dein Script zusammenkürzt sieht es nicht viel anders aus als meines.
                        Ich habe einen fertig geflashten "Hichi" Lesekopf gekauft, sensor53 d1 gestartet um den auf der IR-Schnittstelle auszurichten, dann sensor53 d0 um den Modus wieder zu beenden, das Skript reinkopiert, aktiviert und fertig war die Wurst. Alle Daten die das Skript ermittelt kommen gemäß der Teleperiod regelmäßig in einem String.
                        Meines ist das Skript hier: https://tasmota.github.io/docs/Smart-Meter-Interface/#easymeter-q3a-apator-apox-sml

                        Bei deinem Skript, hast du das darunter mal probiert? Die Verbindungsparameter sind anders,
                        statt

                        +1,3,o,0,9600,SM,1
                        

                        ist es

                        +1,13,s,0,9600,SML
                        

                        wie bei mir.

                        +1   = Erster Zähler
                        3    = GPIO Pin-Nummer für RX
                        o    = Typ "OBIS ASCII type of coding"
                        s    = Typ "SML binary smart message coding"
                        0    = Flag 0 = counter without pullup
                        9600 = Baudrate
                        SM   = JSON Prefix. Also ein beliebiger Begriff, Wenn man meine Vorschlag nimmt müsste man das anpassen, SM statt SML
                        1    = GPIO Nummer für das Senden ... Optional 
                        

                        Mhh, muss dein Zähler immer "befeuert" werden damit der was liefert?

                        Diese Seite hast du bestimmt auch mal ausprobiert:
                        https://tasmota-sml-parser.dicp.net/

                        Kannst ja mal testen ob dort ein anderes Skript herauskommt

                        MartinP 2 Replies Last reply Reply Quote 0
                        • MartinP
                          MartinP @BananaJoe last edited by

                          @bananajoe Vielleicht liegt es daran, dass ich am der zweiten Schnittstelle hänge.
                          Die ist eig. für ein Smart Meter Gateway.

                          An der anderen Schnittstelle konnte man kaum mehr, als den aktuellen Zählerstand abfragen.
                          Und die Magnethalterung hielt nicht richtig

                          1 Reply Last reply Reply Quote 0
                          • MartinP
                            MartinP @BananaJoe last edited by MartinP

                            @bananajoe

                            Bei mir steht

                            +1,3,o,0,9600,OP,1
                            

                            Im Template stand

                            +1,3,o,0,9600,SM,1
                            

                            Die "OP" statt der SM Präfik tauchen dann auch wieder auf ...

                            Den Sendepin habe ich verdrahtet, ich glaube aber nicht, dass aktiv abgefragt werden muss. Die Smartphone Kamera nimmt permanent ein Geblitze von der Sendediode am Zähler auf, auch ohne dass ein Lesekopf dranhängt ..

                            Scheine da in Details doch etwas modifiziert zu haben teleperiod habe ich erstmal herausgenommen ...
                            Aktuell hängt der Lesekopf wieder am Sonoff...

                            >D
                            >B
                            ; TelePeriod 30
                            =>sensor53 r
                            >M 1
                            ; Device: eBZ DD3 2R06 ODZ1
                            ; protocol is D0 OBIS ASCII
                            ; 9600@7E1 for OP-type devices, 9600@8N1 for SM-type devices
                            +1,3,o,0,9600,OP,1
                            ; Zählerstand zu +A, tariflos, 
                            ; Zählerstände Auflösung 10 µW*h (6 Vorkomma- und 8 Nachkommastellen)
                            1,1-0:1.8.0*255(@0.001,Energie Bezug,Wh,1_8_0,8
                            ; Zählerstand zu +A, Tarif 1
                            ; 1,1-0:1.8.1*255(@0.001,Energie Bezug T1,Wh,1_8_1,8
                            ; Zählerstand zu +A, Tarif 2
                            ; 1,1-0:1.8.2*255(@0.001,Energie Bezug T2,Wh,1_8_2,8
                            ; Zählerstand zu -A, tariflos
                            ; 1,1-0:2.8.0*255(@0.001,Energie Export,Wh,2_8_0,8
                            ; Summe der Momentan-Leistungen in allen Phasen, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
                            1,1-0:16.7.0*255(@1,Leistung,W,16_7_0,18
                            ; Momentane Leistung in Phase Lx, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
                            1,1-0:36.7.0*255(@1,Leistung L1,W,36_7_0,18
                            1,1-0:56.7.0*255(@1,Leistung L2,W,56_7_0,18
                            1,1-0:76.7.0*255(@1,Leistung L3,W,76_7_0,18
                            ; Spannung in Phase Lx, Auflösung 0,1V (nur über MSB)
                            1,1-0:32.7.0*255(@1,Spannung L1,V,32_7_0,1
                            1,1-0:52.7.0*255(@1,Spannung L2,V,52_7_0,1
                            1,1-0:72.7.0*255(@1,Spannung L3,V,72_7_0,1
                            ; Statuswort, 4 Byte Information über den Betriebszustand, HEX string
                            ; tasmota can decode one string per device only!
                            ;1,1-0:96.5.0*255(@#),Status1,,96_5_0,0
                            ;1,1-0:96.8.0*255(@#),Status2,,96_8_0,0
                            ; Geräte-Identifikation, Nach DIN 43863-5 
                            1,1-0:96.1.0*255(@#),Identifikation,,96_1_0,0
                            ;1,1-0:0.0.0*255(@#),Identifikation,,0_0_0,0
                            #
                            

                            Das sind zwei Durchläufe der Telegramme, die einzelne Messwerte enthalten:

                            21:23:32.980 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:32","OP":{"16_7_0":814.22}}
                            21:23:33.010 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:33","OP":{"36_7_0":366.58}}
                            21:23:33.042 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:33","OP":{"56_7_0":385.31}}
                            21:23:33.071 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:33","OP":{"76_7_0":62.33}}
                            21:23:33.981 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:33","OP":{"16_7_0":804.33}}
                            21:23:34.011 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:34","OP":{"36_7_0":356.58}}
                            21:23:34.041 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:34","OP":{"56_7_0":384.88}}
                            21:23:34.070 MQT: tele/Stromzaehler_B5F63F/SENSOR = {"Time":"2024-11-17T21:23:34","OP":{"76_7_0":62.87}}
                            

                            Die Telegramme, die größere JSON-Strukturen enthalten habe ich im Console - Logging des Node-MCU nicht gesehen...
                            EDIT:

                            {
                            	"Time":"2024-11-17T21:37:04",
                            	"Switch1":"ON",
                            	"OP":{
                            		"1_8_0":16253901.49112000,
                            		"16_7_0":874.46,
                            		"36_7_0":425.37,
                            		"56_7_0":386.08,
                            		"76_7_0":63.01,
                            		"32_7_0":230.1,
                            		"52_7_0":229.2,
                            		"72_7_0":231.2,
                            		"96_1_0":"1EBZ0..........."
                            	}
                            }
                            
                            

                            Da müsste ich dann auch wohl den Switch für die Impulse vom Gaszähler ausleiten ...

                            Ich vermutet, das Chaos rührt von meinem Zähler her, der da die Werte in verschiedenen Taktungen von sich gibt ...

                            1 Reply Last reply Reply Quote 0
                            • BananaJoe
                              BananaJoe Most Active last edited by

                              Naja, ich gönne mir den Luxus für jede Sache einen eigene ESP zu verwenden. Einen für Strom. Einen für Gas.
                              So kann sich auch nichts gegenseitig beeinflussen.

                              MartinP 1 Reply Last reply Reply Quote 0
                              • MartinP
                                MartinP @BananaJoe last edited by

                                @bananajoe Das ist ja die einfachste Übung, den Switch auszuleiten ...

                                mit dem Blockly oder Javascript bzgl JSON Zerlegung tue ich mich da deutlich schwerer...
                                Womöglich lasse ich den ESP erstmal unter Sonoff ...

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                678
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                2
                                42
                                1263
                                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