Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Xiaomi Vacuum schedule Skript um Sauglevel erweitern

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[gelöst] Xiaomi Vacuum schedule Skript um Sauglevel erweitern

Scheduled Pinned Locked Moved JavaScript
6 Posts 3 Posters 1.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    weimaraner
    wrote on last edited by Jey Cee
    #1

    Hallo zusammen,

    ich bin seit einer Woche begeisteter Nutzer eines Xiaomi Robis. Ich nutze die Visualiserung aus dem Mutterfred inkl. des Zeitplans von looxer01. Läuft alles super! 🙂 Danke an alle!!!

    In der Mihome App habe ich nun gesehen, daß man für jeden progammierten Start auch die Saugstufe mit angeben kann, so daß der Robi bspw. in der Woche mit Level 90% und am Wochenende im Flüstermodus Level 30% fährt.

    Dieses nette Feature wollte ich nun selber ( :lol: :lol: :lol: ) im skript von looxer01 einfügen. Aber über das Anlegen der Variable Sauglevel komme ich nicht hinaus. :?

    Es ist bestimmt nicht schwer, aber ich zu unwissend. Plan war, hinter jeden Wochentag in vis ein Feld einzusetzen, in dem man einen Wert von 10 bis 100 eintragen kann. Dieses Sauglevel soll vor jedem geplanten Start eingerichtet werden.

    Kann jemand helfen?

    Danke und Grüße

    Andreas

    hier das Original Skript

    // 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 () {                
    // jeden 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'});
     }
    

    1 Reply Last reply
    0
    • W Offline
      W Offline
      weimaraner
      wrote on last edited by Jey Cee
      #2

      Großer Dank an Dave, pax90.

      Skript kann nun Startzeit mit Angabe von Stunden und Minuten sowie individuelle Einstellung der Saugstufe für jeden Tag.

      Werde das skript der Vollständigkeit halber noch im Xiaomi Mutterfred posten.

      // Datum 21.07.2017
      // Autor: Looxer01
      // erweitern am 20.10.2017: Pax90
      // Programm Steuert den Xiaomi Sauger nach Wochenplan 
      // Stunden, Minuten und Power können eingegeben werden.
      // 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
      var xiaomiSpeed = "mihome-vacuum.0.control.fan_power";                 // Geschwindigkeit von 1-100
      // Ende einstellungen
      var StateWeekSchedule;
      //---------------------------------------------------------------------------------------------------
      // Create States können rausgenommen werden wenn einmal gelaufen
      //---------------------------------------------------------------------------------------------------
      CreateStates();
       //---------------------------------------------------------------------------------------------------
      //Auslesen der Zeit und Power zur Einplanung in die schedules
      //---------------------------------------------------------------------------------------------------
      // Montags
      StateWeekSchedule = IDFlag+ ".1-Monday-Start-Hour";
      var cronMoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".1-Monday-Start-Minute";
      var cronMoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".1-Monday-Power";
      var cronMoPower = getState(StateWeekSchedule).val;   //Power
      // Dienstags
      StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Hour";
      var cronDiStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Minute";
      var cronDiMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".2-Tuesday-Power";
      var cronDiPower = getState(StateWeekSchedule).val;   //Power
      // Mittwochs
      StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Hour";
      var cronMiStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Minute";
      var cronMiMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".3-Wednesday-Power";
      var cronMiPower = getState(StateWeekSchedule).val;   //Power
      // Donnerstags
      StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Hour";
      var cronDoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Minute";
      var cronDoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".4-Thursday-Power";
      var cronDoPower = getState(StateWeekSchedule).val;   //Power
       // Freitags
      StateWeekSchedule = IDFlag+ ".5-Friday-Start-Hour";
      var cronFrStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".5-Friday-Start-Minute";
      var cronFrMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".5-Friday-Power";
      var cronFrPower = getState(StateWeekSchedule).val;   //Power
       // Samstags
      StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Hour";
      var cronSaStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Minute";
      var cronSaMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".6-Saturday-Power";
      var cronSaPower = getState(StateWeekSchedule).val;   //Power
       // Sonntags
      StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Hour";
      var cronSoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
      StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Minute";
      var cronSoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
      StateWeekSchedule = IDFlag+ ".7-Sunday-Power";
      var cronSoPower = getState(StateWeekSchedule).val;   //Power
      //---------------------------------------------------------------------------------------------------
      // Die Schedules für jeden Tag der Woche
      //---------------------------------------------------------------------------------------------------
      schedule(cronMoMinute + " " + cronMoStunde +" * * 1",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".1-Monday";
          var Monday = getState(StateWeekSchedule).val;
          if (Monday) {
            log("Roboter eingeschaltet (Power: " + cronMoPower + "%)" ,"info"); 
            setState(xiaomiSpeed,parseInt(cronMoPower));  
            setStateDelayed(xiaomiStart,true,1000);  
          }
      }); // end of schedule
      schedule(cronDiMinute + " " + cronDiStunde +" * * 2",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".2-Tuesday";
          var Tuesday = getState(StateWeekSchedule).val;
          if (Tuesday) {
            log("Roboter eingeschaltet (Power: " + cronDiPower + "%)" ,"info"); 
            setState(xiaomiSpeed,parseInt(cronDiPower));  
            setStateDelayed(xiaomiStart,true,1000);   
          }
      }); // end of schedule
      schedule(cronMiMinute + " " + cronMiStunde +" * * 3",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".3-Wednesday";
          var Wednesday = getState(StateWeekSchedule).val;
          if (Wednesday) {
            log("Roboter eingeschaltet (Power: " + cronMiPower + "%)" ,"info");  
            setState(xiaomiSpeed,parseInt(cronMiPower));  
            setStateDelayed(xiaomiStart,true,1000);  
          }
      }); // end of schedule
      schedule(cronDoMinute + " " + cronDoStunde +" * * 4",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".4-Thursday";
          var Thursday = getState(StateWeekSchedule).val;
          if (Thursday) {
            log("Roboter eingeschaltet (Power: " + cronDoPower + "%)" ,"info"); 
            setState(xiaomiSpeed,parseInt(cronDoPower));  
            setStateDelayed(xiaomiStart,true,1000);
          }
      }); // end of schedule
      schedule(cronFrMinute + " " + cronFrStunde +" * * 5",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".5-Friday";
          var Friday = getState(StateWeekSchedule).val;
          if (Friday) {
            log("Roboter eingeschaltet (Power: " + cronFrPower + "%)" ,"info"); 
           setState(xiaomiSpeed,parseInt(cronFrPower));  
            setStateDelayed(xiaomiStart,true,1000);  
          }
      }); // end of schedule
       schedule(cronSaMinute + " " + cronSaStunde +" * * 6",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".6-Saturday";
          var Saturday = getState(StateWeekSchedule).val;
          if (Saturday) {
            log("Roboter eingeschaltet (Power: " + cronSaPower + "%)" ,"info");
             setState(xiaomiSpeed,parseInt(cronSaPower));  
            setStateDelayed(xiaomiStart,true,1000);
      
          }
      }); // end of schedule
      schedule(cronSoMinute + " " + cronSoStunde +" * * 7",  function () {                // jeden Tag um diese Uhrzeit
          StateWeekSchedule = IDFlag+ ".7-Sunday";
          var Sunday = getState(StateWeekSchedule).val;
          if (Sunday) {
            log("Roboter eingeschaltet (Power: " + cronSoPower + "%)" ,"info"); 
      
            setState(xiaomiSpeed,parseInt(cronSoPower));  
            setStateDelayed(xiaomiStart,true,1000);
      
          }
      }); // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".1-Monday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".1-Monday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
       // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".2-Tuesday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
      // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".3-Wednesday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
      // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".4-Thursday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
       // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".5-Friday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".5-Friday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
      // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".6-Saturday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
       // 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-Hour";
      createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
      StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Minute";
      createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
      StateWeekSchedule = IDFlag+ ".7-Sunday-Power";
      createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
       }
      

      cvidalC 1 Reply Last reply
      0
      • W weimaraner

        Großer Dank an Dave, pax90.

        Skript kann nun Startzeit mit Angabe von Stunden und Minuten sowie individuelle Einstellung der Saugstufe für jeden Tag.

        Werde das skript der Vollständigkeit halber noch im Xiaomi Mutterfred posten.

        // Datum 21.07.2017
        // Autor: Looxer01
        // erweitern am 20.10.2017: Pax90
        // Programm Steuert den Xiaomi Sauger nach Wochenplan 
        // Stunden, Minuten und Power können eingegeben werden.
        // 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
        var xiaomiSpeed = "mihome-vacuum.0.control.fan_power";                 // Geschwindigkeit von 1-100
        // Ende einstellungen
        var StateWeekSchedule;
        //---------------------------------------------------------------------------------------------------
        // Create States können rausgenommen werden wenn einmal gelaufen
        //---------------------------------------------------------------------------------------------------
        CreateStates();
         //---------------------------------------------------------------------------------------------------
        //Auslesen der Zeit und Power zur Einplanung in die schedules
        //---------------------------------------------------------------------------------------------------
        // Montags
        StateWeekSchedule = IDFlag+ ".1-Monday-Start-Hour";
        var cronMoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".1-Monday-Start-Minute";
        var cronMoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".1-Monday-Power";
        var cronMoPower = getState(StateWeekSchedule).val;   //Power
        // Dienstags
        StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Hour";
        var cronDiStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Minute";
        var cronDiMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".2-Tuesday-Power";
        var cronDiPower = getState(StateWeekSchedule).val;   //Power
        // Mittwochs
        StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Hour";
        var cronMiStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Minute";
        var cronMiMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".3-Wednesday-Power";
        var cronMiPower = getState(StateWeekSchedule).val;   //Power
        // Donnerstags
        StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Hour";
        var cronDoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Minute";
        var cronDoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".4-Thursday-Power";
        var cronDoPower = getState(StateWeekSchedule).val;   //Power
         // Freitags
        StateWeekSchedule = IDFlag+ ".5-Friday-Start-Hour";
        var cronFrStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".5-Friday-Start-Minute";
        var cronFrMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".5-Friday-Power";
        var cronFrPower = getState(StateWeekSchedule).val;   //Power
         // Samstags
        StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Hour";
        var cronSaStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Minute";
        var cronSaMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".6-Saturday-Power";
        var cronSaPower = getState(StateWeekSchedule).val;   //Power
         // Sonntags
        StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Hour";
        var cronSoStunde = getState(StateWeekSchedule).val;  //Aktivzeit stunde
        StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Minute";
        var cronSoMinute = getState(StateWeekSchedule).val;  //Aktivzeit minute
        StateWeekSchedule = IDFlag+ ".7-Sunday-Power";
        var cronSoPower = getState(StateWeekSchedule).val;   //Power
        //---------------------------------------------------------------------------------------------------
        // Die Schedules für jeden Tag der Woche
        //---------------------------------------------------------------------------------------------------
        schedule(cronMoMinute + " " + cronMoStunde +" * * 1",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".1-Monday";
            var Monday = getState(StateWeekSchedule).val;
            if (Monday) {
              log("Roboter eingeschaltet (Power: " + cronMoPower + "%)" ,"info"); 
              setState(xiaomiSpeed,parseInt(cronMoPower));  
              setStateDelayed(xiaomiStart,true,1000);  
            }
        }); // end of schedule
        schedule(cronDiMinute + " " + cronDiStunde +" * * 2",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".2-Tuesday";
            var Tuesday = getState(StateWeekSchedule).val;
            if (Tuesday) {
              log("Roboter eingeschaltet (Power: " + cronDiPower + "%)" ,"info"); 
              setState(xiaomiSpeed,parseInt(cronDiPower));  
              setStateDelayed(xiaomiStart,true,1000);   
            }
        }); // end of schedule
        schedule(cronMiMinute + " " + cronMiStunde +" * * 3",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".3-Wednesday";
            var Wednesday = getState(StateWeekSchedule).val;
            if (Wednesday) {
              log("Roboter eingeschaltet (Power: " + cronMiPower + "%)" ,"info");  
              setState(xiaomiSpeed,parseInt(cronMiPower));  
              setStateDelayed(xiaomiStart,true,1000);  
            }
        }); // end of schedule
        schedule(cronDoMinute + " " + cronDoStunde +" * * 4",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".4-Thursday";
            var Thursday = getState(StateWeekSchedule).val;
            if (Thursday) {
              log("Roboter eingeschaltet (Power: " + cronDoPower + "%)" ,"info"); 
              setState(xiaomiSpeed,parseInt(cronDoPower));  
              setStateDelayed(xiaomiStart,true,1000);
            }
        }); // end of schedule
        schedule(cronFrMinute + " " + cronFrStunde +" * * 5",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".5-Friday";
            var Friday = getState(StateWeekSchedule).val;
            if (Friday) {
              log("Roboter eingeschaltet (Power: " + cronFrPower + "%)" ,"info"); 
             setState(xiaomiSpeed,parseInt(cronFrPower));  
              setStateDelayed(xiaomiStart,true,1000);  
            }
        }); // end of schedule
         schedule(cronSaMinute + " " + cronSaStunde +" * * 6",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".6-Saturday";
            var Saturday = getState(StateWeekSchedule).val;
            if (Saturday) {
              log("Roboter eingeschaltet (Power: " + cronSaPower + "%)" ,"info");
               setState(xiaomiSpeed,parseInt(cronSaPower));  
              setStateDelayed(xiaomiStart,true,1000);
        
            }
        }); // end of schedule
        schedule(cronSoMinute + " " + cronSoStunde +" * * 7",  function () {                // jeden Tag um diese Uhrzeit
            StateWeekSchedule = IDFlag+ ".7-Sunday";
            var Sunday = getState(StateWeekSchedule).val;
            if (Sunday) {
              log("Roboter eingeschaltet (Power: " + cronSoPower + "%)" ,"info"); 
        
              setState(xiaomiSpeed,parseInt(cronSoPower));  
              setStateDelayed(xiaomiStart,true,1000);
        
            }
        }); // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".1-Monday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".1-Monday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
         // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".2-Tuesday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".2-Tuesday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
        // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".3-Wednesday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".3-Wednesday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
        // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".4-Thursday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".4-Thursday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
         // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".5-Friday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".5-Friday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
        // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".6-Saturday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".6-Saturday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
         // 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-Hour";
        createState(StateWeekSchedule, 11, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Hour', desc: 'Xiaomi Start Starttime Hour'});
        StateWeekSchedule = IDFlag+ ".7-Sunday-Start-Minute";
        createState(StateWeekSchedule, 01, {read: true, write: true, type: 'number', name: 'Xiaomi Start Starttime Minute', desc: 'Xiaomi Start Starttime Minute'});
        StateWeekSchedule = IDFlag+ ".7-Sunday-Power";
        createState(StateWeekSchedule, 90, {read: true, write: true, type: 'number', name: 'Xiaomi Start Power', desc: 'Xiaomi Start Starttime Power'});
         }
        

        cvidalC Offline
        cvidalC Offline
        cvidal
        Forum Testing
        wrote on last edited by
        #3

        Wie bekomme ich das Skript jetzt gescheit rauskopiert? Irgendwie ist das was völlig durcheinander, liegt wohl am neuen forum...

        Gruß Christian

        1 Reply Last reply
        0
        • W Offline
          W Offline
          weimaraner
          wrote on last edited by
          #4

          Kann da ein Admin was machen?
          Ansonsten muß ich es nochmal raussuchen und neu einstellen.
          Grüße Andreas

          1 Reply Last reply
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            wrote on last edited by
            #5

            Ist gefixt

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            cvidalC 1 Reply Last reply
            2
            • Jey CeeJ Jey Cee

              Ist gefixt

              cvidalC Offline
              cvidalC Offline
              cvidal
              Forum Testing
              wrote on last edited by
              #6

              @Jey-Cee Danke

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              642

              Online

              32.4k

              Users

              81.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe