Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Zendure Solarflow

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Test Adapter Zendure Solarflow

Geplant Angeheftet Gesperrt Verschoben Tester
2.2k Beiträge 108 Kommentatoren 945.7k Aufrufe 104 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    Felli
    schrieb am zuletzt editiert von
    #2146

    Also die Ottelo Scripts laufen meines Wissens zur Zeit mit Marstek und aktuell in Entwicklung mit dem Noah. Zendure verbindet den ja via Cloud, also egal ob Shelly oder Ecotracker und kann dann meine ich auch lokal zugreifen. Nutze das alles nicht daher keine Ahnung, sorry 😵‍💫

    Mit Blockly und lokalem oder Cloud MQTT ist das aber kein Problem, muss dann allerdings von Dir umgesetzt werden, mit allem was dazu gehört. Ist aber dank der mittlerweile vielen coolen Projekte, eigentlich relativ easy.

    F 1 Antwort Letzte Antwort
    0
    • F Felli

      Also die Ottelo Scripts laufen meines Wissens zur Zeit mit Marstek und aktuell in Entwicklung mit dem Noah. Zendure verbindet den ja via Cloud, also egal ob Shelly oder Ecotracker und kann dann meine ich auch lokal zugreifen. Nutze das alles nicht daher keine Ahnung, sorry 😵‍💫

      Mit Blockly und lokalem oder Cloud MQTT ist das aber kein Problem, muss dann allerdings von Dir umgesetzt werden, mit allem was dazu gehört. Ist aber dank der mittlerweile vielen coolen Projekte, eigentlich relativ easy.

      F Offline
      F Offline
      Freaknet
      schrieb am zuletzt editiert von
      #2147

      @Felli

      Ok... Marstek Speicher habe ich an meiner PV-Anlage dran, aber da hab ich mir über JavaScript und meinem SML-Zähler geholfen (ohne Shelly Emu).

      Ich muss mal schauen ob ich das kpl. Image auf meinen Lesekopf spielen muss, oder ob es reicht, das Script einfach in mein Image zu kopieren, damit ich z.B. den Shelly emulieren kann.

      Hab das hier gefunden dazu.

      >D 250
      ; Einfaches Shelly Emulator Script für ESP8266/ESP32 und Tasmota Image von ottelo
      ; Emuliert Shelly Pro 3EM für Marstek Akku Jupiter, Venus, B2500
      ; Scriptgröße beim ESP8266 begrenzt: EEP_SCRIPT_SIZE 4096
      ; Anleitung https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#13a
      ; Script basiert auf https://github.com/gemu2015/Sonoff-Tasmota/blob/universal/tasmota/scripting/shelly_emu_script.tas
      ; Script ist für ein Wifi Tasmota ESP Lesekopf für Stromzähler gedacht, z.B. HichiV1/V2, Bitshake, usw.
      ; Der Text kann einfach so in den internen Editor von Tasmota eingefügt werden. Beim ESP8266 sollten alle Kommentare entfernen werden.
      ; Die Marstek App sucht nach dem Shelly via mDNS, der Emulator meldet sich als shellypro3em-<mac>
      ; Der Datenaustausch erfolgt dann via UDP alle paar Sek (~2-4s beim Jupiter C Plus)
      
      ; Zum erstmaligen Einrichten des Scripts folgendes in die Console eingeben (erst wenn auch Werte vom Zähler kommen!)
      ;script>=#init
      
      ; PermVars (max:1536bytes=384vars): Tages, Monats, Jahres Verbrauch / Einspeisung
      p:dval=0
      p:dval2=0
      p:mval2=0
      p:mval=0
      p:yval=0
      p:yval2=0
      p:pwroffset=0
      p:pwrforce=0
      p:throttle=1
      t:t1=60
      tmp=0
      save=0
      hr=0
      ;-- SHELLY EMULATION --
      res=0
      c1p=0
      c2p=0
      c3p=0
      c1c=0
      c2c=0
      c3c=0
      cpwr=0
      str=""
      mstr1=""
      mstr2=""
      mstr3=""
      header=""
      once=0
      
      
      >B
      ->SetOption57 0
      ->sensor53 r
      smlj=0
      header="{\"id\":0,\"src\":\"shellypro3em-"+maca+"\",\"result\":"
      throttle=mp(throttle <1 1 >60 60)
      pwroffset=mp(pwroffset <-200 -200 >200 200)
      
      #init
      dval=sml[2]
      dval2=sml[3]
      mval=sml[2]
      mval2=sml[3]
      yval=sml[2]
      yval2=sml[3]
      ->Backlog2 otaurl KEIN OTA UPGRADE VIA WEBSERVER!
      ->Backlog2 Timezone 99;TimeStd 0,0,10,1,3,60;TimeDst 0,0,3,1,2,120
      svars
      
      ;-- SHELLY EMULATION --
      >ah
      res=won(1 "/rpc/*")
      
      >on1
      str=warg
      if (str!="") {
      ;print RPC: %str%
      
      res=ins(str "EM.GetStatus")
      if res>=0 {
      =#getstat
      tmp=sl(mstr1)+sl(mstr2)
      =#header
      wcs so(4)
      wcs %header%
      wcs %mstr1%
      wcs %mstr2%
      wcf
      break
      }
      
      res=ins(str "Shelly.GetStatus")
      if res>=0 {
      =#getshellystat
      tmp=sl(mstr1)+sl(mstr2)+sl(mstr3)
      =#header
      wcs so(4)
      wcs %header%
      wcs %mstr1%
      wcs %mstr2%
      wcs %mstr3%
      wcf
      break
      }
      print unknown rpc request: %str%
      }
      
      #getstat
      ;EM.GetStatus
      dp(0 2)
      ;mstr1="{\"id\":0,\"a_current\":"+s(c1c)+",\"a_voltage\":230,\"a_act_power\":"+s(c1p)+",\"a_aprt_power\":"+s(c1p)+",\"a_pf\":1,\"a_freq\":50,"
      ;mstr1+="\"b_current\":"+s(c2c)+",\"b_voltage\":230,\"b_act_power\":"+s(c2p)+",\"b_aprt_power\":"+s(c2p)+",\"b_pf\":1,\"b_freq\":50,"
      ;mstr2="\"c_current\":"+s(c3c)+",\"c_voltage\":230,\"c_act_power\":"+s(c3p)+",\"c_aprt_power\":"+s(c3p)+",\"c_pf\":1,\"c_freq\":50,"
      ;mstr2+="\"total_current\":"+s(c1c+c2c+c3c)+",\"total_act_power\":"+s(cpwr)+",\"total_aprt_power\":"+s(cpwr)+"}}"
      mstr1="{\"id\":0,\"a_act_power\":"+s(c1p)+",\"b_act_power\":"+s(c2p)+","
      mstr2="\"c_act_power\":"+s(c3p)+",\"total_act_power\":"+s(cpwr)+"}}"
      
      #getshellystat
      ;Shelly.GetStatus, Beispiel Ausgabe https://forum.openwb.de/viewtopic.php?t=7444
      dp(0 2)
      mstr1="{\"em:0\":{\"id\":0,\"a_act_power\":"+s(c1p)+",\"b_act_power\":"+s(c2p)+",\"c_act_power\":"+s(c3p)+",\"total_act_power\":"+s(cpwr)+"},"
      ;mstr2="\"emdata:0\":{\"id\":0,\"a_total_act_energy\":0,\"a_total_act_ret_energy\":0,\"b_total_act_energy\":0,\"b_total_act_ret_energy\":0,\"c_total_act_energy\":0,\"c_total_act_ret_energy\":0,\"total_act\":0,\"total_act_ret\":0}}"
      mstr2="\"emdata:0\":{\"id\":0,\"a_total_act_energy\":"+s(sml[2]*1000)+",\"a_total_act_ret_energy\":"+s(sml[3]*1000)+",\"b_total_act_energy\":0,\"b_total_act_ret_energy\":0,\"c_total_act_energy\":0,\"c_total_act_ret_energy\":0,"
      mstr3="\"total_act\":"+s(sml[2]*1000)+",\"total_act_ret\":"+s(sml[3]*1000)+"}}"
      
      #header
      ; Beispiel https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/HTTP/#httpget-example
      header="HTTP/1.1 200 OK\r\nServer: ShellyHTTP/1.0.0\r\nContent-Type: application/json\r\nContent-Length: "+s(0tmp)+"\r\nConnection: close\r\n\r\n"
      
      >F
      ;-- SHELLY EMULATION --
      ; UDP Anfrage beantworten
      str=udp(1)
      if (str!="") {
      ;print UDP: %str%
      header="{\"id\":0,\"src\":\"shellypro3em-"+maca+"\",\"result\":"
      res=ins(str "EM.GetStatus")
      if (res>=0) {
      =#getstat
      udp(2 header mstr1 mstr2)
      break
      }
      res=ins(str "Shelly.GetStatus")
      if res>=0 {
      =#getshellystat
      mstr3+="}"
      udp(2 header mstr1 mstr2)
      udp(2 mstr3)
      break
      }
      }
      
      >S
      if (save==1) {
      save=0
      svars
      }
      ; Warte auf NTP und Zähler
      if ((year<2020) or (sml[2]==0)) {
      print auf NTP/Zähler warten
      break
      }
      ; Starte MQTT erst wenn Daten vom Stromzähler kommen
      smlj=1
      
      ; alle 60s
      if (t1==0) {
      t1=60
      hr=hours
      ; Tages-, Monats-, Jahresverbrauch um Mitternacht
      ; Aktualisiere & speichere Zählerstände
      if ((chg[hr]>0) and (hr==0)) {
      ; Tageswechsel
      dval=sml[2]
      dval2=sml[3]
      if (day==1) {
      ; Monatswechsel
      mval=sml[2]
      mval2=sml[3]
      }
      if (day*month==1) {
      ; Jahreswechsel
      yval=sml[2]
      yval2=sml[3]
      }
      ; nur 1x um Mitternacht speichern
      svars
      }
      }
      
      ;-- SHELLY EMULATION --
      if (once==0) {
      ; starte mDNS damit Marstek den emulierten Shelly findet
      mdns("shellypro3em-" "-" "shelly")
      ; start UDP für Datenkommunikation
      ; Port 1010 oder ggf. 2220 für B2500
      udp(0 1010)
      once=1
      }
      
      ; Werte nur alle x Sek updaten (throttle=1 => sekündlich)
      if (upsecs%throttle==0) {
      ; Peaks reduzieren, verbessert Regelung
      tmp=sml[1]-cpwr
      if (tmp>500) {
      cpwr=sml[1]-(tmp/2)
      } else {
      ; Nulleinspeisung-Offset: reduziere die Leistung damit die Regelung nicht um 0W herum schwingt. Nur sinvoll, wenn PV-Panels direkt am Akku hängen.
      cpwr=sml[1]-pwroffset
      }
      
      ; Standard: Zähler sendet nur Gesamtleistung
      c1p=cpwr
      ; Optional: Wenn Zähler auch Einzelleistungen sendet (L1-3). Marstek prüft dann, auf welcher Phase er verbunden ist. ; entfernen um zu verwenden.
      ;c1p=sml[4]
      ;c2p=sml[5]
      ;c3p=sml[6]
      ; Ströme berechnen
      c1c=c1p/230
      ;c2c=c2p/230
      ;c3c=c3p/230
      
      ; Optional: Sende auch, wenn Marstek nicht anfragt, verbessert Marstek Regelung
      if (pwrforce>0) {
      =#getstat
      udp(2 header mstr1 mstr2)
      }
      
      
      >W
      bu(save "gespeichert!" "Daten sofort speichern")
      Leistung (an Marstek Akku){m}%0cpwr% W
      Tagesverbrauch{m}%2(sml[2]-dval)% kWh
      Monatsverbrauch{m}%2(sml[2]-mval)% kWh
      Jahresverbrauch{m}%2(sml[2]-yval)% kWh
      Tageseinspeisung{m}%2(sml[3]-dval2)% kWh
      Monatseinspeisung{m}%2(sml[3]-mval2)% kWh
      Jahreseinspeisung{m}%2(sml[3]-yval2)% kWh
      Uptime{m}%0uptime% min
      $<span style="font-size:10px;">
      $<b>Einstellungen / Status</b><br>
      $Ändern der [Variable] via Console: script>var=x<br>
      $- Update der Werte verzögern [throttle]: %0throttle% s<br>
      $- Offset für Nulleinspeisung [pwroffset]: %0pwroffset% W<br>
      $- Datenübertragung erzwingen [pwrforce]: %0pwrforce% s<br>
      $Scriptspeicher: %0slen% chars / 4096(1M) 8192(4M)
      $<hr>
      $<center>Version 21.02.2026 (ShellyEmuSimple) by ottelo.jimdo.de<br>
      $Credits to gemu2015 (Tasmota Script Dev)<br>
      $</span></center>
      
      
      ; SML Sektion an euren Stromzähler anpassen
      ; Anleitung: https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#4c
      ; Reihenfolge nicht ändern: 1=(Gesamt)Leistung sml[1] 2=Verbrauch sml[2] 3=Einspeisung sml[3]
      ; Medianfilter <flag> = 16 nicht verwenden, verbessert Marstek Regelung
      ; https://tasmota.github.io/docs/Smart-Meter-Interface/#meter-definition
      >M 1
      ; Beispiel MT175 mit HichiV1/V2
      +1,3,s,0,9600,MT175,1
      1,77070100100700ff@1,Leistung,W,Power_curr,0
      1,77070100010800ff@1000,Verbrauch,KWh,Total_in,2
      1,77070100020800ff@1000,Einspeisung,KWh,Total_out,2
      ;optional - Falls die Leistung aller 3 Phasen ausgegeben wird, optional relevant für Shelly Emulation sml[4],[5],[6]
      ;1,77070100240700ff@1,L1,W,L1,0
      ;1,77070100380700ff@1,L2,W,L2,0
      ;1,770701004C0700ff@1,L3,W,L3,0
      #
      
      1 Antwort Letzte Antwort
      0
      • F Offline
        F Offline
        Felli
        schrieb am zuletzt editiert von
        #2148

        Also ja warum nicht, solange da die richtige Script Konsole drauf ist, sollte es gehen. Kann aber auch sein, das seine Images noch weitere goodies enthalten ich weiß es nicht. Nutze sein Script und Image und das läuft tadellos also warum nicht. Zur Not einfach mal beim ihm auf GitHub nachfragen. Viel Erfolg !!

        1 Antwort Letzte Antwort
        0
        • Murphy 0M Murphy 0

          @berny-k
          ich hänge es mal an den skript Thread von Lesiflo mit dran.

          B Offline
          B Offline
          Berny-K
          schrieb am zuletzt editiert von
          #2149

          @Murphy-0 Super, vielen Dank!

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            Berny-K
            schrieb am zuletzt editiert von
            #2150

            Mein SF 800 Pro geht irgendwie in der Nacht offline. Am Morgen geht er dann nicht mehr online, erst wenn ich die Starttaste am Gerät kurz drücke, dann verbindet er sich wieder. Kennt jemand das Problem?

            1 Antwort Letzte Antwort
            0
            • Murphy 0M Online
              Murphy 0M Online
              Murphy 0
              schrieb am zuletzt editiert von
              #2151

              Verliert er die Verbindung zum Router oder die Verbindung zur Cloud?
              Macht dein Provider Nachts einen Neustart der Internetanbindung, immer um die gleiche Zeit?
              Ist im Router ein Energiesparmodus für die nacht eingestellt?

              B 1 Antwort Letzte Antwort
              0
              • Murphy 0M Murphy 0

                Verliert er die Verbindung zum Router oder die Verbindung zur Cloud?
                Macht dein Provider Nachts einen Neustart der Internetanbindung, immer um die gleiche Zeit?
                Ist im Router ein Energiesparmodus für die nacht eingestellt?

                B Offline
                B Offline
                Berny-K
                schrieb am zuletzt editiert von
                #2152

                @Murphy-0 sagte in Test Adapter Zendure Solarflow:

                Verliert er die Verbindung zum Router oder die Verbindung zur Cloud?
                Macht dein Provider Nachts einen Neustart der Internetanbindung, immer um die gleiche Zeit?
                Ist im Router ein Energiesparmodus für die nacht eingestellt?

                In der Solarflow App sehe ich am Morgen die Info "Offline", im Zendure-Adapter kommen keine Daten an, aber der SF 800Pro speist ein.

                Die Fritzbox meldet folgendes:
                01:10:02 Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen
                Dann passend dazu im iobroker Log:
                01:10:09.677 - error: zendure-solarflow.0 (7466) Connection to MQTT failed! Error: Error: read ECONNRESET
                Danach aber wieder reconnect:
                01:10:10.767 - info: zendure-solarflow.0 (7466) [onConnected] Connected with MQTT!

                1 Antwort Letzte Antwort
                0
                • Murphy 0M Online
                  Murphy 0M Online
                  Murphy 0
                  schrieb am zuletzt editiert von
                  #2153

                  Da würde ich sagen die Ursache liegt bei der Zendure Cloud.
                  Ich hatte früher als ich noch in der Cloud war ca. 2x die Woche, dass die CT Steuerung lief aber in der App nichts oder nur Blödsinn angezeigt wurde.
                  Um das zu klären hatte ich mir einen shelly em an die Leitung zur Zendure Anlage geklemmt um die Leistung in beide Richtungen zu überwachen. Meistens lief die Anlage ganz normal, obwohl die App neben der Spur lief.

                  Deshalb war ich sehr froh dass es diesen Adapter gibt. Habe die Steuerung zuerst online übernommen und als dann Wochenlang alles lief bin ich mit dem Hyper aus der Cloud gegangen.
                  Läuft seit über 10 Monaten ohne jegliche Probleme. Lediglich der Umstieg auf Trixie hat mir neulich arge Probleme bereitet.

                  B 1 Antwort Letzte Antwort
                  0
                  • Murphy 0M Murphy 0

                    Da würde ich sagen die Ursache liegt bei der Zendure Cloud.
                    Ich hatte früher als ich noch in der Cloud war ca. 2x die Woche, dass die CT Steuerung lief aber in der App nichts oder nur Blödsinn angezeigt wurde.
                    Um das zu klären hatte ich mir einen shelly em an die Leitung zur Zendure Anlage geklemmt um die Leistung in beide Richtungen zu überwachen. Meistens lief die Anlage ganz normal, obwohl die App neben der Spur lief.

                    Deshalb war ich sehr froh dass es diesen Adapter gibt. Habe die Steuerung zuerst online übernommen und als dann Wochenlang alles lief bin ich mit dem Hyper aus der Cloud gegangen.
                    Läuft seit über 10 Monaten ohne jegliche Probleme. Lediglich der Umstieg auf Trixie hat mir neulich arge Probleme bereitet.

                    B Offline
                    B Offline
                    Berny-K
                    schrieb am zuletzt editiert von
                    #2154

                    @Murphy-0 Eigentlich benötige ich die Cloud auch nicht, ich steuere aktuell ja schon über Blockly (Basis von Lesiflo). Was müsste ich denn tun um komplett aus der Cloud zu kommen um komplett lokal zu steuern?
                    Ich habe das aktuell so weil ich damit erst mal schnell zum Ziel gekommen bin und los legen konnte.

                    1 Antwort Letzte Antwort
                    0
                    • Murphy 0M Online
                      Murphy 0M Online
                      Murphy 0
                      schrieb am zuletzt editiert von
                      #2155

                      @nograx sei dank gibt es dafür eine einfache Lösung:

                      https://github.com/nograx/zendure-cloud-disconnector

                      Auch zurück in die Cloud ist problemlos möglich.

                      Ich mache es so, dass ich mit dem Disconnector den Hyper aus der Cloud hole.
                      Dann schalte ich den Hyper aus und trenne ihn von den Batterien und vom Netz.

                      Nach 2 bis 3 Minuten stecke ich wieder alles zusammen und drücke einfach wieder den Startknopf. Ich habe hier schon gelesen, dass manche eine kompletten Reset danach gemacht haben, das funktioniert bei mir nicht.

                      1 Antwort Letzte Antwort
                      0
                      • Murphy 0M Online
                        Murphy 0M Online
                        Murphy 0
                        schrieb am zuletzt editiert von
                        #2156

                        Kann man denn den SF 800 pro nicht auch über die App aus der Cloud nehmen?

                        B 1 Antwort Letzte Antwort
                        0
                        • Murphy 0M Murphy 0

                          Kann man denn den SF 800 pro nicht auch über die App aus der Cloud nehmen?

                          B Offline
                          B Offline
                          Berny-K
                          schrieb am zuletzt editiert von
                          #2157

                          @Murphy-0 Da muss ich jetzt mal tiefer recherchieren, ob bzw. wie das möglicht ist

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          689

                          Online

                          32.7k

                          Benutzer

                          82.4k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe