User Tools

Site Tools


haussteuerung:automatiken

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
haussteuerung:automatiken [2025/10/22 06:33] – created dominikhaussteuerung:automatiken [2025/10/22 06:44] (current) dominik
Line 1: Line 1:
-====== Automatiken ======+====== ioB Scripte ======
  
 +===== Automatiken =====
 +<code>
    /*******************************************************    /*******************************************************
     * LICHT     * LICHT
Line 133: Line 135:
     // Schuppen an / aus -> Mäher aus                                  OD      Ab 22 Uhr bis 4 Uhr OD_Schuppen_Auto     // 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      // Garage automatisch nach x Min schließen                         OD      nach 5 Minuten
 + </code>
 +
 +===== Bewegung flur =====
 +<code | download>
 +/*******************************************************
 +* 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:          Licht Oben (einfach)
 +* hm-rpc.0.OEQ0213729.2.STATE   FL_AS_LichtOben:          Licht Oben (doppelt)
 +* hm-rpc.0.OEQ0378804.1.STATE   FL_AS_LichtUnten:         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
 +});
 +
 +</code>
 +
 +===== Schalter =====
 +<code | download>
 +/*******************************************************
 +* 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:          Licht Oben (einfach)
 +* hm-rpc.0.OEQ0213729.2.STATE       FL_AS_LichtOben:          Licht Oben (doppelt)
 +* hm-rpc.0.OEQ0378804.1.STATE       FL_AS_LichtUnten:         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*/
 +});
 +
 +</code>
 +
 +===== Garage =====
 +<code | download>
 +/*******************************************************
 +* 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
 +    }
 +});
 +
 +</code>
 +
 +===== Briefkasten =====
 +<code | download>
 +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);
 +});
 +</code>
 +
 +===== Licht nach Sonne =====
 +<code | download>
 +// 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"))));
 +});
 +
 +</code>
 +
 +===== Licht bei Bewegung Garage =====
 +<code | download>
 +// 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');
 +  }
 +});
 +</code>
 +
 +===== Heizung =====
 +<code | download>
 +// 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);
 +  }
 +});
 +</code>
 +
 +<code | download>
 +// 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);
 +});
 +</code>
 +
 +<code | download>
 +// 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));
 +});
 +</code>
 +
 +===== Licht Bewegung Küche =====
 +<code | download>
 +/*******************************************************
 +* 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);
 +// });
 +
 +</code>
 +
 +===== Rollos =====
 +<code | download>
 +/***********************************************
 +* 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");
 +});
 +
 +</code>
 +
 +===== Terasse =====
 +<code | download>
 +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);
 +  }
 +});
 +
 +</code>
 +
  
haussteuerung/automatiken.1761107615.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki