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

donate donate
  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.5k

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

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

Adapter mihome-vacuum anpassungen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
vacuumadapterentwicklungtestroborockzeitplanraumreinigung
518 Beiträge 68 Kommentatoren 116.5k Aufrufe 64 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.
  • D dirkhe

    @Diginix sagte in Adapter mihome-vacuum anpassungen:

    @dirkhe Ok, mit Raum beim mapindex hat der Timer soeben korrekt gestartet. Allerdings immer fast 1 Minute verzögert. Also erst 21:45 und 56 Sekunden sprang der Timer an.
    Für mich wäre es auch ok wenn die Stunden/Minuten im Adapter freie Eingaben wären. Dann könnte man jede Minute wählen wie auch in der MiHome App. Auch produktiv fände ich minimal alle 5 Minuten gut. So oft sieht man die Liste ja dann auch nicht.

    Ich habe es ja schon eingebaut, und das verzögerte... Da bin aktuell dran. Das liegt daran, dass ich mich an das pingintervall hänge. Muß dann bischen früher reagieren....

    DiginixD Offline
    DiginixD Offline
    Diginix
    schrieb am zuletzt editiert von
    #99

    @dirkhe Die Verzögerung ist mir egal. Das habe ich ja nur gemerkt weil ich die Funktionalität gerade genau prüfe.
    Hätte ja auch sein können, dass es ein lokales "Problem" bei mir ist.
    Ansonsten danke für die super Überarbeitung des Adapters!

    Wann planst du den PR in die offizielle Version damit man ihn regulär beziehen und aktualisieren kann?

    ..:: 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

    D 1 Antwort Letzte Antwort
    0
    • DiginixD Diginix

      @dirkhe Die Verzögerung ist mir egal. Das habe ich ja nur gemerkt weil ich die Funktionalität gerade genau prüfe.
      Hätte ja auch sein können, dass es ein lokales "Problem" bei mir ist.
      Ansonsten danke für die super Überarbeitung des Adapters!

      Wann planst du den PR in die offizielle Version damit man ihn regulär beziehen und aktualisieren kann?

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

      @Diginix sagte in Adapter mihome-vacuum anpassungen:

      Wann planst du den PR in die offizielle Version damit man ihn regulär beziehen und aktualisieren kann?

      Ich hatte gedacht, dass mal am WE anzugehen. Ich weiss auch nicht, wer den mergt, ich nehme mal an @Meistertr ?

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

        Minuten können jetzt auf alle 5 Minuten eingestellt werden und der timer geht auch pünktlich los

        DiginixD 1 Antwort Letzte Antwort
        1
        • D dirkhe

          @mumurik hast du den einzelnen Räumen auch einen IObroker Raum zugewiesen?
          9617ea20-56b9-40a4-960c-2575b5db71d4-image.png
          Was er genberell, auch bei den Timern macht, ist, dass er ausgehend von den ioBroker Räumen(die du bei Multi Clean zugewiesen hast) den entsprechenden mapIndex Eintrag sucht, der diesem Raum zugewiesen ist. Diesen mapIndex (oder halt auch mehrere) sendet er dann an den Robi

          M Offline
          M Offline
          mumurik
          schrieb am zuletzt editiert von
          #102

          @dirkhe sagte in Adapter mihome-vacuum anpassungen:

          @mumurik hast du den einzelnen Räumen auch einen IObroker Raum zugewiesen?
          9617ea20-56b9-40a4-960c-2575b5db71d4-image.png
          Was er genberell, auch bei den Timern macht, ist, dass er ausgehend von den ioBroker Räumen(die du bei Multi Clean zugewiesen hast) den entsprechenden mapIndex Eintrag sucht, der diesem Raum zugewiesen ist. Diesen mapIndex (oder halt auch mehrere) sendet er dann an den Robi

          ja, das hatte ich gemacht, jeder einzelner Raum ist einem IoBroker-Raum zugewiesen, wie bei dir im Screenshot. Im Object multiRoomClean sind die Räume angegeben, die mit multiClean angesteuert werden sollen.
          Mir ist aber noch nicht klar, wie ich den Roboter starte, damit er die Räume ansteuert, die im multiRoomClean angegeben sind, einfach den Objekt multiRoomClean auf true setzen? Da passiert leider nichts, das habe ich bereits versucht...

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

            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 1 Antwort Letzte Antwort
            0
            • D dirkhe

              @Meistertr sagte in Adapter mihome-vacuum anpassungen:

              @dirkhe die installation klappt ja, dann würde ich im code ein anfrage mit einbauen das canvas nur bei 64 bit genutzt wird und bei 32 nicht..

              Ich habe jetzt mal Valetudo optional eingebunden, sprich nur wenn es enabled ist, wird der code geladen. Ich wußte nicht, ob man ggf. nur einen Teil benutzten kann oder nicht, dass müsstest du dir dann mal anschauen, ggf, das optionale loading eine Ebene tiefer legen

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

              @dirkhe danke, ne sieht so gut aus. danke.

              1 Antwort Letzte Antwort
              0
              • D dirkhe

                Minuten können jetzt auf alle 5 Minuten eingestellt werden und der timer geht auch pünktlich los

                DiginixD Offline
                DiginixD Offline
                Diginix
                schrieb am zuletzt editiert von Diginix
                #105

                @dirkhe sagte in Adapter mihome-vacuum anpassungen:

                Minuten können jetzt auf alle 5 Minuten eingestellt werden und der timer geht auch pünktlich los

                @dirkhe Kann ich bestätigen.

                Der Channel vom Raum muss den ioBroker Raum haben, nicht nur das mapindex Objekt.
                Ich hab eben 3 Testtimer gebraucht, bei denen anfangs nur der mapindex den Raum kannte und es wurde keine Reinigung gestartet. Nur der Logeintrag für die vermeintliche Reinigung kam zum richtigen Zeitpunkt.
                Erst wenn der Channel den Raum kennt, weiß der Adapter wirklich welcher Raum gemeint ist.
                Daher wäre es cool wenn im Log bei der Zeile "set nächster Timer" gleich noch die Räume+Index mit ausgegeben würden.
                Bei den fehlgeschlagenen Tests ist vollkommen unbekannt was der Adapter an den Sauger gesendet hat.
                Loglevel Debug hab ich nicht aktiv. Vermutlich war es ein leeres "app_segment_clean".

                ..:: 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 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  dirkhe
                  Developer
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    dirkhe
                    Developer
                    schrieb am zuletzt editiert von
                    #107

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

                    1 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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 Offline
                          D Offline
                          dirkhe
                          Developer
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            dirkhe
                            Developer
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • D Offline
                                D Offline
                                dirkhe
                                Developer
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • D Offline
                                    D Offline
                                    dirkhe
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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...

                                      :confused:

                                      DiginixD 1 Antwort Letzte Antwort
                                      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...

                                        :confused:

                                        DiginixD Offline
                                        DiginixD Offline
                                        Diginix
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          dirkhe
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          557

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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