NEWS
Neuer Adapter für Roborock-Staubsauger
-
So ich bin dann auch mal fertig mit der integration. Man muss nur den Raum auf der Karte anwählen. Er wird dann heller, start drücken fertig. Einfach Geil!
Design wird noch aufgehübscht
Danke für den Adapter.
-
Hallo!
Es wurde ja schon über die Darstellung einer Karte gesprochen und dass das nicht so einfach funktionert, da die Karte nur als Base64-Image vorliegt.
Ich habe mal etwas getüftelt und vielleicht hilft es dem ein oder anderen:Die Base64-Images sind ganz normale HTML-"Bilder", die man z.B. in einer Visu nutzen kann, leider aber nicht einfach so, sondern nur über Umwege.
Der HTML-Code für die Einbindung eines Bas64-Bildes ist so aufgebaut:<img src="[BASE64-CODE]">Also eigentlich alles kein Hexenwerk. Wenn man aus dem Datenpunkt den Code kopiert und in ein HTML-Objekt in VIS einfügt, wird die Karte auch wunderbar dargestellt, aber natürlich nicht aktualisiert. Da man über geschweifte Klammern direkt in VIS auf den Inhalt eines Datenpunktes zugreifen kann, dachte ich, dass man das über
<img src="{roborock.0.Devices.ID.map.mapBase64}">lösen kann, das funktioniert aber so nicht. Sollte jemand wissen, wie das funktioniert, gerne melden!
Ich habe das dann so gelöst, dass ich eine script erstellt habe, was nichts anderes macht, als die spitzen Klammern davor und dahinter zu setzen und das alles in einer neuen Variable zu speichern. Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!

Code:
Hinweise:- In VIS im Editor wird immer nur das Objekt in geschweiften Klammern dargestellt. Geladen wird der Inhalt erst in der feriten VIS!
- die zusätzlichen Inhalte style="[...]" skalieren und beschneiden das Bild, damit es vernünftig dargestllt werden kann. Da muss man je nach Karte schauen wie es passt. Bei mir ist der Bereich oben links des Bildes erstmal sehr viel weiß, weshalb ich da viel wegschneiden muss, bis die eigentliche Karte zu sehen ist, spielt einfach mit den Werten.
- Die Aktualisierungsrate der Karte ist wirklich mäßig. Ich weiß nicht in welchen Intervallen das passiert, es scheint immer so gegen Ende der Reinigung zu sein, manchmal auch währenddessen, manchmal auch im Dock. Woran das liegt weiß vermutlich nur Roborock.
Bei Bedarf kann ich das hier gerne noch fürs WIKI auf englisch aufbereiten, ich habe da aber keine Schreibrechte drauf.
Viel Spaß damit, Anmerkungen oder Fragen sind willkommen!
@earl80 Eigentlich genau wie hier. Man muss dann im blockly die größe anpassen. Statt% geht auch width="1000px" width="800px" zum beispiel.
@maxb sagte in Neuer Adapter für Roborock-Staubsauger:
Hallo!
Es wurde ja schon über die Darstellung einer Karte gesprochen und dass das nicht so einfach funktionert, da die Karte nur als Base64-Image vorliegt.
Ich habe mal etwas getüftelt und vielleicht hilft es dem ein oder anderen:Die Base64-Images sind ganz normale HTML-"Bilder", die man z.B. in einer Visu nutzen kann, leider aber nicht einfach so, sondern nur über Umwege.
Der HTML-Code für die Einbindung eines Bas64-Bildes ist so aufgebaut:<img src="[BASE64-CODE]">Also eigentlich alles kein Hexenwerk. Wenn man aus dem Datenpunkt den Code kopiert und in ein HTML-Objekt in VIS einfügt, wird die Karte auch wunderbar dargestellt, aber natürlich nicht aktualisiert. Da man über geschweifte Klammern direkt in VIS auf den Inhalt eines Datenpunktes zugreifen kann, dachte ich, dass man das über
<img src="{roborock.0.Devices.ID.map.mapBase64}">lösen kann, das funktioniert aber so nicht. Sollte jemand wissen, wie das funktioniert, gerne melden!
Ich habe das dann so gelöst, dass ich eine script erstellt habe, was nichts anderes macht, als die spitzen Klammern davor und dahinter zu setzen und das alles in einer neuen Variable zu speichern. Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!

