Plugin: MiRobot2Lox-NG - Xiaomi Vacuum Robots
Einklappen
X
-
Kommentar
-
Ich dachte das man das nur mit Andrioid installieren kann... -
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.
-
Wie sendet der Roborock denn dann die Daten an den Miniserver? Per UDP oder muss man die über http abfragen?Kommentar
-
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. -
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?
-
-
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
-
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
-
Wer weitere Infos zu Valetudo und der direkten Einbindung des Staubsaugerroboters in Loxone sucht, findet diese nun ab sofort hier: https://www.loxforum.com/forum/faqs-...rock-in-loxone und hier https://www.loxwiki.eu/display/LOX/Xiaomi+Roborock
-
-
-
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
-
Habt ihr schon auf die Version 3.5.8_002034 aktualisiert und funktioniert noch alles wie gewohnt?Kommentar
-
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
-
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 FINISHEDZuletzt geändert von andreas221988; 15.02.2021, 07:53.Kommentar
-
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
-
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
-
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
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
-
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 hatte das Problem auch, seitdemm geht es aber wieeder ohne Probleme und sehr schnellKommentar
-
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
Kommentar