Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Waterlevel extrem / manuel (207) #755

Open
tobschn opened this issue Mar 7, 2023 · 16 comments
Open

Support Waterlevel extrem / manuel (207) #755

tobschn opened this issue Mar 7, 2023 · 16 comments

Comments

@tobschn
Copy link

tobschn commented Mar 7, 2023

Describe the bug
Die neue Firmware (4.1.2_1668) eventuell auch schon eine ältere Version des Roborock S5 Max unterstützt nun den Wischmodus Extrem. Dieser ist wohl auf die ID 207 gemappt. Da dieser Wert über dem Maximalwert von 204 liegt, wirft der Adapter/ Datenpunkt einen Fehler. Bei dem Wischmodus Extrem lässt sich die Wassermenge Manuel von 1-30 einstellen (vergleiche Screenshot).

To Reproduce
Steps to reproduce the behavior:

  1. Saugleistungseinstellungen öffnen
  2. Allgemein oder Benutzerdefiniert auswählen
  3. Wasserstand auf Manuel/ Extrem einstellen
  4. See error at "mihome-vacuum.0.control.water_box_mode"

Expected behavior
Der Zustand Extrem/ Manuel sollte unterstützt werden. Ein weiterer Datenpunkt für die manuelle Eingabe des nun erwarteten Wasserstandlevels (1-30) sollte ermöglicht werden. Jedoch würde die allgemeine Unterstützung des Zustands Manuel/ Extrem (207) ausreichen.

Screenshots & Logfiles
Log:

2023-03-07 16:57:58.962 - debug: mihome-vacuum.0 (3685634) Time difference between Mihome Vacuum and ioBroker: 1 sec
2023-03-07 16:57:59.610 - debug: mihome-vacuum.0 (3685634) get params for stock Vacuum
2023-03-07 16:57:59.611 - debug: mihome-vacuum.0 (3685634) Message= {"id":39,"method":"get_status"}
2023-03-07 16:57:59.620 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[{"msg_ver":2,"msg_seq":1193,"state":8,"battery":99,"clean_time":88,"clean_area":915000,"error_code":0,"map_present":1,"in_cleaning":0,"in_returning":0,"in_fresh_state":1,"lab_status":3,"water_box_status":0,"fan_power":104,"dnd_enabled":0,"map_status":3,"is_locating":0,"lock_status":0,"water_box_mode":207,"distance_off":60,"water_box_carriage_status":0,"mop_forbidden_enable":0,"unsave_map_reason":4,"unsave_map_flag":0}],"id":39}
2023-03-07 16:57:59.620 - debug: mihome-vacuum.0 (3685634) setGetStatus {"msg_ver":2,"msg_seq":1193,"state":8,"battery":99,"clean_time":88,"clean_area":915000,"error_code":0,"map_present":true,"in_cleaning":false,"in_returning":0,"in_fresh_state":1,"lab_status":3,"water_box_status":0,"fan_power":104,"dnd_enabled":false,"map_status":3,"is_locating":0,"lock_status":0,"water_box_mode":207,"distance_off":60,"water_box_carriage_status":0,"mop_forbidden_enable":0,"unsave_map_reason":4,"unsave_map_flag":0,"error_text":"No error"}
2023-03-07 16:57:59.621 - debug: mihome-vacuum.0 (3685634) Message= {"id":40,"method":"get_network_info"}
2023-03-07 16:57:59.645 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":{"ssid":"??????","ip":"192.168.178.99","mac":"64:90:c1:07:bd:80","bssid":"38:10:d5:df:01:29","rssi":-82},"id":40}
2023-03-07 16:57:59.647 - warn: mihome-vacuum.0 (3685634) State value to set for "mihome-vacuum.0.control.water_box_mode" has value "207" greater than max "204"
2023-03-07 16:57:59.693 - debug: mihome-vacuum.0 (3685634) Message= {"id":41,"method":"get_sound_volume"}
2023-03-07 16:57:59.700 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[90],"id":41}
2023-03-07 16:57:59.701 - debug: mihome-vacuum.0 (3685634) Message= {"id":42,"method":"get_map_v1"}
2023-03-07 16:57:59.709 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":["rubyslite%2F320717213%2F3"],"id":42}
2023-03-07 16:57:59.709 - debug: mihome-vacuum.0 (3685634) Mappointer_updated
2023-03-07 16:57:59.709 - debug: mihome-vacuum.0 (3685634) Message= {"id":43,"method":"get_carpet_mode"}
2023-03-07 16:57:59.722 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[{"enable":1,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10}],"id":43}
2023-03-07 16:58:08.967 - debug: mihome-vacuum.0 (3685634) Receive <<< Helo <<< 2131002000000000131dc19d64075f11ffffffffffffffffffffffffffffffff
2023-03-07 16:58:08.968 - debug: mihome-vacuum.0 (3685634) Time difference between Mihome Vacuum and ioBroker: 1 sec
2023-03-07 16:58:18.972 - debug: mihome-vacuum.0 (3685634) Receive <<< Helo <<< 2131002000000000131dc19d64075f1bffffffffffffffffffffffffffffffff
2023-03-07 16:58:18.973 - debug: mihome-vacuum.0 (3685634) Time difference between Mihome Vacuum and ioBroker: 1 sec
2023-03-07 16:58:19.770 - debug: mihome-vacuum.0 (3685634) get params for stock Vacuum
2023-03-07 16:58:19.771 - debug: mihome-vacuum.0 (3685634) Message= {"id":44,"method":"get_status"}
2023-03-07 16:58:19.781 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[{"msg_ver":2,"msg_seq":1206,"state":8,"battery":100,"clean_time":88,"clean_area":915000,"error_code":0,"map_present":1,"in_cleaning":0,"in_returning":0,"in_fresh_state":1,"lab_status":3,"water_box_status":0,"fan_power":104,"dnd_enabled":0,"map_status":3,"is_locating":0,"lock_status":0,"water_box_mode":207,"distance_off":60,"water_box_carriage_status":0,"mop_forbidden_enable":0,"unsave_map_reason":4,"unsave_map_flag":0}],"id":44}
2023-03-07 16:58:19.782 - debug: mihome-vacuum.0 (3685634) setGetStatus {"msg_ver":2,"msg_seq":1206,"state":8,"battery":100,"clean_time":88,"clean_area":915000,"error_code":0,"map_present":true,"in_cleaning":false,"in_returning":0,"in_fresh_state":1,"lab_status":3,"water_box_status":0,"fan_power":104,"dnd_enabled":false,"map_status":3,"is_locating":0,"lock_status":0,"water_box_mode":207,"distance_off":60,"water_box_carriage_status":0,"mop_forbidden_enable":0,"unsave_map_reason":4,"unsave_map_flag":0,"error_text":"No error"}
2023-03-07 16:58:19.783 - debug: mihome-vacuum.0 (3685634) Message= {"id":45,"method":"get_network_info"}
2023-03-07 16:58:19.811 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":{"ssid":"??????","ip":"192.168.178.99","mac":"64:90:c1:07:bd:80","bssid":"38:10:d5:df:01:29","rssi":-82},"id":45}
2023-03-07 16:58:19.813 - warn: mihome-vacuum.0 (3685634) State value to set for "mihome-vacuum.0.control.water_box_mode" has value "207" greater than max "204"
2023-03-07 16:58:19.861 - debug: mihome-vacuum.0 (3685634) Message= {"id":46,"method":"get_sound_volume"}
2023-03-07 16:58:19.868 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[90],"id":46}
2023-03-07 16:58:19.869 - debug: mihome-vacuum.0 (3685634) Message= {"id":47,"method":"get_map_v1"}
2023-03-07 16:58:19.876 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":["rubyslite%2F320717213%2F3"],"id":47}
2023-03-07 16:58:19.876 - debug: mihome-vacuum.0 (3685634) Mappointer_updated
2023-03-07 16:58:19.876 - debug: mihome-vacuum.0 (3685634) Message= {"id":48,"method":"get_carpet_mode"}
2023-03-07 16:58:19.885 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[{"enable":1,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10}],"id":48}
2023-03-07 16:58:19.885 - debug: mihome-vacuum.0 (3685634) MIIO RECIVE: {"result":[{"enable":1,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10}],"id":48}

