Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Balkonkraftwerk DPM8624 Tasmota Sonoff-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Wal
      Wal Developer @fimoknete last edited by

      @fimoknete ,
      den DPM hast du auf Modbus umgestellt ?

      F 1 Reply Last reply Reply Quote 0
      • F
        fimoknete @Wal last edited by

        @wal
        Ja, Modbus, 9,6k, Adresse 1 usw.
        Am Anfang liest der ja auch Daten und ich kann über die Oberfläche den DPM Steuern. Die Probleme fangen erst nach einer Weile an. Ich habe aber nie beobachet, ob nicht MQTT irgendwie schuld daran ist. Jedenfalls, wenn ich 0 hab und ich MQTT ausstelle, kommen die Daten auch nicht wieder. Bleibt alles bei 0.

        Wal 1 Reply Last reply Reply Quote 0
        • Wal
          Wal Developer @fimoknete last edited by

          @fimoknete ,
          hatte ich jetzt noch nicht, wüsste auch nicht was das sein kann. 😦

          F 1 Reply Last reply Reply Quote 0
          • F
            fimoknete @Wal last edited by

            @wal
            Ich flashe den 400sten D1 nachher mal und häng den dran ohne MQTT zu aktivieren. Mal schauen ob der das länger überlebt. Könntest du noch mal die genauen Einstellungen, die du hast Posten? Das wäre super lieb.
            Firmware, Skript, Einstellungen am D1.
            Vielleicht mache ober habe ich irgendwas falsches.

            Wal 2 Replies Last reply Reply Quote 0
            • Wal
              Wal Developer @fimoknete last edited by

              @fimoknete ,
              ok heute Abend.

              1 Reply Last reply Reply Quote 0
              • Wal
                Wal Developer @fimoknete last edited by

                @fimoknete ,
                Enkel sind auf den Spielplatz gegangen. 😉

                tasmota-4M.bin

                dpm2.jpg dpm1.jpg

                Das Script von Seite 1

                F 1 Reply Last reply Reply Quote 0
                • F
                  fimoknete @Wal last edited by fimoknete

                  @wal
                  SO läuft jetzt wie immer am Anfang. Allerdings habe ich nie das 4m Skript genutzt.

                  2f925b5f-f2cc-4b31-ac3b-8b17ddb673d7-image.png

                  Ich kann es von der GUI steuern.

                  ESP hängt am USB-C, (RX, TX; DPM)

                  Wal 1 Reply Last reply Reply Quote 0
                  • Wal
                    Wal Developer @fimoknete last edited by

                    @fimoknete ,
                    GND muss auch mit dem DPM verbunden sein.

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      fimoknete @Wal last edited by

                      @wal
                      OK, Danke. RX, TX und GND hängen am ESP

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fimoknete @fimoknete last edited by

                        @fimoknete Ich lass das mal so bis nach dem Essen hängen.
                        Muss ich noch irgendwas beim MQTT beachten? Bisher hab ich das nur Adressenmäßig an meinen Server angepasst.

                        Wal 1 Reply Last reply Reply Quote 0
                        • Wal
                          Wal Developer @fimoknete last edited by

                          @fimoknete ,
                          das Script ist für den Sonoff-Adapter optimiert, was im MQTT-Adapter ankommt weis ich nicht.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fimoknete @Wal last edited by

                            @wal
                            Ich hab SONOFF eingebunden.
                            Er hat das hier erstellt:
                            f5e48194-3d48-4643-bfac-0b56eefbc12c-image.png

                            IOBROKER sieht es, wenn ich die Werte in der GUI verändere. Aber wenn ich die Werte im IOBroker verändere, kommt das nicht am DPM an.

                            Wal 1 Reply Last reply Reply Quote 0
                            • Wal
                              Wal Developer @fimoknete last edited by

                              @fimoknete ,
                              dpm3.jpg

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fimoknete @Wal last edited by

                                @wal
                                Jetzt gehts erst mal. Vielen Dank.

                                Jonas Haber 1 Reply Last reply Reply Quote 0
                                • Jonas Haber
                                  Jonas Haber @fimoknete last edited by

                                  Hi ich habe eine allgemeine frage. Muss der script des ir-Lesekopf am zähler sagen, dass die Daten an den broker gesendet werden? Screenshot 2024-04-09 164501.png 0a42f4a9-6ebb-4c6e-8549-a70d2ec11676-image.png
                                  Bisher habe ich nur diesen script am ir-lesekopf. Dieser ist aber schon mit dem broker (raspi-mosquitto) verbunden. Den script am dpm (bei mir ist es der 8650) habe ich schon drauf - allerdings ist er nicht von mir und ich verstehe nicht ob der script sagt, dass er sich die daten direkt beim ir-lesekopf holt und damit dann sofort den dpm steuert.

                                  >D
                                  Vmax=60 ;max value from specifications https://joy-it.net/en/products/JT-DPM8650
                                  Cmax=50 ;max value from specifications https://joy-it.net/en/products/JT-DPM8650
                                  v=0 ;store device voltage state (targeted)
                                  V=0 ;store WebUI voltage state (targeted)
                                  c=0 ;store device current state (targeted)
                                  C=0 ;store WebUI current state (targeted)
                                  sw=0 ;store device switch state
                                  SW=0 ;store WebUI switch state
                                  rV="01060000" ;ModBus register (voltage)
                                  vV="" ;store hex value of V to append to rV
                                  rC="01060001" ;ModBus register (current)
                                  vC="" ;store hex value of C to append to rC
                                  rSW="01060002000" ;ModBus register (switch)
                                  vSW="" ;store hex value of SW to append to rSW
                                  
                                  >B
                                  smlj=0 ;disable publishing at MQTT teleperiod, on boot
                                  ->sensor53 r
                                  
                                  >R
                                  smlj=0 ;disable publishing at MQTT teleperiod, on reboot
                                  
                                  >S
                                  if upsecs>30
                                  then
                                  smlj=1 ;re-enable publishing at MQTT teleperiod, after boot
                                  endif
                                  
                                  >W
                                  bu(SW "DPM ON" "DPM OFF") ;toggle switch via WebUI
                                  nm(0.0 60.0 0.01 V "DPM out (V)" 200 2) ;set voltage output via WebUI
                                  nm(0.0 24.0 0.01 C "DPM out (A)" 200 2) ;set current output via WebUI
                                  
                                  >T
                                  sw=DC#sSwitch ;load switch state from ModBus variable >M
                                  v=DC#sVolt ;load voltage state from ModBus variable >M
                                  c=DC#sCur ;load voltage state from ModBus variable >M
                                  
                                  if ((chg[sw]>0) and (SW!=sw)) ;update WebUI based on physical input (switch)
                                  then
                                    SW=sw
                                  endif
                                  
                                  if ((chg[v]>0) and (V!=v)) ;update WebUI based on physical input (voltage)
                                  then
                                    V=v
                                  endif
                                  
                                  if ((chg[c]>0) and (C!=c)) ;update WebUI based on physical input (current)
                                  then
                                    C=c
                                  endif
                                  
                                  if chg[V]>0 ;update ModBus register based on WebUI input (voltage)
                                  then
                                    if V>Vmax ;prevent out of bound value (voltage max)
                                    then
                                      V=Vmax
                                    endif
                                    if V<0 ;prevent out of bound value (voltage min)
                                    then
                                      V=0
                                    endif
                                    vV=rV+sb(hx((V*100)) 4 4)
                                    sml(1 3 vV)
                                  endif
                                  
                                  if chg[C]>0 ;update ModBus register based on WebUI input (current)
                                  then
                                    if C>Cmax ;prevent out of bound value (current max)
                                    then
                                      C=Cmax ;prevent out of bound value (current min)
                                    endif
                                    if C<0
                                    then
                                      C=0
                                    endif
                                    vC=rC+sb(hx((C*1000)) 4 4)
                                    sml(1 3 vC)
                                  endif
                                  
                                  if ((chg[SW]>0) and (sw!=SW) ;update ModBus register based on WebUI input (switch)
                                  then
                                    vSW=rSW+s(SW)
                                    sml(1 3 vSW)
                                  endif
                                  
                                  >M 1
                                  +1,4,m,16,9600,DC,5,2,010300000001,010300010001,010300020001,010310010001,010310020001 ;ModBus register taken from JT-DPM86XX_Communication_protocol_2022-07-06.pdf provided by Joy-IT
                                  1,010302SSssxxxx@i1:100,Voltage (set),V,sVolt,2
                                  1,010302SSssxxxx@i2:1000,Current (set),A,sCur,2
                                  1,010302SSssxxxx@i3:1,Switch (set),,sSwitch,0
                                  1,010302SSssxxxx@i4:100,Voltage (disp),V,dVolt,2
                                  1,010302SSssxxxx@i5:1000,Current (disp),A,vCur,2
                                  #
                                  
                                  BananaJoe 1 Reply Last reply Reply Quote 0
                                  • BananaJoe
                                    BananaJoe Most Active @Jonas Haber last edited by BananaJoe

                                    @jonas-haber wenn du im Tasmota den MQTT-Broker konfiguriert hast, sendet er diesem alle gemäß dem Wert Teleperiod alle X Sekunden den Wert. Taucht unter

                                    tele/Name/SENSOR
                                    

                                    auf.

                                    Wenn du ganz unten an dein Skript folgendes anhängst:

                                    =>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %LK12BE[2]%
                                    

                                    Sollte er das an dieses Topic senden - und zwar bei jeder Änderung.

                                    Soyosource/SOYO_1ce2fb/L1L2L3
                                    

                                    Das Topic kannst du anpassen wie du es brauchst (Bitte keine Leerzeichen und Sonderzeichen außer _),
                                    also am besten das Topic was dein anderes Gerät abonniert hat. Mein Pfad oben geht z.B. auf meinen SoYoSource-Controller um die Einspeisung zu steuern.

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

                                      @bananajoe danke für die schnelle Antwort.

                                      =>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %LK12BE[2]%
                                      

                                      ist hierbei Soyosource das topic ? oder SOYO_1ce2fb ?

                                      4a9b4afe-e99c-4735-af81-b0b04e47deb0-image.png

                                      Meine topic heißt ganz einfach tasmota ...

                                      891f1ddf-8fa2-482e-88eb-ebdaa1eafaee-image.png

                                      ungefähr so ?

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

                                        @jonas-haber das Publish im Skript hat NICHTS mit den MQTT Einstellungen zu tun. Du kannst im Skript an ein beliebiges Topic separat davon senden, in Echtzeit, immer wenn sich ein Wert geändert hat.

                                        Zudem gehört es ganz nach unten, hinter das letzte #
                                        Kann sein das noch ein >S dahin gehört, bei mir sieht das so aus:

                                        >D
                                        >B
                                        =>sensor53 r
                                        >M 1
                                        +1,3,s,0,9600,SML
                                        1,77070100010801ff@1000,Verbrauch_Tarif_1,kWh,Verbrauch_T1,7
                                        1,77070100010802ff@1000,Verbrauch_Tarif_2,kWh,Verbrauch_T2,7
                                        1,77070100010800ff@1000,Verbrauch_Summe,kWh,Verbrauch_Summe,7
                                        1,77070100020800ff@1000,Einspeisung_Summe,kWh,Einspeisung_Summe,7
                                        1,=h-- 
                                        1,77070100240700ff@1,Leistung_L1,W,Watt_L1,2
                                        1,77070100380700ff@1,Leistung_L2,W,Watt_L2,2
                                        1,770701004c0700ff@1,Leistung_L3,W,Watt_L3,2
                                        1,77070100100700ff@1,Leistung_Summe,W,Watt_Summe,2
                                        1,=h-- 
                                        1,77070100200700ff@1,Spannung_L1,V,Volt_L1,1
                                        1,77070100340700ff@1,Spannung_L2,V,Volt_L2,1
                                        1,77070100480700ff@1,Spannung_L3,V,Volt_L3,1
                                        #
                                        >S
                                        =>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %sml[8]%
                                        =>Publish Huawei/Huawei_1cea67/L1L2L3 %sml[8]%
                                        

                                        Die Topics: Du sollst als Topic / Pfad das einsetzen wohin du es haben willst.
                                        Meine beiden Zeilen oben senden das an meine Batterieladegerät (Huawei) damit das weis wieviel Überschuss da ist und mit wieviel Watt es laden darf, und meine Inverter (SoYouSource) damit die Wissen wieviel die Einspeisen müssen.

                                        Du sollst da den Pfad nehmen den du haben willst oder brauchst. Im MQTT-Adapter wird aus

                                        Soyosource/SOYO_1ce2fb/L1L2L3
                                        

                                        ein

                                        mqtt.0.Soyosource.SOYO_1ce2fb.L1L2L3
                                        

                                        Datenpunkt.
                                        Du kannst das auch

                                        mein/toller/zaehlerstand/und/so/weiter/nennen
                                        

                                        Du willst den "DPM" steuern, hat der denn einen MQTT Datenpunkt den dieser abfragt? Den Pfad müsstest du nehmen

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

                                          @bananajoe super danke !

                                          486a7411-0133-4399-b132-ad1ef3323444-image.png

                                          jetzt legt er richtig los ...

                                          Jetzt verstehe ich, dass das mit der eigentlichen topic garnichts zutun hat. Man erstellt also einen Pfad wo die Daten bei jeder Änderung hingesendet werden.

                                          Ich versuche jetzt, dass der DPM diesen Pfad abfragt. Wo fragt dein Soyo denn die Daten ab?

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

                                            @jonas-haber genau in den Pfaden die ich da oben gezeigt habe. Die werden auf der Weboberfläche meines SoYo-Controllers auch so angezeigt (und die andere auf der des Huawei-Lade-Controller)

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            716
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            50
                                            3620
                                            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