Closed mihsu81 closed 1 year ago
@mihsu81 Thanks for the report, we are going to release the fix for the xaiomi vacuums rooms attribute, that actually works on the beta version, as confirmed from @rohankapoorcom that experienced something similar, later today the fix will be published.. will check the go_to function at each rotation angle as per we had to update the cropping function recently adding the trimming. Honestly with the V1 I did see something similar but when releasing the 1.3.4 we already checked and so far the calibration points were correctly provided (will confirm it again before releasing the 1.3.5) and come back to you.
@mihsu81 I did run the go_to function on all rotation value and also adding the trimming the image as well in the current implementation of the beta release and it works correctly with the V1 robot I own, I wold release the v1.3.5 so that you can try it also with the rooms can you please try to install the beta release and confirm if the issue with the go_to is still there? If not so I would need you to send me the json at my email address for future investigation if you don't mind as you can see on the discussions (#17).
I've tried v1.4.5-beta.1 and the situation stays the same. Where can I find the json file to send it over? Thank you.
@mihsu81,
Thanks a lot for trying it and giving feedback, did the rooms configuration attribute report the rooms?
Normally the json should be saved in the snapshot folder in your case there should be roborock-vacuum.json, but this depends from the HA installation type (if you run on docker it should be there, if not working on it :) ). If not there you can get the json from the vacuum directly please "Try it out". I hope I edited the link correctly (I did had a look to the log you provided and I guess I know already where is the issue), just in case there is a swagger menu in the vacuum local configuration.
you should execute the command get /api/v2/robot/state/map and copy the result it will create on the Response body (you can download the json from there). I guess you already got the email address right?
Indeed the rooms attribute still doesn't appear with the beta version. I've emailed the json file. Thanks for the instructions.
@mihsu81 strange got the json on the test env. the camera did output the following: I'm checking now the calibration data, thanks for the json. rooms: '16': number: '16' outline:
@mihsu81 I probably found the problem, it looks it is about the cropping factor you are using right now, can you please let me know the value? Temporally please use the cropping size 50% the calibration data there are okay.. using the below reference point I got the following results:
Cropping 50%
Calintation data at rotation 180 x: 3840 'y': 3840 map: x: 0 'y': 0
at rotation 180 go to [2638, 2412]
calibration_points: at rotation 0
at rotation 0 got to [2638, 2412]
calibration_points rotation at 90 :
at rotation 90 go to [2632, 2407]
calibration_points at rotation 270:
at rotation 270 go to [2638, 2407]
additionally please also check the card configuration, on my V1 I use the following and it works without any issue:
- name: Pin & Go
icon: mdi:map-marker-plus
run_immediately: false
coordinates_rounding: true
selection_type: MANUAL_POINT
max_selections: 999
repeats_type: NONE
max_repeats: 1
service_call_schema:
service: mqtt.publish
service_data:
topic: '[[topic]]/GoToLocationCapability/go/set'
payload: '{ "coordinates": { "x": [[point_x]], "y": [[point_y]] } }'
predefined_selections: []
variables: {}
If those works I guess the only point is the rooms attribute, that I should fix on the next release.
@mihsu81 we released v1.4.5 this release should fix also the issue with the Xaiomi vacuums rooms configuration. Please be so kind close this issue if after testing what above fix what you are experiencing. When this isn't the case will be happy to support you.
Temporally please use the cropping size 50% the calibration data there are okay
I was using 32%. I've tried 50% but it didn't make a difference.
I'm using a standard setup of the card.
type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_roborock_vacuum
vacuum_platform: Hypfer/Valetudo
map_source:
camera: camera.roborock_vacuum_camera
two_finger_pan: true
calibration_source:
identity: true
internal_variables:
topic: valetudo/ROBOROCK-VACUUM
map_locked: false
mihsu81 we released v1.4.5 this release should fix also the issue with the Xaiomi vacuums rooms configuration
Unfortunately 1.4.5 didn't make a difference. I'm still not getting rooms in the attributes of the camera entity and the calibration is off.
access_token: cd20497fbe01218493853d7e8f668064a17f8d92ea378e35ba1300965b9aaa0e
vacuum_entity: null
vacuum_status: docked
listen_to: valetudo/ROBOROCK-VACUUM
snapshot: /local/snapshot_roborock-vacuum.png
json_data: Success
vacuum_json_id: 82cac524-8482-442e-b5cc-10da186e516e
vacuum_position:
x: 2550
'y': 2534
angle: 270
calibration_points:
- vacuum:
x: 1280
'y': 1280
map:
x: 0
'y': 0
- vacuum:
x: 3840
'y': 1280
map:
x: 2560
'y': 0
- vacuum:
x: 3840
'y': 3840
map:
x: 2560
'y': 2560
- vacuum:
x: 1280
'y': 3840
map:
x: 0
'y': 2560
entity_picture: >-
/api/camera_proxy/camera.roborock_vacuum_camera?token=cd20497fbe01218493853d7e8f668064a17f8d92ea378e35ba1300965b9aaa0e
friendly_name: ROBOROCK-VACUUM Camera
supported_features: 1
Temporally please use the cropping size 50% the calibration data there are okay
I was using 32%. I've tried 50% but it didn't make a difference.
I'm using a standard setup of the card.
type: custom:xiaomi-vacuum-map-card entity: vacuum.valetudo_roborock_vacuum vacuum_platform: Hypfer/Valetudo map_source: camera: camera.roborock_vacuum_camera two_finger_pan: true calibration_source: identity: true internal_variables: topic: valetudo/ROBOROCK-VACUUM map_locked: false
did you check the pin and go settings in the card?
mihsu81 we released v1.4.5 this release should fix also the issue with the Xaiomi vacuums rooms configuration
Unfortunately 1.4.5 didn't make a difference. I'm still not getting rooms in the attributes of the camera entity and the calibration is off.
access_token: cd20497fbe01218493853d7e8f668064a17f8d92ea378e35ba1300965b9aaa0e vacuum_entity: null vacuum_status: docked listen_to: valetudo/ROBOROCK-VACUUM snapshot: /local/snapshot_roborock-vacuum.png json_data: Success vacuum_json_id: 82cac524-8482-442e-b5cc-10da186e516e vacuum_position: x: 2550 'y': 2534 angle: 270 calibration_points: - vacuum: x: 1280 'y': 1280 map: x: 0 'y': 0 - vacuum: x: 3840 'y': 1280 map: x: 2560 'y': 0 - vacuum: x: 3840 'y': 3840 map: x: 2560 'y': 2560 - vacuum: x: 1280 'y': 3840 map: x: 0 'y': 2560 entity_picture: >- /api/camera_proxy/camera.roborock_vacuum_camera?token=cd20497fbe01218493853d7e8f668064a17f8d92ea378e35ba1300965b9aaa0e friendly_name: ROBOROCK-VACUUM Camera supported_features: 1
This is quite strange, the data you provided did generate the right coordinates in the my tests, I did load the json you provided from the camera in a PI4 and use the my vacuum as per the card need one, of course I can't move my vacuum with yours coordinates. I will try now the 32% as you did let's see what happen I will keep you posted (I'm going to change a little the test scenario to generate the issue you are facing).
Also at 32% the calibration data retuned [2634, 2398] with the go to, I think you might need to reconfigure the camera from scratch but first you will delete the card, setup the camera and then add the card. Those below are the calibration data the camera generated at 32% note the image is rotated 180 deg. this is why the coordinates are not in the same order you provided but the values are basically the same.
calibration_points:
- vacuum:
x: 3200
'y': 3200
map:
x: 0
'y': 0
- vacuum:
x: 1920
'y': 3200
map:
x: 1280
'y': 0
- vacuum:
x: 1920
'y': 1920
map:
x: 1280
'y': 1280
- vacuum:
x: 3200
'y': 1920
map:
x: 0
'y': 1280
An this is the rooms configuration I got from the card.
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_segment
predefined_selections:
- id: '16'
icon:
name: mdi:broom
x: 1942
'y': 2577
label:
text: Sonia's Bedroom
x: 1942
'y': 2577
offset_y: 35
outline:
- - 1795
- 2365
- - 2090
- 2365
- - 2090
- 2790
- - 1795
- 2790
- id: '17'
icon:
name: mdi:broom
x: 2752
'y': 2730
label:
text: Room 17
x: 2752
'y': 2730
offset_y: 35
outline:
- - 2480
- 2505
- - 3025
- 2505
- - 3025
- 2955
- - 2480
- 2955
- id: '18'
icon:
name: mdi:broom
x: 2615
'y': 2115
label:
text: Bathrooom 1
x: 2615
'y': 2115
offset_y: 35
outline:
- - 2460
- 2025
- - 2770
- 2025
- - 2770
- 2205
- - 2460
- 2205
- id: '19'
icon:
name: mdi:broom
x: 1945
'y': 2270
label:
text: Bathroom 2
x: 1945
'y': 2270
offset_y: 35
outline:
- - 1800
- 2210
- - 2090
- 2210
- - 2090
- 2330
- - 1800
- 2330
- id: '20'
icon:
name: mdi:broom
x: 2282
'y': 2207
label:
text: Lobby
x: 2282
'y': 2207
offset_y: 35
outline:
- - 2040
- 1960
- - 2525
- 1960
- - 2525
- 2455
- - 2040
- 2455
- id: '21'
icon:
name: mdi:broom
x: 2767
'y': 2355
label:
text: Kitchen
x: 2767
'y': 2355
offset_y: 35
outline:
- - 2530
- 2185
- - 3005
- 2185
- - 3005
- 2525
- - 2530
- 2525
- id: '22'
icon:
name: mdi:broom
x: 2295
'y': 2670
label:
text: Master Bedroom
x: 2295
'y': 2670
offset_y: 35
outline:
- - 2100
- 2440
- - 2490
- 2440
- - 2490
- 2900
- - 2100
- 2900
- id: '24'
icon:
name: mdi:broom
x: 3072
'y': 2910
label:
text: Room 24
x: 3072
'y': 2910
offset_y: 35
outline:
- - 2795
- 2640
- - 3350
- 2640
- - 3350
- 3180
- - 2795
- 3180
When you add this rooms configuration to the card, do not forget to add:
internal_variables:
topic: valetudo/ROBOROCK-VACUUM
Please keep the camera running for a while, especially if you use those settings, I had already a report of something similar and to be honest I'm not able to reproduce this inconvenient situation on the my setup. But we will not give up until we can ensure those data pop out correctly as it should on every conditions. Now the json of your vacuum should be in the snapshot folder as well, if you confirm I will pass you some test you could do to identify the root cause.
@mihsu81 mmmm I noticed that the calibration data are okay according to the last values you provided rotation 0 and crop 50% data are the same I as I previously posted, this means the go_to location must work correctly now. If not, the problem could be that the vacuum (according to the data you provided) actually do not have the complete map (you might rescan the complete floor). Also, I think there are other users using this camera with the same card and I didn't get any report of improper calibration of the maps before. About the rooms, from experience, it depends from the installation way I guess, with one camera (one vacuum) using the internal core mosquito the rooms pop out immediately. The configuration of the rooms I provided earlier will work too I guess this should close this issue.. of course I will be happy to know when your vacuum finally works as expected, as the others.
After deleting and adding the camera entity again I was able to get room attributes in the entity. So I guess that was caused by migrating from an older version of the integration.
As for the calibration, I've checked the coordinates as well and it looks like they're way different than your test environment. It's like I'm sending the vacuum in my neighbors' apartment.😁
I'm wondering now if it's not an issue with the card. Any idea what could cause it?
Thanks again for your help.
I've compared the calibration points and it looks like they're different compared to your test environment.
access_token: 24ffe6ddfdaf2aa476106c9cd7b84d74dbfb8329094e0f7ccd7633145a719cda
vacuum_entity: null
vacuum_status: docked
listen_to: valetudo/ROBOROCK-VACUUM
snapshot: /local/snapshot_roborock-vacuum.png
json_data: Success
vacuum_json_id: 99088397-de36-4bf2-b8df-74299c24117e
vacuum_position:
x: 2550
'y': 2534
angle: 269
calibration_points:
- vacuum:
x: 1280
'y': 1280
map:
x: 0
'y': 0
- vacuum:
x: 3840
'y': 1280
map:
x: 2560
'y': 0
- vacuum:
x: 3840
'y': 3840
map:
x: 2560
'y': 2560
- vacuum:
x: 1280
'y': 3840
map:
x: 0
'y': 2560
rooms:
'16':
number: '16'
outline:
- - 1795
- 2365
- - 2090
- 2365
- - 2090
- 2790
- - 1795
- 2790
name: Sonia's Bedroom
x: 1942
'y': 2577
'17':
number: '17'
outline:
- - 2480
- 2505
- - 3025
- 2505
- - 3025
- 2955
- - 2480
- 2955
name: null
x: 2752
'y': 2730
'18':
number: '18'
outline:
- - 2460
- 2025
- - 2770
- 2025
- - 2770
- 2205
- - 2460
- 2205
name: Bathrooom 1
x: 2615
'y': 2115
'19':
number: '19'
outline:
- - 1800
- 2210
- - 2090
- 2210
- - 2090
- 2330
- - 1800
- 2330
name: Bathroom 2
x: 1945
'y': 2270
'20':
number: '20'
outline:
- - 2040
- 1960
- - 2525
- 1960
- - 2525
- 2455
- - 2040
- 2455
name: Lobby
x: 2282
'y': 2207
'21':
number: '21'
outline:
- - 2530
- 2185
- - 3005
- 2185
- - 3005
- 2525
- - 2530
- 2525
name: Kitchen
x: 2767
'y': 2355
'22':
number: '22'
outline:
- - 2100
- 2440
- - 2490
- 2440
- - 2490
- 2900
- - 2100
- 2900
name: Master Bedroom
x: 2295
'y': 2670
'24':
number: '24'
outline:
- - 2795
- 2640
- - 3350
- 2640
- - 3350
- 3180
- - 2795
- 3180
name: null
x: 3072
'y': 2910
entity_picture: >-
/api/camera_proxy/camera.roborock_vacuum_camera?token=24ffe6ddfdaf2aa476106c9cd7b84d74dbfb8329094e0f7ccd7633145a719cda
friendly_name: ROBOROCK-VACUUM Camera
supported_features: 1
I've compared the calibration points and it looks like they're different compared to your test environment.
access_token: 24ffe6ddfdaf2aa476106c9cd7b84d74dbfb8329094e0f7ccd7633145a719cda vacuum_entity: null vacuum_status: docked listen_to: valetudo/ROBOROCK-VACUUM snapshot: /local/snapshot_roborock-vacuum.png json_data: Success vacuum_json_id: 99088397-de36-4bf2-b8df-74299c24117e vacuum_position: x: 2550 'y': 2534 angle: 269 calibration_points: - vacuum: x: 1280 'y': 1280 map: x: 0 'y': 0 - vacuum: x: 3840 'y': 1280 map: x: 2560 'y': 0 - vacuum: x: 3840 'y': 3840 map: x: 2560 'y': 2560 - vacuum: x: 1280 'y': 3840 map: x: 0 'y': 2560 rooms: '16': number: '16' outline: - - 1795 - 2365 - - 2090 - 2365 - - 2090 - 2790 - - 1795 - 2790 name: Sonia's Bedroom x: 1942 'y': 2577 '17': number: '17' outline: - - 2480 - 2505 - - 3025 - 2505 - - 3025 - 2955 - - 2480 - 2955 name: null x: 2752 'y': 2730 '18': number: '18' outline: - - 2460 - 2025 - - 2770 - 2025 - - 2770 - 2205 - - 2460 - 2205 name: Bathrooom 1 x: 2615 'y': 2115 '19': number: '19' outline: - - 1800 - 2210 - - 2090 - 2210 - - 2090 - 2330 - - 1800 - 2330 name: Bathroom 2 x: 1945 'y': 2270 '20': number: '20' outline: - - 2040 - 1960 - - 2525 - 1960 - - 2525 - 2455 - - 2040 - 2455 name: Lobby x: 2282 'y': 2207 '21': number: '21' outline: - - 2530 - 2185 - - 3005 - 2185 - - 3005 - 2525 - - 2530 - 2525 name: Kitchen x: 2767 'y': 2355 '22': number: '22' outline: - - 2100 - 2440 - - 2490 - 2440 - - 2490 - 2900 - - 2100 - 2900 name: Master Bedroom x: 2295 'y': 2670 '24': number: '24' outline: - - 2795 - 2640 - - 3350 - 2640 - - 3350 - 3180 - - 2795 - 3180 name: null x: 3072 'y': 2910 entity_picture: >- /api/camera_proxy/camera.roborock_vacuum_camera?token=24ffe6ddfdaf2aa476106c9cd7b84d74dbfb8329094e0f7ccd7633145a719cda friendly_name: ROBOROCK-VACUUM Camera supported_features: 1
yep it is because we use different rotation parameters this is why but if you look on the top, the data are the same at 0 deg. rotation, if you look at the last I posted the calibration data are rotated 180 deg. (you need to set the camera rotation to 180 deg. to get the same values). I repeat it looks the vacuum is having different coordinates than what it should be from the data you provided me via email.. also it maps rooms that aren't complete on the layout.. if those are your neighbor's coordinates I'm (joke) wander if they are using you vacuum to clean them apartment :)
I do not use the two finger pan on the card options, I don't know if this makes a difference.
if the GoToLocationCapaility payload is configured as so:
service_data:
topic: '[[topic]]/GoToLocationCapability/go/set'
payload: '{ "coordinates": { "x": [[point_x]], "y": [[point_y]] } }'
predefined_selections: []
your vacuum at dock must be right now at:
vacuum_position:
x: 2550
'y': 2534
angle: 270
The values on the card should be the same as the one I used (that by the way was just the auto generated one that I strongly recommend you to use).
type: custom:xiaomi-vacuum-map-card
map_source:
camera: camera.ROBOROCK-VACUUM_camera
calibration_source:
camera: true
entity: vacuum.ROBOROCK-VACUUM
vacuum_platform: Hypfer/Valetudo
internal_variables:
topic: valetudo/ROBOROCK-VACUUM
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_segment
predefined_selections:
- id: '16'
icon:
name: mdi:broom
x: 1942
'y': 2577
label:
text: Sonia's Bedroom
x: 1942
'y': 2577
offset_y: 35
outline:
- - 1795
- 2365
- - 2090
- 2365
- - 2090
- 2790
- - 1795
- 2790
- id: '17'
icon:
name: mdi:broom
x: 2752
'y': 2730
label:
text: Room 17
x: 2752
'y': 2730
offset_y: 35
outline:
- - 2480
- 2505
- - 3025
- 2505
- - 3025
- 2955
- - 2480
- 2955
- id: '18'
icon:
name: mdi:broom
x: 2615
'y': 2115
label:
text: Bathrooom 1
x: 2615
'y': 2115
offset_y: 35
outline:
- - 2460
- 2025
- - 2770
- 2025
- - 2770
- 2205
- - 2460
- 2205
- id: '19'
icon:
name: mdi:broom
x: 1945
'y': 2270
label:
text: Bathroom 2
x: 1945
'y': 2270
offset_y: 35
outline:
- - 1800
- 2210
- - 2090
- 2210
- - 2090
- 2330
- - 1800
- 2330
- id: '20'
icon:
name: mdi:broom
x: 2282
'y': 2207
label:
text: Lobby
x: 2282
'y': 2207
offset_y: 35
outline:
- - 2040
- 1960
- - 2525
- 1960
- - 2525
- 2455
- - 2040
- 2455
- id: '21'
icon:
name: mdi:broom
x: 2767
'y': 2355
label:
text: Kitchen
x: 2767
'y': 2355
offset_y: 35
outline:
- - 2530
- 2185
- - 3005
- 2185
- - 3005
- 2525
- - 2530
- 2525
- id: '22'
icon:
name: mdi:broom
x: 2295
'y': 2670
label:
text: Master Bedroom
x: 2295
'y': 2670
offset_y: 35
outline:
- - 2100
- 2440
- - 2490
- 2440
- - 2490
- 2900
- - 2100
- 2900
- id: '24'
icon:
name: mdi:broom
x: 3072
'y': 2910
label:
text: Room 24
x: 3072
'y': 2910
offset_y: 35
outline:
- - 2795
- 2640
- - 3350
- 2640
- - 3350
- 3180
- - 2795
- 3180
You can tray with the vacuum GUI go to option and see if the problem is the same. If not by checking the coordinates of the vacuum in the camera attribute you can actually confirm the calibration data:
vacuum_position:
x: 2632
'y': 2407
If so the card configuration can be the reason of the issue you are facing and the card configuration I just posted should help to close this issue.
Just as side note we will soon release a new version that will automatically configure the MQTT entries and select the topic to listen automatically, thanks to @rohankapoorcom work, the camera will use the internal MQTT of HA not a client like also on the recent versions.. I don't know if this will make any difference in your case.
@mihsu81 I'm going to close this issue if you have any other question please open a discussion on this topic. Thanks for your understanding.
Hi @sca075,
Indeed using your suggested config for the card fixed the issue. But shouldn't the card have been able to pick up the calibration data directly from the camera, like is the case with non-Valetudo vacuums?
Anyway, thanks a lot for your help.
@mihsu81 ,
Either the card and camera, seems working fine. Probably the issue was simple a card configuration issue?
It was my pleasure to assist you :)
@mihsu81 you know what? I think I found the issue with the old card you used, the calibration points come from the camera not from identity this was as per written on the read me a card configuration issue from your side. Anyhow I hope you are now enjoying the experience with our camera 😉
Checklist
The problem
On a Roborock S5 the calibration is wrong. When I send the vacuum to a location it goes somewhere outside of the map.
In the attributes of the camera I don't see the rooms.
What version of an integration has described problem?
v1.3.4
What was the last working version of an integration?
No response
What vacuum model do you have problems with?
Roborock S5
Please firmware installed on your Vacuum.
2023.8.0
What version of Home Assistant do you use?
2023.8.4
What type of installation are you running?
Home Assistant OS
Camera's configuration
Logs or Errors shown in the HA snapshots (please enable the Debug Mode)
Here's the debug log. error_log-2.txt
Additional information