NEWS
Roborock Adapter tester gesucht
-
@david-g sagte in Roborock Adapter tester gesucht:
Arbeit in einer Ubuntu VM (über vmware esxi)
Zu wenig infos.
Welche Ubuntu Version?
NodeJS?
NPM?
Log im Debug mode -
Bleibt nun grün.
Die Firewall hat den Adapter irgendwie geblockt. Mal sehen warum (hab Sie grad zum Test kurz deaktiviert). -
@david-g said in Roborock Adapter tester gesucht:
So,
habe getestet. Es klappt.
Allerdings war es wohl ein Fehler meinerseits.Ich muss (wie ich jetzt gemerkt habe) erst die Multimap der Etage laden, und dann die Reinigung starten.
Das bekomme ich aber leicht in einem Skript eingebaut.Genau. Die Karte muss ausgewählt sein damit dort entsprechenden gesaugt wird.
EDIT:
Hab mir ein Blockly geschrieben, um sicherzugehen, dass ich nur Räume in einer Etage aktiv habe und wähle dementsprechend die entsprechende Map aus.Es reicht tatsächlich aus nur die Karte auszuwählen. Den Rest macht der Adapter automatisch. Das bedeutet es werden nur die Räume zum Reinigen abgeschickt, welche auf auf der aktuellen Karte verfügbar sind. Dadurch muss man nicht jedes mal die zu reinigenden Räume ändern.
So kann man in der Visu nichts falsch machen:
Aber eine andere Frage:
Bei jedem Start sende ich vorab noch die Saugleistung und Wassermenge über set_water_box_custom_mode und set_custom_mode.
Die Beiden Datenpunkte stehen in meiner Visualisierung zum dropdown bereit.Das mache ich, da meine Frau das ggf zwischenzeitlich per App geändert haben könnte.
Ist es möglich die beiden Datenpunkte unter commands vom Adapter aus mit dem Roboter synchron zu halten?
So müsste man/ich es nicht immer mit senden und man sieht die aktuelle Einstellung in seiner Auswahl.
Ähm nein. Das baue ich bewusst nicht ein da die commands, wie der Name schon verrät, einfach nur Befehle sind. Dort wird absichtlich nichts gelesen weil der echte wert von z.B. water_box_custom_mode unter deviceStatus zu finden ist. Synchron ist also alles unter deviceStatus. Diese nehmen auch die Daten aus der App entsprechend an. Wenn du dann über den Adapter set_water_box_custom_mode ausführst taucht genau so unter deviceStatus auf wie aus der App.
-
Ich brauche mal eure Hilfe.
Es geht darum, die echten Werte der Verbrauchsmaterialien des Saugroboters zu bekommen.
Bei mir sind das diese: Filter, Main Brush, Side Brush.
In der aktuellen dev branch von gerade eben wird nicht mehr wie zuvor HomeData nur ein mal beim Einrichten des Adapters aktualisiert, sondern bei jedem Reconnect. Dadurch werden selbstverständlich einige weitere Daten zur Verfügung gestellt.
In diesem Fall geht es um drei Werte im JSON String unter deviceStatus von HomeData.: 125, 126,127
Diese haben bei mir folgende Bedeutung:- 125 = Main Brush
- 126 = Side Brush
- 127 = Filter
Von jedem Wert dann jeweils 1 abziehen. Das sollte dann dem Wert in der App entsprechen.
Klappt das bei euch auch würde ich das tatsächlich einbauen. Dadurch erhalten wir alle drei Stunden (oder bei Reconnect) die echten Werte in Prozent der Verbrauchsmaterialien, ohne für jeden Roboter eine eigene Berechnung durchführen zu müssen. -
@copystring sagte in Roborock Adapter tester gesucht:
Ähm nein. Das baue ich bewusst nicht ein da die commands......
Okay, danke für die Info. Dann schaue ich mal, wie man das in der Visu schlau umsetzt um sich nicht von den "falschen" Werten irritieren zu lassen.
@copystring sagte in Roborock Adapter tester gesucht:
Ich brauche mal eure Hilfe.
Es geht darum, die echten Werte der Verbrauchsmaterialien des Saugroboters zu bekommen.Gibt es die Werte schon irgendwo?
In der Json hab ich was stehen, hier exemplarisch ein Wert."id": "125", "name": "主刷寿命", "code": "main_brush_life", "mode": "rw", "type": "VALUE", "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": null, \"scale\": 1}", "desc": null
-
@david-g said in Roborock Adapter tester gesucht:
Gibt es die Werte schon irgendwo?
In der Json hab ich was stehen, hier exemplarisch ein Wert."id": "125", "name": "主刷寿命", "code": "main_brush_life", "mode": "rw", "type": "VALUE", "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": null, \"scale\": 1}", "desc": null
Ja weiter unten im deviceStatus
-
Gefunden
"deviceStatus": { "120": 0, "121": 8, "122": 79, "123": 102, "124": 203, "125": 99, "126": 99, "127": 98, "128": 0, "133": 1 },
Stimmt bei mir aber nicht mit den Daten in der App überein (auch nicht mit -1).
-
@david-g OK. Mal bitte in ioBroker checken, wann HomeData zuletzt geschrieben wurden. Sind das vielleicht alte Daten?
-
@copystring sagte in Roborock Adapter tester gesucht:
@david-g OK. Mal bitte in ioBroker checken, wann HomeData zuletzt geschrieben wurden. Sind das vielleicht alte Daten?
In der Tat.
Ist vom 19.2 -
@david-g aber die aktuelle dev branch ist installiert? Die schreibt bei jedem Start die Daten neu.
-
Ja, gestern Abend nach deinem Post mit der Bitte zu testen installiert.
Installiere gleich nochmal drüber.
EDIT
Jetzt stimmen die Werte.
Braucht das auf git ggf kurz bis die aktuellste Version ausgeliefert wird?"deviceStatus": { "120": 0, "121": 8, "122": 22, "123": 104, "124": 201, "125": 96, "126": 94, "127": 92, "128": 0, "133": 1 },
Die Werte sind zum Screenshot oben wirklich was gesunken.
-
@copystring sagte in Roborock Adapter tester gesucht:
Ähm nein. Das baue ich bewusst nicht ein da die commands, wie der Name schon verrät, einfach nur Befehle sind.
Da habe ich doch nochmal eine Frage zu.
Wie würdest du einen parallelen Betrieb der App und Iobroker dann in einer Visualisierung umsetzen?Ich sehe mehrere Varianten, die aber alle Nachteile haben.
Man zeigt in der Visu den Wert unter commands und steuert auch darüber. Diese Werte sind aber veraltet, falls zuvor die App genutzt wurde
Ich zeige den Wert von deviceStatus und mache zusätzlich ein dropdown mit den Werten aus commands. Sieht aber a nicht gut aus und kann b zu Problemen führen wenn ich die Saugleistung zb in der App aktuell auf stark stehen habe, diese über den Adapter auf leise stellen möchte und diese unter commands bereits auf leise steht. Dann müsste man immer erst was anderes auswählen und dann wieder auf leise gehen.
Wie ich es jetzt mache. In der VIS wie unter 1 und ein Blockly was commands mit deviceStatus syncon hält. Der Nachteil ist, dass man jede akustische Meldung doppelt bekommt mit einigen Sekunden Versatz. Ist von der Bedienung her die beste Variante,abgesehen von dem doppelten Geräusch.
-
@david-g Schau dir mal aliase an. Dort kann man getter und setter einstellen.
Set wäre dann command und get entsprechend der Status aus deviceStatus.
Den alias dann in vis verwenden.
Das hat den auch den Vorteil, dass wenn man den Roboter Mal tauschen muss reicht es aus die aliase anzupassen und in vis muss nichts geändert werden. -
Das stimmt, mit dem Alias arbeite ich auch schon recht viel. Aber daran habe ich nicht gedacht....
So hat man dann vermutlich nach der Eingabe nur eine Verzögerung bis der echte neue Wert angezeigt wird (der Adapter wieder Daten geholt hat)
Umgeht das Alias auch das Problem von 2b?
-
@david-g said in Roborock Adapter tester gesucht:
Umgeht das Alias auch das Problem von 2b?
Ich glaube schon. Am besten einfach Mal ausprobieren.
-
Beobachte es mal.
Hab mir jetzt alle Aliase erstellt.
Da ist mir bei Mop_Mode was aufgefallen.
Auf Deep+ steht er bei commands auf 302 und bei deviceStatus auf 303. Vermutlich ein Fehler oder?
EDIT
Das mit dem Alias klappt gut.
Das befürchtete Problem scheint es nicht zu geben. Bekomme es zumindest nicht provoziert. -
@david-g said in Roborock Adapter tester gesucht:
@copystring
Auf Deep+ steht er bei commands auf 302 und bei deviceStatus auf 303. Vermutlich ein Fehler oder?Stimmt. Habe ich in der dev branch korrigiert. Danke.
-
Habe heute noch etwas festgestellt, als die Steuerung über die Visu nicht geklappt hat.
Der Datenpunkt load_multi_map synchronisiert sich mit der App.
Laut deiner Definition von commands darf das ja eigentlich nicht sein.
Hab es eben gemerkt, da ich über meine vis einen Raum reinigen wollte der heute morgen schon mal dran war. Allerdings hat meine Frau heute mittag einen Raum in einer anderen Etage gereinigt (über die App).Somit hat die Reinigung über meine vis nicht geklappt.
Bekomme ich easy mit einem Skript gelöst. Weiß nur nicht, ob es so gewünscht ist vom Adapter her.
-
@david-g said in Roborock Adapter tester gesucht:
Habe heute noch etwas festgestellt, als die Steuerung über die Visu nicht geklappt hat.
Der Datenpunkt load_multi_map synchronisiert sich mit der App.
Erwischt
Ja das ist der einzige Punkt der synchron sein muss damit die Räume sauber geladen werden.Reicht es nicht aus get und set dann auf den selben Datenpunkt zu setzen?
-
🤭
Hab es jetzt mit einem Skript gelöst. Bevor die Reinigung gestartet wird, schaue ich in welcher Etage ein Raum aktiv ist und lade die entsprechende Etage.
Ein anderes Skript stellt sicher, dass man nur Räume in einer Etage auswählen kann.