Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter mihome-vacuum anpassungen

NEWS

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

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

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

Adapter mihome-vacuum anpassungen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
vacuumadapterentwicklungtestroborockzeitplanraumreinigung
511 Beiträge 67 Kommentatoren 115.9k Aufrufe 62 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • R RkcCorian

    @dirkhe Vielen Dank!
    Dann muss ich für meine eigene Queue (vgl. auch den Post direkt über diesem) send_command nutzen um nicht mit der Queue des Adapter durcheinander zu kommen.

    Wäre geil, wenn die Adapter-Queue den Saugmodus, etc. mit beinhalten würde.

    Viele Grüße!

    D Offline
    D Offline
    dirkhe
    Developer
    schrieb am zuletzt editiert von
    #380

    man könnte die timer evtl erweitern, das man den saugmodus noch mit definieren könnte

    1 Antwort Letzte Antwort
    0
    • A Ashuan

      Hallo zusammen, ich habe einen S7 und dieser löst meinen Roomba s9 ab.
      Nun vermisse ich etwa die Möglichkeit jeden Raum inidividuell nach Plan zu reinigen.
      Sowas wie:
      Morgens: Bad nur saugen, Flur stark saugen, Küche nur saugen (in einem Rutsch versteht sich)
      Mittags: Bad saugen & intensiv wischen; Kuche saugen & wischen (...)
      Abends: Zone1 saugen & intensiv wischen; Flur saugen (...)

      geht sowas?
      Bei meinem S9 habe ich in IoBroker nen Kalender gehabt, von dem aus Flags gesteuert haben welcher Raum in welchem Modus gereinigt werden soll. Mit nem kleinem JavaScript habe ich mir dann ein JSon-Object gebastelt, das zum S9 geschickt und er hat losgelegt.
      Kann ich diese Form von Koordination auch mit dem mihome-vacuum Adapter hinbekommen?
      So wie ich das sehe kann ich fur den Sauger und den Wischer nur globale Setting vornehmen, richtig ?

      BTW sehr toller Adapter!!
      Vielen Dank dafür

      Kai

      MeistertrM Offline
      MeistertrM Offline
      Meistertr
      Developer
      schrieb am zuletzt editiert von
      #381

      @ashuan Das ist möglich, du kannst eine "JSON" mit den zu reinigenden räumen oder Zonen schicken siehe hier: https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/segment_clean.md
      oder hier:
      https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/zoned_clean.md
      die commandos kannst du dann über send own command direkt an den Roboter senden (hierbei eben auf die richtige Formatierung in der Adapter readme achten)

      vielleicht hilft dir das weiter : das Skript sucht in den Alexe Kommandos nach den räumen uns schickt sie dann an den Sauger BSP: "Alexa sauge Flur Küche und Badezimmer" und dann werden die jeweiligen Räume gesaugt.

      // 17150,28200
      const rooms = [
          { name : 'Kueche', id : 17, regex : /küche|Küche/, text : 'Küche', floor: 0 },
          { name : 'Flur_unten', id : 19, regex : /flur unten|Flur unten|diele unten/, text : 'Flur unten', floor: 0},
          { name : 'Gaestebad', id : 20, regex : /gästebad|gästebadezimmer/, text : 'Gästebadezimmer', floor: 0},
          { name : 'Wohnbereich', id : 18, regex : /wohnzimmer|wohnbereich/, text : 'Wohnbereich', floor: 0 },
          { name : 'Essbereich', id : 16, regex : /essbereich|esszimmer|Essbereich|Esszimmer/, text : 'Essbereich', floor: 0 },
          { name : 'Vorratsraum', id : 21, regex : /vorratsraum|speisekammer/, text : 'Vorratsraum', floor: 0},
          //Obergeschoss
          { name : 'Luisa', id : 7, regex : /luisa|Luisa/, text : 'Luisa`s Zimmer', floor: 1},
          { name : 'Finja', id : 6, regex : /Finja|finja/, text : 'Finja`s Zimmer', floor: 1},
          { name : 'Badezimmer', id : 7, regex : / bad| badezimmer/, text : 'Badezimmer', floor: 1},
          { name : 'Sophia', id : 6, regex : /Sophia|sophia/, text : 'Sophia`s Zimmer', floor: 1},
          { name : 'Schlafzimmer', id : 5, regex : /Schlafzimmer|schlafzimmer/, text : 'Schlafzimmer', floor: 1},
          { name : 'Waschkammer', id : 18, regex : /waschkammer|wäschekammer| wäsche kammer/, text : 'Waschkammer', floor: 1},
          { name : 'Arbeitszimmer', id : 16, regex : /arbeitszimmmer|gästezimmer/, text : 'Badezimmer', floor: 1},
          { name : 'Flur_oben', id : 17, regex : /flur oben|Flur unten/, text : 'Flur oben', floor: 1},
      
      ]
      const debug = true;
      let id = ''
      
      
      subscribe({
        id: "alexa2.0.History.summary",
        change: "ne" 
      }, function(obj) {
          id = getState('alexa2.0.History.serialNumber'/*serialNumber*/).val
          debug && log('Starte id '+ id)
      
          findNewRooms(obj.state.val)
      });
      //{"id":8480,"method":"app_segment_clean","params":[{"segments":[17],"repeat":2,"clean_order_mode":0}]}
      function findNewRooms(array){
          const wrongkey = array.match(/sprich mir nach|asd/);
          const key = array.match(/sauge|sage|reinige|wische|staubsauger/);
          
          if(wrongkey || !key) return
          debug && log(array);
      
          const zweimal = array.match(/zwei mal/);
          const dreimal = array.match(/drei mal/);
          let wiederholung = 1;
          let speakText = 'Aber ich lasse den Staubsauger ';
          let room0IdArray = [];
          let room1IdArray = [];
      
          rooms.forEach((room, index) => {
      
              const findRoom = array.match(room.regex);
              findRoom && debug && log(room.text + ' erkannt')
              if(findRoom){
                  if(room0IdArray.length != 0 || room1IdArray.length != 0) speakText += ','
                  if(room.floor == 0 ) room0IdArray.push(room.id);
                  if(room.floor == 1 ) room1IdArray.push(room.id);
                  speakText += ' '+ room.text  
              }
          });
          const n = speakText.lastIndexOf(',');
          speakText = speakText.slice(0, n) + speakText.slice(n).replace(',', ' und');  
      
          debug && log(JSON.stringify(room0IdArray))
          debug && log(JSON.stringify(room1IdArray))
          if(zweimal){
              wiederholung = 2
              speakText += ' zwei mal'
          } 
          if(dreimal){
              wiederholung = 3
              speakText += ' drei mal'
          }
      
          setStateDelayed('alexa2.0.Echo-Devices.'+ id +'.Commands.speak', speakText +' saugen!',1500);
      
          //starte Roboter Unten
          if(room0IdArray.length != 0) setStateDelayed('mihome-vacuum.0.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room0IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
          // starte Roboter oben
          if(room1IdArray.length != 0) setStateDelayed('mihome-vacuum.1.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room1IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
      
      
      }
      
      
      R A 2 Antworten Letzte Antwort
      0
      • MeistertrM Meistertr

        @ashuan Das ist möglich, du kannst eine "JSON" mit den zu reinigenden räumen oder Zonen schicken siehe hier: https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/segment_clean.md
        oder hier:
        https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/zoned_clean.md
        die commandos kannst du dann über send own command direkt an den Roboter senden (hierbei eben auf die richtige Formatierung in der Adapter readme achten)

        vielleicht hilft dir das weiter : das Skript sucht in den Alexe Kommandos nach den räumen uns schickt sie dann an den Sauger BSP: "Alexa sauge Flur Küche und Badezimmer" und dann werden die jeweiligen Räume gesaugt.

        // 17150,28200
        const rooms = [
            { name : 'Kueche', id : 17, regex : /küche|Küche/, text : 'Küche', floor: 0 },
            { name : 'Flur_unten', id : 19, regex : /flur unten|Flur unten|diele unten/, text : 'Flur unten', floor: 0},
            { name : 'Gaestebad', id : 20, regex : /gästebad|gästebadezimmer/, text : 'Gästebadezimmer', floor: 0},
            { name : 'Wohnbereich', id : 18, regex : /wohnzimmer|wohnbereich/, text : 'Wohnbereich', floor: 0 },
            { name : 'Essbereich', id : 16, regex : /essbereich|esszimmer|Essbereich|Esszimmer/, text : 'Essbereich', floor: 0 },
            { name : 'Vorratsraum', id : 21, regex : /vorratsraum|speisekammer/, text : 'Vorratsraum', floor: 0},
            //Obergeschoss
            { name : 'Luisa', id : 7, regex : /luisa|Luisa/, text : 'Luisa`s Zimmer', floor: 1},
            { name : 'Finja', id : 6, regex : /Finja|finja/, text : 'Finja`s Zimmer', floor: 1},
            { name : 'Badezimmer', id : 7, regex : / bad| badezimmer/, text : 'Badezimmer', floor: 1},
            { name : 'Sophia', id : 6, regex : /Sophia|sophia/, text : 'Sophia`s Zimmer', floor: 1},
            { name : 'Schlafzimmer', id : 5, regex : /Schlafzimmer|schlafzimmer/, text : 'Schlafzimmer', floor: 1},
            { name : 'Waschkammer', id : 18, regex : /waschkammer|wäschekammer| wäsche kammer/, text : 'Waschkammer', floor: 1},
            { name : 'Arbeitszimmer', id : 16, regex : /arbeitszimmmer|gästezimmer/, text : 'Badezimmer', floor: 1},
            { name : 'Flur_oben', id : 17, regex : /flur oben|Flur unten/, text : 'Flur oben', floor: 1},
        
        ]
        const debug = true;
        let id = ''
        
        
        subscribe({
          id: "alexa2.0.History.summary",
          change: "ne" 
        }, function(obj) {
            id = getState('alexa2.0.History.serialNumber'/*serialNumber*/).val
            debug && log('Starte id '+ id)
        
            findNewRooms(obj.state.val)
        });
        //{"id":8480,"method":"app_segment_clean","params":[{"segments":[17],"repeat":2,"clean_order_mode":0}]}
        function findNewRooms(array){
            const wrongkey = array.match(/sprich mir nach|asd/);
            const key = array.match(/sauge|sage|reinige|wische|staubsauger/);
            
            if(wrongkey || !key) return
            debug && log(array);
        
            const zweimal = array.match(/zwei mal/);
            const dreimal = array.match(/drei mal/);
            let wiederholung = 1;
            let speakText = 'Aber ich lasse den Staubsauger ';
            let room0IdArray = [];
            let room1IdArray = [];
        
            rooms.forEach((room, index) => {
        
                const findRoom = array.match(room.regex);
                findRoom && debug && log(room.text + ' erkannt')
                if(findRoom){
                    if(room0IdArray.length != 0 || room1IdArray.length != 0) speakText += ','
                    if(room.floor == 0 ) room0IdArray.push(room.id);
                    if(room.floor == 1 ) room1IdArray.push(room.id);
                    speakText += ' '+ room.text  
                }
            });
            const n = speakText.lastIndexOf(',');
            speakText = speakText.slice(0, n) + speakText.slice(n).replace(',', ' und');  
        
            debug && log(JSON.stringify(room0IdArray))
            debug && log(JSON.stringify(room1IdArray))
            if(zweimal){
                wiederholung = 2
                speakText += ' zwei mal'
            } 
            if(dreimal){
                wiederholung = 3
                speakText += ' drei mal'
            }
        
            setStateDelayed('alexa2.0.Echo-Devices.'+ id +'.Commands.speak', speakText +' saugen!',1500);
        
            //starte Roboter Unten
            if(room0IdArray.length != 0) setStateDelayed('mihome-vacuum.0.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room0IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
            // starte Roboter oben
            if(room1IdArray.length != 0) setStateDelayed('mihome-vacuum.1.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room1IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
        
        
        }
        
        
        R Offline
        R Offline
        RkcCorian
        schrieb am zuletzt editiert von
        #382

        @meistertr Ich versuche auch über Alexa anzubinden. Leider hat der Alexa2 Adapter den Nachteil, dass Alexa schneller reagiert und dann eine negative Antwort kommt, bevor die Daten in ioBroker verarbeitet wurden.
        Versuche es gerade auch mit dem iot Adapter, leider klappt das auch nicht zufriedenstellend, vgl. auch https://github.com/ioBroker/ioBroker.iot/issues/442

        Jemand noch ne gute Idee? Evtl. iot Adapter und dann über Callback Summary von Alexa2 Adapter auswerten o.ä.?

        D 1 Antwort Letzte Antwort
        0
        • R RkcCorian

          @meistertr Ich versuche auch über Alexa anzubinden. Leider hat der Alexa2 Adapter den Nachteil, dass Alexa schneller reagiert und dann eine negative Antwort kommt, bevor die Daten in ioBroker verarbeitet wurden.
          Versuche es gerade auch mit dem iot Adapter, leider klappt das auch nicht zufriedenstellend, vgl. auch https://github.com/ioBroker/ioBroker.iot/issues/442

          Jemand noch ne gute Idee? Evtl. iot Adapter und dann über Callback Summary von Alexa2 Adapter auswerten o.ä.?

          D Offline
          D Offline
          dirkhe
          Developer
          schrieb am zuletzt editiert von
          #383

          @rkccorian also ich habe bei mir fie räume alle in alexa und sage nur "alexa, sauge küche an". Wenn ich mehrere räume ssugen will, sage ich den satz halt mehrmals hintereinander, den rest (queue)macht dann der adapter. Um das zu machen, musst du einfach nur die smartname variable setzten

          {
            "type": "state",
            "common": {
              "name": "clean Room",
              "type": "boolean",
              "role": "button",
              "read": false,
              "write": true,
              "desc": "Start Room Cleaning",
              "smartName": {
                "de": "sauge Wohnzimmer"
              }
            },
            "native": {},
            "from": "system.adapter.mihome-vacuum.0",
            "user": "system.user.admin",
            "ts": 1578400811474,
            "_id": "mihome-vacuum.0.rooms.20001007939.roomClean",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          
          R 1 Antwort Letzte Antwort
          0
          • MeistertrM Meistertr

            @ashuan Das ist möglich, du kannst eine "JSON" mit den zu reinigenden räumen oder Zonen schicken siehe hier: https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/segment_clean.md
            oder hier:
            https://github.com/MeisterTR/XiaomiRobotVacuumProtocol/blob/master/zoned_clean.md
            die commandos kannst du dann über send own command direkt an den Roboter senden (hierbei eben auf die richtige Formatierung in der Adapter readme achten)

            vielleicht hilft dir das weiter : das Skript sucht in den Alexe Kommandos nach den räumen uns schickt sie dann an den Sauger BSP: "Alexa sauge Flur Küche und Badezimmer" und dann werden die jeweiligen Räume gesaugt.

            // 17150,28200
            const rooms = [
                { name : 'Kueche', id : 17, regex : /küche|Küche/, text : 'Küche', floor: 0 },
                { name : 'Flur_unten', id : 19, regex : /flur unten|Flur unten|diele unten/, text : 'Flur unten', floor: 0},
                { name : 'Gaestebad', id : 20, regex : /gästebad|gästebadezimmer/, text : 'Gästebadezimmer', floor: 0},
                { name : 'Wohnbereich', id : 18, regex : /wohnzimmer|wohnbereich/, text : 'Wohnbereich', floor: 0 },
                { name : 'Essbereich', id : 16, regex : /essbereich|esszimmer|Essbereich|Esszimmer/, text : 'Essbereich', floor: 0 },
                { name : 'Vorratsraum', id : 21, regex : /vorratsraum|speisekammer/, text : 'Vorratsraum', floor: 0},
                //Obergeschoss
                { name : 'Luisa', id : 7, regex : /luisa|Luisa/, text : 'Luisa`s Zimmer', floor: 1},
                { name : 'Finja', id : 6, regex : /Finja|finja/, text : 'Finja`s Zimmer', floor: 1},
                { name : 'Badezimmer', id : 7, regex : / bad| badezimmer/, text : 'Badezimmer', floor: 1},
                { name : 'Sophia', id : 6, regex : /Sophia|sophia/, text : 'Sophia`s Zimmer', floor: 1},
                { name : 'Schlafzimmer', id : 5, regex : /Schlafzimmer|schlafzimmer/, text : 'Schlafzimmer', floor: 1},
                { name : 'Waschkammer', id : 18, regex : /waschkammer|wäschekammer| wäsche kammer/, text : 'Waschkammer', floor: 1},
                { name : 'Arbeitszimmer', id : 16, regex : /arbeitszimmmer|gästezimmer/, text : 'Badezimmer', floor: 1},
                { name : 'Flur_oben', id : 17, regex : /flur oben|Flur unten/, text : 'Flur oben', floor: 1},
            
            ]
            const debug = true;
            let id = ''
            
            
            subscribe({
              id: "alexa2.0.History.summary",
              change: "ne" 
            }, function(obj) {
                id = getState('alexa2.0.History.serialNumber'/*serialNumber*/).val
                debug && log('Starte id '+ id)
            
                findNewRooms(obj.state.val)
            });
            //{"id":8480,"method":"app_segment_clean","params":[{"segments":[17],"repeat":2,"clean_order_mode":0}]}
            function findNewRooms(array){
                const wrongkey = array.match(/sprich mir nach|asd/);
                const key = array.match(/sauge|sage|reinige|wische|staubsauger/);
                
                if(wrongkey || !key) return
                debug && log(array);
            
                const zweimal = array.match(/zwei mal/);
                const dreimal = array.match(/drei mal/);
                let wiederholung = 1;
                let speakText = 'Aber ich lasse den Staubsauger ';
                let room0IdArray = [];
                let room1IdArray = [];
            
                rooms.forEach((room, index) => {
            
                    const findRoom = array.match(room.regex);
                    findRoom && debug && log(room.text + ' erkannt')
                    if(findRoom){
                        if(room0IdArray.length != 0 || room1IdArray.length != 0) speakText += ','
                        if(room.floor == 0 ) room0IdArray.push(room.id);
                        if(room.floor == 1 ) room1IdArray.push(room.id);
                        speakText += ' '+ room.text  
                    }
                });
                const n = speakText.lastIndexOf(',');
                speakText = speakText.slice(0, n) + speakText.slice(n).replace(',', ' und');  
            
                debug && log(JSON.stringify(room0IdArray))
                debug && log(JSON.stringify(room1IdArray))
                if(zweimal){
                    wiederholung = 2
                    speakText += ' zwei mal'
                } 
                if(dreimal){
                    wiederholung = 3
                    speakText += ' drei mal'
                }
            
                setStateDelayed('alexa2.0.Echo-Devices.'+ id +'.Commands.speak', speakText +' saugen!',1500);
            
                //starte Roboter Unten
                if(room0IdArray.length != 0) setStateDelayed('mihome-vacuum.0.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room0IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
                // starte Roboter oben
                if(room1IdArray.length != 0) setStateDelayed('mihome-vacuum.1.control.X_send_command','app_segment_clean;[{"segments":'+JSON.stringify(room1IdArray)+',"repeat":'+ wiederholung +',"clean_order_mode":0}]',3000)
            
            
            }
            
            
            A Offline
            A Offline
            Ashuan
            schrieb am zuletzt editiert von
            #384

            @meistertr Vielen Dank das werde ich mir mal zu Gemüte führen.

            1 Antwort Letzte Antwort
            0
            • R RkcCorian

              @dirkhe Vielen Dank!
              Dann muss ich für meine eigene Queue (vgl. auch den Post direkt über diesem) send_command nutzen um nicht mit der Queue des Adapter durcheinander zu kommen.

              Wäre geil, wenn die Adapter-Queue den Saugmodus, etc. mit beinhalten würde.

              Viele Grüße!

              A Offline
              A Offline
              Ashuan
              schrieb am zuletzt editiert von
              #385

              @rkccorian wäre mit einer Queue nicht eher das Problem das er den nächsten Raum erst abarbeiten kann wenn er in die Ladestation fährt?
              Müsse man nicht eher eine Art Koordinator hinlegen der den Roboter überwacht und soblad der Raum fertig ist (ich weiss nicht ob es dafür einen State gibt), den Roboter in Pause versetzt, die neuen Anweisungen überträgt und Ihn wieder los schickt?

              So wie ich das sehe gibt es beim S7 MaxV mit Station ja noch die Möglichkeit das er zur Ladestation fährt um dem Mob zu reinigen obwohl er noch nicht fertig ist mit dem Raum.

              Entschuldigt die Verwirrung aber ich bin was das angeht eher ein "Perfektionist" :-)

              LG
              Kai

              D R 2 Antworten Letzte Antwort
              0
              • A Ashuan

                @rkccorian wäre mit einer Queue nicht eher das Problem das er den nächsten Raum erst abarbeiten kann wenn er in die Ladestation fährt?
                Müsse man nicht eher eine Art Koordinator hinlegen der den Roboter überwacht und soblad der Raum fertig ist (ich weiss nicht ob es dafür einen State gibt), den Roboter in Pause versetzt, die neuen Anweisungen überträgt und Ihn wieder los schickt?

                So wie ich das sehe gibt es beim S7 MaxV mit Station ja noch die Möglichkeit das er zur Ladestation fährt um dem Mob zu reinigen obwohl er noch nicht fertig ist mit dem Raum.

                Entschuldigt die Verwirrung aber ich bin was das angeht eher ein "Perfektionist" :-)

                LG
                Kai

                D Offline
                D Offline
                dirkhe
                Developer
                schrieb am zuletzt editiert von dirkhe
                #386

                @ashuan sobald der status kommt, dass er zurück zur ladestation will, bekommt er den nächsten aus der queue. Während des saugens wird der status auch häufiger abgefragt.
                ob der status zur mobreinigung ein anderer ist, wie zur ladestion zurückfahrebn ist, weiss ich gerade nicgt, müsste man mal ausprobieren

                1 Antwort Letzte Antwort
                0
                • A Ashuan

                  @rkccorian wäre mit einer Queue nicht eher das Problem das er den nächsten Raum erst abarbeiten kann wenn er in die Ladestation fährt?
                  Müsse man nicht eher eine Art Koordinator hinlegen der den Roboter überwacht und soblad der Raum fertig ist (ich weiss nicht ob es dafür einen State gibt), den Roboter in Pause versetzt, die neuen Anweisungen überträgt und Ihn wieder los schickt?

                  So wie ich das sehe gibt es beim S7 MaxV mit Station ja noch die Möglichkeit das er zur Ladestation fährt um dem Mob zu reinigen obwohl er noch nicht fertig ist mit dem Raum.

                  Entschuldigt die Verwirrung aber ich bin was das angeht eher ein "Perfektionist" :-)

                  LG
                  Kai

                  R Offline
                  R Offline
                  RkcCorian
                  schrieb am zuletzt editiert von
                  #387

                  @ashuan Der aktuelle Adapter macht das bereits korrekt, d.h. während der Roboter zur Ladestation zurück fährt wird aus der Adapter Queue der nächste Befehl geschickt.
                  Probleme aus meiner Sicht:

                  • Man kann die Saug-/Wischleistung nur global steuern. Diese sind im Adapter bislang nicht Bestandteil der Queue. Ich möchte aber über Alexa die Räume unterschiedlich ansteuern können. Damit muss er sich für jeden Raum / jede Zone aber merken, welcher Modus kommandiert wurde
                  • Verwirrende Sprachansagen: "Fahre zur Ladestation zurück" > "Starte Raumreinigung"
                  • Darüber hinaus (Problem mit Alexa für mich bislang): Das Kommandieren von unterschiedlichen Modi, mit mehreren Räumen klappt nicht gut (bin ebenfalls Perfektionist).
                    • Über Alexa2 gibt es das Problem, dass vor meiner Antwort fast immer erstmal kommt, dass der Befehl nicht verstanden wurde, da es zu viel Zeit braucht
                    • Über iot Adapter klappt das Kommandieren nur eingeschränkt, vgl. auch https://github.com/ioBroker/ioBroker.iot/issues/442

                  Ich habe für mich inzw. eine Queue programmiert. Jetzt kommt noch die Abarbeitung und für das Alexa-Problem habe ich die Idee eines Workarounds, bei welchem ich Alexa2 und iot Adapter beide benötige. Ich melde mich sobald ich was Neues fertig habe und teile meine Implementierung hier, falls interessant für Dich/Euch. Evtl. kann diese auch in den Adapter kommen :-)

                  1 Antwort Letzte Antwort
                  0
                  • D dirkhe

                    @rkccorian also ich habe bei mir fie räume alle in alexa und sage nur "alexa, sauge küche an". Wenn ich mehrere räume ssugen will, sage ich den satz halt mehrmals hintereinander, den rest (queue)macht dann der adapter. Um das zu machen, musst du einfach nur die smartname variable setzten

                    {
                      "type": "state",
                      "common": {
                        "name": "clean Room",
                        "type": "boolean",
                        "role": "button",
                        "read": false,
                        "write": true,
                        "desc": "Start Room Cleaning",
                        "smartName": {
                          "de": "sauge Wohnzimmer"
                        }
                      },
                      "native": {},
                      "from": "system.adapter.mihome-vacuum.0",
                      "user": "system.user.admin",
                      "ts": 1578400811474,
                      "_id": "mihome-vacuum.0.rooms.20001007939.roomClean",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    
                    R Offline
                    R Offline
                    RkcCorian
                    schrieb am zuletzt editiert von RkcCorian
                    #388

                    @dirkhe Vielen Dank! Das mit jedem Raum einzeln finde ich nicht so gut gelöst, da mein Roboter dann zw. jedem einzelnen Raum erst sagt, dass er fertig ist und zur Station zurück fährt und dann kurz darauf sagt, reinige nächsten Raum. Das funktioniert bereits besser, ich teile meinen Code später.

                    Bzgl. Alexa kommt etwas Bewegung rein. Schaut Euch doch mal Folgendes an und teilt Eure Gedanken für eine 2022 Version der Alexa-Unterstützung (über iot-Adapter und ioBroker Custom Skill): https://forum.iobroker.net/topic/56304/wie-spricht-man-mit-iobroker-iobroker-custom-skill-2022. Ich werde auch drüber nachdenken und meine Gedanken dort diskutieren :-)
                    Grundidee: ioBroker Custom Skill (Alexa) > iot Adapter (ab hier ioBroker) > text2command Adapter > eigene Skripte > mihome-vacuum Adapter

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      dirkhe
                      Developer
                      schrieb am zuletzt editiert von
                      #389

                      @rkccorian Zu der Custom Skill GEschichte finde ich persönlich "frage iobroker...." oder ähbliches eher kontraproduktiv, da hänge ich dann lieber das wort "an" hinterher, aber jedem das seine.
                      Dass er erst zur Ladestation zurückfährt und dann neu beginnt, kann ich so nicht bestätigen, bei mir klappt das vorher (aber ja, er quatscht erst dumm rum "Fahre zur Ladestation zurück" > "Starte Raumreinigung" -> stört mich aber nicht.

                      Das man den Reinigunsmodus noch mit in die Queue speichert, wäre sicherlich eine Option, aber da müsste man überlegen, wie man die mit übermittelt. Aktuell ist das ja am Raum selber gespeichert, sprich du kannst ja erst den Saugmodus vom Raum einstellen und dann den Raum saugen. Wenn nämlich das Raumreinigen über den Adapter gestartet wird, wird zuerst der eingestellte Modus des Raumes übermittelt und dann der Raum gereinigt.

                      R 2 Antworten Letzte Antwort
                      0
                      • D dirkhe

                        @rkccorian Zu der Custom Skill GEschichte finde ich persönlich "frage iobroker...." oder ähbliches eher kontraproduktiv, da hänge ich dann lieber das wort "an" hinterher, aber jedem das seine.
                        Dass er erst zur Ladestation zurückfährt und dann neu beginnt, kann ich so nicht bestätigen, bei mir klappt das vorher (aber ja, er quatscht erst dumm rum "Fahre zur Ladestation zurück" > "Starte Raumreinigung" -> stört mich aber nicht.

                        Das man den Reinigunsmodus noch mit in die Queue speichert, wäre sicherlich eine Option, aber da müsste man überlegen, wie man die mit übermittelt. Aktuell ist das ja am Raum selber gespeichert, sprich du kannst ja erst den Saugmodus vom Raum einstellen und dann den Raum saugen. Wenn nämlich das Raumreinigen über den Adapter gestartet wird, wird zuerst der eingestellte Modus des Raumes übermittelt und dann der Raum gereinigt.

                        R Offline
                        R Offline
                        RkcCorian
                        schrieb am zuletzt editiert von
                        #390

                        @dirkhe Bzgl. "Sage ioBroker..." verstehe ich, das ist Geschmackssache. Für mich ist wichtig direkt in einem Befehl alle zu reinigenden Räume zu übergeben. Leider sehe ich aktuell technisch keine andere Möglichkeit als den ioBroker Custom Skill.
                        Bei mir fährt er auch nicht komplett zurück zur Ladestation, allerdings quatsch er halt zw. jedem einzelnen Raum, das er es jetzt macht und dann kommt aber direkt danach, dass der nächste Raum gereinigt wird. Das ist recht verwirrend / nervig.
                        Bzgl. der Queue... ich versuche es über die Alexa Kommandos "Sauge", "Wische," Reinige" zu unterscheiden. Bzgl. Raumeinstellungen... das hat bei mir nicht so gut geklappt. Bei mir stimmen die Adapterinfos nicht mit denen der in der App hinterlegten Daten zusammen.

                        R 1 Antwort Letzte Antwort
                        0
                        • D dirkhe

                          @rkccorian Zu der Custom Skill GEschichte finde ich persönlich "frage iobroker...." oder ähbliches eher kontraproduktiv, da hänge ich dann lieber das wort "an" hinterher, aber jedem das seine.
                          Dass er erst zur Ladestation zurückfährt und dann neu beginnt, kann ich so nicht bestätigen, bei mir klappt das vorher (aber ja, er quatscht erst dumm rum "Fahre zur Ladestation zurück" > "Starte Raumreinigung" -> stört mich aber nicht.

                          Das man den Reinigunsmodus noch mit in die Queue speichert, wäre sicherlich eine Option, aber da müsste man überlegen, wie man die mit übermittelt. Aktuell ist das ja am Raum selber gespeichert, sprich du kannst ja erst den Saugmodus vom Raum einstellen und dann den Raum saugen. Wenn nämlich das Raumreinigen über den Adapter gestartet wird, wird zuerst der eingestellte Modus des Raumes übermittelt und dann der Raum gereinigt.

                          R Offline
                          R Offline
                          RkcCorian
                          schrieb am zuletzt editiert von RkcCorian
                          #391

                          @dirkhe Moin! Hab jetzt mal passende Skripte in Blockly erstellt. Für den JS code ggf. importieren und die Ansicht auf JS ändern.

                          Vorbedingungen

                          DPs anlegen wie folgt
                          26a8fdef-e7a3-4634-af8a-f04117139189-image.png
                          alias.0.Wohnung.Saugwischroboter.ROOM_START_COMMAND mit

                          {
                            "common": {
                              "name": "ROOM_START_COMMAND",
                              "desc": "Manuell erzeugt",
                              "role": "text",
                              "type": "string",
                              "read": true,
                              "write": true,
                              "def": "",
                              "alias": {
                                "id": "mihome-vacuum.0.control.X_send_command",
                                "write": "\"app_segment_clean;[\"+val+\"]\""
                              }
                            },
                            "type": "state",
                            "_id": "alias.0.Wohnung.Saugwischroboter.ROOM_START_COMMAND",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1656176031942
                          }
                          

                          alias.0.Wohnung.Saugwischroboter.ZONE_START_COMMAND mit

                          {
                            "common": {
                              "name": "ZONE_START_COMMAND",
                              "desc": "Manuell erzeugt",
                              "role": "text",
                              "type": "string",
                              "read": true,
                              "write": true,
                              "def": "",
                              "alias": {
                                "id": "mihome-vacuum.0.control.X_send_command",
                                "write": "\"app_zoned_clean;[\"+val+\"]\""
                              }
                            },
                            "type": "state",
                            "_id": "alias.0.Wohnung.Saugwischroboter.ZONE_START_COMMAND",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1657567662511
                          }
                          

                          Raumzuordnung über enum "rooms"
                          bbcbfc8a-d782-449d-a56a-13483d5519fe-image.png

                          Blockly

                          Blockly.zip

                          R 1 Antwort Letzte Antwort
                          0
                          • R RkcCorian

                            @dirkhe Moin! Hab jetzt mal passende Skripte in Blockly erstellt. Für den JS code ggf. importieren und die Ansicht auf JS ändern.

                            Vorbedingungen

                            DPs anlegen wie folgt
                            26a8fdef-e7a3-4634-af8a-f04117139189-image.png
                            alias.0.Wohnung.Saugwischroboter.ROOM_START_COMMAND mit

                            {
                              "common": {
                                "name": "ROOM_START_COMMAND",
                                "desc": "Manuell erzeugt",
                                "role": "text",
                                "type": "string",
                                "read": true,
                                "write": true,
                                "def": "",
                                "alias": {
                                  "id": "mihome-vacuum.0.control.X_send_command",
                                  "write": "\"app_segment_clean;[\"+val+\"]\""
                                }
                              },
                              "type": "state",
                              "_id": "alias.0.Wohnung.Saugwischroboter.ROOM_START_COMMAND",
                              "acl": {
                                "object": 1636,
                                "state": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              },
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1656176031942
                            }
                            

                            alias.0.Wohnung.Saugwischroboter.ZONE_START_COMMAND mit

                            {
                              "common": {
                                "name": "ZONE_START_COMMAND",
                                "desc": "Manuell erzeugt",
                                "role": "text",
                                "type": "string",
                                "read": true,
                                "write": true,
                                "def": "",
                                "alias": {
                                  "id": "mihome-vacuum.0.control.X_send_command",
                                  "write": "\"app_zoned_clean;[\"+val+\"]\""
                                }
                              },
                              "type": "state",
                              "_id": "alias.0.Wohnung.Saugwischroboter.ZONE_START_COMMAND",
                              "acl": {
                                "object": 1636,
                                "state": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              },
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1657567662511
                            }
                            

                            Raumzuordnung über enum "rooms"
                            bbcbfc8a-d782-449d-a56a-13483d5519fe-image.png

                            Blockly

                            Blockly.zip

                            R Offline
                            R Offline
                            RkcCorian
                            schrieb am zuletzt editiert von RkcCorian
                            #392

                            Gerne feedback was ich noch besser machen kann.
                            Änderungen inzw.:

                            • BUGFIX: Initialer Start der Queue-Abarbeitung geändert
                            • COSMETIC: CLEANING_QUEUE in COMMAND_QUEUE umbenannt > Geschmackssache

                            Bin aber mit dem initialen Start/Trigger immer noch nicht zufrieden. Muss da nochmal überlegen. Es gehen Befehle verloren, wenn das nächste Kommando bspw. während dem Absaugen kommt.

                            Version 2:
                            Blockly_v2.zip

                            R 1 Antwort Letzte Antwort
                            0
                            • R RkcCorian

                              @dirkhe Bzgl. "Sage ioBroker..." verstehe ich, das ist Geschmackssache. Für mich ist wichtig direkt in einem Befehl alle zu reinigenden Räume zu übergeben. Leider sehe ich aktuell technisch keine andere Möglichkeit als den ioBroker Custom Skill.
                              Bei mir fährt er auch nicht komplett zurück zur Ladestation, allerdings quatsch er halt zw. jedem einzelnen Raum, das er es jetzt macht und dann kommt aber direkt danach, dass der nächste Raum gereinigt wird. Das ist recht verwirrend / nervig.
                              Bzgl. der Queue... ich versuche es über die Alexa Kommandos "Sauge", "Wische," Reinige" zu unterscheiden. Bzgl. Raumeinstellungen... das hat bei mir nicht so gut geklappt. Bei mir stimmen die Adapterinfos nicht mit denen der in der App hinterlegten Daten zusammen.

                              R Offline
                              R Offline
                              RkcCorian
                              schrieb am zuletzt editiert von RkcCorian
                              #393

                              @dirkhe : Falls Du reinschaust... denkst Du, Du könntest im Adapter was anpassen, sodass weite Teile meines eigenen Skripts nicht mehr notwendig wären?

                              D 1 Antwort Letzte Antwort
                              0
                              • R RkcCorian

                                @dirkhe : Falls Du reinschaust... denkst Du, Du könntest im Adapter was anpassen, sodass weite Teile meines eigenen Skripts nicht mehr notwendig wären?

                                D Offline
                                D Offline
                                dirkhe
                                Developer
                                schrieb am zuletzt editiert von
                                #394

                                @rkccorian Ich habe mal reingeschaut (musste mir das in JS wandeln, weil Blocky mir zu kompliziert ist), sehe aber den Unterschied nicht wirklich zum Adapter.
                                Was du brauchst ist die alexa Geschichte, weil du da ja spezielle Fälle für reinigen, saugen usw. abfängst, das ist eh individuell, das bekommen wir so nicht in den Adapter.
                                Was du aber auf jeden Fall machen kannst, ist ja die roomFanPower und roomWaterBoxMode einstellen und dann roomclean triggern, dann kannst du dir das mit der queue sparen.
                                Was halt nicht geht, ist den selben Raum erst saugen und dann wischen, weil er FanPower und WaterboxMode halt beim starten abfragt. -> das könnte man vlt. nochmal einbauen, dass es zb sowas wie addToQueue(RoomOrZone, FanPower,WaterBoxMode) gibt. Könnte man dann auch bei den Timern setzten.
                                Für die Zonen kannst du übrigens per "addRoom" einen eigenen Raum anlegen, indem du die ZonenKoordinaten angibst.

                                R 2 Antworten Letzte Antwort
                                0
                                • D dirkhe

                                  @rkccorian Ich habe mal reingeschaut (musste mir das in JS wandeln, weil Blocky mir zu kompliziert ist), sehe aber den Unterschied nicht wirklich zum Adapter.
                                  Was du brauchst ist die alexa Geschichte, weil du da ja spezielle Fälle für reinigen, saugen usw. abfängst, das ist eh individuell, das bekommen wir so nicht in den Adapter.
                                  Was du aber auf jeden Fall machen kannst, ist ja die roomFanPower und roomWaterBoxMode einstellen und dann roomclean triggern, dann kannst du dir das mit der queue sparen.
                                  Was halt nicht geht, ist den selben Raum erst saugen und dann wischen, weil er FanPower und WaterboxMode halt beim starten abfragt. -> das könnte man vlt. nochmal einbauen, dass es zb sowas wie addToQueue(RoomOrZone, FanPower,WaterBoxMode) gibt. Könnte man dann auch bei den Timern setzten.
                                  Für die Zonen kannst du übrigens per "addRoom" einen eigenen Raum anlegen, indem du die ZonenKoordinaten angibst.

                                  R Offline
                                  R Offline
                                  RkcCorian
                                  schrieb am zuletzt editiert von RkcCorian
                                  #395

                                  @dirkhe Danke Dir!
                                  roomFanPower und roomWaterBoxMode speichere ich zusammen mit dem Raum / der Zone. Unabhängig (so wie jetzt) bekomme ich das aktuell mit dem Adapter nicht hin.
                                  Bzgl. Timer... die laufen nach einer bestimmten Zeit?! Sind also kein Ersatz für eine Queue?!
                                  Ahhh, Zone kann über addRoom angelegt werden, das wusste ich nicht.

                                  1 Antwort Letzte Antwort
                                  0
                                  • D dirkhe

                                    @rkccorian Ich habe mal reingeschaut (musste mir das in JS wandeln, weil Blocky mir zu kompliziert ist), sehe aber den Unterschied nicht wirklich zum Adapter.
                                    Was du brauchst ist die alexa Geschichte, weil du da ja spezielle Fälle für reinigen, saugen usw. abfängst, das ist eh individuell, das bekommen wir so nicht in den Adapter.
                                    Was du aber auf jeden Fall machen kannst, ist ja die roomFanPower und roomWaterBoxMode einstellen und dann roomclean triggern, dann kannst du dir das mit der queue sparen.
                                    Was halt nicht geht, ist den selben Raum erst saugen und dann wischen, weil er FanPower und WaterboxMode halt beim starten abfragt. -> das könnte man vlt. nochmal einbauen, dass es zb sowas wie addToQueue(RoomOrZone, FanPower,WaterBoxMode) gibt. Könnte man dann auch bei den Timern setzten.
                                    Für die Zonen kannst du übrigens per "addRoom" einen eigenen Raum anlegen, indem du die ZonenKoordinaten angibst.

                                    R Offline
                                    R Offline
                                    RkcCorian
                                    schrieb am zuletzt editiert von
                                    #396

                                    @dirkhe Wenn Du roomFanPower und roomWaterBoxMode mit in der Queue speicherst könnte ich auch das Reinigen des Essbereich 2 mal triggern. Einmal mit der Einstellung max. Saugen und einmal mit der Einstellung max. Wischen.

                                    D 1 Antwort Letzte Antwort
                                    0
                                    • R RkcCorian

                                      @dirkhe Wenn Du roomFanPower und roomWaterBoxMode mit in der Queue speicherst könnte ich auch das Reinigen des Essbereich 2 mal triggern. Einmal mit der Einstellung max. Saugen und einmal mit der Einstellung max. Wischen.

                                      D Offline
                                      D Offline
                                      dirkhe
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #397

                                      @rkccorian Timer kannst du anlegen, die dann zu einer bestimmten Zeit laufen, dort kannst du dann auch sofort mehr als einen Raum zuweisen. Diesen Timer kann dann man disablen, einmalig aussetzr oder auch direkt starten, geht dann sehr gut mit einer VIS.
                                      Wenn ich das hunzufügen würden, wäre es wahrscheinlich erstmal nur ein customcommand, welches du mit sendTo senden könntest, also sowas wie

                                       sendTo("mihome-vacuum.0", "addToQueue", {cleanRooms:'enum.rooms.wohnzimmer', FanPower:102, WaterBoxMode:5}
                                      , async function (result) {
                                          console.log(result);
                                        });
                                      

                                      oder

                                       sendTo("mihome-vacuum.0", "addToQueue", {cleanSegments: '12', FanPower:102, WaterBoxMode:5}
                                      , async function (result) {
                                          console.log(result);
                                        });
                                      

                                      oder

                                       sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '24117,26005,25767,27205,1', FanPower:102, WaterBoxMode:5}
                                      , async function (result) {
                                          console.log(result);
                                        });
                                      

                                      also quasi ein wrapper für die 3 zielobjekte.
                                      Würdest du dafür ein Issue auf github aufmachen?

                                      R 1 Antwort Letzte Antwort
                                      1
                                      • D dirkhe

                                        @rkccorian Timer kannst du anlegen, die dann zu einer bestimmten Zeit laufen, dort kannst du dann auch sofort mehr als einen Raum zuweisen. Diesen Timer kann dann man disablen, einmalig aussetzr oder auch direkt starten, geht dann sehr gut mit einer VIS.
                                        Wenn ich das hunzufügen würden, wäre es wahrscheinlich erstmal nur ein customcommand, welches du mit sendTo senden könntest, also sowas wie

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanRooms:'enum.rooms.wohnzimmer', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        

                                        oder

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanSegments: '12', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        

                                        oder

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '24117,26005,25767,27205,1', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        

                                        also quasi ein wrapper für die 3 zielobjekte.
                                        Würdest du dafür ein Issue auf github aufmachen?

                                        R Offline
                                        R Offline
                                        RkcCorian
                                        schrieb am zuletzt editiert von RkcCorian
                                        #398

                                        @dirkhe Nichts was mir lieber wäre :-)
                                        Als Bug oder als Geräte-Request?
                                        Hinweis: cleanZone müsste m.W. als Array übergeben werden...

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '[24117,26005,25767,27205,1]', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        

                                        Dann geht auch bspw. ...

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '[24117,26005,25767,27205,1],[24223,26777,25767,27205,1]', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        

                                        Bzgl. cleanRoom würde dann auch Folgendes gehen?!

                                         sendTo("mihome-vacuum.0", "addToQueue", {cleanRooms:'enum.rooms.wohnzimmer, enum.rooms.esszimmer', FanPower:102, WaterBoxMode:5}
                                        , async function (result) {
                                            console.log(result);
                                          });
                                        
                                        D 1 Antwort Letzte Antwort
                                        0
                                        • R RkcCorian

                                          @dirkhe Nichts was mir lieber wäre :-)
                                          Als Bug oder als Geräte-Request?
                                          Hinweis: cleanZone müsste m.W. als Array übergeben werden...

                                           sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '[24117,26005,25767,27205,1]', FanPower:102, WaterBoxMode:5}
                                          , async function (result) {
                                              console.log(result);
                                            });
                                          

                                          Dann geht auch bspw. ...

                                           sendTo("mihome-vacuum.0", "addToQueue", {cleanZone: '[24117,26005,25767,27205,1],[24223,26777,25767,27205,1]', FanPower:102, WaterBoxMode:5}
                                          , async function (result) {
                                              console.log(result);
                                            });
                                          

                                          Bzgl. cleanRoom würde dann auch Folgendes gehen?!

                                           sendTo("mihome-vacuum.0", "addToQueue", {cleanRooms:'enum.rooms.wohnzimmer, enum.rooms.esszimmer', FanPower:102, WaterBoxMode:5}
                                          , async function (result) {
                                              console.log(result);
                                            });
                                          
                                          D Offline
                                          D Offline
                                          dirkhe
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #399

                                          @rkccorian ist ja ein feature request, weiß gerade gar nicht, was genau du da auswählen kannst. Im Zweifel labeln wir die sowoeso entsprechend.
                                          Also im Prinzip würde ich dasselbe wie bei den originären command cleanzone gehen und da wird nur ein String erwartet, weil der dann anschlissend in ein [] gepackt wird. Ich könnte aber auch abfragen, ob es ein array ist, aber dann müsste es ohne die ' übergeben werden

                                          R 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          567

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe