// Datum 21.07.2017 // Autor: Looxer01 // Programm Steuert den Xiaomi Sauger nach Wochenplan // Stunden können eingegeben werden. Minuten werden im Programm vorgegeben // Einstellbereich // var IDFlag = "javascript.0.Xiaomi.WeekSchedule"; // Schedule Path var xiaomiStart = "mihome-vacuum.0.control.start"; // bei true Starten des Saugvorganges var xiaomiState = "mihome-vacuum.0.info.state"; // bei False pause - bei true fortsetzen - toggle var xiaomiHome = "mihome-vacuum.0.control.home"; // bei state false und home true = go home // Startzeiten var cronMoMinute = 01; // aktivzeit Minute var cronDiMinute = 01; //Aktivzeit stunde var cronMiMinute = 01; // aktivzeit Minute var cronDoMinute = 01; // aktivzeit Minute var cronFrMinute = 01; // aktivzeit Minute var cronSaMinute = 01; // aktivzeit Minute var cronSoMinute = 01; // aktivzeit Minute // Ende einstellungen var StateWeekSchedule; //--------------------------------------------------------------------------------------------------- // Create States können rausgenommen werden wenn einmal gelaufen //--------------------------------------------------------------------------------------------------- CreateStates(); //--------------------------------------------------------------------------------------------------- //Auslesen der Stude zur Einplanung in die schedules //--------------------------------------------------------------------------------------------------- // Montags StateWeekSchedule = IDFlag+ ".1-Monday-Start"; var cronMoStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Dienstags StateWeekSchedule = IDFlag+ ".2-Tuesday-Start"; var cronDiStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Mittwochs StateWeekSchedule = IDFlag+ ".3-Wednesday-Start"; var cronMiStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Donnerstags StateWeekSchedule = IDFlag+ ".4-Thursday-Start"; var cronDoStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Freitags StateWeekSchedule = IDFlag+ ".5-Friday-Start"; var cronFrStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Samstags StateWeekSchedule = IDFlag+ ".6-Saturday-Start"; var cronSaStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde // Sonntags StateWeekSchedule = IDFlag+ ".7-Sunday-Start"; var cronSoStunde = getState(StateWeekSchedule).val; //Aktivzeit stunde //--------------------------------------------------------------------------------------------------- // Die Schedules für jeden Tag der Woche //--------------------------------------------------------------------------------------------------- schedule(cronMoMinute + " " + cronMoStunde +" * * 1", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".1-Monday"; var Monday = getState(StateWeekSchedule).val; if (Monday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronDiMinute + " " + cronDiStunde +" * * 2", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".2-Tuesday"; var Tuesday = getState(StateWeekSchedule).val; if (Tuesday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronMiMinute + " " + cronMiStunde +" * * 3", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".3-Wednesday"; var Wednesday = getState(StateWeekSchedule).val; if (Wednesday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronDoMinute + " " + cronDoStunde +" * * 4", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".4-Thursday"; var Thursday = getState(StateWeekSchedule).val; if (Thursday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronFrMinute + " " + cronFrStunde +" * * 5", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".5-Friday"; var Friday = getState(StateWeekSchedule).val; if (Friday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronSaMinute + " " + cronSaStunde +" * * 6", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".6-Saturday"; var Saturday = getState(StateWeekSchedule).val; if (Saturday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule schedule(cronSoMinute + " " + cronSoStunde +" * * 7", function () { // jenden Tag um diese Uhrzeit StateWeekSchedule = IDFlag+ ".7-Sunday"; var Sunday = getState(StateWeekSchedule).val; if (Sunday) { log("Roboter eingeschaltet" ,"info"); setState(xiaomiStart,true); } }); // end of schedule //--------------------------------------------------------------------------------------------------- // Funktion zum Anlegen der States //--------------------------------------------------------------------------------------------------- function CreateStates() { // Montags StateWeekSchedule = IDFlag+ ".1-Monday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".1-Monday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Dienstags StateWeekSchedule = IDFlag+ ".2-Tuesday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".2-Tuesday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Mittwochs StateWeekSchedule = IDFlag+ ".3-Wednesday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".3-Wednesday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Donnerstags StateWeekSchedule = IDFlag+ ".4-Thursday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".4-Thursday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Freitags StateWeekSchedule = IDFlag+ ".5-Friday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".5-Friday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Samstags StateWeekSchedule = IDFlag+ ".6-Saturday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".6-Saturday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); // Sonntags StateWeekSchedule = IDFlag+ ".7-Sunday"; createState(StateWeekSchedule, false, {read: true, write: true, type: 'boolean', name: 'Xiaomi Start Weekday', desc: 'Xiaomi Start Weekday'}); StateWeekSchedule = IDFlag+ ".7-Sunday-Start"; createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime', desc: 'Xiaomi Start Starttime'}); }