Guten Abend,
vielen dank nochmal für die Vorlage. Habe es Blockly nachgebaut. Habe zum Test die Bedingung der Gesamtenergie größer null gesetzt. Der Shelly Dimmer geht auch an, sprich man hört das Relais klicken, aber am Ausagng von 0-bis 10 Volt messe ich nichts mit dem Multimeter. Da müsste ich zumindest in dem Range bis 10 Volt etwas messen können.
Jetzt kenne ich mich mit der PID Regelung nicht so aus, ->Sollwert des PID-Reglers auf 20 W Einspeisung setzen, "Sicherheitsabstand" zum Bezug, habe es aber im Script gesetzt.
Was könnte die Ursache sein, dass ich am Shelly Dimmer Ausgang nichts messen kann?
Cephalopod Du schriebst: "Ich habe die minimale Helligkeit im Dimmer auf 25 eingestellt, da darunter nichts passiert." -> Wo stelle ich das ein? Die PID Regler Einstellungen sind wie bei Dir gesetzt. Aktuell hängt kein Heizstab dran, ist quasi nur Test.
Kann ich im laufenden Blockly Script, z. B. mit Mouse Over, die aktuellen Werte auslesen?
Da Script funktioniert m. E. nach nur bis zur markierten Stelle.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
Hier der JAVA Teil:
on({ id: [].concat(['shelly.0.shellypro3em#841fe891f72c#1.EM0.TotalActivePower']), change: 'ne' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (getState('shelly.0.shellypro3em#841fe891f72c#1.EM0.TotalActivePower').val > 0) {
// Heizstab an
setState('shelly.0.shellypro0110pm#8813bfe0f840#1.Light0.Switch' /* Schalter */, true);
// Sollwert setzen
setState('pid.0.C-Ue.in.set' /* set point */, (-20));
// Leistung regeln
setState('pid.0.C-Ue.in.act' /* actual value */, getState('shelly.0.shellypro3em#841fe891f72c#1.EM0.TotalActivePower').val);
setState('shelly.0.shellypro0110pm#8813bfe0f840#1.Light0.Brightness' /* Helligkeit */, (Math.round(getState('pid.0.C-Ue.out.y').val)));
} else {
// Heizstab aus
setState('shelly.0.shellypro0110pm#8813bfe0f840#1.Light0.Switch' /* Schalter */, false);
setState('pid.0.C-Ue.in.rst' /* reset controller */, true);
}
});