Code:
Hinweise:- In VIS im Editor wird immer nur das Objekt in geschweiften Klammern dargestellt. Geladen wird der Inhalt erst in der feriten VIS!
- die zusätzlichen Inhalte style="[...]" skalieren und beschneiden das Bild, damit es vernünftig dargestllt werden kann. Da muss man je nach Karte schauen wie es passt. Bei mir ist der Bereich oben links des Bildes erstmal sehr viel weiß, weshalb ich da viel wegschneiden muss, bis die eigentliche Karte zu sehen ist, spielt einfach mit den Werten.
- Die Aktualisierungsrate der Karte ist wirklich mäßig. Ich weiß nicht in welchen Intervallen das passiert, es scheint immer so gegen Ende der Reinigung zu sein, manchmal auch währenddessen, manchmal auch im Dock. Woran das liegt weiß vermutlich nur Roborock.
Bei Bedarf kann ich das hier gerne noch fürs WIKI auf englisch aufbereiten, ich habe da aber keine Schreibrechte drauf.
Viel Spaß damit, Anmerkungen oder Fragen sind willkommen!
-
@niggich
Hallo,
hier die versprochenen Skripte, ich hoffe, sie können eine Anregung sein. Sie sind sicher nicht ideal, es gibt bestimmt auch elegantere Lösungen. Bei mir erledigen sie ihren Auftrag:Um eine Historie der gereinigten Zimmer mit Klarnamen der Zimmer in der gui anzeigen zu können, bin ich wie folgt vorgegangen:
folgende Datenpunkte wurden vereinbart:
0_userdata.0.Saugroboter.Zimmer_saugen_starten
(Nummer des zu reinigenden Zimmers, Eingabe aus der gui)0_userdata.0.Saugroboter.Zimmer_Name_aktuell
(Klarname des zu reinigenden Zimmers)0_userdata.0.Saugroboter.Raum0 ... 9
(Klarnamen der letzten 9 gereinigten Zimmer)0_userdata.0.Saugroboter.Tag0 ... 9
(formatierter Tag der letzten 9 gereinigten Zimmer)0_userdata.0.Saugroboter.Zeit0 ... 9
(formatierte Zeit der letzten 9 gereinigten Zimmer)Ablauf einer Reinigung:
Sobald sich Zimmer_saugen_starten durch einen Button in der gui ändert, enthält dieser Datenpunkt die Nummer des zu reinigenden Zimmers (z.B. „18“ für die Küche) und das erste Skript startet:

In dem werden zunächst alle db roborock.0.Devices.x.floors.0.* auf false und anschließend der roborock.0.Devices.x.floors.0.* des gewünschten Zimmers auf true gesetzt. Im gleichen Schritt wird im db 0_userdata.0.Saugroboter.Zimmer_Name_aktuell der Klarname des Zimmers gespeichert.
Zum Schluss wird mit roborock.0.Devices.x.commands.app_segment_clean die Einzelzimmerreingung gestartet.Erstellen der Historieeinträge:
Ist diese beendet, ändert der Adapter seine 19 Historieeintragungen. Das dabei erfolgende Ändern des Datenpunktes roborock.0.Devices.x.cleaningInfo.Records.0.begin zeigt an, dass diese Änderung erfolgt ist und triggert den Start des zweiten Skriptes, das meine Historie erzeugt:

