NEWS
[Gelöst] Wie On Funktion zusammen fassen
-
Hallo Zusammen,
habe folgendes Script für Telegram Adapter laufen.
//Telegram schick Push-Meldung wenn Heizung in der Werkstatt auf Eco gesetzt wird on({id: "hm-rpc.0.000A9709A5F7D0.1.SET_POINT_MODE", val: 1, change: 'ne'}, function (obj) { //Text wird an Telegram verschickt sendTo("telegram", "send", { text: 'Heizung in der Werkstatt wurde auf Eco gestellt' }); }); //Telegram schick Push-Meldung wenn Heizung im Büro auf Eco gesetzt wird on({id: "hm-rpc.0.000A9709A5FEB7.1.SET_POINT_MODE", val: 1, change: 'ne'}, function (obj) { //Text wird an Telegram verschickt sendTo("telegram", "send", { text: 'Heizung im Büro wurde auf Eco gestellt' }); }); //Programm Ende
Kann man die 2 On Funktionen für Werkstatt und Büro irgendwie zusammenlegen?
Das es dann so funktioniert:
wenn Werkstatt und Büro val 1 dann Text
-
willst du wirklich UND ? Derzeit arbeitet beides ja unabhängig, also quasi "ODER".
Du kannst deine Trigger zusammenfassen in einem Array.
Wenn du wirklich eine Nachricht nur willst, wenn BEIDES auf 1 geht,dann muss das Skript abgeändert werden
var idWerkstatt ="hm-rpc.0.000A9709A5F7D0.1.SET_POINT_MODE";; var idBuero = "hm-rpc.0.000A9709A5FEB7.1.SET_POINT_MODE"; var arrTrigger = [idWerkstatt, idBuero]; on({id: arrTrigger, val: 1, change: 'ne'}, function (obj) { var name = obj.common.name; // liest den Namen deines Thermostaten aus. //Text wird an Telegram verschickt sendTo("telegram", "send", { text: 'Heizung '+name +' wurde auf Eco gestellt' }); });
-
"und" kann man nicht im "on trigger" verwenden..
Es kann hier nur "oder" verwendet werden.. (wie tempestas gezeigt hat z.B. mit einem Array)..
Du könntest dann aber direkt danach abfragen ob beide Werte von den Datenpunkten im Array die gleichen Werte haben..
z.B. so (Script von tempestas abgewandelt):
var idWerkstatt ="hm-rpc.0.000A9709A5F7D0.1.SET_POINT_MODE"; var idBuero = "hm-rpc.0.000A9709A5FEB7.1.SET_POINT_MODE"; var arrTrigger = [idWerkstatt, idBuero]; on({id: arrTrigger, val: 1, change: 'ne'}, function (obj) { if(getState(arrTrigger[0]).val == getState(arrTrigger[1]).val) { sendTo("telegram", "send", { text: 'Beide Heizungen stehen jetzt auf Eco!' }); } });
Gruß
-
Funktioniert, Vielen Dank.