NEWS
Roborock Adapter tester gesucht
-
So, der Adapter ist installiert und "Rocky" dreht seine ersten Runden. Was mir sofort positiv aufgefallen ist: die Karte wird auf Anhieb angezeigt. Super!
Jetzt implementiere ich die Funktionen nach und nach in meine VIS. Dabei sind zwei Fragen aufgetaucht.
1.: Wie teile ich Rocky mit, dass er eine Koordinate anfahren soll (Pin and Go)? Das brauche ich, um Rocky zum Mülleimer und zur Treppe fahren zu lassen
2.: In der MiHome-App gab es ein JSON für die History. In diesem Adapter wird dies wohl über einzelne DPs gelöst.
a) wie bekomme ich die DPs wohl am elegantesten in eine Tabellenform?
b) ist angedacht, die History ebenfalls als JSON bereitzustellen?Viele Grüße und 'Rock on!'
Timo -
Bei 1 kann ich dir nicht helfen.
Zu 2 habe ich ein Blockly, das kann ich nachher posten.EDIT:
Hier das Blockly für die Tabelle:
-
@david-g
Vielen Dank, Dein Blockly ist ein guter Ansetzpunkt. Du machst da also eine HTML-Tabelle draus. Nach gleichem Schema lässt sich auch ein JSON daraus basteln. Dann brauche ich meine VIS nicht umzustricken.Natürlich wäre ich glücklich - nein - extrem begeistert, wenn das der Adapter nativ mit sich bringen würde ^^
Bleibt die Frage mit dem Pin & Go noch offen.
Edit:
UUUUIHHH, gerade das Webinterface-Feature entdeckt. RESPEKT, @copystring ! Das wertet den Adapter noch einmal zusätzlich auf. Könnte man alternativ die Zonen- und GoTo-Buttons auch als DPs in den Adapter integrieren? Die weiteren Buttons sind ja schon so ansteuerbar. Vorteil wäre, dass man das Interface an sein Design anpassen könnte.Noch eine Sache, die mir aufgefallen ist: Bei meinem S5MAX wird der DP 'set_water_box_custom_mode' nicht angezeigt, obwohl ich ihn in der App einstellen kann.
Beste Grüße,
Timo -
@spampunk said in Roborock Adapter tester gesucht:
b) ist angedacht, die History ebenfalls als JSON bereitzustellen?
In der neuen dev Version habe ich einen neuen JSON Datenpunkt für den Verlauf erstellt.
Die Daten sind jedoch nicht verarbeitet und kommen so direkt von Roborock. z. B. musst dir die Einheiten und Zeiten noch umrechnen.Bleibt die Frage mit dem Pin & Go noch offen.
Ebenfalls in der aktuelle dev Version ist jetzt neu der app_goto_target befehl.
Woher bekommst du die Koordinate? Über das Webinterface. Im Browser die Konsole öffnen und mit der Maus dort hinklicken, wohin später der Roboter fahren soll. In der Konsole steht dann sowas wie das hier:Robot coords: [23713,25488]
.[23713,25488]
dann nehmen und über app_goto_target senden. Ob du dir dann deine verschiedenen Koordinaten in Scripte oder Blockly speicherst und absendest, ist dann dir überlassen.Edit:
UUUUIHHH, gerade das Webinterface-Feature entdeckt. RESPEKT, @copystring ! Das wertet den Adapter noch einmal zusätzlich auf. Könnte man alternativ die Zonen- und GoTo-Buttons auch als DPs in den Adapter integrieren? Die weiteren Buttons sind ja schon so ansteuerbar. Vorteil wäre, dass man das Interface an sein Design anpassen könnte.Danke.
Zonenreinigung ist bereits im Adapter eingebaut über app_zoned_clean. Die Koordinaten kannst du ebenfalls der Konsole im Browser ablesen.Noch eine Sache, die mir aufgefallen ist: Bei meinem S5MAX wird der DP 'set_water_box_custom_mode' nicht angezeigt, obwohl ich ihn in der App einstellen kann.
Ebenfalls in der dev Version eingebaut.
Hab ich noch etwas übersehen?
Über eine Rückmeldung freue ich mich sehr. Hier die dev Version: https://github.com/copystring/ioBroker.roborock/tree/devEdit: app_zoned_clean mal aus den commands löschen. Das war fehlerhaft. Dann den Adapter neu starten. Dadurch wird der Befehl sauber neu erstellt.
-
@copystring
Ich bin wirklich sehr begeistert und beeindruckt!
Der Dev-Adapter bietet viel zum Ausprobieren und von den Features, die ich mir vorgestellt habe. Wenn ich Dir eine Rückmeldung zu meinen Eindrücken und Fragen geben darf:1. Records: um die einzelnen Codes besser verstehen zu können, ist hier eine Tabelle. Es wäre super, wenn die Datenpunkte die Erläuterungen darstellen würden z.B. Clean Type | full(1).
Das JSON ist vollkommen i.O. Die Unix Timestamps kann ich selbst umrechnen, die Sekunden usw. auch. Super, dass Du das implementiert hast!
2. Goto: Auch hier wunderbar, dass Du den DP eingefügt hast, um mittels Skript oder so einen Punkt anfahren zu können. Allerdings habe ich noch nicht verstanden, wie ich an die Koordinate komme. Die Koordinaten vom Mihome-Adapter funktionieren aber auch noch, so dass ich die einfach übernommen habe.
Edit: jetzt hab ich es geschnallt! Google ist dein Freund Konsole gefunden, Koordinaten auch - ein Traum!
3. Webinterface: Das ist ein echt tolles Feature, um Zonen zu zeichnen und Pin&Go zu verwenden. Ich würde mir nur wünschen, dass die Karte solo verfügbar wäre. Damit könnte man die Buttons dann im eigenen Style gestalten und auch die Karte drehen. Bei mir steht sie z.B. auf dem Kopf. Ich kann das HTML-Widget mit dem iFrame drehen, aber dann drehe ich auch die Buttons...
So sieht das dann bei mir aus (ohne Drehung):
4. set_water_box_custom_mode: Scheint auch zu funktionieren, danke, dass Du das eingerichtet hast. In den DPs sollten auch noch die Beschreibungen rein. Hier aus dem Mihome Adapter:
5. reset_consumables und diverse Commands: Den DPs würde ich die Rolle 'Button' anstatt 'Value' zuteilen. Aber das ist bereits Kritik auf hohem Niveau
Was hat es denn mit dem DP roborock.0.Devices.xxx.map.mapData auf sich?'
Feature Request: Kann man in der Karte/Webinterface auch die einzelnen Räume anklickbar machen zur Raumreinigung?
Soweit ich das bisher überblicke, funktioniert alles Weitere einwandfrei.
LG Timo
-
@spampunk said in Roborock Adapter tester gesucht:
1. Records: um die einzelnen Codes besser verstehen zu können, ist hier eine Tabelle. Es wäre super, wenn die Datenpunkte die Erläuterungen darstellen würden z.B. Clean Type | full(1).
Ich verstehe nicht ganz was du mir damit sagen möchtest. Kannst du mir das nochmal genauer erklären? Das Github XiaomiRobotVacuumProtocol kenne ich bereits.
Ich würde mir nur wünschen, dass die Karte solo verfügbar wäre.
Die Karte ist unter roborock.0.Devices.XXX.map.mapBase64 solo verfügbar. Du kannst dir damit dein eigenes Webinterface bauen und die Karte drehen. Es ist allerdings nur ein Bild ohne irgendwelche Funktionen. Die musst dir dann selber auf deine Seite in HTML/JS bauen.
4. set_water_box_custom_mode: Scheint auch zu funktionieren, danke, dass Du das eingerichtet hast. In den DPs sollten auch noch die Beschreibungen rein. Hier aus dem Mihome Adapter:
Ist in der neuen dev eingebaut.
5. reset_consumables und diverse Commands: Den DPs würde ich die Rolle 'Button' anstatt 'Value' zuteilen. Aber das ist bereits Kritik auf hohem Niveau
Ähm, ja, das könnte man tatsächlich machen. Dafür müsste ziemlich viele Werte abändern, worauf ich aktuell keine Lust habe. Aber an sich wäre das schon richtig und mit etwas Fleißarbeit verbunden.
Was hat es denn mit dem DP roborock.0.Devices.xxx.map.mapData auf sich?'
Das ist die Karte, bevor daraus ein Bild gemacht wurde. Der Adapter baut daraus ein Bild und speichert es unter mapBase64Truncated und mapBase64 ab.
Feature Request: Kann man in der Karte/Webinterface auch die einzelnen Räume anklickbar machen zur Raumreinigung?
Ja, die Idee hatte ich auch schon, ist aber viel Arbeit. Kommt aber irgendwann, wenn ich mal wieder etwas mehr Zeit habe. Dafür müsste der gesamte Code zum Erstellen der Karte neu geschrieben werden.
-
@copystring said in Roborock Adapter tester gesucht:
@spampunk said in Roborock Adapter tester gesucht:
1. Records: um die einzelnen Codes besser verstehen zu können, ist hier eine Tabelle. Es wäre super, wenn die Datenpunkte die Erläuterungen darstellen würden z.B. Clean Type | full(1).
Ich verstehe nicht ganz was du mir damit sagen möchtest. Kannst du mir das nochmal genauer erklären? Das Github XiaomiRobotVacuumProtocol kenne ich bereits.
Wie unter 4, dass dort eine Beschreibung der Nummernwerte im DP erfolgt.
Ich würde mir nur wünschen, dass die Karte solo verfügbar wäre.
Die Karte ist unter roborock.0.Devices.XXX.map.mapBase64 solo verfügbar. Du kannst dir damit dein eigenes Webinterface bauen und die Karte drehen. Es ist allerdings nur ein Bild ohne irgendwelche Funktionen. Die musst dir dann selber auf deine Seite in HTML/JS bauen.
Das hab ich mir gedacht Kann ich da eventuell auf Deinen Code aufbauen und wo finde ich ihn? Ich bin ja nur ein Hobby-ioBroker-Skriptkiddy, der sich rudimentär und bei Bedarf in HTML/JS/CSS eingearbeitet hat.
4. set_water_box_custom_mode: Scheint auch zu funktionieren, danke, dass Du das eingerichtet hast. In den DPs sollten auch noch die Beschreibungen rein. Hier aus dem Mihome Adapter:
Ist in der neuen dev eingebaut.
5. reset_consumables und diverse Commands: Den DPs würde ich die Rolle 'Button' anstatt 'Value' zuteilen. Aber das ist bereits Kritik auf hohem Niveau
Ähm, ja, das könnte man tatsächlich machen. Dafür müsste ziemlich viele Werte abändern, worauf ich aktuell keine Lust habe. Aber an sich wäre das schon richtig und mit etwas Fleißarbeit verbunden.
Das kann ich gerne machen, wenn Du mir zeigst, wie. Ist das beim Adapterbau so ähnlich wie im Objekte-Tree auf der Admin-Oberfläche? Also ein JSON? Das kriege ich hin. Bei der Gelegenheit kann ich dann auch die Bezeichnungen einpflegen.
Was hat es denn mit dem DP roborock.0.Devices.xxx.map.mapData auf sich?'
Das ist die Karte, bevor daraus ein Bild gemacht wurde. Der Adapter baut daraus ein Bild und speichert es unter mapBase64Truncated und mapBase64 ab.
Feature Request: Kann man in der Karte/Webinterface auch die einzelnen Räume anklickbar machen zur Raumreinigung?
Ja, die Idee hatte ich auch schon, ist aber viel Arbeit. Kommt aber irgendwann, wenn ich mal wieder etwas mehr Zeit habe. Dafür müsste der gesamte Code zum Erstellen der Karte neu geschrieben werden.
Ja, auch das habe ich mir schon gedacht. Ich behelfe mir da wohl weiterhin mit Layer über der Karte. Das funktioniert recht gut, auch wenn es ein wenig hemdsärmelig ist.
LG Timo
-
@copystring
Habe heute die neue dev Version installiert und erhalte jetzt beim Start von der Instanz eine Warnung im LOG:admin.0 2023-04-22 13:02:49.234 warn This object will not be created in future versions. Please report this to the developer. admin.0 2023-04-22 13:02:49.233 warn Object roborock.0.Devices.xxxxxxxxxxxxxxxxxxxxxxx.commands.app_set_dryer_status is invalid: Default value has to be type "boolean" but received type "object"
Wenn man dann versucht app_set_dryer_status zu ändern kommt folgender Fehler:
-
@arnod said in Roborock Adapter tester gesucht:
@copystring
Habe heute die neue dev Version installiert und erhalte jetzt beim Start von der Instanz eine Warnung im LOG:admin.0 2023-04-22 13:02:49.234 warn This object will not be created in future versions. Please report this to the developer. admin.0 2023-04-22 13:02:49.233 warn Object roborock.0.Devices.xxxxxxxxxxxxxxxxxxxxxxx.commands.app_set_dryer_status is invalid: Default value has to be type "boolean" but received type "object"
Wenn man dann versucht app_set_dryer_status zu ändern kommt folgender Fehler:
OK. Kann ich mir angucken. Aber nochmal eine bitte an alle. Ich brauche IMMER ein komplettes Debug log. Ich kann sonst den Saugroboter nicht korrekt zuordnen.
-
@spampunk said in Roborock Adapter tester gesucht:
Das hab ich mir gedacht Kann ich da eventuell auf Deinen Code aufbauen und wo finde ich ihn? Ich bin ja nur ein Hobby-ioBroker-Skriptkiddy, der sich rudimentär und bei Bedarf in HTML/JS/CSS eingearbeitet hat.
https://github.com/copystring/ioBroker.roborock/blob/main/lib/map/map.html
https://github.com/copystring/ioBroker.roborock/blob/main/lib/map/zones.jsKannst du gerne nehmen und anpassen. Kein Problem, aber es ist relativ kompliziert.
Das kann ich gerne machen, wenn Du mir zeigst, wie. Ist das beim Adapterbau so ähnlich wie im Objekte-Tree auf der Admin-Oberfläche? Also ein JSON? Das kriege ich hin. Bei der Gelegenheit kann ich dann auch die Bezeichnungen einpflegen.
Nein, viel komplizierter. Ich müsste dafür erstmal den Code vorbereiten, damit diese neuen Werte überhaupt abgerufen und erstellt werden. Dann kann man in den einzelnen Modellen die jeweiligen Rollen hinterlegen. Man muss also jedes Objekt einmal anfassen und den passenden Rolle einfügen. Dafür muss man aber erstmal wissen, welche Rolle von Roborock geliefert wird.
Hier z. B. wird die Rolle festgelegt: https://github.com/copystring/ioBroker.roborock/blob/608356a63c79a183126e14804af66dfed3c58162/lib/vacuum.js#L325 das muss man dann so abändern, dass diese stattdessen aus der jeweiligen Roboterdefinition gezogen werden. Als Beispiel könnte man das hier bei reset_consumables hinterlegen https://github.com/copystring/ioBroker.roborock/blob/dev/lib/roborock_vacuum_s4.js#L280 -
@arnod said in Roborock Adapter tester gesucht:
@copystring
Habe heute die neue dev Version installiert und erhalte jetzt beim Start von der Instanz eine Warnung im LOG:admin.0 2023-04-22 13:02:49.234 warn This object will not be created in future versions. Please report this to the developer. admin.0 2023-04-22 13:02:49.233 warn Object roborock.0.Devices.xxxxxxxxxxxxxxxxxxxxxxx.commands.app_set_dryer_status is invalid: Default value has to be type "boolean" but received type "object"
Wenn man dann versucht app_set_dryer_status zu ändern kommt folgender Fehler:
Bitte mal die neue dev testen.
-
@copystring
Warnung wird immer noch beim Start ausgegeben, allerdings kann man jetzt keinen Wert bei app_set_dryer_status mehr auswählen und somit kommt der GUI Fehler auch nicht mehr.Hier das LOG File:
LOG.txt -
@arnod Ok. Ich habe die dev Version nochmal aktualisiert.
-
@copystring
Du bist aber schnell , ok teste ich gleich. -
@copystring
Die Warnmeldung kommt nicht mehr und man kannapp_set_dryer_status
auf true und false setzen, ohne dass der GUI Fehler kommt.
Beim Umschalten kommt jetzt aber eine Fehlermeldung "Unknown parameter: unknown_method".
Anbei das LOG File:
LOG.txtZum Issues #118 kann ich dir auch zurückmelden, dass der Adapter jetzt nicht mehr beendet wird bei fehlender Internetverbindung. Allerdings kommt dann ca. alle zwei sek. eine Fehlermeldung, aber das ist jetzt jammern auf hohem Niveau.
-
@arnod müsste in der neuen dev jetzt ohne Fehler durchlaufen.
-
@copystring
Danke für deine schnellen Änderungen.
Ich habe heute mein Trockner Modul zurückgeschickt, da es meiner Meinung nach zu Laut ist und auch nicht unbedingt erforderlich.Es müsste jemand mit Modul testen, ob es jetzt funktioniert.
-
Hallo, ich war jetzt eine Woche im Urlaub. Ich habe heute die neueste dev installiert, davor natürlich alle Objekte gelöscht. Bei mir stimmt die Zuordnung von den floors nicht mehr. Nach starten des Adapters wird unter dem floor 0 also Erdgeschoss auch das Erdgeschoss gemapt. Wechsel ich dann über load_multi_map das Stockwerk wird floor 0 wieder überschireben. Früher hat er das nicht gemacht. Am Ende lautet das Stockwerk Erdgeschoss aber die Räume die er da anzeigt sind dann vom Obergeschoss. Das hat mal richtig funktioniert. Kannst du mal schauen ob sich da ein Fehler eingeschlichen hat?
-
@dimi Müsste jetzt wieder gehen.
-
Super funktioniert wieder. Danke.