Screenshot von App:
Screenshot_20230307-171841

Versions:

  • Adapter version: v3.9.5
  • JS-Controller version: 4.0.23
  • Node version: v16.18.1
  • vacuum cleaner: Roborock S5 max (firmware version 4.1.2_1668)
@dirkhe
Copy link
Contributor

dirkhe commented Mar 7, 2023

hast du eine Idee, wie der wasserstandslevel heißt, also wo man die in den Daten wiederfindet, wenn du den eingestellt hast?
Dann könnte man auch analog der anderen Befehle mal rumspielen, ob man den auch setzten kann?

@tobschn
Copy link
Author

tobschn commented Mar 8, 2023

Yes, der Wert ist in distance_off kodiert.

  • Wasserstandslevel 1: distance_off: 205
  • Wasserstandslevel 30: distance_off: 60
  • Wasserstandslevel x: distance_off: 210 - 5 * x
    Desweiteren ist mir aufgefallen, dass es wohl nur einen benutzerdefinierten Wasserstandslevel gibt der global für den gesamten Staubsauger gilt. Es ist nämlich nicht möglich dieses Level für jeden Raum separat einzustellen.

@dirkhe
Copy link
Contributor

dirkhe commented Mar 11, 2023

Hmmm, distance_off für wasserstandslevel, macht meiner Meinung nach nicht wirklich Sinn, oder?

dirkhe added a commit that referenced this issue Apr 2, 2023
dirkhe added a commit that referenced this issue Apr 2, 2023
@dirkhe
Copy link
Contributor

dirkhe commented Apr 2, 2023

Bitte mal die aktuelle Version auschecken (master), da habe ich das implementiert. Du kannst das auch pro Raum einstellen

@tobschn
Copy link
Author

tobschn commented Apr 3, 2023

Okay danke! Bin gerade nicht zu Hause, werde dir dann Ende der Woche Rückmeldung geben :)

@Vumer4
Copy link

Vumer4 commented Apr 3, 2023

Hab auch die Meldung: State value to set for "mihome-vacuum.0.control.water_box_mode" has value "207" greater than max "204"
Roborock Q7 Max, mihome-vacuum v3.9.5

Bitte mal die aktuelle Version auschecken (master),

wie macht man das? Unter latest finde ich nichts.

@dirkhe
Copy link
Contributor

dirkhe commented Apr 3, 2023

Einfach die start url in mybroker über die katze eingeben

dirkhe added a commit that referenced this issue Apr 7, 2023
* (Dirkhe) check also stockcommands in onMessage
* (Dirkhe) add feature waterbox level #755
@tobschn
Copy link
Author

tobschn commented Apr 7, 2023

So ich habe es mal getestet:

  • Das globale setzen des water_box_mode level (207) über ioBroker funktioniert.
  • Das globale setzen des water_box_mode level (207) über die App wird in ioBroker aktualisiert
  • setzen von water_box_level über ioBroker funktioniert nicht. Sobald gesetzt wird kurze Zeit später der alte Wert wieder genommen im Datenpunkt
  • sobald das water_box_level über die App eingestellt wird erscheint auch der neue Wert in ioBroker
  • Das raumbasierte setzen des water_box_mode level (207) über ioBroker funktioniert irgendwie auch nicht, also ich kann zumindest bei mir nicht level auswählen. (Jedoch werden auch alle anderen gesetzten Werte nicht in der App in der Karte aktualisert.... Ich denke dort ist bei mir irgendetwas anderes nicht richtig, weiß jedoch leider nicht was...)
  • Umkehrt aus der App aus geänderte raumbezogene Werte werden auch nicht in ioBroker aktualisiert

Hast du vielleicht eine Idee, was bei mir mit den Räumen nicht funktionieren könnte? Ich muss dazusagen, dass ich bisher auch die raumbezogenen Datenpunkte bisher nicht verwendet habe, außer dem roomClean Datenpunkt, dieser funktioniert perfekt.

@dirkhe
Copy link
Contributor

dirkhe commented Apr 7, 2023

Danke schon mal fürs Testen, ich schaue mir das nochmal an.
Das mit den Räumen funktioniert hier anders. Du hast quasi nur die Raumcontrols hier. Wenn du in ioBroker was einstellst, bleibt das so, da wird nichts überschrieben, außer der state. Wenn du jetzt aus IOB heraus einen Raum antriggerst, werden die Werte aus IOb an den globalen State geschrieben, der dann die States auch in der app anpassen sollte. Wenn du natürlich in der app auch irgendwelche Einstellungen für die Räume hast, könnte sich das gegenseitig beinträchtigen

@dirkhe
Copy link
Contributor

dirkhe commented Apr 8, 2023

Ich habe gerade auch noch mal Tests gemacht. Es sieht so aus, als wenn er den Level wirklich nicht annimmt, habe mich hier dran orientiert: https://github.com/marcelrv/XiaomiRobotVacuumProtocol/blob/master/water_box_custom_mode.md
Was ich auf jeden Fall festgestellt habe, dass ich nochmal direkt ein getStatus hinterher schicken muss, damit sich ioBroker waterboxMode auch ändert, wenn man den level verändert, weil ich dann automatisch den Mode auf 207 setzte.

@dirkhe
Copy link
Contributor

dirkhe commented Apr 8, 2023

Ich habe gerade nochmal die Netzwerkkommunikation mitgeschnitten...
set_water_box_distance_off ist, was wir brauchen. Ich baue das mal entsprechend um

@tobschn
Copy link
Author

tobschn commented Apr 8, 2023

Okay, merkwürdig, warum auch immer der Wert dann in distance_off auch übermittelt wird... Sehr gut, sag gerne bescheid, wenn ich das neue testen kann :)

@dirkhe
Copy link
Contributor

dirkhe commented Apr 10, 2023

So, ich habe den Fehler gefunden, warum das mit den Räumen nicht funktionierte, ist in 3.10.1 gefixt, bitte nochmal testen

@dirkhe
Copy link
Contributor

dirkhe commented Oct 31, 2023

@tobschn Funktioniert das jetzt, können wir das Ticket schließen?

@tobschn
Copy link
Author

tobschn commented Nov 9, 2023

Sorry für die späte Antwort!
Also, ich habe es heute wieder intensiv gestestet:

  • mihome-vacuum.0.control.water_box_mode: global funktioniert
  • mihome-vacuum.0.control.water_box_level: global funktioniert
  • mihome-vacuum.0.rooms.XXXXX.roomWaterBoxMode: raumbezogen funktioniert
  • mihome-vacuum.0.rooms.XXXXX.roomWaterBoxLevel: raumbezogen funktioniert nicht, hier wird der zuvor eingestellte globale wert genommen

@dirkhe
Copy link
Contributor

dirkhe commented Jan 5, 2024

Laso ich habe das gerade auch nochmal getestet, bei mir setzt er den level, zumindest sehe ich in iobroker, das der level unter control sich anpasst. Das geht natütlich nur, wenn im Raum der mode auch auf Level gesetzt ist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants