NEWS
Werte positiv in negativ und negativ in positiv ändern
-
Hallo,
bin neu in diesem Gebiet und möchte die Werte die vom Solaredge Modbus für den Strom Bezug ändern damit der Soyoscource das auch passend verarbeiten kann.
Jetzt speist er Strom ein wenn der Wert vom Modbus positiv ist, und bei negativen nichts.
Komme nicht mehr weiter.
-
Hallo,
bin neu in diesem Gebiet und möchte die Werte die vom Solaredge Modbus für den Strom Bezug ändern damit der Soyoscource das auch passend verarbeiten kann.
Jetzt speist er Strom ein wenn der Wert vom Modbus positiv ist, und bei negativen nichts.
Komme nicht mehr weiter.
@carsten-4
Einfache Mathematik Wert * -1 kehrt immer das Vorzeichen um. -
@carsten-4
Einfache Mathematik Wert * -1 kehrt immer das Vorzeichen um. -
@carsten-4
habe es jetzt mit Blockly probiert

-
@carsten-4
habe es jetzt mit Blockly probiert

@carsten-4 sagte in Werte positiv in negativ und negativ in positiv ändern:
@carsten-4
habe es jetzt mit Blockly probiert

Sollte funktionieren
-
@carsten-4 bei Node red musst du mal @mickym fragen. Kenn ich nicht. Ansonsten gibt es die Möglichkeit ein Alias anzulegen und dort den Wert konvertieren „val * -1“ oder per Script/Blockly.
-
@carsten-4 bei Node red musst du mal @mickym fragen. Kenn ich nicht. Ansonsten gibt es die Möglichkeit ein Alias anzulegen und dort den Wert konvertieren „val * -1“ oder per Script/Blockly.
-
@tt-tom Du multiplizierst einfach die payload mit -1. ;)
Also einfach einen ChangeNode benutzen und dazwischen klemmen. ;)

-
Gelöscht
-
@carsten-4
Einfache Mathematik Wert * -1 kehrt immer das Vorzeichen um. -
Hallo,
bin neu in diesem Gebiet und möchte die Werte die vom Solaredge Modbus für den Strom Bezug ändern damit der Soyoscource das auch passend verarbeiten kann.
Jetzt speist er Strom ein wenn der Wert vom Modbus positiv ist, und bei negativen nichts.
Komme nicht mehr weiter.
@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. -
@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.@pd_mueller
Ich habe die ganzen scripte aus dem
[Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana
Hier aus dem Forum.