Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    6
    1
    99

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    758

Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

Scheduled Pinned Locked Moved JavaScript
290 Posts 14 Posters 24.2k Views 13 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Bernd1967B Bernd1967

    Zum Bypass (properties.pass)
    Ich hab dort alle drei Werte, also 0,1,2
    Ich vermute folgendes:
    pass = 1 Bypass + AC Entladen (wenn in der App überschüssige Energie einspeisen erlaubt)
    pass = 2 Nur Bypass

    Nachtrag: Noch nicht sicher, vermutlich genaus anders herum.

    maxclaudiM Offline
    maxclaudiM Offline
    maxclaudi
    wrote on last edited by maxclaudi
    #261

    @Bernd1967 sagte:

    Zum Bypass (properties.pass)
    Ich hab dort alle drei Werte, also 0,1,2
    Ich vermute folgendes:
    pass = 1 Bypass + AC Entladen (wenn in der App überschüssige Energie einspeisen erlaubt)
    pass = 2 Nur Bypass

    Gut beobachtet und danke für diesen wertvollen Beitrag!

    Solches Feedback hilft allen weiter.
    Bei der Beschreibung der Datenpunkte habe ich mich an das offizielle zenSDK gehalten.
    Dort ist bisher nur Folgendes dokumentiert:

    • Attribute: pass
    • Type: int
    • Access: RO (readonly)
    • Range: 0-1
    • Description: Pass-through state

    Es scheint also, dass die offizielle Doku nicht auf dem aktuellsten Stand der Firmware-Entwicklung ist.
    Bitte weiter beobachten.
    Wenn Du Dir sicher bist, werde ich die Beschreibung im Namen des Datenpunkts gerne erweitern.

    edit 03.05.26:
    Da zenSDK per HTTP für pass Werte liefert (0, 1, 2), die über die Cloud (MQTT) so nicht für pass verwendet werden (dort weiterhin 0/1),
    wird es eher so sein, dass beim lokalen Webserver vermutlich ein direktes Mapping des internen passMode auf den Read-Only Key pass statt findet.
    Die Firmware nutzt die Zustände 1 (fest AUS) und 2 (fest EIN) als Schutzmechanismus gegen zu häufiges Schalten der Relais, während zenSDK dies lediglich als Statuswert spiegelt, ohne Schreibzugriff (über passMode) zu ermöglichen.

    im Script übernommen:
    pass - 0: Bypass Automatic, 1: Bypass OFF, 2: Bypass ON

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

    D 1 Reply Last reply
    0
    • maxclaudiM maxclaudi

      @Bernd1967 sagte:

      Zum Bypass (properties.pass)
      Ich hab dort alle drei Werte, also 0,1,2
      Ich vermute folgendes:
      pass = 1 Bypass + AC Entladen (wenn in der App überschüssige Energie einspeisen erlaubt)
      pass = 2 Nur Bypass

      Gut beobachtet und danke für diesen wertvollen Beitrag!

      Solches Feedback hilft allen weiter.
      Bei der Beschreibung der Datenpunkte habe ich mich an das offizielle zenSDK gehalten.
      Dort ist bisher nur Folgendes dokumentiert:

      • Attribute: pass
      • Type: int
      • Access: RO (readonly)
      • Range: 0-1
      • Description: Pass-through state

      Es scheint also, dass die offizielle Doku nicht auf dem aktuellsten Stand der Firmware-Entwicklung ist.
      Bitte weiter beobachten.
      Wenn Du Dir sicher bist, werde ich die Beschreibung im Namen des Datenpunkts gerne erweitern.

      edit 03.05.26:
      Da zenSDK per HTTP für pass Werte liefert (0, 1, 2), die über die Cloud (MQTT) so nicht für pass verwendet werden (dort weiterhin 0/1),
      wird es eher so sein, dass beim lokalen Webserver vermutlich ein direktes Mapping des internen passMode auf den Read-Only Key pass statt findet.
      Die Firmware nutzt die Zustände 1 (fest AUS) und 2 (fest EIN) als Schutzmechanismus gegen zu häufiges Schalten der Relais, während zenSDK dies lediglich als Statuswert spiegelt, ohne Schreibzugriff (über passMode) zu ermöglichen.

      im Script übernommen:
      pass - 0: Bypass Automatic, 1: Bypass OFF, 2: Bypass ON

      D Offline
      D Offline
      Daniel 8
      wrote on last edited by
      #262

      @maxclaudi sagte:

      @Bernd1967 sagte:

      Zum Bypass (properties.pass)
      Ich hab dort alle drei Werte, also 0,1,2
      Ich vermute folgendes:
      pass = 1 Bypass + AC Entladen (wenn in der App überschüssige Energie einspeisen erlaubt)
      pass = 2 Nur Bypass

      Also ich habe in der App auch überschüssige Energie einspeisen erlaubt aktiviert.
      Bei mir kommt aber immer nur pass=2.
      Dann dürfte ja pass=1 kommen wenn der Speicher voll ist und die energie ins Haus geht oder`?

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

      Bernd1967B 1 Reply Last reply
      0
      • maxclaudiM maxclaudi

        Zendure-Geräte Webserver: Steuerung über das zenSDK (HTTP)
        2026.05.02_00.39h; update 19.05.26 16:50h BatteryType.
        für das ioBroker-Forum
        In memory of Daisy 02.05.24 – miss you.

        Dieses Skript ermöglicht die lokale Steuerung eines Zendure-Geräts.
        Es funktioniert sofort und benötigt keinerlei Keys oder sonstige Authentifizierungen.
        Es ist mit APP und Cloud nutzbar.
        Oder auch nur lokal, wenn für Gerät(e) der Internetzugang gesperrt wird.
        Dann ist jedoch die Verwendung der App per WLAN nicht mehr möglich.
        Außerdem sollte eine Möglichkeit geschaffen werden, einen Zeitserver zu erreichen.
        Also nur die Zendure spezifischen URL sperren.
        Näher möchte ich hier nicht darauf eingehen.

        Voraussetzungen:

        • Hardware: Zendure-Geräte (Generation 2025/2026) mit integriertem Webserver.

        • Aktivierung: Vor der ersten Nutzung muss HEMS einmalig aktiviert, kurz abgewartet und anschließend wieder deaktiviert werden.

        • Netzwerk: Die IP-Adresse des Zendure-Geräts muss bekannt sein. Empfehle dringend, dem Gerät im Router oder Access Point eine dauerhafte, feste IP zuzuweisen.

        Wichtiger Hinweis zum Flash-Speicher:
        Ich bin kein Freund von automatischen Befehlsketten, die für den Nutzer nicht nachvollziehbar sind – vor allem, wenn sie zu unnötigen Schreibvorgängen im Flash-Speicher führen.

        Nach aktuellem Stand ist sicher: Wenn smartMode: 1 gesetzt ist, werden zumindest die Werte für outputLimit und inputLimit lediglich in den RAM geschrieben.

        Ein Modewechsel (z. B. acMode, Energiepläne, Automodi, MQTT-Konfiguration) wird hingegen fast immer in den Flash-Speicher geschrieben.
        Dabei wird oft nicht nur der einzelne Wert, sondern die gesamte Konfiguration dauerhaft gespeichert.


        Neue Datenpunkte unter "control"
        Im aktuellen Skript gibt es zusätzliche Datenpunkte sowie den Ordner automaticKonfig mit zwei Schaltern (Boolean):

        1. auto_inputLimitMode (Watt)
          Hier kann ein Wert in Watt für das Ladelimit (inputLimit) gesetzt werden.
          Das Skript prüft daraufhin automatisch:
        • Ist acMode: 1 und outputLimit: 0 W gesetzt?

        • Falls nicht, wird automatisch acMode: 1 und outputLimit: 0 gesetzt, bevor mit dem gewählten Wert vom Netz geladen wird.

        • Ist der Schalter input_output_LimitMode_smartMode_RAM aktiviert, wird vor dem Senden zusätzlich geprüft, ob smartMode: 1 aktiv ist.
          Wenn nicht, wird dieser automatisch mitgesendet.

        • Prinzip: Es wird nur gesendet, was zwingend nötig ist (Vorab-Prüfung).

        1. auto_outputLimitMode (Watt)
          Dies ist das Gegenstück zum auto_inputLimitMode für die Entladesteuerung.

        2. smartModeWatcher (Schalter)
          Wenn dieser Slider aktiviert ist (true), wird bei jedem empfangenen Report automatisch geprüft, ob smartMode: 1 gesetzt ist.
          Sollte der Wert auf 0 stehen, setzt das Skript ihn automatisch wieder auf 1. Dieser Slider kann manuell oder per Skript (de-)aktiviert werden.

        Weitere Hinweise

        • inverseMaxPower: Dieser Wert sollte nicht zur laufenden Regelung verwendet werden. Er definiert die Obergrenze, die der Wechselrichter maximal ausgeben darf, und wird sehr wahrscheinlich in den Flash geschrieben.

        • chargeMaxLimit:
          Mit Vorsicht zu genießen. Diesen Wert am besten nicht für regelmäßige Limit-Anpassungen verwenden.

        • Verbraucher-Geräte:
          Vorsicht bei Consumer-Produkten (auch Zendure); hier wird oft bei jeder Parameteränderung die komplette Konfiguration in den Flash geschrieben.

        • mDNS: Funktioniert zwar, hat sich in Tests jedoch als unzuverlässig erwiesen. Eine feste IP-Adresse ist die bessere Wahl.

        • Struktur-Update: Die Verzeichnisse befinden sich nun direkt im Hauptordner:

        • control (inkl. automaticKonfig)

        • packData (unter Cxxxxx finden sich die jeweiligen Batteriedaten)

        • properties

        D Offline
        D Offline
        Daniel 8
        wrote on last edited by Daniel 8
        #263

        @maxclaudi
        Vielen Dank für deine große Mühe der Scripte

        • Struktur-Update: Die Verzeichnisse befinden sich nun direkt im Hauptordner:

        Ich hoffe mal das ich dann jetzt nicht meine ganzen Scripte neu Anpassen muss, wenn sich eventuell die Datenpunkte verschieben. Ich werde es mal in Ruhe testen

        Gibt es denn eine schnelle lösung, das ich meine Blocklys so anpassen kann. Habe festgestellt das die Struktur jetzt ja leider anderst ist.
        Ich stellte fest, das ich auch noch meinen ganzen Energieflussadapter dann umprogrammieren muss.

        Das bedeutet für mich wieder einige Abende hier

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

        maxclaudiM 1 Reply Last reply
        0
        • D Daniel 8

          @maxclaudi
          Vielen Dank für deine große Mühe der Scripte

          • Struktur-Update: Die Verzeichnisse befinden sich nun direkt im Hauptordner:

          Ich hoffe mal das ich dann jetzt nicht meine ganzen Scripte neu Anpassen muss, wenn sich eventuell die Datenpunkte verschieben. Ich werde es mal in Ruhe testen

          Gibt es denn eine schnelle lösung, das ich meine Blocklys so anpassen kann. Habe festgestellt das die Struktur jetzt ja leider anderst ist.
          Ich stellte fest, das ich auch noch meinen ganzen Energieflussadapter dann umprogrammieren muss.

          Das bedeutet für mich wieder einige Abende hier

          maxclaudiM Offline
          maxclaudiM Offline
          maxclaudi
          wrote on last edited by maxclaudi
          #264

          @Daniel-8
          Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

          Nutze Alias-Datenpunkte in ioBroker.

          Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
          Deine Blocklys und Scripte können dann unverändert bleiben.

          Prinzip:
          Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
          Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

          Beispiel (schematisch):
          alias.0.<alterPfad>
          zeigt auf
          0_userdata.0.<neuerPfad>

          Dadurch:
          Keine Anpassung deiner Blocklys nötig
          Energieflussadapter bleibt unverändert
          Einmalig Mapping erstellen, danach läuft alles wie vorher

          Das spart dir die „mehreren Abende“ .

          Künftig wird die Struktur, wie sie jetzt im aktuellen Script (02.05.2026) ist, beibehalten.

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

          D 1 Reply Last reply
          0
          • D Daniel 8

            @maxclaudi sagte:

            @Bernd1967 sagte:

            Zum Bypass (properties.pass)
            Ich hab dort alle drei Werte, also 0,1,2
            Ich vermute folgendes:
            pass = 1 Bypass + AC Entladen (wenn in der App überschüssige Energie einspeisen erlaubt)
            pass = 2 Nur Bypass

            Also ich habe in der App auch überschüssige Energie einspeisen erlaubt aktiviert.
            Bei mir kommt aber immer nur pass=2.
            Dann dürfte ja pass=1 kommen wenn der Speicher voll ist und die energie ins Haus geht oder`?

            Bernd1967B Offline
            Bernd1967B Offline
            Bernd1967
            wrote on last edited by
            #265

            @Daniel-8 sagte:

            Also ich habe in der App auch überschüssige Energie einspeisen erlaubt aktiviert.
            Bei mir kommt aber immer nur pass=2.
            Dann dürfte ja pass=1 kommen wenn der Speicher voll ist und die energie ins Haus geht oder`?

            Ja, war auch erstmal eine Vermutung von mir.
            Ich hatte dann Gestern noch festgestellt das wenn Speicher voll ist und in das Netz eingespeist wird pass=2 ist, also genau wie bei Dir.
            Jetzt werde ich mal abwarten wann pass=1 ist.

            maxclaudiM 1 Reply Last reply
            1
            • maxclaudiM maxclaudi

              @Daniel-8
              Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

              Nutze Alias-Datenpunkte in ioBroker.

              Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
              Deine Blocklys und Scripte können dann unverändert bleiben.

              Prinzip:
              Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
              Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

              Beispiel (schematisch):
              alias.0.<alterPfad>
              zeigt auf
              0_userdata.0.<neuerPfad>

              Dadurch:
              Keine Anpassung deiner Blocklys nötig
              Energieflussadapter bleibt unverändert
              Einmalig Mapping erstellen, danach läuft alles wie vorher

              Das spart dir die „mehreren Abende“ .

              Künftig wird die Struktur, wie sie jetzt im aktuellen Script (02.05.2026) ist, beibehalten.

              D Offline
              D Offline
              Daniel 8
              wrote on last edited by
              #266

              @maxclaudi sagte:

              @Daniel-8
              Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

              Nutze Alias-Datenpunkte in ioBroker.

              Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
              Deine Blocklys und Scripte können dann unverändert bleiben.

              Prinzip:
              Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
              Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

              Beispiel (schematisch):
              alias.0.<alterPfad>
              zeigt auf
              0_userdata.0.<neuerPfad>

              Dadurch:
              Keine Anpassung deiner Blocklys nötig
              Energieflussadapter bleibt unverändert
              Einmalig Mapping erstellen, danach läuft alles wie vorher

              Das spart dir die „mehreren Abende“ .

              Künftig wird die Struktur, wie sie jetzt im aktuellen Script (02.05.2026) ist, beibehalten.

              Danke. Da muss ich mich mal einlesen und testen

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

              D 1 Reply Last reply
              0
              • Bernd1967B Bernd1967

                @Daniel-8 sagte:

                Also ich habe in der App auch überschüssige Energie einspeisen erlaubt aktiviert.
                Bei mir kommt aber immer nur pass=2.
                Dann dürfte ja pass=1 kommen wenn der Speicher voll ist und die energie ins Haus geht oder`?

                Ja, war auch erstmal eine Vermutung von mir.
                Ich hatte dann Gestern noch festgestellt das wenn Speicher voll ist und in das Netz eingespeist wird pass=2 ist, also genau wie bei Dir.
                Jetzt werde ich mal abwarten wann pass=1 ist.

                maxclaudiM Offline
                maxclaudiM Offline
                maxclaudi
                wrote on last edited by maxclaudi
                #267

                @Bernd1967 @Daniel-8

                Da zenSDK per HTTP für pass Werte liefert (0, 1, 2), die über die Cloud (MQTT) so nicht für pass verwendet werden (dort weiterhin 0/1),
                wird es eher so sein, dass beim lokalen Webserver vermutlich ein direktes Mapping des internen passMode auf den Read-Only Key pass statt findet.
                Die Firmware nutzt die Zustände 1 (fest AUS) und 2 (fest EIN) als Schutzmechanismus gegen zu häufiges Schalten der Relais, während zenSDK dies lediglich als Statuswert spiegelt, ohne Schreibzugriff (über passMode) zu ermöglichen.

                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 Reply Last reply
                1
                • D Daniel 8

                  @maxclaudi sagte:

                  @Daniel-8
                  Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

                  Nutze Alias-Datenpunkte in ioBroker.

                  Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
                  Deine Blocklys und Scripte können dann unverändert bleiben.

                  Prinzip:
                  Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
                  Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

                  Beispiel (schematisch):
                  alias.0.<alterPfad>
                  zeigt auf
                  0_userdata.0.<neuerPfad>

                  Dadurch:
                  Keine Anpassung deiner Blocklys nötig
                  Energieflussadapter bleibt unverändert
                  Einmalig Mapping erstellen, danach läuft alles wie vorher

                  Das spart dir die „mehreren Abende“ .

                  Künftig wird die Struktur, wie sie jetzt im aktuellen Script (02.05.2026) ist, beibehalten.

                  Danke. Da muss ich mich mal einlesen und testen

                  D Offline
                  D Offline
                  Daniel 8
                  wrote on last edited by Daniel 8
                  #268

                  Daniel-8 sagte:

                  @maxclaudi sagte:

                  @Daniel-8
                  Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

                  Nutze Alias-Datenpunkte in ioBroker.

                  Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
                  Deine Blocklys und Scripte können dann unverändert bleiben.

                  Prinzip:
                  Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
                  Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

                  Beispiel (schematisch):
                  alias.0.<alterPfad>
                  zeigt auf
                  0_userdata.0.<neuerPfad>

                  Irgendwie komme ich damit nicht klar. Ich weiß nicht wie ich den alten und den neuen Pfad in die alias eintragen kann. Vielleicht gibst du mir ja ne kurze Hilfestellung. Da muss ich ja die Blocklys auch auf die alias.0 Datenpunkte umprogrammieren oder was mache oder denke ich falsch

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

                  maxclaudiM 1 Reply Last reply
                  0
                  • D Daniel 8

                    Daniel-8 sagte:

                    @maxclaudi sagte:

                    @Daniel-8
                    Du kannst dir das Ganze deutlich einfacher machen, ohne alles neu bauen zu müssen:

                    Nutze Alias-Datenpunkte in ioBroker.

                    Du legst dir für deine bisher verwendeten (alten) Datenpunkte einfach Aliase an, die auf die neuen Pfade aus dem aktuellen Script zeigen.
                    Deine Blocklys und Scripte können dann unverändert bleiben.

                    Prinzip:
                    Alter Pfad (den deine Blocklys nutzen): bleibt bestehen als Alias
                    Neuer Pfad (aus dem Script): wird als Ziel hinterlegt

                    Beispiel (schematisch):
                    alias.0.<alterPfad>
                    zeigt auf
                    0_userdata.0.<neuerPfad>

                    Irgendwie komme ich damit nicht klar. Ich weiß nicht wie ich den alten und den neuen Pfad in die alias eintragen kann. Vielleicht gibst du mir ja ne kurze Hilfestellung. Da muss ich ja die Blocklys auch auf die alias.0 Datenpunkte umprogrammieren oder was mache oder denke ich falsch

                    maxclaudiM Offline
                    maxclaudiM Offline
                    maxclaudi
                    wrote on last edited by
                    #269

                    @Daniel-8

                    Ich verstehe, dass die Umstellung nervig ist, aber ich muss hier um dein Verständnis bitten: Die Entwicklung und Pflege solcher Projekte ist extrem zeitintensiv.
                    Ich kann neben der Programmierung keinen individuellen Support für ioBroker wie die Alias-Verwaltung leisten.
                    Das Thema „Alias“ ist ein Standard-Feature von ioBroker, zu dem es hervorragende Anleitungen gibt. Da musst du dich leider selbst einarbeiten, das kann ich dir nicht abnehmen.

                    Suchbegriffe für Google/YouTube: "ioBroker Alias für Anfänger“ oder "Alias Adapter Anleitung“.

                    Evtl. auch hilfreich:

                    organisieren-mit-alias-wie-macht-ihr-das
                    best-practice-alias-raumstruktur
                    alias-best-practices-wie-kann-man-es-besser-machen

                    Ohne ein gewisses Maß an Eigeninitiative bei der Umstellung deiner Struktur wird es leider nicht gehen – egal ob du Aliase nutzt oder die Scripte umschreibst.

                    Viel Erfolg!

                    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 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      Daniel 8
                      wrote on last edited by
                      #270

                      @maxclaudi Vielen Dank für deine Nachricht. Trotzdem danke für das tolle Script. Ich habe es jetzt mit suchen und ersetzen umgestellt

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

                      1 Reply Last reply
                      1
                      • maxclaudiM Offline
                        maxclaudiM Offline
                        maxclaudi
                        wrote on last edited by maxclaudi
                        #271

                        update 05.05.26 14:45h Error-sync.

                        Ich habe einen kleinen Error-Sync-Fix eingespielt.
                        Läuft bei euch alles rund?
                        Mich würde interessieren, ob eure Logs sauber bleiben und wie sich der smartModeWatcher im Alltag schlägt.
                        Schreibt doch kurz, mit welcher Hardware ihr es nutzt – ein kurzes "Läuft stabil" hilft mir auch schon.
                        Kurze Timeouts (ca. 2000ms) kommen beim Zendure-Webserver (nicht nur bei kurzem Intervall) ja leider ab und zu vor, aber mein Skript fängt das sauber ab und loggt die Wiederverbindung.

                        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 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          Daniel 8
                          wrote on last edited by
                          #272

                          Das mit dem Timeout habe ich auch. Aber meist nur ca. 1 mal am Tag.
                          Was für Error hattest du denn?
                          Den Smartmodewatcher habe ich noch nicht getestet

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

                          maxclaudiM 1 Reply Last reply
                          0
                          • D Daniel 8

                            Das mit dem Timeout habe ich auch. Aber meist nur ca. 1 mal am Tag.
                            Was für Error hattest du denn?
                            Den Smartmodewatcher habe ich noch nicht getestet

                            maxclaudiM Offline
                            maxclaudiM Offline
                            maxclaudi
                            wrote on last edited by
                            #273

                            @Daniel-8
                            Bei mir läuft es bisher stabil.
                            Nach 48h Dauerstress (5s Intervall):
                            Bei über 34.000 Abfragen hatte ich lediglich 9 kleine Aussetzer (Timeouts/ECONNRESET).
                            Das ist bei HTTP und WLAN-Umgebungen völlig normal und wird vom Skript im Hintergrund lautlos abgefangen.

                            ECONNRESET: bedeutet, dass der Zendure-Webserver die Verbindung abrupt schließt, weil er intern gerade zu beschäftigt ist
                            (z.B. Cloud-Sync oder interne Verarbeitung). Das liegt nicht am Skript.

                            Timeout: Bei einem WLAN-Umfeld mit viel Konkurrenz sind 2000ms zwar großzügig, aber Funkstörungen oder Paketverluste lassen sich nie ganz vermeiden.

                            wichtiger Hinweis:
                            Sollte ein Steuerungs-Befehl (POST) mal wirklich scheitern, versucht das Skript es 2x erneut.
                            Klappt es gar nicht, wird der Datenpunkt automatisch auf den echten Ist-Wert des Geräts zurückgesetzt.
                            So weiß man genau, was wirklich eingestellt ist und man hat keine "toten" Werte in den control dp.
                            Vorteil: Wert ist aktuell und lässt sich wieder auf den zuvor versuchten Wert ändern.
                            Das kam bei mir nach 1 Woche bisher nicht vor.

                            smartModeWatcher ist aktiviert, hatte aber nichts zu tun.
                            smartMode blieb bis jetzt stabil auf 1.

                            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 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              Daniel 8
                              wrote on last edited by
                              #274

                              @maxclaudi

                              Werde mal bei Gelegenheit das aktuelle Script nochmal einfügen mit deinem Update von gestern und werde berichten.

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

                              1 Reply Last reply
                              0
                              • D Offline
                                D Offline
                                Daniel 8
                                wrote on last edited by
                                #275

                                Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                javascript.0
                                2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                
                                javascript.0
                                2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                

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

                                maxclaudiM 1 Reply Last reply
                                0
                                • D Daniel 8

                                  Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                  javascript.0
                                  2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                  
                                  javascript.0
                                  2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                  
                                  maxclaudiM Offline
                                  maxclaudiM Offline
                                  maxclaudi
                                  wrote on last edited by maxclaudi
                                  #276

                                  @Daniel-8 sagte:

                                  Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                  javascript.0
                                  2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                  
                                  javascript.0
                                  2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                  

                                  Die beiden Meldungen sind technisch identisch und zeigen nur einen einzigen Fehlversuch an.
                                  Da das Gerät nicht innerhalb von 2 Sekunden geantwortet hat, meldet ioBroker einen Fehler und mein Skript fängt diesen als Warnung ab, um stabil weiterzulaufen.
                                  Das ist bei WLAN-Verbindungen normal und kein Grund zur Sorge, solange danach sofort wieder Daten kommen.

                                  Der Webserver vom Zendure-Gerät ist recht schmalbrüstig,
                                  das wissen wir ja.

                                  Wenn das WLAN mal kurz hakt, läuft der 2000ms-Timer ab.
                                  Mein Skript akzeptiert das und funktioniert weiterhin beim nächsten Durchgang.

                                  Wichtig: bitte nicht 2 Versionen meines Scripts gleichzeitig auf 1 Zendure-Gerät-Webserver laufen lassen.

                                  Danke für Deine Antwort, bitte einfach mal 48h intensiv nutzen und beobachten.

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

                                  D D 2 Replies Last reply
                                  0
                                  • maxclaudiM maxclaudi

                                    @Daniel-8 sagte:

                                    Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                    javascript.0
                                    2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                    
                                    javascript.0
                                    2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                    

                                    Die beiden Meldungen sind technisch identisch und zeigen nur einen einzigen Fehlversuch an.
                                    Da das Gerät nicht innerhalb von 2 Sekunden geantwortet hat, meldet ioBroker einen Fehler und mein Skript fängt diesen als Warnung ab, um stabil weiterzulaufen.
                                    Das ist bei WLAN-Verbindungen normal und kein Grund zur Sorge, solange danach sofort wieder Daten kommen.

                                    Der Webserver vom Zendure-Gerät ist recht schmalbrüstig,
                                    das wissen wir ja.

                                    Wenn das WLAN mal kurz hakt, läuft der 2000ms-Timer ab.
                                    Mein Skript akzeptiert das und funktioniert weiterhin beim nächsten Durchgang.

                                    Wichtig: bitte nicht 2 Versionen meines Scripts gleichzeitig auf 1 Zendure-Gerät-Webserver laufen lassen.

                                    Danke für Deine Antwort, bitte einfach mal 48h intensiv nutzen und beobachten.

                                    D Offline
                                    D Offline
                                    dimaiv
                                    wrote on last edited by
                                    #277

                                    @maxclaudi
                                    Bei mir läuft dein Script seit Eine Woche schon und nicht mal ein einziges Timeout gehabt.

                                    Danke.

                                    ioBroker- NUC8i3 / Proxmox / VM
                                    Node.js v22.21.0
                                    NPM v10.9.4
                                    JS controller 7.1.0
                                    Admin 7.7.20
                                    ZigBee Adapter 3.3.1alpha.0
                                    Zigbee LAN Gateway CC2652P
                                    Zigbee Firmware 20250321

                                    maxclaudiM 1 Reply Last reply
                                    1
                                    • D dimaiv

                                      @maxclaudi
                                      Bei mir läuft dein Script seit Eine Woche schon und nicht mal ein einziges Timeout gehabt.

                                      Danke.

                                      maxclaudiM Offline
                                      maxclaudiM Offline
                                      maxclaudi
                                      wrote on last edited by
                                      #278

                                      @dimaiv
                                      Danke für die Antwort, freut mich.

                                      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 Reply Last reply
                                      0
                                      • maxclaudiM maxclaudi

                                        @Daniel-8 sagte:

                                        Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                        javascript.0
                                        2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                        
                                        javascript.0
                                        2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                        

                                        Die beiden Meldungen sind technisch identisch und zeigen nur einen einzigen Fehlversuch an.
                                        Da das Gerät nicht innerhalb von 2 Sekunden geantwortet hat, meldet ioBroker einen Fehler und mein Skript fängt diesen als Warnung ab, um stabil weiterzulaufen.
                                        Das ist bei WLAN-Verbindungen normal und kein Grund zur Sorge, solange danach sofort wieder Daten kommen.

                                        Der Webserver vom Zendure-Gerät ist recht schmalbrüstig,
                                        das wissen wir ja.

                                        Wenn das WLAN mal kurz hakt, läuft der 2000ms-Timer ab.
                                        Mein Skript akzeptiert das und funktioniert weiterhin beim nächsten Durchgang.

                                        Wichtig: bitte nicht 2 Versionen meines Scripts gleichzeitig auf 1 Zendure-Gerät-Webserver laufen lassen.

                                        Danke für Deine Antwort, bitte einfach mal 48h intensiv nutzen und beobachten.

                                        D Offline
                                        D Offline
                                        Daniel 8
                                        wrote on last edited by
                                        #279

                                        @maxclaudi sagte:

                                        @Daniel-8 sagte:

                                        Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                        javascript.0
                                        2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                        
                                        javascript.0
                                        2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                        

                                        Die beiden Meldungen sind technisch identisch und zeigen nur einen einzigen Fehlversuch an.
                                        Da das Gerät nicht innerhalb von 2 Sekunden geantwortet hat, meldet ioBroker einen Fehler und mein Skript fängt diesen als Warnung ab, um stabil weiterzulaufen.
                                        Das ist bei WLAN-Verbindungen normal und kein Grund zur Sorge, solange danach sofort wieder Daten kommen.

                                        Der Webserver vom Zendure-Gerät ist recht schmalbrüstig,
                                        das wissen wir ja.

                                        Wenn das WLAN mal kurz hakt, läuft der 2000ms-Timer ab.
                                        Mein Skript akzeptiert das und funktioniert weiterhin beim nächsten Durchgang.

                                        Wichtig: bitte nicht 2 Versionen meines Scripts gleichzeitig auf 1 Zendure-Gerät-Webserver laufen lassen.

                                        Ich habe nur eins am laufen.

                                        Danke für Deine Antwort, bitte einfach mal 48h intensiv nutzen und beobachten.

                                        Hatte heute ziemliche viele Probleme. Sehr viele Meldungen bis hin das ich sogar die Ip Adresse prüfen sollte. Hatte aber auch festgestellt, das ich einen sehr schlechten Rssi Wert von -75 hatte.
                                        Habe dann mal mein Wlan ausgemacht und wieder an und hatte dann gleich eine bessere Datenrate und auch einen veränderten Rssi von -67 in der Fritzbox.
                                        Was mir aber jetzt auf fiel, das der Rssi Wert in den Objekten durch das Script nicht aktualisiert wurde. Da stand immer noch das Datum vom 7.5.2026 dran. Dann habe ich das Script neu gestartet und da hat sich auch der Rssi Wert verändert.
                                        Warum heute so Viele meldungen anstanden kann ich mir noch nicht erklären, da ich eigentlich nichts verändert habe.

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

                                        maxclaudiM 1 Reply Last reply
                                        0
                                        • D Daniel 8

                                          @maxclaudi sagte:

                                          @Daniel-8 sagte:

                                          Habe das neue Script mal getestet. Habe gefühlt mehr Timeouts. Kann aber auch zufall sein.

                                          javascript.0
                                          2026-05-09 18:09:57.999	warn	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: GET Fehler (1): timeout of 2000ms exceeded
                                          
                                          javascript.0
                                          2026-05-09 18:09:57.998	error	script.js.common.Garten.Balkonkraftwerke.ZenSDK_Zendure_neue_Struktur: httpGet(url=http://192.168.xxx.xxx/properties/report, error=timeout of 2000ms exceeded)
                                          

                                          Die beiden Meldungen sind technisch identisch und zeigen nur einen einzigen Fehlversuch an.
                                          Da das Gerät nicht innerhalb von 2 Sekunden geantwortet hat, meldet ioBroker einen Fehler und mein Skript fängt diesen als Warnung ab, um stabil weiterzulaufen.
                                          Das ist bei WLAN-Verbindungen normal und kein Grund zur Sorge, solange danach sofort wieder Daten kommen.

                                          Der Webserver vom Zendure-Gerät ist recht schmalbrüstig,
                                          das wissen wir ja.

                                          Wenn das WLAN mal kurz hakt, läuft der 2000ms-Timer ab.
                                          Mein Skript akzeptiert das und funktioniert weiterhin beim nächsten Durchgang.

                                          Wichtig: bitte nicht 2 Versionen meines Scripts gleichzeitig auf 1 Zendure-Gerät-Webserver laufen lassen.

                                          Ich habe nur eins am laufen.

                                          Danke für Deine Antwort, bitte einfach mal 48h intensiv nutzen und beobachten.

                                          Hatte heute ziemliche viele Probleme. Sehr viele Meldungen bis hin das ich sogar die Ip Adresse prüfen sollte. Hatte aber auch festgestellt, das ich einen sehr schlechten Rssi Wert von -75 hatte.
                                          Habe dann mal mein Wlan ausgemacht und wieder an und hatte dann gleich eine bessere Datenrate und auch einen veränderten Rssi von -67 in der Fritzbox.
                                          Was mir aber jetzt auf fiel, das der Rssi Wert in den Objekten durch das Script nicht aktualisiert wurde. Da stand immer noch das Datum vom 7.5.2026 dran. Dann habe ich das Script neu gestartet und da hat sich auch der Rssi Wert verändert.
                                          Warum heute so Viele meldungen anstanden kann ich mir noch nicht erklären, da ich eigentlich nichts verändert habe.

                                          maxclaudiM Offline
                                          maxclaudiM Offline
                                          maxclaudi
                                          wrote on last edited by
                                          #280

                                          @Daniel-8 sagte:
                                          Hatte heute ziemliche viele Probleme. Sehr viele Meldungen bis hin das ich sogar die Ip Adresse prüfen sollte. Hatte aber auch festgestellt, das ich einen sehr schlechten Rssi Wert von -75 hatte.
                                          Habe dann mal mein Wlan ausgemacht und wieder an und hatte dann gleich eine bessere Datenrate und auch einen veränderten Rssi von -67 in der Fritzbox.

                                          Das lag oder liegt eindeutig an Deiner WLAN-Verbindung.
                                          Ein RSSI von -75 dBm ist für eine stabile HTTP-Kommunikation grenzwertig.
                                          Dass es nach dem WLAN-Reset auf -67 dBm gesprungen ist, zeigt, dass der Solarflow zuvor keine saubere Verbindung hatte.

                                          Was mir aber jetzt auf fiel, das der Rssi Wert in den Objekten durch das Script nicht aktualisiert wurde. Da stand immer noch das Datum vom 7.5.2026 dran.

                                          Das ist kein Fehler, sondern beabsichtigt.
                                          Das Script ist auf maximale Effizienz optimiert:

                                          • es fragt im Intervall das JSON mit allen Daten ab.
                                          • Eintreffende Daten werden mit den alten Werten verglichen.
                                          • Nur wenn sich ein Wert (z. B. der RSSI) zum vorherigen Stand unterscheidet, wird er aktualisiert.
                                          • Bleibt der Wert identisch, wird er nicht neu geschrieben. Das schont die Ressourcen deines ioBroker-Systems.

                                          Dann habe ich das Script neu gestartet und da hat sich auch der Rssi Wert verändert.

                                          Korrekt. Bei einem Script-Neustart gibt es noch keine Vergleichswerte im Speicher.
                                          Daher werden beim Start einmalig alle Datenpunkte initial geschrieben.

                                          Warum heute so Viele meldungen anstanden kann ich mir noch nicht erklären, da ich eigentlich nichts verändert habe.

                                          Wenn 4x hintereinander kein HTTP GET erfolgreich war
                                          (z. B. wegen Deiner schlechten WLAN-Verbindung), schreibt mein Script zur Diagnose in das LOG:

                                          log("Keine Verbindung möglich. Zendure-Geräte IP prüfen!", "error")
                                          

                                          Das dient nur der Info und weist auf Handlungsbedarf hin.
                                          Das Script selbst läuft weiter und funktioniert auch weiterhin.
                                          Sollte ein GET wieder funktionieren, arbeitet es trotz der vorherigen Meldungen normal weiter.

                                          Dass mit dieser Version mehr LOG-Meldungen kommen, ist zur Fehlersuche im Feld beabsichtigt.
                                          In einer künftigen Version werde ich evtl. eine Option einbauen, mit der bestimmte oder alle LOGs abgeschaltet werden können.

                                          Bitte versuche, Deine WLAN-Verbindung dauerhaft zu stabilisieren.
                                          Bei einem RSSI von -75 ist der Webserver des Geräts meistens nicht mehr schnell genug erreichbar, was dann zwangsläufig zu Timeouts führt.

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

                                          D 1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          573

                                          Online

                                          32.9k

                                          Users

                                          83.0k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe