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. Skripten / Logik
  4. JavaScript
  5. Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

Geplant Angeheftet Gesperrt Verschoben JavaScript
187 Beiträge 6 Kommentatoren 8.3k Aufrufe 5 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.
  • D Daniel 8

    Hier die Antwort von Zendure.

    Sehr geehrter Kunde,

    vielen Dank für Ihre Geduld. Wir sind stets bemüht, Ihnen den bestmöglichen Service zu bieten.

    Bezüglich Ihres Problems empfiehlt Ihnen unser technisches Team: Bitte posten Sie Ihre Frage im offiziellen GitHub-Forum. Dort wird Ihnen gerne weitergeholfen.

    Vielen Dank für Ihr Vertrauen und Ihre Geduld. Wir entschuldigen uns aufrichtig für etwaige Unannehmlichkeiten. Sollten Sie Fragen zum Produkt haben, kontaktieren Sie uns bitte jederzeit.

    Mit freundlichen Grüßen
    Ihr Zendure Support-Team

    maxclaudiM Offline
    maxclaudiM Offline
    maxclaudi
    schrieb am zuletzt editiert von maxclaudi
    #177

    @Daniel-8
    Habe das mit Kollegen besprochen.
    Auszug:
    Oh man… das ist so typisch Zendure, dass es schon fast weh tut. Genau dieses “höflich verpackte Wegschieben” liest man dort ständig. Du gibst denen ein konkret beschriebenes, reproduzierbares technisches Problem, sogar sauber eingekreist (smartMode springt zurück) und was kommt?
    „Bitte posten Sie es in unser GitHub-Forum.“

    Das ist der digitale Equivalent von:
    „Kein Bock, mach’s jemand anderem zum Problem.“

    Und das perfide daran:
    Auf GitHub sitzen dann nicht die Firmware-Entwickler, sondern meistens ein einziger Dev, der halb im Dunkeln arbeitet und nur die offizielle API patcht – und häufig selber nicht mehr Infos hat als wir.

    Ich erinnere mich gut an den Fall, den du meinst:
    Der GitHub-Dev hat auf ein glasklares curl-Beispiel geantwortet, aber völlig am Thema vorbei. Mehr so: „Naja, probier mal X“, wo man gleich merkt: er hat’s nicht verstanden oder er darf keine Interna verraten.


    zum smartMode-Problem:

    Es ist sehr wahrscheinlich ein Interner Firmware-Autoreset des smartMode-Flags

    Und genau das ist tatsächlich ein bekanntes Verhalten in allen SolarFlow-Modellen — aber selten und kaum dokumentiert:
    Die Firmware setzt smartMode automatisch auf 0, wenn:

    1. Ein interner Parameter geändert wird, auch ohne externen Befehl
      Beispiele (intern im Gerät, NICHT via API):
    • Strategy-/Mode-Wechsel durch die interne Logik
    • SOC-Neuberechnung
    • interner State-Reset des Battery-Controllers
    • Temperatur-/Safety-Regler löst aus
    • Grid/AC-Leistungsumschaltung
    • PV-Input wechselt über eine bestimmte Hysterese
    • Bypass aktiv wird

    Alles Dinge, die regelmäßig passieren, ohne dass ein User irgendwas sieht.

    Der SolarFlow hat eine Art Self-Healing Logic, die bestimmte Variablen immer wieder in einen „sicheren Grundzustand“ zwingt.
    Und smartMode gehört zu diesen Variablen.

    1. Wenn der RAM puffert und ein Cache-Abgleich intern ausgelöst wird
      smartMode=1 bedeutet: „Schreibe in RAM, nicht in Flash.“
      Wenn die Firmware intern entscheidet, dass der RAM-Cache nicht konsistent ist -> Reset auf 0.

    Das passiert bzw. konnte beobachtet werden bei:

    • Spannungssprüngen (AC oder PV)
    • Leistungswechsel > 5–10 Sekunden
    • Re-init der Battery Management Unit
    • Idle→Active Transitions

    Das erklärt, warum es bei manchen mehr, bei manchen nie auftritt.

    1. SolarFlow 800/Pro hat dafür die empfindlichste Firmware
      Von allen Geräten setzt der SF800/SF800Pro am häufigsten zurück.
      Das deckt sich 1:1 mit Deinem Fall.

    Das heißt: Du kannst nichts falsch machen.

    Es ist wirklich einfach so:

    • Das Gerät selbst setzt smartMode zurück.
    • Regelmäßig. Ohne Cloud. Ohne MQTT. Ohne ZenSDK.

    Und der Typ im Support weiß das nicht — also ignoriert er’s und schiebt Dich auf GitHub.


    Fazit:
    Du machst mit meinem Script exakt das einzig Sinnvolle

    • smartMode überwachen
    • wenn Gerät wieder auf 0 zurückspringt -> sofort wieder auf 1 schalten

    optional: Abstände loggen

    Mehr kann man nicht tun, weil Zendure diesen Modus nie für den Normalbetrieb vorgesehen hat.

    Und genau deshalb wird’s vermutlich nicht gefixt.

    Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

    1 Antwort Letzte Antwort
    1
    • M Offline
      M Offline
      Mabbi
      schrieb am zuletzt editiert von Mabbi
      #178

      @maxclaudi

      Dafür müsste das hier doch schon reichen oder ?

      5ae14a98-7d38-4833-a40a-79afe53971de-grafik.png

      Ich schreinbe extra mal ne -1 in den set vorab, weil bei mir bleibt da manchmal eine 1 drin obwohl es ja eigentlich immer durch dein script auf -1 gesetzt wird.

      Update:

      Nun noch etwas verfeinert, beim Starten des scripts werden beide einmal gecheckt, danach nur noch wenn einer der trigger auslöst:

      c50931c3-e3df-4f21-a7a3-6581b3b51ec8-grafik.png

      Und das Ergbnis: Sir, yes Sir

      eaf661b9-8879-4a6a-b49f-6c0ad8ef7a8f-grafik.png

      SMA Wechselrichter Probleme seit letztem Update

      1 Antwort Letzte Antwort
      0
      • maxclaudiM Offline
        maxclaudiM Offline
        maxclaudi
        schrieb am zuletzt editiert von
        #179

        -1 muss nicht manuell gesetzt werden, das müsste nach einmaligen setzen automatisch auf -1 gestzt werden.
        Bei "falls" würde ich den "Wert" vom trigger-Baustein verwenden.

        Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

        M 1 Antwort Letzte Antwort
        0
        • maxclaudiM maxclaudi

          -1 muss nicht manuell gesetzt werden, das müsste nach einmaligen setzen automatisch auf -1 gestzt werden.
          Bei "falls" würde ich den "Wert" vom trigger-Baustein verwenden.

          M Offline
          M Offline
          Mabbi
          schrieb am zuletzt editiert von Mabbi
          #180

          @maxclaudi

          So ?

          c141a3bb-0565-420e-b602-f1dd7d7ef056-grafik.png

          Zur -1, wenn der Zendure das mal selber gemacht hat steht im Set auch gerne mal eine 1 bei mir, warum auch immer.
          Kann aber auch daran liegen, dass ich dein script oft neu starte, wenn ich mal wieder einen der Akkus durch 'Übertaktung' beim Testen eingefroren habe....

          Ich mach mal ein screeny, wenn es mal wieder passiert. Dann können wir beide darüber grübeln, warum das so ist....eigentlich weiss ich nicht präzise, wo es herkommt.

          Da Du (afaik) aber auf Change triggerst, nützt es nicht mit diesem kleine script eine 1 auf eine 1 zu schreiben.
          Deswegen die -1, und dann mit Verzögerung die 1. Könnte man halt noch schöner mit einer Logik machen, ist imho aber hier wirklich zu viel Schönbauerei.

          SMA Wechselrichter Probleme seit letztem Update

          maxclaudiM 2 Antworten Letzte Antwort
          0
          • M Mabbi

            @maxclaudi

            So ?

            c141a3bb-0565-420e-b602-f1dd7d7ef056-grafik.png

            Zur -1, wenn der Zendure das mal selber gemacht hat steht im Set auch gerne mal eine 1 bei mir, warum auch immer.
            Kann aber auch daran liegen, dass ich dein script oft neu starte, wenn ich mal wieder einen der Akkus durch 'Übertaktung' beim Testen eingefroren habe....

            Ich mach mal ein screeny, wenn es mal wieder passiert. Dann können wir beide darüber grübeln, warum das so ist....eigentlich weiss ich nicht präzise, wo es herkommt.

            Da Du (afaik) aber auf Change triggerst, nützt es nicht mit diesem kleine script eine 1 auf eine 1 zu schreiben.
            Deswegen die -1, und dann mit Verzögerung die 1. Könnte man halt noch schöner mit einer Logik machen, ist imho aber hier wirklich zu viel Schönbauerei.

            maxclaudiM Offline
            maxclaudiM Offline
            maxclaudi
            schrieb am zuletzt editiert von maxclaudi
            #181

            @Mabbi
            ja so, was den Trigger-Wert betrifft.

            edit: Finde Deine Lösung etwas zu "umfangreich" kompliziert.
            Ein Trigger für beide Akkus gleichzeitig würde auch reichen und im Trigger-Block arbeiten. Für was extra "Uebergabe_1" und 2 usw.
            Wie Du möchtest, wenn's funktioniert.

            Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

            M 1 Antwort Letzte Antwort
            0
            • maxclaudiM maxclaudi

              @Mabbi
              ja so, was den Trigger-Wert betrifft.

              edit: Finde Deine Lösung etwas zu "umfangreich" kompliziert.
              Ein Trigger für beide Akkus gleichzeitig würde auch reichen und im Trigger-Block arbeiten. Für was extra "Uebergabe_1" und 2 usw.
              Wie Du möchtest, wenn's funktioniert.

              M Offline
              M Offline
              Mabbi
              schrieb am zuletzt editiert von Mabbi
              #182

              @maxclaudi

              Da gebe ich Dir recht.

              Mir ist in den Blocklys einfach immer noch nicht klar, wann eine Variable local (z.B. in einer function) oder global ist.
              Deswegen trenne ich die aus Prinzip immer auf.

              f1602dcb-2b11-44b2-a1bf-8171d463aa10-grafik.png

              Das Bild zeigt das js zum Blockly mit getrennten Variablen oder mit einer Variable.

              Beides taucht oben und somit global(?) auf.

              Ich habe mal irgendwo gelesen, dass nichts in js parallel laufen kann, aber mir widerstrebt es rein aus technischer Sicht, es so zu machen. Nenn es eine Berufskrankheit.

              SMA Wechselrichter Probleme seit letztem Update

              maxclaudiM 1 Antwort Letzte Antwort
              0
              • M Mabbi

                @maxclaudi

                Da gebe ich Dir recht.

                Mir ist in den Blocklys einfach immer noch nicht klar, wann eine Variable local (z.B. in einer function) oder global ist.
                Deswegen trenne ich die aus Prinzip immer auf.

                f1602dcb-2b11-44b2-a1bf-8171d463aa10-grafik.png

                Das Bild zeigt das js zum Blockly mit getrennten Variablen oder mit einer Variable.

                Beides taucht oben und somit global(?) auf.

                Ich habe mal irgendwo gelesen, dass nichts in js parallel laufen kann, aber mir widerstrebt es rein aus technischer Sicht, es so zu machen. Nenn es eine Berufskrankheit.

                maxclaudiM Offline
                maxclaudiM Offline
                maxclaudi
                schrieb am zuletzt editiert von
                #183

                @Mabbi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):

                @maxclaudi

                Da gebe ich Dir recht.

                Mir ist in den Blocklys einfach immer noch nicht klar, wann eine Variable local (z.B. in einer function) oder global ist.
                Deswegen trenne ich die aus Prinzip immer auf.

                f1602dcb-2b11-44b2-a1bf-8171d463aa10-grafik.png

                Das Bild zeigt das js zum Blockly mit getrennten Variablen oder mit einer Variable.

                Beides taucht oben und somit global(?) auf.

                Ja.
                Alles, was du in Blockly als Variable ohne lokalen Blockscope anlegst, landet im generierten JS oben im Script und ist damit global innerhalb dieses Scripts.
                Nicht global systemweit – nur im eigenen Script.

                Ich habe mal irgendwo gelesen, dass nichts in js parallel laufen kann, aber mir widerstrebt es rein aus technischer Sicht, es so zu machen. Nenn es eine Berufskrankheit.

                JS läuft immer single-threaded, aber in der ioBroker-Sandbox ist fast alles asynchron. Es läuft also nicht parallel – es wird nur über die Event-Loop nacheinander abgearbeitet.

                Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  Daniel 8
                  schrieb am zuletzt editiert von
                  #184

                  @maxclaudi

                  Vielen Dank für das ausführliche oben beschriebene Verhalten von smartMode.

                  Es gibt wirklich keine konstante wann er umschaltet. Hatte erst mal.4 Tage ohne umschalten und dann kann sein das er 3 mal am tag umschaltet

                  Solarflow 800 Pro mit 1,3 Kwp / Iobroker / Homematic / Shellys / Mediola / Intertechno

                  maxclaudiM 1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    Mabbi
                    schrieb zuletzt editiert von Mabbi
                    #185

                    Hi,

                    ich habe mal eine sql Archivierung auf 0_userdata.0.zendure.HOAXXXXXXXXXXXXXXX.zendureSmartMode.smartModeInfo gepackt.
                    Ist schon ernüchternd, wie oft das script ihn wieder auf Smartmode 1 zurückholt:

                    cc272027-9d0c-4c04-96fe-40127246c734-grafik.png

                    Jeder senkrechte Strich ist ein drop von 1 auf 0 und dann recover durch mein kleines script.
                    Es scheint total random zu passieren btw, in der REgel aber ca. 3-4x pro Tag.

                    Die Ansteuerung des Akku läuft derweil gut:
                    98b0ebc3-2a4f-405f-8e5c-f5e5c11680db-grafik.png

                    SMA Wechselrichter Probleme seit letztem Update

                    1 Antwort Letzte Antwort
                    0
                    • M Mabbi

                      @maxclaudi

                      So ?

                      c141a3bb-0565-420e-b602-f1dd7d7ef056-grafik.png

                      Zur -1, wenn der Zendure das mal selber gemacht hat steht im Set auch gerne mal eine 1 bei mir, warum auch immer.
                      Kann aber auch daran liegen, dass ich dein script oft neu starte, wenn ich mal wieder einen der Akkus durch 'Übertaktung' beim Testen eingefroren habe....

                      Ich mach mal ein screeny, wenn es mal wieder passiert. Dann können wir beide darüber grübeln, warum das so ist....eigentlich weiss ich nicht präzise, wo es herkommt.

                      Da Du (afaik) aber auf Change triggerst, nützt es nicht mit diesem kleine script eine 1 auf eine 1 zu schreiben.
                      Deswegen die -1, und dann mit Verzögerung die 1. Könnte man halt noch schöner mit einer Logik machen, ist imho aber hier wirklich zu viel Schönbauerei.

                      maxclaudiM Offline
                      maxclaudiM Offline
                      maxclaudi
                      schrieb zuletzt editiert von maxclaudi
                      #186

                      @Mabbi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):

                      @maxclaudi
                      Zur -1, wenn der Zendure das mal selber gemacht hat steht im Set auch gerne mal eine 1 bei mir, warum auch immer.

                      Ist eigentlich nicht möglich. Zendure oder API ändert den dpSet nicht.

                      Kann aber auch daran liegen, dass ich dein script oft neu starte, wenn ich mal wieder einen der Akkus durch 'Übertaktung' beim Testen eingefroren habe....

                      Das wird es sein.
                      Der Datenpunkt kann nur über Dich bzw. Dein(e) Script(s) geändert werden.

                      Ich mach mal ein screeny, wenn es mal wieder passiert. Dann können wir beide darüber grübeln, warum das so ist....eigentlich weiss ich nicht präzise, wo es herkommt.

                      Nicht nötig. Mir ist das mögliche Fehlverhalten bewusst.

                      Der Datenpunkt wird, wenn nicht schon vorhanden, bei Scriptstart automatisch angelegt und mit "-1" initialisiert.
                      Existiert der Datenpunkt schon, dann wird er iob-typisch nicht neu erstellt und somit auch nicht bei scriptstart mit "-1" initalisiert.
                      Wurde nun zuvor eine 1 (oder 0) gesetzt und es kam zu einem vorzeitigem Abbruch des Scripts, dann "könnte" der letzte Wert gesetzt bleiben.
                      Danke für Dein Feedback.

                      Update 26.11.2025 12:20h– Neues Script
                      im Eingangspost.

                      Bisher:

                      • Bei Script-Start wird wenn dpSet nicht vorhanden ist: dpSet erstellt und mit -1 initalisiert.
                        Wenn schon vorhanden: keine -1 Initialisierung.
                      • Jeder Wert wird nach SET und aufgerufenem POST auf -1 zurückgesetzt. Unabhängig ob POST erfolgreich war oder nicht.

                      Neu/zusätzlich:

                      • Bei Script-Start wird immer mit -1 initalisiert.
                      • alle dpSet-Werte werden spätestens beim nächsten GET wieder auf -1 gesetzt

                      Durch Queue sind Race Conditions ausgeschlossen.

                      Damit ist ein manuelles setzen von "-1" nicht nötig und (war auch) nicht vorgesehen.

                      Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

                      1 Antwort Letzte Antwort
                      0
                      • D Daniel 8

                        @maxclaudi

                        Vielen Dank für das ausführliche oben beschriebene Verhalten von smartMode.

                        Es gibt wirklich keine konstante wann er umschaltet. Hatte erst mal.4 Tage ohne umschalten und dann kann sein das er 3 mal am tag umschaltet

                        maxclaudiM Offline
                        maxclaudiM Offline
                        maxclaudi
                        schrieb zuletzt editiert von maxclaudi
                        #187

                        @Daniel-8 sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro):

                        @maxclaudi

                        Vielen Dank für das ausführliche oben beschriebene Verhalten von smartMode.

                        Es gibt wirklich keine konstante wann er umschaltet. Hatte erst mal.4 Tage ohne umschalten und dann kann sein das er 3 mal am tag umschaltet

                        Die Umschaltung von SmartMode passiert tatsächlich von Cloud UND Firmware.
                        Das ist nicht ohne weiteres von Zendure zu lösen.
                        Dafür müsste Firmware angepasst und ausgerollt werden.
                        SmartMode war/ist für eine bestimmte Zeit der Steuerung für bestimmte Ereignisse gedacht und nicht als stetiger Flag.
                        Wenn auch von uns so gewünscht.
                        Macht nichts, solange es so funktioniert und tatsächlich in RAM geschrieben wird.

                        Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

                        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

                        793

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        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