NEWS
Hilfe bei Script für Heizungsteuerung
-
const idA = '...'; // ID von Datenpunkt A function auswertung(val) { var setPoint = 20; if(val == 1) setPoint = 10; sendTo('viessmannapi.0', 'action', { feature: 'heating.circuits.0.operating.programs.comfort', action: 'setTemperature', payload: {targetTemperature: setPoint} }); } on(idA, function(dp) { // triggert bei Wertänderung auswertung(dp.state.val); }); auswertung(getState(idA).val); // Skriptstart
-
@paul53 Vielen Dank, ich probier das mal. Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....
War das eine essentielle Funktion? -
Es funktioniert!!! Tschüss Tado
Obergut, vielen Dank für die Hilfe. -
@Hamudulu sagte:
Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....
Dann entferne in der Konfiguration der Javascript-Instanz den Haken bei "NIcht alle Zustände beim Start abonnieren".
-
@paul53 Hatte ich schon. Daran liegts nicht.
-
Hallo nochmal
ich bin gerade dabei meine Heizung etwas zu versmarten...
An und Abwesenheit klappt, jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...
Scriptversuch, abgeleitet von dem Script oben:const idA = 'homee.0.TemperatureAndHumiditySensor-168.Temperature-1002'; // Außentemperatur function auswertung(val) { var setPoint = 0; if(val <= 12 && val >= 5) setPoint = 1; sendTo('viessmannapi.0', 'action', { feature: 'viessmannapi.0.heating.circuits.0.heating.curve.shift', action: 'setCurve', payload: {shift: setPoint} }); } on(idA, function(dp) { // triggert bei Wertänderung auswertung(dp.state.val); }); auswertung(getState(idA).val); // Skriptstart
Klappt das? Bin mir nicht sicher mit dieser getState Auswertung
Vielen Dank schon mal.
Grüße -
@Hamudulu sagte:
jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...
Das ist häufig der Fall, da die Heizungsbauer die Heizkurve falsch einstellen: Den Fusspunkt zu niedrig (20 °C) und dafür die Steilheit etwas zu groß. Dabei wird nicht beachtet, dass im Bad eine Temperatur von 24 °C vorzusehen ist, was aber in der Übergangszeit bei 20 °C Fusspunkt nicht möglich ist. Erhöhe den Fusspunkt auf 23 ... 24 °C, dann muss nicht per ioBroker eingegriffen werden.
-
@Hamudulu sagte:
Bin mir nicht sicher mit dieser getState Auswertung
Wenn in der Konfiguration kein Haken bei "NIcht alle Zustände beim Start abonnieren" ist, funktioniert getState().
-
@paul53 Was meinst du mit Fusspunkt? Die Raumsolltemperatur?
-
@Hamudulu sagte:
Fusspunkt? Die Raumsolltemperatur?
Ja. Der Raumsollwert entspricht dem Fusspunkt. Der Fusspunkt der Heizkurve beschreibt den Punkt, an dem der energielose Zustand erreicht wird: Raumsollwert = Vorlaufsollwert = Aussentemperatur = Rücklauftemperatur.
-
@Hamudulu bitte code und logs in Code tags (6) Packen. Es ist super schlecht zu lesen und unübersichtlich vor allem auf Mobilen Geräten.
Bitte hol das nach, dafür gibt es die Bearbeiten funktion rechts unten am Beitrag im 3 Punkte Menü.
-
@Jey-Cee Sorry, bin neu hier, hab’s nachgeholt und tatsächlich ist es so besser 🥳
-
@Hamudulu danke.
-
@Hamudulu jetzt hab ich mal zur Übung das obere Script versucht in Blockly nachzustellen.
var setpoint; on({id: 'homee.0.Homee-0.HomeeMode-1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") == 0) { setpoint = 23; sendTo("viessmannapi.0", "action", { "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal' }); } else { setpoint = 10; sendTo("viessmannapi.0", "action", { "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal' }); } });
Leider funktioniert das nicht ...was fehlt da oder wie definier ich da die Action die stattfinden soll.
-
-
@paul53 Hallo, nein läuft leider nicht. Der Unterschied sind die " die sind im Blockly " und im anderen Script ' und da läuft es....kann das sein?