Plugin: MiRobot2Lox / Xiaomi Vacuum Robot mit MiniServer steuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7319

    #61
    Ich denke dein pip oder setuptools hat einen Fehler.

    versuch mal pip3 install -U setuptools
    ansonsten pip3 de und wieder installieren.
    Kein Support per PN!

    Kommentar

    • RiverRaid
      LoxBus Spammer
      • 25.08.2015
      • 304

      #62
      Hallo!

      Erstmal danke für Dein Plugin

      Ich habe es jetzt installiert, da mein Roboter hoffentlich die nächsten Tage kommen wird
      Allerdings schaffe ich es nicht in die Einstellungen. Wenn ich auf das Plugin klicke, kommt nur "Error loading page".
      Loxberry ist verion 0.2.3 Natürlich habe ich nach der Installation einen neustart gemacht und gewartet. Auch mehrmaliges deinstallieren und installieren hat nichts gebracht. Hast Du eine Idee, was da sein könnte?

      Nachtrag:

      Ich habe es nocheinmal probiert und dann alles genau angesehen. Hier die Auflösung, falls jemand das selbe Problem haben sollte

      Im Install - Log waren folgende fehhlermeldungen (warum auch immer):
      Code:
      <INFO> Aktualisiere APT-Paketdatenbank
      <INFO> Command: /usr/bin/sudo /usr/bin/apt-get -q -y update
      ..
      E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
      <INFO> Installiere zusätzliche Software-Pakete
      <INFO> Command: /usr/bin/sudo /usr/bin/apt-get -q -y install  python3 python3-pip python3-requests libstring-escape-perl libffi-dev libssl-dev bc fping socat
      E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
      Ich habe über putty dann manuell folgendes eingegeben:

      Code:
      sudo dpkg --configure -a
      /usr/bin/sudo /usr/bin/apt-get -q -y update
       /usr/bin/sudo /usr/bin/apt-get -q -y install  python3 python3-pip python3-requests libstring-escape-perl libffi-dev libssl-dev bc fping socat
      /bin/sh "/tmp/uploads/cmLxn09dWA/postinstall.sh" "cmLxn09dWA" "mirobot2lox" "mirobot2lox" "0.3.1" "/opt/loxberry"
      Dannach noch einen Neustart und es hat funktioniert :-D
      Angehängte Dateien
      Zuletzt geändert von RiverRaid; 30.11.2017, 22:10.

      Kommentar

      • Grosinger
        Dumb Home'r
        • 10.11.2015
        • 14

        #63
        Danke es funktioniert Alles!!

        Kommentar

        • Halskrause
          Extension Master
          • 11.06.2016
          • 109

          #64
          @hismastersvoice was cool wäre wenn es möglich wäre den "Wartungs-Reset" auch über Loxone zu steuern?!
          Loxone seit 2015

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7319

            #65
            Halskrause
            Die 0.4.0 ist online... da kannst du das jetzt per UDP Befehl.
            Loxwiki ist angepasst.
            Kein Support per PN!

            Kommentar


            • Halskrause
              Halskrause kommentierte
              Kommentar bearbeiten
              das ist ja wie Weihnachten....HALT STOP, heute ist ja Nikolaus. Ich werde nachher mal testen :-).
          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4748

            #66
            Ich habe mal eine Anleitung zum Auslesen des verschlüsselten Token unter iOS ins Wiki gestellt. Vielleicht könnte man das noch mit ins Plugin integrieren: Upload der extrahierten SQLITE-Datenbank und dann automatisches Extrahieren des Tokens

            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar

            • Prof.Mobilux
              Supermoderator
              • 25.08.2015
              • 4748

              #67
              Kann jemand das Plugin noch mit einem Robot nutzen, der auf Firmware 3.3.9_003077 läuft?

              Ich hatte alles schon am Laufen, dann habe ich ein Firmwareupdate gemacht. Seitdem geht's nicht mehr. Ich habe auch das Gefühl, dass der Token mit dieser Firmware nochmal zurückgesetzt wird, wenn man vom Robot-WLAN zurück ins normale WLAN wechselt.

              Ich habe zuerst die Flole App unter Android verwendet und damit den Token ausgelesen. Die App funktioniert auch, solange man noch im Robot-WLAN ist. https://www.frombeyond.de/2017/xiaom...groboter-fhem/ Dann muss man ja irgendwandas WLAN mit der Original App auf sein richtiges WLAN umstellen. Ab da funktioniert die Flole-App nicht mehr (mit der alten Firmware ging sie einwandfrei und natürlich habe ich die IP-Adresse in der App angepasst).

              Auch mit den python-miio-Tools bekomme ich keine Verbindung mehr, obwohl ich den (funktionierenden) Token aus der Flole-App benutzt habe. Dann habe ich den Token noch einmal aus dem iOS-Handy ausgelesen. Aber auch damit bekomme ich mit python-miio keine Verbindung mehr.

              WLAN resetten und ganzen Robot resetten habe ich mehrmals gemacht und hat keine Abhilfe geschaffen.

              Weiß jemand Rat?
              🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


              LoxBerry - Beyond the Limits

              Kommentar

              • hismastersvoice
                Supermoderator
                • 25.08.2015
                • 7319

                #68
                Bei mir funktioniert es mit der Firmware.
                Jedes mal wenn du das WLAN neu einrichtest wird ein neuer Token generiert.

                ​​​​​​Ich denke das es damit was zu tun hat.
                Was für eine Fehlermeldung bekommst du von miio?
                Kein Support per PN!

                Kommentar

                • Prof.Mobilux
                  Supermoderator
                  • 25.08.2015
                  • 4748

                  #69
                  Die Fehlermeldung war:

                  Code:
                  loxberry@loxberrykeller:~ $ mirobo --ip 192.168.3.40 --token 4868656e67624564773                                                                                        4307339575a44 status
                  ERROR:miio.vacuum_cli:Unable to read the stored msgid: [Errno 2] No such file or                                                                                         directory: '/tmp/python-mirobo.seq'
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 3
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 2
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 1
                  ERROR:miio.device:Got error when receiving: timed out
                  Traceback (most recent call last):
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 236, in send
                      data, addr = s.recvfrom(1024)
                  socket.timeout: timed out
                  Wenn ich noch Debug mit -d gesetzt hatte, gab's eine Meldung ähnlich "Cannot decrypt....".

                  Ich habe jetzt den Robot komplett zurückgesetzt (Hometaste gedrückt halten und Reset). Jetzt ist er wieder auf der alten Firmware 3.3.6_003062 mit der er ausgeliefert wurde. Zumindest die Flole App funktioniert jetzt wieder. Ich teste jetzt mal miio.
                  🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                  LoxBerry - Beyond the Limits

                  Kommentar


                  • tholle
                    tholle kommentierte
                    Kommentar bearbeiten
                    ne, das hat leider nicht funktioniert. hatte ich schon versucht.. - ich habe jetzt mal den Token neu ausgelesen und musste feststellen, dass der sich geaendert hat.

                    ueberigens, den Token kann man ganz leicht aus der sqlite-Datei mit miio-extract-tokens auslesen:

                    tholle@loxberry:~ $ miio-extract-tokens /PATH/TO/FILE/FILENAME_mihome.sqlite

                  • Prof.Mobilux
                    Prof.Mobilux kommentierte
                    Kommentar bearbeiten
                    Habe aktuell auch noch keine Lösung. Aber zum Token-Auslesen: Siehe hier http://www.loxwiki.eu:80/x/QAN7AQ :-)

                  • tholle
                    tholle kommentierte
                    Kommentar bearbeiten
                    doppelt hält besser
                • Prof.Mobilux
                  Supermoderator
                  • 25.08.2015
                  • 4748

                  #70
                  Tja, zu früh gefreut... Also die Flole-App funktioniert nach wie vor. Aus der App habe ich den Token exportiert, der muss also zwangsweise richtig sein. Aber die miio-Tools funktionieren nach wie vor nicht:

                  Code:
                  loxberry@loxberrykeller:~ $ mirobo -d --ip 192.168.3.40 --token 664a36634371694b5576515654566658 status
                  INFO:miio.vacuum_cli:Debug mode active
                  ERROR:miio.vacuum_cli:Unable to read the stored msgid: [Errno 2] No such file or directory: '/tmp/python-mirobo.seq'
                  DEBUG:miio.vacuum_cli:Connecting to 192.168.3.40 with token 664a36634371694b5576515654566658
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.device:Got a response: Container:
                      data = Container:
                          data =  (total 0)
                          length = 0
                          offset2 = 32
                          offset1 = 32
                          value =  (total 0)
                      header = Container:
                          data = !1\x00 \x00\x00\x00\x00\x03\xdb\xc3\xe6Z-\xa1\xbe (total 16)
                          length = 16
                          offset2 = 16
                          offset1 = 0
                          value = Container:
                              length = 32
                              unknown = 0
                              devtype = default (total 7)
                              serial = 50150
                              ts = 2017-12-10 21:06:06
                      checksum = \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff (total 16)
                  DEBUG:miio.device:Discovered default 50150 with ts: 2017-12-10 21:06:06, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.device:192.168.3.40:54321 >>: {'method': 'get_status', 'id': 1}
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 3
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.device:Got a response: Container:
                      data = Container:
                          data =  (total 0)
                          length = 0
                          offset2 = 32
                          offset1 = 32
                          value =  (total 0)
                      header = Container:
                          data = !1\x00 \x00\x00\x00\x00\x03\xdb\xc3\xe6Z-\xa1\xc5 (total 16)
                          length = 16
                          offset2 = 16
                          offset1 = 0
                          value = Container:
                              length = 32
                              unknown = 0
                              devtype = default (total 7)
                              serial = 50150
                              ts = 2017-12-10 21:06:13
                      checksum = \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff (total 16)
                  DEBUG:miio.device:Discovered default 50150 with ts: 2017-12-10 21:06:13, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.device:192.168.3.40:54321 >>: {'method': 'get_status', 'id': 102}
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 2
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.device:Got a response: Container:
                      data = Container:
                          data =  (total 0)
                          length = 0
                          offset2 = 32
                          offset1 = 32
                          value =  (total 0)
                      header = Container:
                          data = !1\x00 \x00\x00\x00\x00\x03\xdb\xc3\xe6Z-\xa1\xca (total 16)
                          length = 16
                          offset2 = 16
                          offset1 = 0
                          value = Container:
                              length = 32
                              unknown = 0
                              devtype = default (total 7)
                              serial = 50150
                              ts = 2017-12-10 21:06:18
                      checksum = \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff (total 16)
                  DEBUG:miio.device:Discovered default 50150 with ts: 2017-12-10 21:06:18, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.device:192.168.3.40:54321 >>: {'method': 'get_status', 'id': 203}
                  ERROR:miio.device:Got error when receiving: timed out
                  WARNING:miio.device:Retrying with incremented id, retries left: 1
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.device:Got a response: Container:
                      data = Container:
                          data =  (total 0)
                          length = 0
                          offset2 = 32
                          offset1 = 32
                          value =  (total 0)
                      header = Container:
                          data = !1\x00 \x00\x00\x00\x00\x03\xdb\xc3\xe6Z-\xa1\xcf (total 16)
                          length = 16
                          offset2 = 16
                          offset1 = 0
                          value = Container:
                              length = 32
                              unknown = 0
                              devtype = default (total 7)
                              serial = 50150
                              ts = 2017-12-10 21:06:23
                      checksum = \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff (total 16)
                  DEBUG:miio.device:Discovered default 50150 with ts: 2017-12-10 21:06:23, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.device:192.168.3.40:54321 >>: {'method': 'get_status', 'id': 304}
                  ERROR:miio.device:Got error when receiving: timed out
                  Traceback (most recent call last):
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 236, in send
                      data, addr = s.recvfrom(1024)
                  socket.timeout: timed out
                  
                  During handling of the above exception, another exception occurred:
                  
                  Traceback (most recent call last):
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 236, in send
                      data, addr = s.recvfrom(1024)
                  socket.timeout: timed out
                  
                  During handling of the above exception, another exception occurred:
                  
                  Traceback (most recent call last):
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 236, in send
                      data, addr = s.recvfrom(1024)
                  socket.timeout: timed out
                  
                  During handling of the above exception, another exception occurred:
                  
                  Traceback (most recent call last):
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 236, in send
                      data, addr = s.recvfrom(1024)
                  socket.timeout: timed out
                  
                  The above exception was the direct cause of the following exception:
                  
                  Traceback (most recent call last):
                    File "/usr/local/bin/mirobo", line 11, in <module>
                      sys.exit(cli())
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 722, in __call__
                      return self.main(*args, **kwargs)
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 697, in main
                      rv = self.invoke(ctx)
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 1066, in invoke
                      return _process_result(sub_ctx.command.invoke(sub_ctx))
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 895, in invoke
                      return ctx.invoke(self.callback, **ctx.params)
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 535, in invoke
                      return callback(*args, **kwargs)
                    File "/usr/local/lib/python3.4/dist-packages/click/decorators.py", line 64, in new_func
                      return ctx.invoke(f, obj, *args[1:], **kwargs)
                    File "/usr/local/lib/python3.4/dist-packages/click/core.py", line 535, in invoke
                      return callback(*args, **kwargs)
                    File "/usr/local/lib/python3.4/dist-packages/miio/vacuum_cli.py", line 116, in status
                      res = vac.status()
                    File "/usr/local/lib/python3.4/dist-packages/miio/vacuum.py", line 107, in status
                      return VacuumStatus(self.send("get_status")[0])
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 258, in send
                      return self.send(command, parameters, retry_count - 1)
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 258, in send
                      return self.send(command, parameters, retry_count - 1)
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 258, in send
                      return self.send(command, parameters, retry_count - 1)
                    File "/usr/local/lib/python3.4/dist-packages/miio/device.py", line 259, in send
                      raise DeviceException from ex
                  miio.device.DeviceException
                  loxberry@loxberrykeller:~ $
                  🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                  LoxBerry - Beyond the Limits

                  Kommentar

                  • Prof.Mobilux
                    Supermoderator
                    • 25.08.2015
                    • 4748

                    #71
                    Bin in kleines Stück weiter:

                    Ich habe bisher den Robot komplett über Android eingerichtet: Über die Flole-App und dann WLAN geswitched über die original-App. Damit funktioniert zumindest die Flole-App weiter (sie benutzt auch das Token). Sobald ich dann den Robot aber auf einem iOS-Gerät in der Original-App hinzufüge, funktioniert die Flole-App nicht mehr. Ich gehe davon aus, dass der Token nochmal geändert wird, sobald man unter iOS den Robot in derOriginal-App hinzufügt (dort wird der Token ja auch mittlerweile verschlüsselt).

                    Allerdings funktioniert der Zugriff vom Raspi weiterhin nicht, weder mit dem Flole-Token, noch mit dem Token, den ich aus iOS ausgelesen habe. Ich denke ich werde das Ganze noch einmal auf einem frischen LoxBerry installieren. Vielleicht habe ich da auch irgendetwas kaputtgespielt...
                    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                    LoxBerry - Beyond the Limits

                    Kommentar

                    • fifman
                      Dumb Home'r
                      • 07.10.2015
                      • 25

                      #72
                      Servus
                      das Plugin ist ne SUPER Sache — DANKE !!!

                      Hat jemand eine Übersicht der "Error Codes" bzw der "MI Robot Status Codes"

                      Anwendung:
                      Wenn man "nach Hause" kommt und der Robo sich wo verfangen hat, wird automatisch die "Find-me" Aktion ausgeführt.
                      - Aktion abhängig vom Fehler code.

                      Grüße
                      Zuletzt geändert von fifman; 12.12.2017, 16:39.

                      Kommentar

                      • hismastersvoice
                        Supermoderator
                        • 25.08.2015
                        • 7319

                        #73


                        Code:
                        error_txt_de=( "Keine Fehler" "Laser-Distanz-Sensor" "Kollisions-Sensor" "Räder haben keinen Bodenkontakt" "Boden-Sensoren reinigen" "Hauptbürste reinigen" "Seitenbürste reinigen" "Räder blockiert?" "Sauger blokiert" "Staubbehälter nicht eingesetzt" "Filter reinigen" "Sauger blokiert an magnetische Barriere" "Batterie-Level niedrig" "Ladefehler" "Batteriefehler" "Wandsensoren reinigen" "Sauger auf flachen Untergrund stellen" "Seitenbürste Fehler, Robot neu booten" "Saugmotor/Lüfter Fehler" "Ladestation nicht angesteckt" "Robot nicht erreichbar" )
                        Kein Support per PN!

                        Kommentar

                        • fifman
                          Dumb Home'r
                          • 07.10.2015
                          • 25

                          #74
                          Danke

                          Gesendet von meinem SM-G930F mit Tapatalk

                          Kommentar

                          • fifman
                            Dumb Home'r
                            • 07.10.2015
                            • 25

                            #75
                            Zitat von hismastersvoice
                            https://files.xiaomi-mi.com/files/va...cleaner-EN.pdf

                            Code:
                            error_txt_de=( "Keine Fehler" "Laser-Distanz-Sensor" "Kollisions-Sensor" "Räder haben keinen Bodenkontakt" "Boden-Sensoren reinigen" "Hauptbürste reinigen" "Seitenbürste reinigen" "Räder blockiert?" "Sauger blokiert" "Staubbehälter nicht eingesetzt" "Filter reinigen" "Sauger blokiert an magnetische Barriere" "Batterie-Level niedrig" "Ladefehler" "Batteriefehler" "Wandsensoren reinigen" "Sauger auf flachen Untergrund stellen" "Seitenbürste Fehler, Robot neu booten" "Saugmotor/Lüfter Fehler" "Ladestation nicht angesteckt" "Robot nicht erreichbar" )
                            Danke


                            Gesendet von meinem SM-G930F mit Tapatalk

                            Kommentar

                            Lädt...