Hier werden zunächst die Räume in der 9-stelligen Historie um eins nach unten gereicht und anschließend der neueste Historieeintrag aus den entsprechenden Werten des Adapters erzeugt. Dann werden den Tag- und Zeiteinträgen in der meiner Historie die entsprechenden Werte des Adapters formatiert zugewiesen, z.B.
0_userdata.0.Saugroboter.Tag1 <- roborock.0.Devices.x.cleaningInfo.Records.1.begin
ebenso
0_userdata.0.Saugroboter.Zeit1 <- roborock.0.Devices.x.cleaningInfo.Records.1.beginZum Schluss wird der Klarname in 0_userdata.0.Saugroboter.Zimmer_Name_aktuell mit einem „?“ gelöscht.
Problem:
Etwas kritisch ist bei beiden Skripten das Timing in Verbindung mit dem laufenden Adapter, das muss durch testen und einfügen von Pausen angepasst werden.
Wie schon oben geschrieben, dass ganze funktioniert nur, wenn die Einzelzimmerreinigung über die gui gestartet wird. Es funktioniert nicht beim Start über die Handy-App und es funktioniert auch nicht bei Zonenreinigung.
Ich hoffe, ich konnte meine Skripte erläutern. Wenn Du Fragen hast, melde Dich bitte.
Viele Grüße, Bert.
-
@rmortan es ist nicht möglich die Karte auf Raspberry Pi zu verwenden.
@copystring said in Neuer Adapter für Roborock-Staubsauger:
@rmortan es ist nicht möglich die Karte auf Raspberry Pi zu verwenden.
Kannst du mir sagen warum das nicht aus dem PI läuft? Danke
Gruß
-
Dazu steht ganz weit oben (oder im tester Thread vom Anfang des Adapters) schonmal was. Liegt wohl irgendwie an arm
@david-g said in Neuer Adapter für Roborock-Staubsauger:
Dazu steht ganz weit oben (oder im tester Thread vom Anfang des Adapters) schonmal was. Liegt wohl irgendwie an arm
Ok, danke für die info. Also müsste man auf einen Nuc umstellen?!
-
@david-g said in Neuer Adapter für Roborock-Staubsauger:
Dazu steht ganz weit oben (oder im tester Thread vom Anfang des Adapters) schonmal was. Liegt wohl irgendwie an arm
Ok, danke für die info. Also müsste man auf einen Nuc umstellen?!
-
@maxb said in Neuer Adapter für Roborock-Staubsauger:
Diesen String kann ich dann über die geschweiften Klammern in VIS einbinden, es funktionert alles ohne Probleme!
Hallo,
Ich schaffe alles (Blockly Script und Variable) bis auf diesen letzten Schritt. Bitte um eine Erklärung wie das genau geht.
Danke
StefanEDIT GELÖST: Funktioniert über ein Basic - String (unescaped)
-
So habe jetzt meine Steuerung etwas umgebaut. Habe die Steuerung in meinen Grundriss integriert. Abgedunkelte Räume sind deselektiert und helle Räume sind zur Reinigung ausgewählt. Kann diese Ansicht an bzw ausschalten.
Hier ein Video dazu.
-
Hallo zusammen,
ich habe mir einen Q Revo zugelegt und auch gleich den Adapter installiert....eine super Sache!
Hab mir schon einige Beiträge durchgelesen hab aber noch nichts dazu gefunden:Gibt es auch eine Möglichkeit das man den Q Revo über den Adapter nur saugen lässt?
Ich habe bei mir nur eine Ebene eingerichtet, und hatte die Einzelraum Reinigung mal über segmented clean angestossen - was auch geklappt hat.
Bei einem zweiten Versuch hatte es dann nicht mehr geklappt.Raumnamen wurden in der App vergeben und wurden auch nicht geändert.
Habt ihr da einen Tipp für mich?Ich nutze die Adapter Version 0.4.4
-
Hallo zusammen,
ich habe den Adapter 0.4.4 installiert und getestet. Soweit funktioniert die Steuerung gut.
Allerdings kann ich die Wischintensität nicht einstellen. Mir fehlt in der Objektliste set_water_box_custom_mode. Hat noch einer diese Problem. Was könnte ich sonst noch tun?
Danke
Stefan -
Hallo zusammen,
ich habe den Adapter 0.4.4 installiert und getestet. Soweit funktioniert die Steuerung gut.
Allerdings kann ich die Wischintensität nicht einstellen. Mir fehlt in der Objektliste set_water_box_custom_mode. Hat noch einer diese Problem. Was könnte ich sonst noch tun?
Danke
StefanMoin in die Runde,
Black Friday Deals, dies, das. Hab nun meinen Roborock Q8 Max+ geliefert bekommen und werde ihn nächste Woche in Betrieb nehmen.
Läuft der Q8 Max mit diesem Adapter?Danke und beste Grüße!
-
Hallo zusammen,
ich habe mir einen Q Revo zugelegt und auch gleich den Adapter installiert....eine super Sache!
Hab mir schon einige Beiträge durchgelesen hab aber noch nichts dazu gefunden:Gibt es auch eine Möglichkeit das man den Q Revo über den Adapter nur saugen lässt?
Ich habe bei mir nur eine Ebene eingerichtet, und hatte die Einzelraum Reinigung mal über segmented clean angestossen - was auch geklappt hat.
Bei einem zweiten Versuch hatte es dann nicht mehr geklappt.Raumnamen wurden in der App vergeben und wurden auch nicht geändert.
Habt ihr da einen Tipp für mich?Ich nutze die Adapter Version 0.4.4
@chefffe sagte in Neuer Adapter für Roborock-Staubsauger:
Hallo zusammen,
ich habe mir einen Q Revo zugelegt und auch gleich den Adapter installiert....eine super Sache!
Hab mir schon einige Beiträge durchgelesen hab aber noch nichts dazu gefunden:Gibt es auch eine Möglichkeit das man den Q Revo über den Adapter nur saugen lässt?
Ich habe bei mir nur eine Ebene eingerichtet, und hatte die Einzelraum Reinigung mal über segmented clean angestossen - was auch geklappt hat.
Bei einem zweiten Versuch hatte es dann nicht mehr geklappt.Raumnamen wurden in der App vergeben und wurden auch nicht geändert.
Habt ihr da einen Tipp für mich?Ich nutze die Adapter Version 0.4.4
Den "Fehler" mit der Einzelraum Reinigung lag wohl an mir, funktioniert also alles bestens.
Wenn mir jemand verraten könnte wie man den Modus "Nur Saugen" per Adapter anstösst wäre ich sehr dankbar. -
@chefffe sagte in Neuer Adapter für Roborock-Staubsauger:
Hallo zusammen,
ich habe mir einen Q Revo zugelegt und auch gleich den Adapter installiert....eine super Sache!
Hab mir schon einige Beiträge durchgelesen hab aber noch nichts dazu gefunden:Gibt es auch eine Möglichkeit das man den Q Revo über den Adapter nur saugen lässt?
Ich habe bei mir nur eine Ebene eingerichtet, und hatte die Einzelraum Reinigung mal über segmented clean angestossen - was auch geklappt hat.
Bei einem zweiten Versuch hatte es dann nicht mehr geklappt.Raumnamen wurden in der App vergeben und wurden auch nicht geändert.
Habt ihr da einen Tipp für mich?Ich nutze die Adapter Version 0.4.4
Den "Fehler" mit der Einzelraum Reinigung lag wohl an mir, funktioniert also alles bestens.
Wenn mir jemand verraten könnte wie man den Modus "Nur Saugen" per Adapter anstösst wäre ich sehr dankbar.@chefffe das geht da gibt es ein datenpunkt den du umstellen musst, ändere es mal in der app und schaue dann im Adapter. Bin im Moment leider nicht am Rechner
-
@chefffe das geht da gibt es ein datenpunkt den du umstellen musst, ändere es mal in der app und schaue dann im Adapter. Bin im Moment leider nicht am Rechner
@michael-1975 Wenn ich an der App den Modus Saugen und Wischen/Saugen toggle ändert sich der Parameter "water_box_mode" unter "Device Status"
Problem ist ich kann hier nicht schreiben, ist nur ein lesbarer Parameter. Sonst sehe ich keine Änderungen beim Umschalten. -
@michael-1975 Wenn ich an der App den Modus Saugen und Wischen/Saugen toggle ändert sich der Parameter "water_box_mode" unter "Device Status"
Problem ist ich kann hier nicht schreiben, ist nur ein lesbarer Parameter. Sonst sehe ich keine Änderungen beim Umschalten.@chefffe Änderungen kann man nur über commands vornehmen.
-
@chefffe Änderungen kann man nur über commands vornehmen.
@copystring Ja genau. Aber leider fehlt bei mir unter commands der DP water_box_mode.
-
@copystring Ja genau. Aber leider fehlt bei mir unter commands der DP water_box_mode.
@stefan206cc water_box_mode fehlt nicht. Den Befehl gibt es bei roborock gar nicht.
Das sind die drei Einstellungen mit denen du herumspielen kannst:

-
@stefan206cc water_box_mode fehlt nicht. Den Befehl gibt es bei roborock gar nicht.
Das sind die drei Einstellungen mit denen du herumspielen kannst:

@copystring Danke für die Info. set_custom_mode funktioniert bei mir. Den DP set_mop_mode kann ich zwar ändern aber dies hat keine Auswirkung. Mein Problem ist das der DP set_water_box_custom_mode fehlt.
-
@copystring Danke für die Info. set_custom_mode funktioniert bei mir. Den DP set_mop_mode kann ich zwar ändern aber dies hat keine Auswirkung. Mein Problem ist das der DP set_water_box_custom_mode fehlt.
@stefan206cc OK. Dann bitte auf Github ein Issue erstellen und ein Debuglog anhängen.