NEWS
[gelöst] Virtueller Schalter funktioniert nicht
-
-
Kein Eintrag im Log
-
-
@paul53
nein -
@HeliosFan sagte:
nein
Das ist aber erforderlich, damit getriggert wird und die Bedingung im falls-Block erfüllt ist.
-
@paul53
Also wenn ich den virtuellen Schalter über die Alexa App betätige geht er auf "true" wechselt aber auf rot.
Im Log kommen FehlerDabei ist Zeile 3 der Oberschwachsinn. Das Object ist sehr wohl definiert.
Und wenn ich über Alexa wieder ausschalte ist auch "false" rot.
Mehr passiert einfach nicht.
Keine Sprachausgabe, keine Wertänderung an den Thermostaten. -
@HeliosFan sagte:
geht er auf "true" wechselt aber auf rot.
Der Wechsel auf rot ist normal.
@HeliosFan sagte in Virtueller Schalter funktioniert nicht:
Im Log kommen Fehler
Was steht in Zeile 24 des von Blockly erzeugten Javascript-Codes ?
@HeliosFan sagte in Virtueller Schalter funktioniert nicht:
Mehr passiert einfach nicht.
Bei Fehlern wird die Skriptausführung abgebrochen.
-
@paul53 ```
var zuletzt_eingestelle_Temperatur, timeout; on({id: 'javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen").val == true) { zuletzt_eingestelle_Temperatur = getState("fritzdect.0.Hgroup_3D:48:6F-900.lasttarget").val; setState("alexa2.0.Echo-Devices.G090P3088455013L.Commands.speak"/*speak*/, 'schnelles auheizen gestartet'); setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, 28); console.log('schnellheizen'); (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { if (compareTime('06:00', '12:00', "between", null) || compareTime('17:00', '22:00', "between", null)) { setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, getState("fritzdect.0.Hgroup_3D:48:6F-900.comfytemp").val); } else { setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, zuletzt_eingestelle_Temperatur); } setStateDelayed("alexa2.0.Echo-Devices.G090P3088455013L.Commands.speak"/*speak*/, 'schnelles auheizen beendet', 1000, false); }, 1800000); } }); obj.id;
-
Da lungert irgendwo noch ein Block "Objekt ID" rum, der gelöscht werden muss.
-
@paul53
ok, aber wo ?
ich finde nichts
{
"from": "system.adapter.javascript.0",
"user": "system.user.admin",
"ts": 1573659650120,
"common": {
"name": "Virtueller Schalter Schnelles_Aufheizen",
"type": "boolean",
"role": "switch",
"read": true,
"write": true,
"def": false,
"smartName": {
"de": "schnellheizen",
"smartType": "SWITCH"
}
},
"native": {},
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1638
},
"_id": "javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen",
"type": "state"
} -
@HeliosFan sagte:
ok, aber wo ?
Im Blockly. Vielleicht hat sich der verwaiste Block hinter dem Trigger-Block versteckt ? Dann verschiebe mal den gesamten Triggerblock, damit er zum Vorschein kommt.
-
@paul53
ja das wars.
Ändert aber nicht, das Blockly wird nicht abgearbeitet.
Es wird nur die Bedingung erfüllt, die im Timeout steht:
Und die Heizung auf 23 Grad regelt (Comfort Temp) -
@HeliosFan sagte:
virtuellen Schalter über die Alexa App betätige geht er auf "true" wechselt aber auf rot.
Dann tut sich nichts und im Reiter "Log" erscheint kein 'schnellheizen' ?
-
@paul53 so ist es. Leider
-
Hat vielleicht sonstwer noch eine Idee
-
@HeliosFan
Kleines Testskript:log('Start Testskript'); on({id: 'javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen'}, function(dp) { log('Test virtuellen Schalter: ' + dp.state.val); });
-
@paul53 said in Virtueller Schalter funktioniert nicht:
log('Start Testskript');
javascript.0 2019-11-14 17:37:16.043 info script.js.Skripte.Heizung.Test: registered 1 subscription and 0 schedules
javascript.0 2019-11-14 17:37:16.042 info script.js.Skripte.Heizung.Test: Start Testskript
javascript.0 2019-11-14 17:37:16.007 info Start javascript script.js.Skripte.Heizung.Testmehr passiert nicht
Hab den DP zwischenzeitlich mal gelöscht und neu erstellt
-
@HeliosFan sagte:
mehr passiert nicht
Damit was passiert, muss erst der Wert des Datenpunktes aktualisiert werden (im Reiter "Objekte" abschicken). Wenn Du beides (Reiter "Objekte" und Reiter "Skript") im gleichen Browser-Tab hast, siehst Du Log-Einträge nach Reiter-Wechsel nicht bei den Skripten, sondern nur im Reiter "Log".
-
@paul53
Wenn ich den Wert manuell ändere erscheint nur das im Log, sonst nichts -
@HeliosFan sagte:
erscheint nur das im Log
Mehr wollten wir nicht sehen: Der Trigger funktioniert !
Ist das Blockly-Skript deaktiviert ? Wenn nicht, hätte ich einen weiteren Log-Eintrag 'schnellheizen' um 17:48:42 Uhr erwartet.