====== ioB Scripte ======
===== Automatiken =====
/*******************************************************
* LICHT
*******************************************************/
// RGB Lampe Wohnzimmer Nachts automatisch ausschalten WZ > 23:00 Uhr WZ_Sofalicht_Aus
if (getState("Global.0.Automatik.WZ_Sofalicht_Aus").val == true) {
if (hour == 23 && min == 0) { setState("Global.0.Licht.State.WZ_Sofa", 0); Logger("RGB Lampe Wohnzimmer aus"); }
}
// Sideboard & Fenster automatisch aus WZ > "" WZ_Sideboard_Fenster_Aus
if (getState("Global.0.Automatik.WZ_Sideboard_Fenster_Aus").val == true) {
if (hour == 23 && min == 0) { setState("hm-rpc.0.LEQ0900960.3.STATE", false); setState("hm-rpc.0.LEQ0900960.4.STATE", false); Logger("Sideboard & Fenster aus"); }
}
// Tannenbaum Automatik (Licht) WZ Abends an ab 16:00 - 22:00 WZ_Tannenbaum_Auto
if (getState("Global.0.Automatik.WZ_Tannenbaum_Auto").val == true) {
if (hour == 16 && min == 0) { setState("sonoff.0.IOT-SD11-WZ-Weihnachtsbaum.POWER", true); Logger("Tannenbaum an"); }
if (hour == 22 && min == 0) { setState("sonoff.0.IOT-SD11-WZ-Weihnachtsbaum.POWER", false); Logger("Tannenbaum aus"); }
}
// Küche Bewegungsmelder An / Aus ? KU KU_Bewegungsmelder_AnAus
// siehe Küche -> LichtSpüle
// Küche Deko an / aus KU Wie Tannenbaum KU_Deko_Auto
if (getState("Global.0.Automatik.KU_Deko_Auto").val == true) {
if (hour == 16 && min == 0) { setState("hm-rpc.0.NEQ0951347.2.STATE", true); Logger("Küche Deko an"); }
if (hour == 22 && min == 0) { setState("hm-rpc.0.NEQ0951347.2.STATE", false); Logger("Küche Deko aus"); }
}
// Beleuchtung Bild Automatik FL ab SonUn bis 22:30 FL_Fotowand_Auto
if (getState("Global.0.Automatik.FL_Fotowand_Auto").val == true) {
if (act == typeSunsetStart) { setState("sonoff.0.IOT-SD09-FL-LichtBild.POWER", true ); Logger("Beleuchtung Bild an"); } // AN
if (act == typeSchedule && hour == 22 && min == 30) { setState("sonoff.0.IOT-SD09-FL-LichtBild.POWER", false); Logger("Beleuchtung Bild aus"); } // AUS
}
// Beleuchtung Handlauf Automatik FL "" FL_TreppeBeleuchtung_Auto
if (getState("Global.0.Automatik.FL_TreppeBeleuchtung_Auto").val == true) {
if (act == typeSunsetStart) { setState("sonoff.0.IOT-SD10-FL-LichtTreppe.POWER", true ); Logger("Beleuchtung Handlauf an"); } // AN
if (act == typeSchedule && hour == 22 && min == 30) { setState("sonoff.0.IOT-SD10-FL-LichtTreppe.POWER", false); Logger("Beleuchtung Handlauf aus"); } // AUS
}
// Stern oben an / aus FL "" FL_SternOben_Auto
if (getState("Global.0.Automatik.FL_SternOben_Auto").val == true) {
if (act == typeSunsetStart) { setState("sonoff.0.IOT-SD08-FL-FensterOben.POWER", true ); Logger("Beleuchtung Handlauf an"); } // AN
if (act == typeSchedule && hour == 22 && min == 30) { setState("sonoff.0.IOT-SD08-FL-FensterOben.POWER", false); Logger("Beleuchtung Handlauf aus"); } // AUS
}
// Lennard Zimmerlicht morgens an und gegen 8 aus LN 6 - 7:30 Uhr , 22 Uhr aus LN_Zimmerlicht_Auto
if (getState("Global.0.Automatik.LN_Zimmerlicht_Auto").val == true) {
// 6 Uhr ein Mo-Th, 6:40 Fr -> Montag = 1, Freitag = 5 !
if ((hour == 6 && min == 0 && [1, 2, 3, 4].includes(day)) ||
(hour == 6 && min == 40 && day == 5)) { setState("hm-rpc.0.MEQ0987276.1.STATE", true); Logger("Lennard Zimmerlicht Ein"); }
// 7:30 aus
if (hour == 7 && min == 30) { setState("hm-rpc.0.MEQ0987276.1.STATE", false); Logger("Lennard Zimmerlicht Aus"); }
// Licht Abends ausschalten wenn noch an
if (hour == 22 && min == 0) { setState("hm-rpc.0.MEQ0987276.1.STATE", false); Logger("Lennard Zimmerlicht Abends Aus"); }
}
// Haustürlicht Automatik OD SonUn bis 23:00 + Bewegung wenn da OD_Haustuer_Auto
// 6 Uhr -> Sonnenuntergang
if (getState("Global.0.Automatik.OD_Haustuer_Auto").val == true) {
if (hour == 6 && min == 0) { setState("hm-rpc.0.NEQ1504413.1.STATE", true); Logger("Haustürlicht An"); } // /*OD_SW_Haustue_Licht:1.STATE*/
if (act == typeSunriseEndPlus30) { setState("hm-rpc.0.NEQ1504413.1.STATE", false); Logger("Haustürlicht Aus"); }
if (act == typeSunsetStartMinus30) { setState("hm-rpc.0.NEQ1504413.1.STATE", true); Logger("Haustürlicht An"); }
if (hour == 23 && min == 0) { setState("hm-rpc.0.NEQ1504413.1.STATE", false); Logger("Haustürlicht Aus"); }
// TBD : Hier muss sauber der Sonnenaufgang genutzt werden ...
if (hour == 8 && min == 0) { setState("hm-rpc.0.NEQ1504413.1.STATE", false); Logger("Haustürlicht Aus Workaround für Sommer"); }
}
// Garagenlicht mit Haustür an OD "" OD_HaustuerMitGarage_Auto
// TBD
/*******************************************************
* HEIZUNG
*******************************************************/
// Alle Heizungen im Haus auf Nachtbetrieb absenken ALL -> "Heizung aus" Script um 21:00 ALL_HZ_Nachtbetrieb
// Heizung Morgens hochfahren ? ALL -> um 6 Warm KU KU_HZ_Morgens
// Badezimmer Heizung auf 21°C von 5:30 bis 9:30 BD siehe Text BD_HZ_Morgens
// Wohnzimmer Temp halten WZ WZ_HZ_Tagbetrieb
// Heizung Lennards Zimmer kontrollieren LN mal sehen LN_HZ_Überwachen
/*******************************************************
* ROLLOS
*******************************************************/
// Morgens alle Rollos hoch ALL um 8 Uhr ALL_RL_Öffnen
if (getState("Global.0.Automatik.ALL_RL_Öffnen").val == true) {
if (act == typeSchedule && hour == 8 && min == 0) { setState("Global.0.Rollos.Control", "allup"); Logger("Alle Rollos hochfahren"); }
}
// Rollos automatisch runter fahren (auf Terassentür achten) ALL um SonUn Ende + 30Min ALL_RL_Schließen
// Überwachung Terassentür in Rollos -> Steuerung
if (getState("Global.0.Automatik.ALL_RL_Schließen").val == true) {
if (act == typeSunsetStartPlus30) { setState("Global.0.Rollos.Control", "alldown"); Logger("Alle Rollos schließen"); }
}
/*******************************************************
* STECKDOSEN
*******************************************************/
// Hifi abschalten WZ WZ Nachts um 0:00 WZ_Hifi_Aus
// Steckdose AZ AZ "" AZ_Steckdose_Auto
// TV abschalten GZ GZ "" GZ_TV_Aus
// PS4 abschalten GZ Ab 21:30 an Werktagen GZ_PS_Aus
// Waschmaschine aus wenn fertig KL Abschalten der SD bei Fertigmeldung KL_Waschmaschine_Aus
// -> Wird in Weisse Ware -> Waschmaschine behandelt !
// -> Weil dort wird direkt auf Waschm. Fertig reagiert ...
// Trockner aus wenn fertig KL "" KL_Trockner_Aus
// WZ Hifi Aus um 1 Uhr
if (getState("Global.0.Automatik.WZ_Hifi_Aus").val == true) {
if (act == typeSchedule && hour == 1 && min == 0) { setState("hm-rpc.0.MEQ1810633.3.STATE", false); Logger("WZ Hifi aus"); } // AUS
}
// GZ TV Aus um 1 Uhr
if (getState("Global.0.Automatik.GZ_TV_Aus").val == true) {
if (act == typeSchedule && hour == 1 && min == 0) { setState("sonoff.0.IOT-SD05-GZ-TvOben.POWER", false); Logger("GZ TV aus"); } // AUS
}
/*******************************************************
* DRAUSSEN
*******************************************************/
// Markiese um 0:00 automatisch einziehen OD 0:00 Uhr OD_Markiese_Rein
// Markiese Sommerbetrieb Ausfahren möglich OD on / off OD_Markiese_Sommerbetrieb
// Schuppen an / aus -> Mäher aus OD Ab 22 Uhr bis 4 Uhr OD_Schuppen_Auto
// Garage automatisch nach x Min schließen OD nach 5 Minuten
===== Bewegung flur =====
/*******************************************************
* Licht bei Bewegung im Flur einschalten
*
* Geräte
* hm-rpc.0.OEQ0536226.3.MOTION FL_SB_Motion_Oben_Motion Bewegungsmelder Oben
* hm-rpc.0.OEQ0538240.3.MOTION FL_SB_Motion_Unten_Motion Bewegungsmelder Unten
* hm-rpc.0.OEQ0213729.1.STATE FL_AS_LichtOben:1 Licht Oben (einfach)
* hm-rpc.0.OEQ0213729.2.STATE FL_AS_LichtOben:2 Licht Oben (doppelt)
* hm-rpc.0.OEQ0378804.1.STATE FL_AS_LichtUnten:1 Licht Unten kmplett
*******************************************************/
//console.log("sunriseEnd" + getAstroDate("sunriseEnd", undefined, +10)); // BSP 07:13
//console.log("sunriseEnd" + getAstroDate("sunriseEnd", undefined, 0)); // BSP 07:03
//console.log("sunsetStart" + getAstroDate("sunsetStart", undefined, -10)); // BSP 19:30
//console.log("sunsetStart" + getAstroDate("sunsetStart", undefined, 0)); // BSP 19:40
// Bewegung Flur Unten
// - unten das Licht einschalten
// - oben das doppelte Licht einschalten
// - nach x Sekunden alles wieder ausschalten
on({id: 'hm-rpc.0.OEQ0538240.3.MOTION', val: true}, function (obj) {
// Licht NICHT einschalten zwischen Sonnenaufgang (+30 Min) und Sonnenuntergang (-30 Min)
if (compareTime(getAstroDate("sunriseEnd", undefined, +30), getAstroDate("sunsetStart", undefined, -30), "not between", null)) {
// Ist das Licht schon an ?
if (getState("hm-rpc.0.OEQ0378804.1.STATE").val == false) {
console.log('Flur unten : Licht ein');
setState("hm-rpc.0.OEQ0378804.1.STATE", true); // Licht Unten ein
setStateDelayed("hm-rpc.0.OEQ0378804.1.STATE", false, 180000, false); // Licht Unten aus nach 180 Sekunden
setState("hm-rpc.0.OEQ0213729.2.STATE", true); // 2er Licht Oben ein
setStateDelayed("hm-rpc.0.OEQ0213729.2.STATE", false, 180000, false); // 2er Licht Oben aus nach 180 Sekunden
}
}
// else {
// console.log("Licht bleibt am Tag aus ...");
// }
setState("hm-rpc.0.OEQ0538240.3.MOTION", false); // Motion wieder zurück setzen - wird nicht immer resettet
});
// Bewegung Flur Oben
// - oben das einfache Licht einschalten
// - nach x Sekunden alles wieder ausschalten
on({id: 'hm-rpc.0.OEQ0536226.3.MOTION', val: true}, function (obj) {
// Licht NICHT einschalten zwischen Sonnenaufgang (+30 Min) und Sonnenuntergang (-30 Min)
if (compareTime(getAstroDate("sunriseEnd", undefined, +30), getAstroDate("sunsetStart", undefined, -30), "not between", null)) {
// Ist das Licht schon an ?
if (getState("hm-rpc.0.OEQ0213729.1.STATE").val == false) {
console.log('Flur oben : Licht ein');
setState("hm-rpc.0.OEQ0213729.1.STATE", true); // 1er Licht Oben ein
setStateDelayed("hm-rpc.0.OEQ0213729.1.STATE", false, 180000, false); // 1er Licht Oben aus nach 180 Sekunden
}
}
setState("hm-rpc.0.OEQ0536226.3.MOTION", false); // Motion wieder zurück setzen - wird nicht immer resettet
});
===== Schalter =====
/*******************************************************
* Schalter im Flur
*
* Geräte
* hm-rpc.0.OEQ0536226.3.MOTION FL_SB_Motion_Oben_Motion Bewegungsmelder Oben
* hm-rpc.0.OEQ0538240.3.MOTION FL_SB_Motion_Unten_Motion Bewegungsmelder Unten
* hm-rpc.0.OEQ0538240.1.PRESS_SHORT Bewegungsmelder Taste Hoch
* hm-rpc.0.OEQ0538240.2.PRESS_SHORT Bewegungsmelder Taste Runter
* hm-rpc.0.OEQ0213729.1.STATE FL_AS_LichtOben:1 Licht Oben (einfach)
* hm-rpc.0.OEQ0213729.2.STATE FL_AS_LichtOben:2 Licht Oben (doppelt)
* hm-rpc.0.OEQ0378804.1.STATE FL_AS_LichtUnten:1 Licht Unten kmplett
*******************************************************/
// Bewegungsmelder Flur unten Taster hoch
on({id: 'hm-rpc.0.OEQ0538240.1.PRESS_SHORT', change: "any"}, function (obj) {
console.log('Licht unten eingeschaltet (10 Minuten)');
setState("hm-rpc.0.OEQ0378804.1.STATE", true); // Licht Unten ein
setStateDelayed("hm-rpc.0.OEQ0378804.1.STATE", false, 600000, false); // Licht Unten aus nach 10 Minuten
});
// Bewegungsmelder Flur unten Taster runter
on({id: 'hm-rpc.0.OEQ0538240.2.PRESS_SHORT', change: "any"}, function (obj) {
setState("hm-rpc.0.OEQ0378804.1.STATE", false); // Licht unten aus
});
// 6fach Taster (1) : Garage öffnen
on({id: 'hm-rpc.0.NEQ1068837.1.PRESS_SHORT', change: "any"}, function (obj) {
setState("Global.0.Garage.Open", true);
});
// 6fach Taster (2) : Garage schließen
on({id: 'hm-rpc.0.NEQ1068837.2.PRESS_SHORT', change: "any"}, function (obj) {
setState("Global.0.Garage.Close", true);
});
// 6fach Taster (3) : Licht Haustür
on({id: 'hm-rpc.0.NEQ1068837.3.PRESS_SHORT', change: "any"}, function (obj) {
setState("hm-rpc.0.NEQ1504413.1.STATE", !getState("hm-rpc.0.NEQ1504413.1.STATE").val); /*OD_SW_Haustue_Licht:1.STATE*/
});
// 6fach Taster (4) : Licht Garten
on({id: 'hm-rpc.0.NEQ1068837.4.PRESS_SHORT', change: "any"}, function (obj) {
setState("hm-rpc.0.MEQ1809943.1.STATE", !getState("hm-rpc.0.MEQ1809943.1.STATE").val); /*OD_AS_4Fach_Licht:1.STATE*/
});
// 6fach Taster (5) : Licht 2er Garage
on({id: 'hm-rpc.0.NEQ1068837.5.PRESS_SHORT', change: "any"}, function (obj) {
setState("hm-rpc.0.NEQ1222700.1.STATE", !getState("hm-rpc.0.NEQ1222700.1.STATE").val); /*GR_AS_LichtAussen_2erLicht:1.STATE*/
});
// 6fach Taster (6) : Licht 4er Garage
on({id: 'hm-rpc.0.NEQ1068837.6.PRESS_SHORT', change: "any"}, function (obj) {
setState("hm-rpc.0.NEQ1222700.2.STATE", !getState("hm-rpc.0.NEQ1222700.2.STATE").val); /*GR_AS_LichtAussen_4erLicht:2.STATE*/
});
===== Garage =====
/*******************************************************
* Beleutung Garage wenn das Tor geöffnet / geschlossen wird
* > Tagsüber Licht aus lassen
* > Haustür mit an wenn Nachts und Haustür aus
* > Licht im Flur unten auch mit einschalten ??
*
* Geräte
* hm-rpc.0.OEQ0430315.1.STATE GR_ST_Garage Garagen Kontakt
* hm-rpc.0.NEQ1222700.1.STATE GR_AS_LichtAussen_2erLicht 2er Licht Garage
* hm-rpc.0.NEQ1222700.2.STATE GR_AS_LichtAussen_4erLicht 4er Licht Garage
* hm-rpc.0.OEQ0378804.1.STATE FL_AS_LichtUnten:1.STATE Flur Licht unten
*******************************************************/
on({id: 'hm-rpc.0.OEQ0430315.1.STATE', change: "ne"}, function (obj) {
if (getState("hm-rpc.0.OEQ0430315.1.STATE").val == true) {
// Licht NICHT einschalten zwischen Sonnenaufgang (+30 Min) und Sonnenuntergang (-30 Min)
if (compareTime(getAstroDate("sunriseEnd", undefined, +30), getAstroDate("sunsetStart", undefined, -30), "not between", null)) {
// Licht bei Garage auf einschalten
console.log('Tor Offen -> Licht an');
setState("hm-rpc.0.NEQ1222700.1.STATE", true);
setState("hm-rpc.0.NEQ1222700.2.STATE", true);
} else {
console.log("Licht bleibt am Tag aus ...");
}
} else {
// Licht bei Garage zu verzögert ausschalten
console.log('Tor Schließen -> Licht aus');
setStateDelayed("hm-rpc.0.NEQ1222700.1.STATE", false, 300000, false); // 5 Min
setStateDelayed("hm-rpc.0.NEQ1222700.2.STATE", false, 240000, false); // 4 Min
}
});
===== Briefkasten =====
on({id: 'zigbee.0.00158d000572c991.contact', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Wenn der Briefkasten zu ist, dann ist der Schalter auf "True"
if ((obj.state ? obj.state.val : "") == false) {
console.log('Briefkasten : geöffnet');
setState("Global.0.Post.Eingeworfen"/*Eingeworfen*/, true, true);
setState("alexa2.0.Echo-Devices.G090XG08945606VC.Commands.speak"/*speak*/, 'Es liegt Post im Briefkasten', true);
sendTo("telegram.0", "send", {
text: 'Posteinwurf',
disable_notification: true
});
console.log("telegram: " + 'Posteinwurf');
}
});
// Nachts den Befüllstatus resetten
schedule('{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}', function () {
console.log('Flag Reset');
setState("Global.0.Post.Eingeworfen"/*Eingeworfen*/, false, true);
});
===== Licht nach Sonne =====
// Licht um 6 Uhr ein
schedule("0 6 * * *", function () {
if (compareTime('06:00', null, ">", getAstroDate("sunrise", undefined, 0))) {
console.log('Haustür : Schalte das Licht ein (06:00)');
setState("hm-rpc.0.NEQ1504413.1.STATE"/*OD_SW_Haustue_Licht:1.STATE*/, true);
} else {
console.log('Haustür : Licht bleibt aus (Sonnenaufgang < 06:00)');
}
});
// Licht um X Uhr aus nach Sonnenstand
schedule({astro: "sunriseEnd", shift: 30}, function () {
console.log((['Haustür : Schalte das Licht aus um : ',formatDate(new Date(), "hh:mm:ss"),' (Sunrise End : ',getAstroDate("sunriseEnd", undefined, 0),')'].join('')));
setState("hm-rpc.0.NEQ1504413.1.STATE"/*OD_SW_Haustue_Licht:1.STATE*/, false);
});
// Licht Abends um X Uhr an nach Sonnenstand
schedule({astro: "sunsetStart", shift: -20}, function () {
if (compareTime('23:00', null, "<", getAstroDate("sunsetStart", undefined, -20))) {
console.log((['Haustür : Schalte das Licht ein um : ',formatDate(new Date(), "hh:mm:ss"),' (Sunset Start : ',getAstroDate("sunsetStart", undefined, 0),')'].join('')));
setState("hm-rpc.0.NEQ1504413.1.STATE"/*OD_SW_Haustue_Licht:1.STATE*/, true);
} else {
console.log('Haustür : Licht bleibt aus (Sonnenuntergang > 23:00)');
}
});
// Licht um 23 Uhr aus
schedule("0 23 * * *", function () {
console.log('Haustür : Schalte das Licht aus (22:00)');
setState("hm-rpc.0.NEQ1504413.1.STATE"/*OD_SW_Haustue_Licht:1.STATE*/, false);
});
schedule({astro: "sunrise", shift: 0}, function () {
console.debug(('Astro : Sunrise : ' + String(formatDate(new Date(), "hh:mm:ss"))));
});
schedule({astro: "sunsetStart", shift: 0}, function () {
console.debug(('Astro : Sunset Start : ' + String(formatDate(new Date(), "hh:mm:ss"))));
});
schedule({astro: "sunriseEnd", shift: 0}, function () {
console.debug(('Astro : Sunrise End : ' + String(formatDate(new Date(), "hh:mm:ss"))));
});
schedule({astro: "sunset", shift: 0}, function () {
console.debug(('Astro : Sunset : ' + String(formatDate(new Date(), "hh:mm:ss"))));
});
===== Licht bei Bewegung Garage =====
// Licht Haustür bei Bewegung an und wieder aus machen
on({id: 'hm-rpc.0.NEQ0119442.1.MOTION', val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
console.log('Bewegung Haustür erkannt');
if (getState("hm-rpc.0.NEQ1222700.1.STATE").val == false) {
console.log('Schalte das Licht Garage EIN für 4 Minuten');
// Motion wieder zurück setzen - wird nicht immer resettet
setState("hm-rpc.0.NEQ0119442.1.MOTION"/*OD_SB_Haustuer:1.MOTION*/, false);
setState("hm-rpc.0.NEQ1222700.1.STATE"/*GR_AS_LichtAussen_2erLicht:1.STATE*/, true);
setStateDelayed("hm-rpc.0.NEQ1222700.1.STATE"/*GR_AS_LichtAussen_2erLicht:1.STATE*/, false, 420000, false);
setState("hm-rpc.0.NEQ1222700.2.STATE"/*GR_AS_LichtAussen_4erLicht:2.STATE*/, true);
setStateDelayed("hm-rpc.0.NEQ1222700.2.STATE"/*GR_AS_LichtAussen_4erLicht:2.STATE*/, false, 360000, false);
} else {
console.log('Licht draussen ist schon eingeschaltet');
}
});
===== Heizung =====
// Heizung alle ausschalten / auf Default setzen
on({id: "Global.0.Heizung.AlleAus"/*AlleAus*/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Heizung.AlleAus").val == true) {
console.log(('Heizung : Schalte alle Heizungen auf Default / Aus'));
setState("Global.0.Heizung.AlleAus"/*AlleAus*/, false);
// Erdgeschoss
setState("hm-rpc.0.LEQ0423081.4.SET_TEMPERATURE"/*AZ_HZ:4.SET_TEMPERATURE*/, 16);
setState("hm-rpc.0.MEQ0248967.4.SET_TEMPERATURE"/*WZ_HZ_Gross:4.SET_TEMPERATURE*/, 18);
setState("hm-rpc.0.MEQ0249461.4.SET_TEMPERATURE"/*WZ_HZ_Sofa:4.SET_TEMPERATURE*/, 19);
setState("hm-rpc.0.MEQ0249467.4.SET_TEMPERATURE"/*WZ_HZ_Klein:4.SET_TEMPERATURE*/, 18.5);
setState("hm-rpc.0.MEQ0249356.4.SET_TEMPERATURE"/*KU_HZ:4.SET_TEMPERATURE*/, 19);
setState("hm-rpc.0.MEQ1552083.4.SET_TEMPERATURE"/*WC_HZ:4.SET_TEMPERATURE*/, 14);
// Keller
setState("hm-rpc.0.MEQ1554281.4.SET_TEMPERATURE"/*KL_HZ_Hobby:4.SET_TEMPERATURE*/, 8);
setState("hm-rpc.0.MEQ1883925.4.SET_TEMPERATURE"/*KL_HZ_Bastel:4.SET_TEMPERATURE*/, 0);
setState("hm-rpc.0.MEQ1885072.4.SET_TEMPERATURE"/*KL_HZ_Sauna:4.SET_TEMPERATURE*/, 0);
// Erste Etage
setState("hm-rpc.0.MEQ1554264.4.SET_TEMPERATURE"/*LN_HZ:4.SET_TEMPERATURE*/, 17);
setState("hm-rpc.0.MEQ0249466.4.SET_TEMPERATURE"/*BD_HZ:4.SET_TEMPERATURE*/, 18);
setState("hm-rpc.0.MEQ1550232.4.SET_TEMPERATURE"/*SZ_HZ:4.SET_TEMPERATURE*/, 15);
setState("hm-rpc.0.MEQ1550206.4.SET_TEMPERATURE"/*GZ_HZ:4.SET_TEMPERATURE*/, 15);
}
});
// Heizung um 5:30 Uhr einschalten wenn Automatik eingeschaltet
schedule("30 5 * * *", function () {
if (getState("Global.0.Heizung.BD_Automatik").val == true) {
console.log('Bad : Schalte Heizung ein (06:00)');
setState("hm-rpc.0.MEQ0249466.4.SET_TEMPERATURE"/*BD_HZ:4.SET_TEMPERATURE*/, 21);
}
});
// Heizung um 9:30 Uhr ausschalten
schedule("30 9 * * *", function () {
console.log('Bad : Schalte Heizung aus (09:30)');
setState("hm-rpc.0.MEQ0249466.4.SET_TEMPERATURE"/*BD_HZ:4.SET_TEMPERATURE*/, 18);
});
// Heizungen im WZ gemeinsam steuern
on({id: "Global.0.Heizung.WZ_SetTempAlle"/*WZ_SetTempAlle*/, change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
console.log((['WZ Heizung : Setzte Temperatur auf ',getState("Global.0.Heizung.WZ_SetTempAlle").val,' °C'].join('')));
setState("hm-rpc.0.MEQ0248967.4.SET_TEMPERATURE"/*WZ_HZ_Gross:4.SET_TEMPERATURE*/, getState("Global.0.Heizung.WZ_SetTempAlle").val);
setState("hm-rpc.0.MEQ0249461.4.SET_TEMPERATURE"/*WZ_HZ_Sofa:4.SET_TEMPERATURE*/, (getState("Global.0.Heizung.WZ_SetTempAlle").val + 1));
setState("hm-rpc.0.MEQ0249467.4.SET_TEMPERATURE"/*WZ_HZ_Klein:4.SET_TEMPERATURE*/, (getState("Global.0.Heizung.WZ_SetTempAlle").val + 0.5));
});
===== Licht Bewegung Küche =====
/*******************************************************
* Licht bei Bewegung in der Küche einschalten
*
* Geräte
* zigbee.0.14b457fffe7c749a.occupancy KU_Bewegung Bewegungssensor
* hm-rpc.0.NEQ0951347.1.STATE KU_AS_Regal_Deko:1.STATE Schaltkontakt
*******************************************************/
var Lampe_Aus;
// Bewegungsflag setzen
on({id: 'zigbee.0.14b457fffe7c749a.occupancy', change: "ne"}, function (obj) {
if (obj.state.val == true) {
// Nur ausführen wenn dunkel
if (compareTime(getAstroDate("sunriseEnd", undefined, 10), getAstroDate("sunsetStart", undefined, -10), "not between", null)) {
// Soll der Bewegungsmelder genutzt werden ?
if (getState("Global.0.Automatik.KU_Bewegungsmelder_AnAus").val == true) {
setState("Global.0.Räume.Küche.KU_BewegungErkannt", true);
if (Lampe_Aus) {clearTimeout(Lampe_Aus); Lampe_Aus = null;};
Lampe_Aus = setTimeout(function () {
setState("Global.0.Räume.Küche.KU_BewegungErkannt", false);
}, 360000); // 6 Minuten
}
}
}
});
// Tastendruck auswerten und Flag setzen
on({id: 'hm-rpc.0.MEQ1844894.1.INSTALL_TEST', change: "any"}, function (obj) {
var motion = getState("Global.0.Räume.Küche.KU_BewegungErkannt").val;
var press = getState("Global.0.Räume.Küche.KU_LichtSpüleAn").val;
// Wenn das Licht aus ist -> an
if (!motion && !press){
setState("Global.0.Räume.Küche.KU_LichtSpüleAn", true);
console.log("Tastendruck - Licht an");
}
// Wenn das Licht an ist -> aus
if (motion || press) {
setState("Global.0.Räume.Küche.KU_LichtSpüleAn", false);
setState("Global.0.Räume.Küche.KU_BewegungErkannt", false);
console.log("Tastendruck - Licht AUS");
}
});
// Licht einschalten wenn sich ein Status ändert
on({id: new RegExp('Global\\.0\\.Räume\\.Küche\\.KU_BewegungErkannt' + "|" + 'Global\\.0\\.Räume\\.Küche\\.KU_LichtSpüleAn'), change: "ne"}, function (obj) {
var motion = getState("Global.0.Räume.Küche.KU_BewegungErkannt").val;
var press = getState("Global.0.Räume.Küche.KU_LichtSpüleAn").val;
console.log("Licht schalten - Motion : " + motion + ", Switch : " + press + ", State : " + motion || press);
setState("hm-rpc.0.NEQ0951347.1.STATE", motion || press);
});
// Licht ausschalten wenn lange gedrückt
// on({id: 'hm-rpc.0.MEQ1844894.1.PRESS_LONG_RELEASE', change: "any"}, function (obj) {
// console.log("Langer Tastendruck - Licht aus");
// setState("Global.0.Räume.Küche.KU_LichtSpüleAn", false);
// setState("Global.0.Räume.Küche.KU_BewegungErkannt", false);
// });
===== Rollos =====
/***********************************************
* Rollos
* Level 0 (unten) bis 100 (oben) Mitte ist eher 80
*
* hm-rpc.0.NEQ1214347.1.LEVEL WZ_RL_ErkerLinks:1.LEVEL
* hm-rpc.0.LEQ1025898.1.LEVEL WZ_RL_ErkerMitte:1.LEVEL
* hm-rpc.0.QEQ1928719.1.LEVEL WZ_RL_ErkerRechts:1.LEVEL
* hm-rpc.0.LEQ1026100.1.LEVEL WZ_RL_SeiteGross:1.LEVEL
* hm-rpc.0.NEQ1562563.1.LEVEL WZ_RL_SeiteKlein:1.LEVEL
* hm-rpc.0.LEQ1025905.1.LEVEL WZ_RL_Strasse:1.LEVEL
* hm-rpc.0.LEQ1025913.1.LEVEL KU_RL_Einfahrt:1.LEVEL
* hm-rpc.0.PEQ0183133.1.LEVEL KU_RL_Feld:1.LEVEL
* hm-rpc.0.LEQ1032151.1.LEVEL AZ_RL_Strasse:1.LEVEL
* hm-rpc.0.LEQ1032236.1.LEVEL AZ_RL_Einfahrt:1.LEVEL
*/
on({id: 'Global.0.Rollos.Control', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
switch (value) {
// Für Tags alle hochfahren
case "allup":
setStateDelayed("hm-rpc.0.NEQ1214347.1.LEVEL", 100, 0, false); // WZ_RL_ErkerLinks
setStateDelayed("hm-rpc.0.LEQ1025898.1.LEVEL", 100, 1000, false); // WZ_RL_ErkerMitte
setStateDelayed("hm-rpc.0.QEQ1928719.1.LEVEL", 100, 2000, false); // WZ_RL_ErkerRechts
setStateDelayed("hm-rpc.0.LEQ1026100.1.LEVEL", 100, 3000, false); // WZ_RL_SeiteGross
setStateDelayed("hm-rpc.0.NEQ1562563.1.LEVEL", 50, 4000, false); // WZ_RL_SeiteKlein
setStateDelayed("hm-rpc.0.LEQ1025905.1.LEVEL", 100, 5000, false); // WZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1025913.1.LEVEL", 100, 6000, false); // KU_RL_Einfahrt
setStateDelayed("hm-rpc.0.PEQ0183133.1.LEVEL", 100, 7000, false); // KU_RL_Feld
setStateDelayed("hm-rpc.0.LEQ1032151.1.LEVEL", 40, 8000, false); // AZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1032236.1.LEVEL", 70, 9000, false); // AZ_RL_Einfahrt
break;
// Für Nachts alle absenken
case "alldown":
setStateDelayed("hm-rpc.0.NEQ1214347.1.LEVEL", 0, 0, false); // WZ_RL_ErkerLinks
setStateDelayed("hm-rpc.0.LEQ1025898.1.LEVEL", 0, 1000, false); // WZ_RL_ErkerMitte
// Nicht schließen wenn Terassentür offen
if (getState("hm-rpc.0.NEQ1481485.1.STATE").val == false) {
setStateDelayed("hm-rpc.0.QEQ1928719.1.LEVEL", 0, 2000, false); // WZ_RL_ErkerRechts
} else {
console.log("WZ_RL_ErkerRechts wird nicht geschlossen -> Terassentür auf");
}
setStateDelayed("hm-rpc.0.LEQ1026100.1.LEVEL", 0, 3000, false); // WZ_RL_SeiteGross
setStateDelayed("hm-rpc.0.NEQ1562563.1.LEVEL", 0, 4000, false); // WZ_RL_SeiteKlein
setStateDelayed("hm-rpc.0.LEQ1025905.1.LEVEL", 0, 5000, false); // WZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1025913.1.LEVEL", 0, 6000, false); // KU_RL_Einfahrt
setStateDelayed("hm-rpc.0.PEQ0183133.1.LEVEL", 0, 7000, false); // KU_RL_Feld
setStateDelayed("hm-rpc.0.LEQ1032151.1.LEVEL", 0, 8000, false); // AZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1032236.1.LEVEL", 0, 9000, false); // AZ_RL_Einfahrt
break;
// Arbeitszimmer abdunkeln
case "azdark":
setStateDelayed("hm-rpc.0.LEQ1032151.1.LEVEL", 15, 0, false); // AZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1032236.1.LEVEL", 25, 1000, false); // AZ_RL_Einfahrt
break;
// Arbeitszimmer aufhellen
case "azlight":
setStateDelayed("hm-rpc.0.LEQ1032151.1.LEVEL", 40, 0, false); // AZ_RL_Strasse
setStateDelayed("hm-rpc.0.LEQ1032236.1.LEVEL", 70, 1000, false); // AZ_RL_Einfahrt
break;
// Rollos im Erker auf 40% runter wegen Sonne
case "erkersun":
setStateDelayed("hm-rpc.0.NEQ1214347.1.LEVEL", 70, 0, false); // WZ_RL_ErkerLinks
setStateDelayed("hm-rpc.0.LEQ1025898.1.LEVEL", 70, 1000, false); // WZ_RL_ErkerMitte
if (getState("hm-rpc.0.NEQ1481485.1.STATE").val == false) {
setStateDelayed("hm-rpc.0.QEQ1928719.1.LEVEL", 70, 2000, false); // WZ_RL_ErkerRechts
} else {
console.log("WZ_RL_ErkerRechts wird nicht geschlossen -> Terassentür auf");
}
break;
// Rolles um 30% Runter im Wohnzimmer für Vögel
case "wz_birds":
setStateDelayed("hm-rpc.0.NEQ1214347.1.LEVEL", 82, 0, false); // WZ_RL_ErkerLinks
setStateDelayed("hm-rpc.0.LEQ1025898.1.LEVEL", 82, 1000, false); // WZ_RL_ErkerMitte
if (getState("hm-rpc.0.NEQ1481485.1.STATE").val == false) {
setStateDelayed("hm-rpc.0.QEQ1928719.1.LEVEL", 90, 2000, false); // WZ_RL_ErkerRechts
} else {
console.log("WZ_RL_ErkerRechts wird nicht geschlossen -> Terassentür auf");
}
setStateDelayed("hm-rpc.0.LEQ1026100.1.LEVEL", 82, 3000, false); // WZ_RL_SeiteGross
setStateDelayed("hm-rpc.0.NEQ1562563.1.LEVEL", 50, 4000, false); // WZ_RL_SeiteKlein
setStateDelayed("hm-rpc.0.LEQ1025905.1.LEVEL", 70, 5000, false); // WZ_RL_Strasse
break;
// alle anhalten
case "stop":
setState("hm-rpc.0.NEQ1214347.1.STOP", true); // WZ_RL_ErkerLinks
setState("hm-rpc.0.LEQ1025898.1.STOP", true); // WZ_RL_ErkerMitte
setState("hm-rpc.0.QEQ1928719.1.STOP", true); // WZ_RL_ErkerRechts
setState("hm-rpc.0.LEQ1026100.1.STOP", true); // WZ_RL_SeiteGross
setState("hm-rpc.0.NEQ1562563.1.STOP", true); // WZ_RL_SeiteKlein
setState("hm-rpc.0.LEQ1025905.1.STOP", true); // WZ_RL_Strasse
setState("hm-rpc.0.LEQ1025913.1.STOP", true); // KU_RL_Einfahrt
setState("hm-rpc.0.PEQ0183133.1.STOP", true); // KU_RL_Feld
setState("hm-rpc.0.LEQ1032151.1.STOP", true); // AZ_RL_Strasse
setState("hm-rpc.0.LEQ1032236.1.STOP", true); // AZ_RL_Einfahrt
break;
}
setState("Global.0.Rollos.Control", "done");
});
===== Terasse =====
on({id: 'Global.0.Markiese.MoveTopOut', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveTopOut").val == true) {
if (getState("Global.0.Automatik.OD_Markiese_Sommerbetrieb").val == true) {
console.log('Markiese Oben : Ausfahren aktiviert ...');
setState("Global.0.Markiese.MoveTopOut"/*MoveTopOut*/, false);
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus*/, '1');
// Nach 60 Sekunden den Ausgang wieder abschalten !
setStateDelayed("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus*/, '0', 60000, false);
} else {
console.warn('Markiese Oben : Winterbetrieb aktiviert - kein Ausfahren !');
}
}
});
on({id: 'Global.0.Markiese.MoveTopIn', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveTopIn").val == true) {
console.log('Markiese Oben : Einfahren aktiviert ...');
setState("Global.0.Markiese.MoveTopIn"/*MoveTopIn*/, false);
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein*/, '1');
// Nach 60 Sekunden den Ausgang wieder abschalten !
setStateDelayed("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein*/, '0', 60000, false);
}
});
on({id: 'Global.0.Markiese.MoveTopStop', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveTopStop").val == true) {
console.log('Markiese Oben : NOTSTOP ...');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Rein*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Oben_Raus*/, '0');
setState("Global.0.Markiese.MoveTopOut"/*MoveTopOut*/, false);
setState("Global.0.Markiese.MoveTopIn"/*MoveTopIn*/, false);
setState("Global.0.Markiese.MoveTopStop"/*MoveTopStop*/, false);
}
});
on({id: 'Global.0.Markiese.MoveFrontOut', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveFrontOut").val == true) {
if (getState("Global.0.Automatik.OD_Markiese_Sommerbetrieb").val == true) {
console.log('Markiese Vorne : Ausfahren aktiviert ...');
setState("Global.0.Markiese.MoveFrontOut"/*MoveFrontOut*/, false);
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down*/, '1');
// Nach 60 Sekunden den Ausgang wieder abschalten !
setStateDelayed("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down*/, '0', 60000, false);
} else {
console.warn('Markiese Vorne : Winterbetrieb aktiviert - kein Ausfahren !');
}
}
});
on({id: 'Global.0.Markiese.MoveFrontIn', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveFrontIn").val == true) {
console.log('Markiese Vorne : Einfahren aktiviert ...');
setState("Global.0.Markiese.MoveFrontIn"/*MoveFrontIn*/, false);
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up*/, '1');
// Nach 60 Sekunden den Ausgang wieder abschalten !
setStateDelayed("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up*/, '0', 60000, false);
}
});
on({id: 'Global.0.Markiese.MoveFrontStop', change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("Global.0.Markiese.MoveFrontStop").val == true) {
console.log('Markiese Vorne : NOTSTOP ...');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_down*/, '0');
setState("mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up"/*mqtt.0.Schaltschrank.Switch_Bank_2.Markise_Vorne_up*/, '0');
setState("Global.0.Markiese.MoveFrontOut"/*MoveFrontOut*/, false);
setState("Global.0.Markiese.MoveFrontIn"/*MoveFrontIn*/, false);
setState("Global.0.Markiese.MoveFrontStop"/*MoveFrontStop*/, false);
}
});