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.9k

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

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
193 Beiträge 7 Kommentatoren 8.9k Aufrufe 6 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.
  • 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 am 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 am 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 am 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
                1
                • J Offline
                  J Offline
                  JimmyGold
                  schrieb am zuletzt editiert von
                  #188

                  @maxclaudi
                  Erstmal vielen Dank für deine Mühen. Habe es gerade mit einem SF2400 AC getestet - sieht gut aus. Mir ist nur aufgefallen, dass beim Datenpunkt "chargeMaxLimit" der Wert durch 10 geteilt wird und als % angegeben wird. Richtig wäre die Anzeige in "W" und ohne Teilung. Es stellt die maximale Ladeleistung in Watt dar. Bei SF2400 AC somit 2400W.

                  maxclaudiM 1 Antwort Letzte Antwort
                  1
                  • J JimmyGold

                    @maxclaudi
                    Erstmal vielen Dank für deine Mühen. Habe es gerade mit einem SF2400 AC getestet - sieht gut aus. Mir ist nur aufgefallen, dass beim Datenpunkt "chargeMaxLimit" der Wert durch 10 geteilt wird und als % angegeben wird. Richtig wäre die Anzeige in "W" und ohne Teilung. Es stellt die maximale Ladeleistung in Watt dar. Bei SF2400 AC somit 2400W.

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

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

                    @maxclaudi
                    ..Mir ist nur aufgefallen, dass beim Datenpunkt "chargeMaxLimit" der Wert durch 10 geteilt wird und als % angegeben wird. Richtig wäre die Anzeige in "W" und ohne Teilung. Es stellt die maximale Ladeleistung in Watt dar. Bei SF2400 AC somit 2400W.

                    Danke fürs Feeedback.
                    Done. Script im Eingangspost aktualisiert. Version: 2025.12.02_09.40h

                    Wenn Script aktualisiert wird muss vor Start der Datenpunkt:
                    chargeMaxLimit gelöscht werden.
                    Alternativ vor Start komplettes Verzeichnis mit allen Datenpunkten löschen.
                    Sonst existiert der Datenpunkt weiterhin und wird zwar mit dem richtigen Wert aktualisiert, zeigt aber statt Einheit "W" dann weiterhin "%" an.


                    Frage an Alle:
                    Lässt sich chargeMaxLimit in der App einstellen (mit wieviel Watt maximal geladen werden darf)?

                    @mabbi und @schimi , ihr habt ja höhere Ausgangsleistungen frei schalten lassen. was steht bei Euch aktuell für ein Wert in der max. Eingangs- bzw. Ladeleistung: chargeMaxLimit?

                    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
                    • S Offline
                      S Offline
                      Schimi
                      schrieb am zuletzt editiert von
                      #190

                      2400 W

                      image.png

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Schimi
                        schrieb am zuletzt editiert von Schimi
                        #191

                        ich kann in der App den max wert einstellen... es ändert sich aber nur

                        inverseMaxPower

                        image.png

                        edit ah mist.... kommt davon wenn man nicht vernünftig liest.. ;)

                        Ne, nur die outMaxPower... nicht mit welcher "power" er laden darf....

                        kurz: chargeMaxLimit, lässt sich nicht in der app ändern

                        1 Antwort Letzte Antwort
                        1
                        • J Offline
                          J Offline
                          JimmyGold
                          schrieb am zuletzt editiert von JimmyGold
                          #192

                          Das ging fix.
                          Mit dem Befehl:
                          Java.jpg
                          schaltet der DP um

                          chargeMaxLimit.png

                          Ob das eine Auswirkung hat, habe ich noch nicht testen können.

                          Edit: OK, wenn bei chargeMaxLimit z.B. 1000 eingestellt sind und der Wert für setInputLimit >1000 ist, wird die Ladeleistung auf 1000W beschränkt. Funktioniert also.

                          maxclaudiM 1 Antwort Letzte Antwort
                          1
                          • J JimmyGold

                            Das ging fix.
                            Mit dem Befehl:
                            Java.jpg
                            schaltet der DP um

                            chargeMaxLimit.png

                            Ob das eine Auswirkung hat, habe ich noch nicht testen können.

                            Edit: OK, wenn bei chargeMaxLimit z.B. 1000 eingestellt sind und der Wert für setInputLimit >1000 ist, wird die Ladeleistung auf 1000W beschränkt. Funktioniert also.

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

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

                            Das ging fix.
                            Mit dem Befehl:
                            Java.jpg
                            schaltet der DP um

                            chargeMaxLimit.png

                            Ob das eine Auswirkung hat, habe ich noch nicht testen können.

                            Edit: OK, wenn bei chargeMaxLimit z.B. 1000 eingestellt sind und der Wert für setInputLimit >1000 ist, wird die Ladeleistung auf 1000W beschränkt. Funktioniert also.

                            Sehr interessant.

                            PS:
                            Mit kleiner log Auswertung , korrekter Syntax und größerem Timeout ist es ok, falls Du (auch andere keys?) testen möchtest.
                            Timeout von 250 ist extrem kurz im lokalen Netzwerk, das manchmal kleine Latenzen hat.
                            Dazu WiFi, ESP Zendure (der nicht sofort antwortet) und JavaScript/Node ioB (was auch mal durch andere Skripte verzögert wird).

                            httpPost(
                                "http://xxx.xxx.xxx.xxx/properties/write",
                                '{"sn":"H0xxxxxxxxx","properties":{"chargeMaxLimit":1000}}',
                                { timeout: 2000, responseType: "text" },
                                async (err, response) => {
                                    if (err) {
                                        log("HTTP-Error: " + err, "info");
                                        return;
                                    }
                                    log("Response: " + response, "info");
                                }
                            );
                            
                            

                            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

                            605

                            Online

                            32.5k

                            Benutzer

                            81.6k

                            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