@carsten-4
Hallo Carsten,
das ist bei mir jetzt schon eine Weile her, aber war das nicht so, dass du bei dem SolarEdge die dynamische Skalierung bei der Berechnung berücksichtigen musstest?
Ich habe hier aus dem Forum vor langer Zeit mal ein JavaScript kopiert und für mich angepasst, mit dem das gemacht wird. Das Script sieht bei mir so aus:
function convertValue(value, factor) {
if (value === null) return;
if (factor === null) factor = 0;
setState('0_userdata.0.Solar.Wechselrichter.PVLeistungAktuell', value * Math.pow(10, factor), true);
}
createState('0_userdata.0.Solar.Wechselrichter.PVLeistungAktuell', {
name: 'PVLeistungAktuell',
unit: 'W',
min: 0,
type: 'number',
role: 'value.energy'
}, function () {
on('modbus.0.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/, function(obj) {
var timeout = setTimeout(function () {
clearTimeout(timeout);
var factorState = getState('modbus.0.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
convertValue(obj.state.val, factorState ? factorState.val : 0);
}, 100);
});
var factorState = getState('modbus.0.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
var valueState = getState('modbus.0.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/);
convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0);
});
Kann es sein, dass du eigentlich das berücksichtigen musst?
Schau mal in deine Modbus-Register, die du bekommst, ob du da auch den Skalierungsfaktor hast.