@williklein
So sieht der Code aus. Kann man den eigentlich so schreiben ? Da sind für mich die Schleifen schon sehr gut zu erkennen, wenn man das so schreiben kann.
var Wertppv, Shelly1, Shelly2, Wertppv_zaehler;
Wertppv = getState("growatt.0.1030054.devices.DFK0BKD00C.historyLast.ppv").val;
Shelly1 = false;
Shelly2 = false;
on({id: [].concat(['growatt.0.1030054.devices.DFK0BKD00C.historyLast.ppv']), change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
Wertppv_zaehler = parseFloat(Wertppv) + getState("shelly.0.shellyplus1#7c87ce725954#1.gen").val;
if (Wertppv_zaehler > parseFloat(3000) + getState("ID auswählen").val) {
Shelly1 = true;
setState("shelly.0.shellyplus1#7c87ce725954#1.Relay0.Switch"/Switch/, Shelly1);
} else {
Shelly1 = false;
setState("shelly.0.shellyplus1#7c87ce63d85c#1.Relay0.Switch"/Switch/, Shelly1);
}
if (Wertppv_zaehler > parseFloat(6200) + getState("ID auswählen").val) {
Shelly2 = true;
setState("shelly.0.shellyplus1#441793c4001c#1.Relay0.Switch"/Switch/, Shelly2);
} else if (false) {
Shelly2 = false;
setState("shelly.0.shellyplus1#7c87ce63d85c#1.Relay0.Switch"/Switch/, Shelly2);
}
});