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. ioBroker Allgemein
  4. Batteriesteuerung im GEN24

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Batteriesteuerung im GEN24

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
1 Beiträge 1 Kommentatoren 49 Aufrufe 2 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.
  • L Offline
    L Offline
    legro
    schrieb am zuletzt editiert von legro
    #1

    Durch eure Beiträge angeregt habe ich nach mehreren Fehlversuchen mich nochmals an dieses Vorhaben gewagt. Ich versuche einmal alles zusammenzutragen, was ich zum Realisieren meiner Batterieverwaltung benötige ..

    benötigte Modbus-Register zur Batteriesteuerung

    Register zum Steuern der (Ent)Ladevorgänge

    • InWRte (inbound watts rate) : positiv -> maximale Ladeleistung; negativ -> Mindestladeleistung
    • OutWRte (outbound watts rate) : positiv -> maximale Entladeleistung; negativ -> Mindestentladeleistung
    • InOutWRte_SF : Skalierungsfaktor für InWRte und OutWRte
    • StorCtl_Mod : 1 -> aktiviert Ladebegrenzung (InWRte); 2 -> aktiviert Entladebegrenzung ( OutWRte); 3 -> beide Begrenzungen werden aktiviert

    Die Prozentwerte in InWRte und OutWRte beziehen sich auf diese Register

    • WChaGra : maximale Ladeleistung der Batterie
    • WDisChaGra : maximale Entladeleistung der Batterie

    Informationen zur in der Batterie gespeicherten Energie

    • ChaStat : Ladung der Batterie in Prozent
    • ChaStat_SF : Skalierungsfaktor zu ChaStat
    • WChaMax : maximale Ladeleistung in KW; die Prozentwerte in InWRte und OutWRte beziehen sich indirekt über WChaGra und WDisChaGra auf dieses Register (Dies muss noch getestet werden!)

    Optionen

    • ChaGriSet : 1 -> (Zwangs)Ladung aus dem Netz; 0 -> Ladung aus dem Netz nicht möglich; dieser Wert ist UND-verknüpft mit der Einstellung in der Weboberfläche, die das Laden aus dem Netz erlaubt.
    • InOutRte_RvrtTms : [Zeitangabe in Sekungen] -> nach Ablauf dieser Zeit nimmt der GEN24 wieder die Standardwerte an.

    Steuerung von GEN24/BYD mittels JavaScript

    ACHTUNG

    Beim Schreiben in Registern, die mit einem Skalierungsfaktor verknüpft sind, muss stets der unskalierte Werte eingetragen werden. Es erfolgt also kein Zurückrechnen über den Skalierungsfaktor; dies muss man selbst erledigen.

    Statisch kann der Ladezustand SoC der Batterie über Modbus nur nach unten (minSOC) begrenzen. Will man auch den maximalen Wert begrenzen, bleibt nur der Weg über die Weboberfläche. Alternativ kann man natürlich per JavaScript den Datenpunkt ChaStat überwachen und InWRte auf 0 setzen, wenn der gewünschte maximale Ladezustand erreicht wurde.

    In einer zweiten Überarbeitung ist vorgesehen, das Register InOutRte_RvrtTms zu verwenden. Es dient als Timeout; nach Ablauf dieser Zeit werden die Standardwerte wieder aktiviert. Dies ist von Vorteil, wenn beispielsweise einmal der ioBroker abstürzen sollte; in diesem Falle wären die Werte eingefroren, ohne dass man sie zurücksetzen könnte.

    Zwangsladung aus dem Netz

    const id_InWRte = 'modbus.2.holdingRegisters.1.40356_InWRte'
    const id_OutWRte = 'modbus.2.holdingRegisters.1.40355_OutWRte'
    const id_SF_InOutWRte = 'modbus.2.holdingRegisters.1.40368_InOutWRte_SF'
    const id_Mode = 'modbus.2.holdingRegisters.1.40348_StorCtl_Mod'
    
    function setGridLoad(InWRte,OutWRte) {
    /*
    InWRte, OutWRte in Prozent
    
    Aktiviert die Ladung der Batterie aus dem Netz.
    Bedingungen: InWRte > |OutWRte| und OutWRte < 0 
    */
    
        if (0 <= InWRte && InWRte <= 100 && -100 <= OutWRte && OutWRte <= 0 && Math.abs(OutWRte) <= InWRte) {
    
            let val_InWRte = Math.round(InWRte / 10 ** getState(id_SF_InOutWRte).val)
            let val_OutWRte = Math.round(OutWRte / 10 ** getState(id_SF_InOutWRte).val)
    
            setState(id_InWRte,val_InWRte,false)
            setState(id_OutWRte,val_OutWRte,false)
            setState(id_Mode,3,false)
        } else {
            log('FEHLER: ungültige Werte','error')
        }
    
    }
    

    Entladung begrenzen

    const id_OutWRte = 'modbus.2.holdingRegisters.1.40355_OutWRte'
    const id_SF_InOutWRte = 'modbus.2.holdingRegisters.1.40368_InOutWRte_SF'
    const id_Mode = 'modbus.2.holdingRegisters.1.40348_StorCtl_Mod'
    
    function setMaxDisCharge(p) {
    //p in Prozent
    
        if (0 <= p && p <= 100) {
            let val_OutWRte = Math.round(p / 10 ** getState(id_SF_InOutWRte).val)
            setState(id_OutWRte,val_OutWRte,false)
            setState(id_Mode,2,false)        
        } else {
            log('FEHLER: ungültiger Werte','error')
        }
    
    }
    

    minimale Entladungsgrenze SOC setzen

    function setMinSOC(p) {
    /*
    minimaler Ladezustand in % der Batteriekapazität
    */
        if (0 <= p && p <= 100) {
            let val_MinSOC = Math.round(p / 10 ** getState(id_SF_MinSOC).val)
            setState(id_OutWRte,val_MinSOC,false)      
        } else {
            log('FEHLER: ungültiger Wert','error')
        }  
    }
    

    [wird fortgesetzt]

    Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

    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
    FAQ Cloud / IOT
    HowTo: Node.js-Update
    HowTo: Backup/Restore
    Downloads
    BLOG

    456

    Online

    32.6k

    Benutzer

    82.3k

    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