NEWS
Javascript für Zendure Hyper Steuerung
-
Ü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
- 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. - 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. - 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. - 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. - 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. - 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. - Leistungsverteilung
o Lade- oder Entladeleistung wird fair auf beide Batterien verteilt, abhängig vom Ladezustand, um Überladung oder Tiefentladung zu vermeiden. - 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:

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. - PV-Leistung & Hausverbrauch messen
-
Ü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
- 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. - 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. - 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. - 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. - 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. - 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. - Leistungsverteilung
o Lade- oder Entladeleistung wird fair auf beide Batterien verteilt, abhängig vom Ladezustand, um Überladung oder Tiefentladung zu vermeiden. - 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:

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. - PV-Leistung & Hausverbrauch messen
-
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
@intruder7 Melde mich später ausführlicher dazu.
-
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
@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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden