@tok
Ich habe gestern genau hieran gearbeitet und folgende Lösung realisiert ..
23676b9a-749b-406f-958d-ed59720e682e-image.png
Mit dem Schieberegler kann ich den SOC (Register 40350) einstellen. Das Batterie-Widget zeigt daraufhin weitere Daten an. Darüber hinaus kann ich mit dem Schieberegler das Nachladen aus dem Netz steuern, indem ich den minSOC entsprechend erhöhe.
Hier habe ich alles hierzu eingestellt; die TSV-Datei habe ich dort auch zum Download eingestellt, sodass du nicht nochmals alles abtippen musst.
Ich habe Int&SF verwendet. Hierbei ist Vorsicht geboten. Das Register 40350 ist mit einem Skalierungsfaktor versehen, der in 40364 zu finden ist. Den gilt es natürlich zu berücksichtigen.
Der Datenpunkt avlCap enthält die gemäß minSOC noch verfügbare Energie; negative Werte führen zum Nachladen aus dem Netz. Der Datenpunkt tmpSOC ist mit dem Schiebereglerverknüpft.
30d0de77-b913-4570-818d-bc864bb24d04-image.png
function setBatParams() {
let ChaState = getState('modbus.2.holdingRegisters.1.40351_ChaState').val
let minSOC = getState('0_userdata.0.Fronius.Modbus.Batterie.tmpSOC').val
let capBat = getState('0_userdata.0.Fronius.Modbus.Batterie.batCapacity').val
let avlCap = (ChaState - minSOC) * capBat / 100
setState('0_userdata.0.Fronius.Modbus.Batterie.avlCap',avlCap,true)
}
on({ id: '0_userdata.0.Fronius.Modbus.Batterie.tmpSOC', change: 'any' }, (obj) => {
let neuerWert = Math.round((obj.state.val / (10 ** getState('modbus.2.holdingRegisters.1.40364_MinRsvPct_SF').val)))
setState('modbus.2.holdingRegisters.1.40350_MinRsvPct',neuerWert,false)
setBatParams()
})
Wenn du mehr über meine Lösung wissen möchtest: Einfach nachfragen!
Ergänzung ..
Das Register 40350 konkurriert mit der Einstellung des minSOC über das Webinterface des GEN24. Das Holding-Register hat nur dann eine Wirkung, wenn es einen größeren Wert enthält, als den über das Webinterface eingegebenen Wert.