NEWS
[Gelöst] Steuerung/ Anzeige Temperaturwidget
-
Hi,
arbeite gerade an einen Blockly und komme einfach nicht weiter... Glaube das ich jetzt schon alles durchprobiert habe.
Was möchte ich:
Ich verwende ein Temperaturwidget mit dem ich mehrere Thermostate (Homematic Heizungsgruppen) steuere.
Mit dem Schieberegler steuere ich die Thermostate auf einen bestimmten Wert z.B. 18 Grad. Funktioniert schon einmal ohne Probleme.
Was ich dann möchte ist das der Regler bei einer Durchschnittsberechnung der Raumtemperaturen (passiert ja nicht sofort) auf diesen Wert angepasst wird und dies dann auch anzeigt -> Das Widget kann das ja.
Jetzt habe ich aber das Problem nach dem die Berechnung durchgeführt und das Widget mit diesen neuen Wert angesteuert wird, die Thermostate dann auch wieder angepingt werden mit dieser neuen Sollwert.
Ich bin mir sicher das es über die passende Config aus bestätigt und unbestätigt bzw. Aktualisierung und Steuern hinzubekommen sein sollte, aber ich finde die passende Config nicht.
Anbei mal das Script:// MANU Heizungssteuerung Ebene Oben on({id: "0_userdata.0.VIS_Datenpunkte.Heizungssteuerung.MANU_Temperatur_Oben"/*MANU_Temperatur_Oben*/, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; // Wohnzimmer setState("hm-rpc.1.INT0000020.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); // Küche setState("hm-rpc.1.INT0000015.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); // Büro setState("hm-rpc.1.INT0000010.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); // Flur Oben setState("hm-rpc.1.INT0000013.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); // Gäste WC setState("hm-rpc.1.INT0000012.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); // Hauswirtschaftsraum setState("hm-rpc.1.INT0000016.1.MANU_MODE"/*MANU_MODE*/, (obj.state ? obj.state.val : "")); }); // Anzeigeberechung Temperatur MANU Mode on({id: new RegExp('hm-rpc\\.1\\.INT0000020\\.1\\.ACTUAL_TEMPERATURE' + "$|" + 'hm-rpc\\.1\\.INT0000015\\.1\\.ACTUAL_TEMPERATURE' + "$|" + 'hm-rpc\\.1\\.INT0000010\\.1\\.ACTUAL_TEMPERATURE' + "$|" + 'hm-rpc\\.1\\.INT0000013\\.1\\.ACTUAL_TEMPERATURE' + "$|" + 'hm-rpc\\.1\\.INT0000012\\.1\\.ACTUAL_TEMPERATURE' + "$|" + 'hm-rpc\\.1\\.INT0000016\\.1\\.ACTUAL_TEMPERATURE' + "$"), change: "ne", ack: true}, async function (obj) { setState("0_userdata.0.VIS_Datenpunkte.Heizungssteuerung.MANU_Temperatur_Oben"/*MANU_Temperatur_Oben*/, Math.round(([getState("hm-rpc.1.INT0000020.1.ACTUAL_TEMPERATURE").val, getState("hm-rpc.1.INT0000015.1.ACTUAL_TEMPERATURE").val, getState("hm-rpc.1.INT0000010.1.ACTUAL_TEMPERATURE").val, getState("hm-rpc.1.INT0000013.1.ACTUAL_TEMPERATURE").val, getState("hm-rpc.1.INT0000012.1.ACTUAL_TEMPERATURE").val, getState("hm-rpc.1.INT0000016.1.ACTUAL_TEMPERATURE").val].reduce(function(x, y) {return x + y;}) / 6)*10)/10, true); });
Kann mir jemand helfen? Bzw. ist das überhaupt möglich?
-
@draexler sagte: Kann mir jemand helfen?
Ändere den Trigger mit "MANU_Temperatur_Oben" auf "Auslösung durch unbestätigte Änderung" (ack: false).
-
@paul53 Das habe ich schon probiert, aber dann wird die Durchschnittsberechnung nicht mehr durchgeführt und das Widget bleibt auf dem Eingestellen Wert stehen.
-
@draexler sagte: dann wird die Durchschnittsberechnung nicht mehr durchgeführt
Die Änderung beim oberen Trigger hat keinen Einfluss auf die Durchschnittsberechnung im unteren Trigger.
-