Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    805

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.6k

Adapter mihome-vacuum anpassungen

Scheduled Pinned Locked Moved Entwicklung
vacuumadapterentwicklungtestroborockzeitplanraumreinigung
518 Posts 68 Posters 132.7k Views 64 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.
  • D Do not disturb
    D Do not disturb
    dirkhe
    Developer
    wrote on last edited by
    #106

    Hmmm, ich habe gerade nochmal in den code geschaut. Also der TimerManager merkt sich nur die id des Timers. Wenn er dann dran ist, wird anhand des timers ermittelt, welche Räume daran gepflegt sind. Da wird überall die gleiche Funktion genutzt, ob du bei einem Timer sofort starten auswählst oder ob du multiroomclean drückst. mit den Räumen wird intern "cleanRooms" aufgerufen. Der mach dann folgendes

    case 'cleanRooms':
                   let rooms= obj.message // comma separated String with enum.rooms.XXX
                   rooms && adapter.getForeignObjects(adapter.namespace + '.rooms.*.mapIndex', 'state', 'rooms',function(err,states){
                       if (states){
                           let mapIndex= [];
                           for ( let stateId in states){
                               for ( let r in states[stateId].enums)
                                   if (rooms.indexOf(r) >= 0)
                                       mapIndex.push(stateId)
                           }
                           if (mapIndex.length == 1){ // trigger button, because than the fan_power will also set
                               adapter.setForeignState(mapIndex[0].replace('.mapIndex','.roomClean'), true, false);
                           } else if (mapIndex.length > 0){
                               adapter.getForeignStates(mapIndex, function(err,states){
                                   mapIndex= [];
                                   for ( let stateId in states){
                                       let val= parseInt(states[stateId].val,10)
                                       if (val != NaN)
                                           mapIndex.push(val)
                                   }
                                   adapter.sendTo(adapter.namespace, "cleanSegments",mapIndex.join(','))
                               })
                           }
                       }
                   });
                   return;
    

    was soviel heißt, wie gib mir die mapIndex Einträge aller Räume meines Adapters.
    Dabei werdnen dann auch sofort die Räume mit ausgelesen. Dann frage ich von jedem zurückgegeben (mapIndex-)Objekt die Räume ab und vergleiche die mit den angeforderten. Das wird dann an "cleanSegments" direkt oder indirekt (bei einnem Treffer) übergeben.
    Darum schreibe ich ins log auch nur, wann der nächste Timer (incl dessen id) losgeht. Der Raum interessiert mich da noch nicht.
    Ich könnte aber in den commands noch eine Warnung ausgeben, wenn diese ohne Parameter aufgerufen würden. Zusätzlich könnte ich auch noch in den Namen des Channels timer die TimerID reinschreiben

    Ich habe das gerade auch nochmal ausprobiert und bei mir funktioniert das auch mit dem Raum nur an mapIndex.

    DiginixD 1 Reply Last reply
    0
    • D Do not disturb
      D Do not disturb
      dirkhe
      Developer
      wrote on last edited by
      #107

      Ich habe jetzt nochmal die Warnings bei leeren Räumen/mapIndex mit reingepackt und einen PR gestellt.

      1 Reply Last reply
      0
      • D dirkhe

        Hmmm, ich habe gerade nochmal in den code geschaut. Also der TimerManager merkt sich nur die id des Timers. Wenn er dann dran ist, wird anhand des timers ermittelt, welche Räume daran gepflegt sind. Da wird überall die gleiche Funktion genutzt, ob du bei einem Timer sofort starten auswählst oder ob du multiroomclean drückst. mit den Räumen wird intern "cleanRooms" aufgerufen. Der mach dann folgendes

        case 'cleanRooms':
                       let rooms= obj.message // comma separated String with enum.rooms.XXX
                       rooms && adapter.getForeignObjects(adapter.namespace + '.rooms.*.mapIndex', 'state', 'rooms',function(err,states){
                           if (states){
                               let mapIndex= [];
                               for ( let stateId in states){
                                   for ( let r in states[stateId].enums)
                                       if (rooms.indexOf(r) >= 0)
                                           mapIndex.push(stateId)
                               }
                               if (mapIndex.length == 1){ // trigger button, because than the fan_power will also set
                                   adapter.setForeignState(mapIndex[0].replace('.mapIndex','.roomClean'), true, false);
                               } else if (mapIndex.length > 0){
                                   adapter.getForeignStates(mapIndex, function(err,states){
                                       mapIndex= [];
                                       for ( let stateId in states){
                                           let val= parseInt(states[stateId].val,10)
                                           if (val != NaN)
                                               mapIndex.push(val)
                                       }
                                       adapter.sendTo(adapter.namespace, "cleanSegments",mapIndex.join(','))
                                   })
                               }
                           }
                       });
                       return;
        

        was soviel heißt, wie gib mir die mapIndex Einträge aller Räume meines Adapters.
        Dabei werdnen dann auch sofort die Räume mit ausgelesen. Dann frage ich von jedem zurückgegeben (mapIndex-)Objekt die Räume ab und vergleiche die mit den angeforderten. Das wird dann an "cleanSegments" direkt oder indirekt (bei einnem Treffer) übergeben.
        Darum schreibe ich ins log auch nur, wann der nächste Timer (incl dessen id) losgeht. Der Raum interessiert mich da noch nicht.
        Ich könnte aber in den commands noch eine Warnung ausgeben, wenn diese ohne Parameter aufgerufen würden. Zusätzlich könnte ich auch noch in den Namen des Channels timer die TimerID reinschreiben

        Ich habe das gerade auch nochmal ausprobiert und bei mir funktioniert das auch mit dem Raum nur an mapIndex.

        DiginixD Offline
        DiginixD Offline
        Diginix
        wrote on last edited by Diginix
        #108

        @dirkhe Wenn alle Timer mal funktionieren, dann interessiere ich mich auch nicht mehr für Logeinträge. Am Ende stelle ich die meisten Adapter eh auf Loglevel warn. Da ich nun eine Lösung habe, die funktioniert, brauchst du da kein Aufwand betreiben. So wieder Adapter jetzt ist, ist er perfekt für mich. Ich brauche die MiHome App nun gar nicht mehr, außer vllt. mal für die Kartenbearbeitung.

        D.h. sobald @Meistertr den PR merged müsste der offizielle Adapter alle deine Erweiterungen enthalten?

        ..:: So long! Tom ::..

        NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

        1 Reply Last reply
        0
        • D dirkhe

          Ich habe es bei mir gerade nochmal getestet und es funktioniert. Es ist doch ein Button, da musst du draufdrücken, im Prinzip wird das auf true gesetzt, das stimmt.
          Setzte den adapter mal auf debug und schaue mal in Log oder poste es hier

          M Offline
          M Offline
          mumurik
          wrote on last edited by
          #109

          @dirkhe sagte in Adapter mihome-vacuum anpassungen:

          Ich habe es bei mir gerade nochmal getestet und es funktioniert. Es ist doch ein Button, da musst du draufdrücken, im Prinzip wird das auf true gesetzt, das stimmt.
          Setzte den adapter mal auf debug und schaue mal in Log oder poste es hier

          bekomme folgende Fehlermeldung:

          mihome-vacuum.0	2020-01-17 20:06:25.148	error	[189](unknown) -> data for segment is not a number
          mihome-vacuum.0	2020-01-17 20:06:25.147	debug	Receive <<< {"error":{"code":-10000,"message":"data for segment is not a number"},"id":189}<<< 21310080000000000f9d2ccf5e2205b1896f24d2d6fc15813b1b98775008e4b00d55212412c09a0daa616947a3b1b72c0a841aac
          mihome-vacuum.0	2020-01-17 20:06:25.134	debug	sendMsgRaw >>> 21310070000000000f9d2ccf5e2205b112e0cce154de492e8055bae31aab0352808c12daa905e370d2440111e12dcf7a828d84b4c97c92dddeb33a565971ab300ca8f55808a67fa5e20250d8e90be0b916c1cade5d1839e5e4e84ce4
          mihome-vacuum.0	2020-01-17 20:06:25.134	debug	sendMsg >>> {"id":189,"method":"app_segment_clean","params":[null,17,null,104]}
          mihome-vacuum.0	2020-01-17 20:06:25.133	debug	Timestamp: 5e2205b1
          mihome-vacuum.0	2020-01-17 20:06:25.133	debug	trigger cleaning segment NaN,17,NaN,104
          mihome-vacuum.0	2020-01-17 20:06:25.132	debug	redis pmessage messagebox.system.adapter.mihome-vacuum.0 messagebox.system.adapter.mihome-vacuum.0 {"command":"cleanSegments","message":"NaN,17,NaN,104","from":"system.adapter.mihome-vacuum.0","_id"
          mihome-vacuum.0	2020-01-17 20:06:25.129	debug	sendTo "cleanSegments" to system.adapter.mihome-vacuum.0 from system.adapter.mihome-vacuum.0: NaN,17,NaN,104
          mihome-vacuum.0	2020-01-17 20:06:25.042	debug	redis pmessage messagebox.system.adapter.mihome-vacuum.0 messagebox.system.adapter.mihome-vacuum.0 {"command":"cleanRooms","message":"enum.rooms.kitchen","from":"system.adapter.mihome-vacuum.0","_id
          mihome-vacuum.0	2020-01-17 20:06:25.040	debug	sendTo "cleanRooms" to system.adapter.mihome-vacuum.0 from system.adapter.mihome-vacuum.0: enum.rooms.kitchen
          mihome-vacuum.0	2020-01-17 20:06:24.979	debug	stateChange mihome-vacuum.0.rooms.multiRoomClean {"val":false,"ack":false,"ts":1579287984977,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1579287984977}
          mihome-vacuum.0	2020-01-17 20:06:24.978	debug	redis pmessage io.mihome-vacuum.0.* io.mihome-vacuum.0.rooms.multiRoomClean {"val":false,"ack":false,"ts":1579287984977,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":15792879
          
          D 1 Reply Last reply
          0
          • M mumurik

            @dirkhe sagte in Adapter mihome-vacuum anpassungen:

            Ich habe es bei mir gerade nochmal getestet und es funktioniert. Es ist doch ein Button, da musst du draufdrücken, im Prinzip wird das auf true gesetzt, das stimmt.
            Setzte den adapter mal auf debug und schaue mal in Log oder poste es hier

            bekomme folgende Fehlermeldung:

            mihome-vacuum.0	2020-01-17 20:06:25.148	error	[189](unknown) -> data for segment is not a number
            mihome-vacuum.0	2020-01-17 20:06:25.147	debug	Receive <<< {"error":{"code":-10000,"message":"data for segment is not a number"},"id":189}<<< 21310080000000000f9d2ccf5e2205b1896f24d2d6fc15813b1b98775008e4b00d55212412c09a0daa616947a3b1b72c0a841aac
            mihome-vacuum.0	2020-01-17 20:06:25.134	debug	sendMsgRaw >>> 21310070000000000f9d2ccf5e2205b112e0cce154de492e8055bae31aab0352808c12daa905e370d2440111e12dcf7a828d84b4c97c92dddeb33a565971ab300ca8f55808a67fa5e20250d8e90be0b916c1cade5d1839e5e4e84ce4
            mihome-vacuum.0	2020-01-17 20:06:25.134	debug	sendMsg >>> {"id":189,"method":"app_segment_clean","params":[null,17,null,104]}
            mihome-vacuum.0	2020-01-17 20:06:25.133	debug	Timestamp: 5e2205b1
            mihome-vacuum.0	2020-01-17 20:06:25.133	debug	trigger cleaning segment NaN,17,NaN,104
            mihome-vacuum.0	2020-01-17 20:06:25.132	debug	redis pmessage messagebox.system.adapter.mihome-vacuum.0 messagebox.system.adapter.mihome-vacuum.0 {"command":"cleanSegments","message":"NaN,17,NaN,104","from":"system.adapter.mihome-vacuum.0","_id"
            mihome-vacuum.0	2020-01-17 20:06:25.129	debug	sendTo "cleanSegments" to system.adapter.mihome-vacuum.0 from system.adapter.mihome-vacuum.0: NaN,17,NaN,104
            mihome-vacuum.0	2020-01-17 20:06:25.042	debug	redis pmessage messagebox.system.adapter.mihome-vacuum.0 messagebox.system.adapter.mihome-vacuum.0 {"command":"cleanRooms","message":"enum.rooms.kitchen","from":"system.adapter.mihome-vacuum.0","_id
            mihome-vacuum.0	2020-01-17 20:06:25.040	debug	sendTo "cleanRooms" to system.adapter.mihome-vacuum.0 from system.adapter.mihome-vacuum.0: enum.rooms.kitchen
            mihome-vacuum.0	2020-01-17 20:06:24.979	debug	stateChange mihome-vacuum.0.rooms.multiRoomClean {"val":false,"ack":false,"ts":1579287984977,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1579287984977}
            mihome-vacuum.0	2020-01-17 20:06:24.978	debug	redis pmessage io.mihome-vacuum.0.* io.mihome-vacuum.0.rooms.multiRoomClean {"val":false,"ack":false,"ts":1579287984977,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":15792879
            
            D Do not disturb
            D Do not disturb
            dirkhe
            Developer
            wrote on last edited by
            #110

            @mumurik hast du irgendwelche leeren mapindex, denen du einen Raum zugewiesen hast?
            Ich sollte das zwar abfangen, wollte aber zumindest wissen, was die Ursache ist

            1 Reply Last reply
            0
            • D Do not disturb
              D Do not disturb
              dirkhe
              Developer
              wrote on last edited by
              #111

              Ich habe gerade nochmal in den code geschaut. Ich fange das mittlerweile ab, kann das sein, dass du noch eine ältere Version hast?

              M 1 Reply Last reply
              0
              • D dirkhe

                Ich habe gerade nochmal in den code geschaut. Ich fange das mittlerweile ab, kann das sein, dass du noch eine ältere Version hast?

                M Offline
                M Offline
                mumurik
                wrote on last edited by
                #112

                @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                Ich habe gerade nochmal in den code geschaut. Ich fange das mittlerweile ab, kann das sein, dass du noch eine ältere Version hast?

                nein, ich habe heute alles deinstalliert und die neueste Version gezogen.

                Einen leeren Mapindex habe ich nicht, ich zeig dir am besten, wie es bei mir aussieht:
                f6cb12fe-ee5e-47ce-8775-3bb58ac503b7-image.png

                "roomClean" in jedem Zimmer funktioniert einwandfrei, wenn ich diesen auf true setze, aber "multiCleanRoom" funktioniert weder mit einem einzigen zugewiesenen Raum noch mit mehreren Räumen.

                Was ich gerade getestet habe, auch der Timer funktionier nicht, für keinen Raum, egal welche ich auswähle...

                Kann es sein, dass ich bei der Raumzuordnung/Benennung irgendetwas falsch gemacht habe bzw. dort noch irgendetwas verkehrt läuft?

                1 Reply Last reply
                0
                • D Do not disturb
                  D Do not disturb
                  dirkhe
                  Developer
                  wrote on last edited by
                  #113

                  Wenn ich mir oben das Log nochmal ansehe, wird da Nan,17,NaN,104 übergeben. Hast du wirklich einen Index von 104?

                  M 1 Reply Last reply
                  0
                  • D dirkhe

                    Wenn ich mir oben das Log nochmal ansehe, wird da Nan,17,NaN,104 übergeben. Hast du wirklich einen Index von 104?

                    M Offline
                    M Offline
                    mumurik
                    wrote on last edited by
                    #114

                    @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                    Wenn ich mir oben das Log nochmal ansehe, wird da Nan,17,NaN,104 übergeben. Hast du wirklich einen Index von 104?

                    Nein, 104 ist eher die Saugstäkre, so ist es zumindest für diesen Raum (Raumindex 17) eingestellt

                    1 Reply Last reply
                    0
                    • D Do not disturb
                      D Do not disturb
                      dirkhe
                      Developer
                      wrote on last edited by
                      #115

                      Bin jetzt echt verwirrt, denn er ruft ja cleanrooms mit dem Parameter Küche auf, das man man im Log ja sehen. Da n wird der Code, den ich weiter oben gespoilert habe aufgerufen. Wenn du sagst, dass die 104 die saugstärke ist, sieht das ja so aus, als wenn das getforeignstate nicht richtig funktionieren würde. Welche js-controller hast du denn installiert? Aber unabhängig davon, wird doch eindeutig auf Zahl, bzw nan geprüft...
                      Kannst du mal bitte in der iobroker/node_modules/ioBroker.mihome-vacuum.main.js nach dem Code von oben suchen, ob der da genauso drin steht?

                      M 1 Reply Last reply
                      0
                      • D dirkhe

                        Bin jetzt echt verwirrt, denn er ruft ja cleanrooms mit dem Parameter Küche auf, das man man im Log ja sehen. Da n wird der Code, den ich weiter oben gespoilert habe aufgerufen. Wenn du sagst, dass die 104 die saugstärke ist, sieht das ja so aus, als wenn das getforeignstate nicht richtig funktionieren würde. Welche js-controller hast du denn installiert? Aber unabhängig davon, wird doch eindeutig auf Zahl, bzw nan geprüft...
                        Kannst du mal bitte in der iobroker/node_modules/ioBroker.mihome-vacuum.main.js nach dem Code von oben suchen, ob der da genauso drin steht?

                        M Offline
                        M Offline
                        mumurik
                        wrote on last edited by
                        #116

                        @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                        Bin jetzt echt verwirrt, denn er ruft ja cleanrooms mit dem Parameter Küche auf, das man man im Log ja sehen. Da n wird der Code, den ich weiter oben gespoilert habe aufgerufen. Wenn du sagst, dass die 104 die saugstärke ist, sieht das ja so aus, als wenn das getforeignstate nicht richtig funktionieren würde. Welche js-controller hast du denn installiert? Aber unabhängig davon, wird doch eindeutig auf Zahl, bzw nan geprüft...
                        Kannst du mal bitte in der iobroker/node_modules/ioBroker.mihome-vacuum.main.js nach dem Code von oben suchen, ob der da genauso drin steht?

                        habe den js-controller: 1.5.11

                        bei mir sieht die main.js tatsächlich etwas anders aus:

                         case 'cleanRooms':
                                        let rooms= obj.message // comma separated String with enum.rooms.XXX
                                        if (!rooms) return adapter.log.warn("cleanRooms needs paramter ioBroker room-id's")
                                        adapter.getForeignObjects(adapter.namespace + '.rooms.*.mapIndex', 'state', 'rooms', function (err, states) {
                                            if (states){
                                                let mapIndex= [];
                                                for ( let stateId in states){
                                                    for ( let r in states[stateId].enums)
                                                        if (rooms.indexOf(r) >= 0)
                                                            mapIndex.push(stateId)
                                                }
                                                if (mapIndex.length == 1){ // trigger button, because than the fan_power will also set
                                                    adapter.setForeignState(mapIndex[0].replace('.mapIndex','.roomClean'), true, false);
                                                } else if (mapIndex.length > 0){
                                                    adapter.getForeignStates(mapIndex, function(err,states){
                                                        mapIndex= [];
                                                        for ( let stateId in states){
                                                            let val= parseInt(states[stateId].val,10)
                                                            if (val != NaN)
                                                                mapIndex.push(val)
                                                        }
                                                        adapter.sendTo(adapter.namespace, "cleanSegments",mapIndex.join(','))
                                                    })
                                                } else
                                                    adapter.log.warn('cleanRooms found no mapIndex for ' + rooms)
                                            } else
                                                adapter.log.warn("cleanRooms found no room-channel with mapIndex")
                                        });
                                        return;
                        
                        
                        

                        schon ab der Zeile 3...

                        😕

                        DiginixD 1 Reply Last reply
                        0
                        • M mumurik

                          @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                          Bin jetzt echt verwirrt, denn er ruft ja cleanrooms mit dem Parameter Küche auf, das man man im Log ja sehen. Da n wird der Code, den ich weiter oben gespoilert habe aufgerufen. Wenn du sagst, dass die 104 die saugstärke ist, sieht das ja so aus, als wenn das getforeignstate nicht richtig funktionieren würde. Welche js-controller hast du denn installiert? Aber unabhängig davon, wird doch eindeutig auf Zahl, bzw nan geprüft...
                          Kannst du mal bitte in der iobroker/node_modules/ioBroker.mihome-vacuum.main.js nach dem Code von oben suchen, ob der da genauso drin steht?

                          habe den js-controller: 1.5.11

                          bei mir sieht die main.js tatsächlich etwas anders aus:

                           case 'cleanRooms':
                                          let rooms= obj.message // comma separated String with enum.rooms.XXX
                                          if (!rooms) return adapter.log.warn("cleanRooms needs paramter ioBroker room-id's")
                                          adapter.getForeignObjects(adapter.namespace + '.rooms.*.mapIndex', 'state', 'rooms', function (err, states) {
                                              if (states){
                                                  let mapIndex= [];
                                                  for ( let stateId in states){
                                                      for ( let r in states[stateId].enums)
                                                          if (rooms.indexOf(r) >= 0)
                                                              mapIndex.push(stateId)
                                                  }
                                                  if (mapIndex.length == 1){ // trigger button, because than the fan_power will also set
                                                      adapter.setForeignState(mapIndex[0].replace('.mapIndex','.roomClean'), true, false);
                                                  } else if (mapIndex.length > 0){
                                                      adapter.getForeignStates(mapIndex, function(err,states){
                                                          mapIndex= [];
                                                          for ( let stateId in states){
                                                              let val= parseInt(states[stateId].val,10)
                                                              if (val != NaN)
                                                                  mapIndex.push(val)
                                                          }
                                                          adapter.sendTo(adapter.namespace, "cleanSegments",mapIndex.join(','))
                                                      })
                                                  } else
                                                      adapter.log.warn('cleanRooms found no mapIndex for ' + rooms)
                                              } else
                                                  adapter.log.warn("cleanRooms found no room-channel with mapIndex")
                                          });
                                          return;
                          
                          
                          

                          schon ab der Zeile 3...

                          😕

                          DiginixD Offline
                          DiginixD Offline
                          Diginix
                          wrote on last edited by
                          #117

                          @mumurik Dann solltest du den Adapter mal mit der GIT URL installieren und danach noch mal beim Adapter auf das Upload Icon klicken. Danach nochmal die main.js checken. Ob der alte JS-Controller das ganze auch noch beeinflusst weiß nur @dirkhe .

                          ..:: So long! Tom ::..

                          NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                          M 1 Reply Last reply
                          0
                          • D Do not disturb
                            D Do not disturb
                            dirkhe
                            Developer
                            wrote on last edited by
                            #118

                            Also der code ist schon der richtige, der ist sogar schon neuer. Auf jeden Fall ist die Abfrage da schon drin. Ob es Unterschiede bei den controllern gibt, muss ich jetzt erstmal checken, darum wollte ich ja die Version haben. Ich meld mich dazu

                            1 Reply Last reply
                            0
                            • DiginixD Diginix

                              @mumurik Dann solltest du den Adapter mal mit der GIT URL installieren und danach noch mal beim Adapter auf das Upload Icon klicken. Danach nochmal die main.js checken. Ob der alte JS-Controller das ganze auch noch beeinflusst weiß nur @dirkhe .

                              M Offline
                              M Offline
                              mumurik
                              wrote on last edited by
                              #119

                              @Diginix sagte in Adapter mihome-vacuum anpassungen:

                              @mumurik Dann solltest du den Adapter mal mit der GIT URL installieren und danach noch mal beim Adapter auf das Upload Icon klicken. Danach nochmal die main.js checken. Ob der alte JS-Controller das ganze auch noch beeinflusst weiß nur @dirkhe .

                              genauso bitte ich die ganze Zeit auch vorgegangen...

                              D 1 Reply Last reply
                              0
                              • M mumurik

                                @Diginix sagte in Adapter mihome-vacuum anpassungen:

                                @mumurik Dann solltest du den Adapter mal mit der GIT URL installieren und danach noch mal beim Adapter auf das Upload Icon klicken. Danach nochmal die main.js checken. Ob der alte JS-Controller das ganze auch noch beeinflusst weiß nur @dirkhe .

                                genauso bitte ich die ganze Zeit auch vorgegangen...

                                D Do not disturb
                                D Do not disturb
                                dirkhe
                                Developer
                                wrote on last edited by
                                #120

                                @mumurik Teste bitte mal folgendes:
                                Du gehst in die config des Adapters (am besten mit chrome)
                                dann drückst du F12, damit du in die Entwickler tools kommst:
                                2d27d588-c4c1-4f3b-8b72-75e9c9ca9044-image.png
                                da gehst du auf console und wählst den content iframe aus. Dann gibst du rechts folgendes ein

                                socket.emit('getObjectView', 'system', 'state', {
                                         startkey: namespace + 'rooms..mapIndex',
                                         endkey: namespace + 'rooms.\u9999.mapIndex'
                                }, function (err, states) { console.log(states) });
                                

                                und postest das Ergebnis

                                M 1 Reply Last reply
                                0
                                • D dirkhe

                                  @mumurik Teste bitte mal folgendes:
                                  Du gehst in die config des Adapters (am besten mit chrome)
                                  dann drückst du F12, damit du in die Entwickler tools kommst:
                                  2d27d588-c4c1-4f3b-8b72-75e9c9ca9044-image.png
                                  da gehst du auf console und wählst den content iframe aus. Dann gibst du rechts folgendes ein

                                  socket.emit('getObjectView', 'system', 'state', {
                                           startkey: namespace + 'rooms..mapIndex',
                                           endkey: namespace + 'rooms.\u9999.mapIndex'
                                  }, function (err, states) { console.log(states) });
                                  

                                  und postest das Ergebnis

                                  M Offline
                                  M Offline
                                  mumurik
                                  wrote on last edited by mumurik
                                  #121

                                  @dirkhe

                                  socket.emit('getObjectView', 'system', 'state', {
                                           startkey: namespace + 'rooms..mapIndex',
                                           endkey: namespace + 'rooms.\u9999.mapIndex'
                                  }, function (err, states) { console.log(states) });
                                  n {io: n, nsp: "/", json: n, ids: 7, acks: {…}, …}
                                  VM267:4 
                                  {rows: Array(27)}
                                  rows: Array(27)
                                  0: {id: "mihome-vacuum.0.rooms.loadRooms", value: {…}}
                                  1: {id: "mihome-vacuum.0.rooms.multiRoomClean", value: {…}}
                                  2: {id: "mihome-vacuum.0.rooms.addRoom", value: {…}}
                                  3: {id: "mihome-vacuum.0.rooms.137001123082.mapIndex", value: {…}}
                                  4: {id: "mihome-vacuum.0.rooms.137001123082.roomClean", value: {…}}
                                  5: {id: "mihome-vacuum.0.rooms.137001074750.mapIndex", value: {…}}
                                  6: {id: "mihome-vacuum.0.rooms.137001074750.roomClean", value: {…}}
                                  7: {id: "mihome-vacuum.0.rooms.137001074749.mapIndex", value: {…}}
                                  8: {id: "mihome-vacuum.0.rooms.137001074749.roomClean", value: {…}}
                                  9: {id: "mihome-vacuum.0.rooms.137001123083.mapIndex", value: {…}}
                                  10: {id: "mihome-vacuum.0.rooms.137001123083.roomClean", value: {…}}
                                  11: {id: "mihome-vacuum.0.rooms.137001123081.mapIndex", value: {…}}
                                  12: {id: "mihome-vacuum.0.rooms.137001123081.roomClean", value: {…}}
                                  13: {id: "mihome-vacuum.0.rooms.137001068653.mapIndex", value: {…}}
                                  14: {id: "mihome-vacuum.0.rooms.137001068653.roomClean", value: {…}}
                                  15: {id: "mihome-vacuum.0.rooms.137001102054.mapIndex", value: {…}}
                                  16: {id: "mihome-vacuum.0.rooms.137001102054.roomClean", value: {…}}
                                  17: {id: "mihome-vacuum.0.rooms.137001102055.mapIndex", value: {…}}
                                  18: {id: "mihome-vacuum.0.rooms.137001102055.roomClean", value: {…}}
                                  19: {id: "mihome-vacuum.0.rooms.137001123082.roomFanPower", value: {…}}
                                  20: {id: "mihome-vacuum.0.rooms.137001074750.roomFanPower", value: {…}}
                                  21: {id: "mihome-vacuum.0.rooms.137001074749.roomFanPower", value: {…}}
                                  22: {id: "mihome-vacuum.0.rooms.137001123083.roomFanPower", value: {…}}
                                  23: {id: "mihome-vacuum.0.rooms.137001123081.roomFanPower", value: {…}}
                                  24: {id: "mihome-vacuum.0.rooms.137001068653.roomFanPower", value: {…}}
                                  25: {id: "mihome-vacuum.0.rooms.137001102054.roomFanPower", value: {…}}
                                  26: {id: "mihome-vacuum.0.rooms.137001102055.roomFanPower", value: {…}}
                                  length: 27
                                  __proto__: Array(0)
                                  __proto__: Object
                                  

                                  0a448314-6ceb-4ca6-8a97-8be3706e700d-image.png

                                  1 Reply Last reply
                                  0
                                  • D Do not disturb
                                    D Do not disturb
                                    dirkhe
                                    Developer
                                    wrote on last edited by
                                    #122

                                    das scheint, wie vermutet ein bug im JS-controller zu sein, der in der 2er version gefixt ist. Ich baue mal noch eine extra Abfrage ein, die nochmal auf mapIndex filtert

                                    M 2 Replies Last reply
                                    0
                                    • D dirkhe

                                      das scheint, wie vermutet ein bug im JS-controller zu sein, der in der 2er version gefixt ist. Ich baue mal noch eine extra Abfrage ein, die nochmal auf mapIndex filtert

                                      M Offline
                                      M Offline
                                      mumurik
                                      wrote on last edited by
                                      #123

                                      @dirkhe
                                      super, danke!

                                      1 Reply Last reply
                                      0
                                      • D dirkhe

                                        @xADDRx siehe meinen Kommentar von oben

                                        @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                                        Die Karte wird in/durch die App in Räume aufgeteilt. Dabei bekommt jeder Raum eine fortlaufende Nummer. Da man in der Regel dann drei Karten hat (incl Backup), ist man bei der aktuellen dann irgendwann bei 3 x Räume. Ich vermute zumindest, dass der Index daher kommt. Da hilft dann nur ausprobieren und den Sauger einfach mal irendwo hinschicken, zb. nach 10 per customcommand app_segment_clean;10. Wenn du dann einen Treffer hast, kannst du per addRoom die 10 einegebn und er legt dir den Raum an.

                                        X Offline
                                        X Offline
                                        xADDRx
                                        wrote on last edited by
                                        #124

                                        @dirkhe Hab jetzt mal einiges versucht. sobald ich eine Nummer eingebe, fährt der Roboter kurz raus und wieder rein... Habt ´Ihr einen Tipp für mich?

                                        Ist es eig. normal das einige Räume die selbe Farbe haben?IMG_20200119_004727.PNG

                                        Sonos, Intel Nuc, Iobroker Pro, Proxmox, IPad Air (Wand), Vis, Xiaomi, Devolo, Bose, Philips Hue, Instar, Synology

                                        D 1 Reply Last reply
                                        0
                                        • X xADDRx

                                          @dirkhe Hab jetzt mal einiges versucht. sobald ich eine Nummer eingebe, fährt der Roboter kurz raus und wieder rein... Habt ´Ihr einen Tipp für mich?

                                          Ist es eig. normal das einige Räume die selbe Farbe haben?IMG_20200119_004727.PNG

                                          D Do not disturb
                                          D Do not disturb
                                          dirkhe
                                          Developer
                                          wrote on last edited by
                                          #125

                                          @xADDRx sagte in Adapter mihome-vacuum anpassungen:

                                          @dirkhe Hab jetzt mal einiges versucht. sobald ich eine Nummer eingebe, fährt der Roboter kurz raus und wieder rein... Habt ´Ihr einen Tipp für mich?

                                          Kannst du mal das Log schicken, ggf, den Afdapter vorher auf debug stellen

                                          Das mit den Raumfarben weiß ich nicht, aber da die nicht zusammenhängend sind, wird das wahrscheinlich egal sein. Bekommst du denn für jeden Raum eine eigene Nummer?

                                          X 1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          450

                                          Online

                                          32.8k

                                          Users

                                          82.7k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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