NEWS
UNSOLVED Heizung Steuerung Viesmann
-
Hallo ihr Blocklyprofis, ich würde gern wissen ob mein gebasteltes Blocklygebilde taugt, oder was man da noch verbessern sollte.
Und laufen soll es noch, das macht es leider noch nicht.Was ich im Script erkennen kann ist dass die Parameter im Sendto in doppelten Anführungszeichen sind. Wie bekommt man das weg? Da sollten doch keine sein oder?
Vielen Dank
-
Hier das JavaScript dazu
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 : "") == 2) { setPoint = 10; } else if (parseFloat('homee.0.TemperatureAndHumiditySensor-168.Temperature-1002') < 5) { setPoint = 21; } else if (parseFloat('homee.0.TemperatureAndHumiditySensor-168.Temperature-1002') > 5) { setPoint = 23; } sendTo("viessmannapi.0", "action", { "feature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal', "action": 'setTemperature', "payload": {targetTemperature: setPoint} });});
-
@Hamudulu
Die Objekt ID enthält keinen Wert, der sich in eine Zahl wandeln lässt. "Wert von Objekt ID xy" ist der richtige Block. -
@paul53 Danke, hab’s geändert, ich Checks mal.
Wie ist das mit den Anführungszeichen? In deinem JavaScript das du mir das gezeigt hast waren diese Parameter ohne “ -
-
Falles jemand braucht. So funktioniert es. Leider nur als Javascript, aber als Blockly hab ich es nicht hinbekommen.
const idA = 'homee.0.Homee-0.HomeeMode-1'; // Presence function auswertung(val) { var setPoint; if (val == 2) { setPoint = 10; } else if (getState("homee.0.TemperatureAndHumiditySensor-168.Temperature-1002").val < 5) { setPoint = 21; } else if (getState("homee.0.TemperatureAndHumiditySensor-168.Temperature-1002").val > 5) { setPoint = 23; }; sendTo('viessmannapi.0', 'action', { feature: 'heating.circuits.0.operating.programs.normal', action: 'setTemperature', payload: {targetTemperature: setPoint} }); } on(idA, function(dp) { // triggert bei Wertänderung auswertung(dp.state.val); }); auswertung(getState(idA).val); // Skriptstart