Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Javascript für Zendure Hyper Steuerung

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Javascript für Zendure Hyper Steuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lesiflo Most Active last edited by lesiflo

      Übersicht
      Das Skript steuert zwei Heim-Speicherbatterien („Hyper1“ und „Hyper2“) in einem Haus mit Photovoltaik (PV-Anlage) und einem Elektroauto. Es entscheidet automatisch, wann geladen, entladen oder gestoppt wird – basierend auf PV-Leistung, Hausverbrauch, Strompreis und Auto-Ladebedarf.

      Hauptaufgaben des Skripts

      1. PV-Leistung & Hausverbrauch messen
        o Das Skript ermittelt, wie viel Strom die Solaranlage gerade produziert und wie viel das Haus verbraucht.
        o Außerdem wird der Strombedarf vom Elektroauto berücksichtigt.
      2. SOC (Ladezustand der Batterien) überwachen
        o Jede Batterie hat einen aktuellen Ladezustand (SOC in %).
        o Daraus wird der durchschnittliche Ladezustand und die verfügbare Kapazität berechnet.
      3. Lade- und Entlade-Entscheidung treffen
        o Laden: Wenn PV-Überschuss vorhanden ist oder der Strompreis günstig ist, wird in die Batterien geladen.
        o Entladen: Wenn Strom teuer ist oder die Batterien überschüssige Energie haben, wird ins Hausnetz entladen.
        o Stopp: Wenn keine der Bedingungen zutrifft, wird weder geladen noch entladen.
      4. E-Auto priorisieren
        o Das Skript kann einstellen, dass das Elektroauto Vorrang hat.
        o Wenn das Auto geladen wird, wird die Batterie nur nach Bedarf genutzt, bis das Auto einen bestimmten SOC erreicht hat.
      5. Preisabhängiges Laden
        o Es erkennt günstige und teure Stromzeiten.
        o Bei günstigem Strom kann das Skript auch „preisgesteuert“ laden, unabhängig vom PV-Überschuss.
      6. Nachtverbrauch berücksichtigen
        o Vor Sonnenuntergang berechnet das Skript, wie lange die Batterien in der Nacht ausreichen.
        o Daraus wird die „AmountHours“-Variable gesetzt, die angibt, wie lange die Batterien das Haus noch versorgen können.
      7. Leistungsverteilung
        o Lade- oder Entladeleistung wird fair auf beide Batterien verteilt, abhängig vom Ladezustand, um Überladung oder Tiefentladung zu vermeiden.
      8. Logging
        o Alle wichtigen Aktionen werden in einer Tabelle angezeigt, die farblich zwischen Info, Laden, Entladen, Warnungen und Stopp unterscheidet.

      Trigger / Häufigkeit
      • Die Steuerung läuft alle 10 Sekunden.
      • Die Nachtverbrauchsberechnung (AmountHours) wird einmal täglich vor Sonnenuntergang aktualisiert.
      • Änderungen der Sonnenuntergangszeit setzen die Berechnung zurück.

      Kurz gesagt
      Das Skript ist ein intelligenter Energie-Manager:
      • Es lädt Batterien, wenn PV-Überschuss oder günstiger Strom vorhanden ist.
      • Es entlädt die Batterien, wenn Strom teuer ist oder das Haus zusätzliche Energie braucht.
      • Es priorisiert das Laden des Elektroautos, ohne die Hausversorgung zu gefährden.
      • Es plant auch für die Nacht, damit die Batterien nicht leer sind, bevor morgens wieder Sonne scheint.

      Script: hems.txt

      Beispiel Logausgabe:

      ac82e25f-299a-438f-84a5-1c003b6f8952-image.png

      Das Script ist sehr auf meine Umgebung zugeschnitten, muss daher individuell angepasst werden.
      Im Script habe ich so weit wie möglich die Werte kommentiert.

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

        @lesiflo danke dir ich werde mir das mal zu Gemüte führen und durchdenken. Danke fürs teilen und dir ein schönes Wochenende 🍻

        1 Reply Last reply Reply Quote 0
        • I
          intruder7 last edited by

          hi @lesiflo , im Grunde bin ich auf der Suche nach einem Skript mit den von dir umgesetzten Funktionen. Ich habe aber nur einen Hyper mit 2 Akkus. Was muss ich anpassen damit dein Skript auch mit nur einem Hyper funktioniert?

          Grüße

          L 2 Replies Last reply Reply Quote 0
          • L
            lesiflo Most Active @intruder7 last edited by

            @intruder7 Melde mich später ausführlicher dazu.

            1 Reply Last reply Reply Quote 1
            • L
              lesiflo Most Active @intruder7 last edited by lesiflo

              @intruder7 Du musst alles was mit

              const hyper2 = { 
                  name:           'Hyper2',
                  inputLimitDP:   'zendure-solarflow.0.xxxxxx.yyyyyyyy.control.setInputLimit',
                  inputDP:        'zendure-solarflow.0.xxxxxx.yyyyyyyy.gridInputPower',
                  outputLimitDP:  'zendure-solarflow.0.xxxxxx.yyyyyyyy.control.setOutputLimit',
                  outputDP:       'zendure-solarflow.0.xxxxxx.yyyyyyyy.outputHomePower',
                  acModeDP:       'zendure-solarflow.0.xxxxxx.yyyyyyyy.control.acMode',
                  pvLeistungDP:   'zendure-solarflow.0.xxxxxx.yyyyyyyy.solarInputPower',
                  socDP:          'zendure-solarflow.0.xxxxxx.yyyyyyyy.electricLevel',
              };
              

              zu tun hat rausschmeißen

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

              Support us

              ioBroker
              Community Adapters
              Donate

              867
              Online

              32.0k
              Users

              80.5k
              Topics

              1.3m
              Posts

              3
              5
              78
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo