Plugin: MiRobot2Lox-NG - Xiaomi Vacuum Robots

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Maruu
    LoxBus Spammer
    • 07.03.2017
    • 489

    Vielleicht nicht ganz passend, aber ich den S50 mit der Valetudo Firmware geflashed und dann direkt (über die integrierte REST API) in Loxone (ohne LoxBerry) eingebunden. Läuft perfekt (inkl. Einzelraumsteuerung usw.)!

    Kommentar

    • andreas221988
      Lox Guru
      • 13.06.2018
      • 1559

      Die Möglichkeit haben iOS User leider nicht...

      Kommentar


      • Maruu
        Maruu kommentierte
        Kommentar bearbeiten
        Was hat das mit iOS zu tun?

      • andreas221988
        andreas221988 kommentierte
        Kommentar bearbeiten
        Ich dachte das man das nur mit Andrioid installieren kann...

      • Maruu
        Maruu kommentierte
        Kommentar bearbeiten
        Ne, hat damit nichts zu tun. Valetudo (https://github.com/Hypfer/Valetudo) ist eine spezielle Firmware für den S50. Die Firmware unterbindet, dass der Staubsaugerroboter seine Daten in die Cloud übermittelt. Zusätzlich Hat er ein Webfrontend, auf das man zugreifen kann, Karten/Zonen erstellen kann usw. Für mich war aber das Interessanteste (neben der Unterbindung der Cloud), dass dadurch ne REST-API mitgeliefert wird, die sich direkt in Loxone integrieren lässt. Mit Android oder iOS hat das aber nichts zu tun.
    • Jans89
      Smart Home'r
      • 14.05.2020
      • 38

      Wie sendet der Roborock denn dann die Daten an den Miniserver? Per UDP oder muss man die über http abfragen?

      Kommentar


      • Jans89
        Jans89 kommentierte
        Kommentar bearbeiten
        Ja, aber per UDP werden nur die Werte gesendet, die sich geändert haben.

        Ich brauche den Status immer ziemlich aktuell, weil die Bewegungsmelder der Alarmanlage ausgestellt werden, wenn der S5 fährt.

        Aber da hast du Recht, die Abfragen machen auch nicht mehr viel aus und es würde ja reichen, wenn ich nur den Status ständig Abfrage und die anderen Werte seltener.

      • Maruu
        Maruu kommentierte
        Kommentar bearbeiten
        Da smit den BWMs habe ich auch noch auf der Tagesordnung. Am schönsten wäre, wenn man wüsste in welchem Raum er gerade fährt. Aber der Programmieraufwand dafür ist wohl zu hoch

      • Jans89
        Jans89 kommentierte
        Kommentar bearbeiten
        Ja, wahrscheinlich wohl
        Ich grübel jetzt aber auch über die Valetudo-Firmware, wahrscheinlich probiere ich das Ganze auch mal aus
        Wo finde ich denn die Http-Befehle, mit denen ich den Roborock steuern kann und die Daten abfragen kann? Gibt es da eine Übersicht?
    • Maruu
      LoxBus Spammer
      • 07.03.2017
      • 489

      Ich hab mir die Befehle hier rausgesucht: https://github.com/Hypfer/Valetudo/b...ter.js#L83-L93
      Allerdings sehe ich gerade, dass die ApiRouter.js nicht mehr im Master-Branch ist. Egal, folgende Befehle nutze ich mit Virtuellen Ausgangsbefehlen:

      Komplette Reinigung starten: http://192.168.1.123/api/start_cleaning (PUT)
      Reinigung einer Zone starten starten: http://192.168.1.123/api/start_cleaning_zones_by_id (PUT mit Zonen-ID aus dem Webinterface z. B. [1] oder [1,2], wichtig, noch den Header "Content-Type: application/json" setzen)
      Reinigung pausieren: http://192.168.1.123/api/pause_cleaning (PUT)
      Reinigung stoppen: http://192.168.1.123/api/stop_cleaning (PUT)
      Zur Ladestation fahren: http://192.168.1.123/api/drive_home (PUT)
      Zu bestimmter Position fahren: http://192.168.1.123/api/go_to (PUT mit Koordinaten aus dem Webinterface z. B. {"x":2539,"y":2474}, wichtig, noch den Header "Content-Type: application/json" setzen)

      Und über folgende Virtuelle Eingangsbefehle bekommt man die Status:

      Allgemeiner Status: http://192.168.1.123/api/state
      Verbrauchsstatus: http://192.168.1.123/api/consumable_status

      Ich hoffe das hilft.

      Kommentar

      • Prof.Mobilux
        Supermoderator
        • 25.08.2015
        • 4627

        Vielleicht macht ihr bzgl. Valetudo mal einen eigenen Thread auf. Das passt hier nicht so recht hin...
        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


        LoxBerry - Beyond the Limits

        Kommentar

      • andreas221988
        Lox Guru
        • 13.06.2018
        • 1559

        Also meint ihr ich kann auf die neue Version gehen?

        Kommentar

        • Aefirefly
          Extension Master
          • 11.01.2019
          • 129

          Vielen Dank für das tolle Plugin - bin gerade am reinbasteln und habe eigentlich nicht mehr vor, die App nur noch für das Anpassen von virtuellen Wänden etc. bemühen zu müssen.
          Rest kommt in die Lox-App samt Anlagenschema für übersichtliche Statistiken.

          Eins fehlt mir noch... Ich hatte meine Karte erst in der Roborock App konfiguriert und für den Token heute auf die Xiaomi App umgestellt.
          Er hat aber sogar meine in der App eingeteilten Zonen samt Nummerierung in die Xiaomi App übernommen. Sprich, das liegt alles in der Xiaomi Cloud und müsste doch auch über das Plugin abrufbar sein?
          Ist es irgendwie möglich einen VO zu senden mit "Reinigen Zone 2"? Ohne sich die Koordinaten neu zu erarbeiten?
          Oder sind die Koordinaten aus der Cloud im Loxberry Plugin vielleicht so einblendbar, dass man sie als Template in die Config rüberkopieren könnte?


          Edit: Sorry... mal die letzten Seiten gelesen...
          Befehl lautet: loxberry/plugins/mirobot2lox-ng/sendcmd.cgi?command=segment_clean&option=[16]&robot=1&debug=0
          Wobei 16 Raum Nummer 1 entspricht. 17 die 2. u.s.w.

          Also einfach nur DANKE für dein Engagement und für das Plugin!
          Zuletzt geändert von Aefirefly; 31.01.2021, 21:11.

          Kommentar

          • andreas221988
            Lox Guru
            • 13.06.2018
            • 1559

            Habt ihr schon auf die Version 3.5.8_002034 aktualisiert und funktioniert noch alles wie gewohnt?

            Kommentar

            • Prof.Mobilux
              Supermoderator
              • 25.08.2015
              • 4627

              Neues Release 1.0.6, welches die Installationsprobleme beheben sollte (für die Pythontools ist nun auch Rust notwendig): https://www.loxwiki.eu/x/GoBYAg

              Für alle, die bereits 1.0.5 installiert haben, ist kein Upgrade notwendig.
              🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


              LoxBerry - Beyond the Limits

              Kommentar

              • andreas221988
                Lox Guru
                • 13.06.2018
                • 1559

                Guten Morgen Prof.Mobilux leider erhalte ich seit dem Update keine Daten mehr von meinem Sauger via UDP... Woran könnte das liegen?
                Ausgangsbefehle kann ich senden...

                Auszug aus dem LOG:

                15.02.2021 07:52:02 TASK STARTED
                MiRobo2Lox-NG GRABBER process started
                INFO: LoxBerry Version 2.2.0.4 ( is_raspberry.cfg )
                INFO: MiRobot2Lox-NG Version 1.0.6
                INFO: Loglevel: 7
                This is /opt/loxberry/bin/plugins/mirobot2lox-ng/grabber.pl Version 1.0.5.0
                INFO: Fetching Data from Robots
                15.02.2021 07:52:02 TASK FINISHED
                Zuletzt geändert von andreas221988; 15.02.2021, 07:53.

                Kommentar


                • loxar
                  loxar kommentierte
                  Kommentar bearbeiten
                  Bei mir nur bei Roboter 2

                • andreas221988
                  andreas221988 kommentierte
                  Kommentar bearbeiten
                  bei mir ist die robotsdata.txt leer...

                • loxar
                  loxar kommentierte
                  Kommentar bearbeiten
                  Irgendwas stimmt da mit der datei nicht mehr
              • Prof.Mobilux
                Supermoderator
                • 25.08.2015
                • 4627

                Es liegt daran, dass wir mittlerweile die neue Generation der Robots integriert hatten. Das war aber noch nicht fertig bzw. ist fehlerhaft. Ich hatte das nicht mehr auf dem Schirm - daher sind die Änderungen mit ins Release gerutscht.

                1.0.7 folgt noch heute Abend - da wird das behoben sein.
                🇺🇦 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
                  • 4627

                  Neues Release 1.2.0: https://github.com/mschlenstedt/LoxB...x-ng-1.2.0.zip

                  Das Release ist ein Bugfix-Release zu 1.0.6, wo leider einiges kaputt war. Bei der Implementierung der neuen Roboter-Generation (MiRobot Mop / STYTJ02YM / M1S) haben wir uns leider die alte Robotergeneration im Plugin zerschossen. Das ist nun korrigiert und sollte klappen.

                  Bitte geht zur Sicherheit einmal in eure Einstellungen und speichert einmal ab.

                  Danke an fs79 - ich habe es nun endlich geschafft seine Erweiterungen für die neuen Robots zu implementieren. Leider habe ich selbst ekinen dieser neuen Robots, testet daher bitte und meldet hier entsprechende Fehler.
                  🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                  LoxBerry - Beyond the Limits

                  Kommentar


                  • loxar
                    loxar kommentierte
                    Kommentar bearbeiten
                    Läuft perfekt, vielen Dank.

                  • andreas221988
                    andreas221988 kommentierte
                    Kommentar bearbeiten
                    Danke läuft wieder

                  • AND
                    AND kommentierte
                    Kommentar bearbeiten
                    Danke läuft bei mir auch super. Auch mit der neuen Roboter Generation
                • manuelharjes
                  Azubi
                  • 18.07.2019
                  • 7

                  Guten Morgen zusammen, seit kurzer Zeit erhalte ich häufig einen Timeout:

                  Code:
                  /usr/local/bin/miiocli -o json_pretty vacuum --ip 192.168.**.** --token ***************************** status 2>&1
                  Output: ERROR:miio.miioprotocol:Got error when receiving: timed out
                  Error: No response from the device
                  Ein Loxberry Neustart behebt das Problem. Hat jemand ein ähnliches Verhalten?

                  Die Debug Meldung lautet

                  Code:
                  Dollar1 = 192.168.**.**
                  Dollar2 = ********************
                  Dollar3 = raw_command
                  Dollar4 = miIO.info
                  Dollar5 = vacuum
                  Dollar6 = 1
                  /usr/local/bin/miiocli -d -o json_pretty vacuum --ip 192.168.**.** --token ***************************** raw_command miIO.info 2>&1
                  
                  Output:
                  
                  INFO:miio.cli:Debug mode active
                  DEBUG:miio.vacuum:Read stored sequence ids: {'seq': 2047, 'manual_seq': 0}
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.miioprotocol:Got a response: Container:
                  data = Container:
                  data = b'' (total 0)
                  value = b'' (total 0)
                  offset1 = 32
                  offset2 = 32
                  length = 0
                  header = Container:
                  data = b'!1\x00 \x00\x00\x00\x00\x0f\x99\xa9\x88`M\xd6\xdb' (total 16)
                  value = Container:
                  length = 32
                  unknown = 0
                  device_id = unhexlify('0f99a988')
                  ts = 2021-03-14 09:26:51
                  offset1 = 0
                  offset2 = 16
                  length = 16
                  checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff' (total 16)
                  DEBUG:miio.miioprotocol:Discovered 0f99a988 with ts: 2021-03-14 09:26:51, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.miioprotocol:192.168.**.**:***** >>: {'id': 2048, 'method': 'miIO.info', 'params': []}
                  DEBUG:miio.miioprotocol:Retrying with incremented id, retries left: 3
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.miioprotocol:Got a response: Container:
                  data = Container:
                  data = b'' (total 0)
                  value = b'' (total 0)
                  offset1 = 32
                  offset2 = 32
                  length = 0
                  header = Container:
                  data = b'!1\x00 \x00\x00\x00\x00\x0f\x99\xa9\x88`M\xd6\xe0' (total 16)
                  value = Container:
                  length = 32
                  unknown = 0
                  device_id = unhexlify('0f99a988')
                  ts = 2021-03-14 09:26:56
                  offset1 = 0
                  offset2 = 16
                  length = 16
                  checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff' (total 16)
                  DEBUG:miio.miioprotocol:Discovered 0f99a988 with ts: 2021-03-14 09:26:56, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.miioprotocol:192.168.**.**:***** >>: {'id': 2149, 'method': 'miIO.info', 'params': []}
                  DEBUG:miio.miioprotocol:Retrying with incremented id, retries left: 2
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.miioprotocol:Got a response: Container:
                  data = Container:
                  data = b'' (total 0)
                  value = b'' (total 0)
                  offset1 = 32
                  offset2 = 32
                  length = 0
                  header = Container:
                  data = b'!1\x00 \x00\x00\x00\x00\x0f\x99\xa9\x88`M\xd6\xe5' (total 16)
                  value = Container:
                  length = 32
                  unknown = 0
                  device_id = unhexlify('0f99a988')
                  ts = 2021-03-14 09:27:01
                  offset1 = 0
                  offset2 = 16
                  length = 16
                  checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff' (total 16)
                  DEBUG:miio.miioprotocol:Discovered 0f99a988 with ts: 2021-03-14 09:27:01, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.miioprotocol:192.168.**.**:***** >>: {'id': 2250, 'method': 'miIO.info', 'params': []}
                  DEBUG:miio.miioprotocol:Retrying with incremented id, retries left: 1
                  DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
                  DEBUG:miio.miioprotocol:Got a response: Container:
                  data = Container:
                  data = b'' (total 0)
                  value = b'' (total 0)
                  offset1 = 32
                  offset2 = 32
                  length = 0
                  header = Container:
                  data = b'!1\x00 \x00\x00\x00\x00\x0f\x99\xa9\x88`M\xd6\xea' (total 16)
                  value = Container:
                  length = 32
                  unknown = 0
                  device_id = unhexlify('0f99a988')
                  ts = 2021-03-14 09:27:06
                  offset1 = 0
                  offset2 = 16
                  length = 16
                  checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff' (total 16)
                  DEBUG:miio.miioprotocol:Discovered 0f99a988 with ts: 2021-03-14 09:27:06, token: b'ffffffffffffffffffffffffffffffff'
                  DEBUG:miio.miioprotocol:192.168.**.**:***** >>: {'id': 2351, 'method': 'miIO.info', 'params': []}
                  ERROR:miio.miioprotocol:Got error when receiving: timed out
                  DEBUG:miio.click_common:Exception: No response from the device
                  Traceback (most recent call last):
                  File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 192, 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.7/dist-packages/miio/miioprotocol.py", line 192, 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.7/dist-packages/miio/miioprotocol.py", line 192, 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.7/dist-packages/miio/miioprotocol.py", line 192, 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/lib/python3.7/dist-packages/miio/click_common.py", line 59, in __call__
                  return self.main(*args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 717, in main
                  rv = self.invoke(ctx)
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1137, in invoke
                  return _process_result(sub_ctx.command.invoke(sub_ctx))
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1137, in invoke
                  return _process_result(sub_ctx.command.invoke(sub_ctx))
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 956, in invoke
                  return ctx.invoke(self.callback, **ctx.params)
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 555, in invoke
                  return callback(*args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/miio/click_common.py", line 301, in wrap
                  result = func(*args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/click/decorators.py", line 64, in new_func
                  return ctx.invoke(f, obj, *args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 555, in invoke
                  return callback(*args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/miio/click_common.py", line 245, in command_callback
                  return miio_command.call(miio_device, *args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/miio/click_common.py", line 193, in call
                  return method(*args, **kwargs)
                  File "/usr/local/lib/python3.7/dist-packages/miio/device.py", line 162, in raw_command
                  return self.send(command, parameters)
                  File "/usr/local/lib/python3.7/dist-packages/miio/device.py", line 144, in send
                  command, parameters, retry_count, extra_parameters=extra_parameters
                  File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 236, in send
                  extra_parameters=extra_parameters,
                  File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 236, in send
                  extra_parameters=extra_parameters,
                  File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 236, in send
                  extra_parameters=extra_parameters,
                  File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 240, in send
                  raise DeviceException("No response from the device") from ex
                  miio.exceptions.DeviceException: No response from the device
                  Error: No response from the device
                  Zuletzt geändert von manuelharjes; 14.03.2021, 10:49.

                  Kommentar

                  • AND
                    Dumb Home'r
                    • 14.07.2020
                    • 20

                    Zitat von manuelharjes
                    Guten Morgen zusammen, seit kurzer Zeit erhalte ich häufig einen Timeout:

                    Code:
                    /usr/local/bin/miiocli -o json_pretty vacuum --ip 192.168.**.** --token ***************************** status 2>&1
                    Output: ERROR:miio.miioprotocol:Got error when receiving: timed out
                    Error: No response from the device


                    [/CODE]
                    Ich hab den Retry Count noch etwas angehoben.
                    Ich hatte das Problem auch, seitdemm geht es aber wieeder ohne Probleme und sehr schnell

                    Kommentar

                    • Gast

                      Hallo zusammen,
                      vielen Dank für das bereitstellen des Plugins, jedoch erhalte ich immer den folgenden Fehler, egal was ich unter "Kommandos" auswähle. Ich habe bereits die 17 Seiten durch, jedoch scheint dieses Problem nicht aufzutreten.
                      Die Google-Suche brachte mir zu "No module named 'yaml' " nur Aussagen zu Python. Was mich aber ehrlich gesagt nicht weiter bringt.


                      Output: Traceback (most recent call last):


                      /usr/local/bin/miiocli viomivacuum --ip 192.168.178.55 --token 1234567.... start 2>&1

                      Output:
                      Traceback (most recent call last): File "/usr/local/bin/miiocli", line 5, in <module> from miio.cli import create_cli File "/usr/local/lib/python3.7/dist-packages/miio/__init__.py", line 40, in <module> from miio.gateway import Gateway File "/usr/local/lib/python3.7/dist-packages/miio/gateway/__init__.py", line 4, in <module> from .alarm import Alarm File "/usr/local/lib/python3.7/dist-packages/miio/gateway/alarm.py", line 8, in <module> from .gatewaydevice import GatewayDevice File "/usr/local/lib/python3.7/dist-packages/miio/gateway/gatewaydevice.py", line 6, in <module> from .gateway import Gateway File "/usr/local/lib/python3.7/dist-packages/miio/gateway/gateway.py", line 8, in <module> import yaml

                      ModuleNotFoundError: No module named 'yaml'

                      Kommentar


                      • Prof.Mobilux
                        Prof.Mobilux kommentierte
                        Kommentar bearbeiten
                        Bist auf auf einem Standardloxberry (also Raspi)? Welche LB Version?

                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        Raspi 3B+ mit LoxBerry v2.2.0.4

                      • maveric2005
                        maveric2005 kommentierte
                        Kommentar bearbeiten
                        Exact die gleichen meldungen erhalte ich auch mit am ende No module named yaml
                    Lädt...