@eisbaeeer
vielen Dank für dein Script,
ich habe es für mich etwas umgeschrieben, aber es will nicht so richtig funktionieren. Apropos, ich habe von Programmieren keine Ahnung. Was ich versucht habe Modus in manuell erzeugtes Objekt zu speichern:
var Ladeleistung;
// Diese Funktion berechnet und speichert die Ladeleistung
async function etwas_tun(Ladeleistung) {
// Array mit den Modbus-Objekten für Spannung und Strom
var idObjektePower = [
"modbus.1.inputRegisters.21301_Charging_Voltage_R",
"modbus.1.inputRegisters.21303_Charging_Voltage_S",
"modbus.1.inputRegisters.21305_Charging_Voltage_T",
"modbus.1.inputRegisters.21302_Charging_Current_R",
"modbus.1.inputRegisters.21304_Charging_Current_S",
"modbus.1.inputRegisters.21306_Charging_Current_T"
];
// Event-Listener für Änderungen an den Modbus-Objekten
on(idObjektePower, function (obj) {
// Abrufen der aktuellen Spannungs- und Stromwerte
var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
// Berechnung der Ladeleistung
var ladeleistung = (((voltageR * 0.1) * (currentR * 0.1)) +
((voltageS * 0.1) * (currentS * 0.1)) +
((voltageT * 0.1) * (currentT * 0.1)));
// Speichern der Ladeleistung
try {
setState("0_userdata.0.Wallbox.Ladeleistung_konvertiert", {
val: ladeleistung,
ack: true
});
console.log('Ladeleistung erfolgreich gespeichert:', ladeleistung);
} catch (error) {
console.error('Fehler beim Speichern der Ladeleistung:', error);
}
});
}
Objekt:
{
"common": {
"name": "Ladeleistung_konvertiert",
"desc": "Manuell erzeugt",
"role": "state",
"type": "number",
"read": true,
"write": true,
"def": 0
},
"type": "state",
"native": {},
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1741793781930,
"_id": "0_userdata.0.Wallbox.Ladeleistung_konvertiert",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}
Da es nicht funktioniert gibt es einen Denkfehler, hast jemand einen Tipp, wo ich den finden kann?
Vielen Dank im Voraus.