Git Product home page Git Product logo

Comments (22)

sca075 avatar sca075 commented on September 24, 2024 1

So, I did some improvement based on your founding, will continue tomorrow and post a complete change list. I'm also including a function that will export the json and the payload received from MQTT. This will be stored in the same folder of the integration (it is the same folder where will store the snapshots) this function will be released on 1.1.5 as soon it will pass the tests (not yet here in github.. but on the real world) I will post also the checks made on this new release. And anyhow.. if this will not work with your vacuum I will do my best to fix it so that we can state that for instance it works with both robots ;)

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024 1

@billyourself I could draw the background layers and got the image, anyhow I understood also that the image is too big so I will test it with the cropping function, if all goes well I will later give you the beta release version to test it.

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

hello @billyourself, thanks for your report. It looks there is an issue on the 1.1.4, I will check the last modification I made recently and release the 1.1.5 within tomorrow. It seams to be an issue with the Image_handler module that should be already fixed on the new release I'm going to publish soon. By the way can you please try to setup the integration via the GUI, (remove the configuration from the yaml / restart home assistant / go on device & services and add integrations setup and search "valetudo" and reboot once again. Please note I tested the integration with the Robock V1, if you are still facing issues with the DreamD9 I will add some additional debug logs so that we can get the json data information on the next version so that we can fix this issue with your robot. Thank you really much for your cooperation.

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

Oops closed the issue by accident.

I tried both GUI and config YAML and the same error occurred for both.

I'll wait for 1.1.5, try again and report back. Thanks!

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

@billyourself Release 1.1.5v is now available. Please note that there are additional required parameters. So please delete the configuration prior to install the new version and reconfigure the camera from GUI. I guess the issue is now fixed, I was able to reproduce it somehow and after 24h continuous running on the HassOS (PI4) no errors at all. Note the PI4 is my test env. I didn't check it on my production (home) instance yet.. HA is updated to the last version (that anyhow was probably the root cause of the braking code). I'm really happy that you started to use this integration.. so at your disposal for any request and or suggestions.. when hopefully it will work also for you :)

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

hold on please I just checked the installer and "snapshots" folder is no present.. this cause a warning (as expected) you can create the folder by your on i"valetudo_vacuum_camera/" add the "snapshots" folder. Will check and confirm if the installer will work in few minutes.

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

okay fixed the release :) the folder is now included on the installer.

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

Thanks @sca075 - Looks like this issue has been resolved... but we have a new one.

It appears to be decoding the JSON just fine and getting all the map points. The entity now gets a result, although it is just a blank grey image. Error that is the problem this time is 'Error in get_image_from_json: object of type 'NoneType' has no len()'.

Config was done via the UI, more or less the same but I set the rotate and crop as both 0.

Log entries:

2023-07-08 21:01:50.237 DEBUG (Thread-6 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Connected to MQTT broker. 2023-07-08 21:01:50.242 DEBUG (Thread-6 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 21:01:55.238 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 21:01:55.238 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 21:01:55.238 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 21:01:55.239 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 21:01:55.239 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 21:01:55.252 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 21:01:55.252 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 21:01:55.252 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 21:01:55.255 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'54097c9f-41a6-4f82-a24a-062f051c09f4'} 2023-07-08 21:01:55.265 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}]} 2023-07-08 21:01:55.271 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 2}, 'points': [3278, 3254], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 182}, 'points': [3279, 3229], 'type': 'charger_location'}]} 2023-07-08 21:01:55.271 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 2}, 'points': [3278, 3254], 'type': 'robot_position'}] 2023-07-08 21:01:55.271 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3279, 3229] 2023-07-08 21:01:55.277 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing image background 2023-07-08 21:01:55.639 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing Zone Clean 2023-07-08 21:01:56.343 ERROR (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Error in get_image_from_json: object of type 'NoneType' has no len() 2023-07-08 21:01:56.387 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Staring up ... 2023-07-08 21:01:56.406 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

It happens usually when it starts for the first time, you just need few cycles to wait that the image is completely finished. Until it is gray the data are not fully loaded.

I will try with rotation and crop 0
In my test for the most I use crop 25 and rotate 180.. (the image is smaller)

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

I probably got the reason... for [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing Zone Clean 2023-07-08 21:01:56.343 ERROR (SyncWorker_3) please give me few hours and it will be fix.

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

Thanks, appreciate your quick work on all of this!

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

okay.. the json structure of your vacuum is a little different from the one I use.. the vacuum as no zone clean but probably rooms, is that correct? I replaced the errors with info messages so that home assistant will be a little more happy.. the image handler will not attempt to draw the zone as per the data as logged are none. The only Error will occur when the position of the robot is not got.. hope this should help to complete the startup sequence. I will let you know how to install the patch in about 30 minutes.

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

By zone cleaning, do you mean the ability to manually select a rectangular/square area to clean like the screenshot below? If so, yes it has that capability - that screenshot is direct from my Valetudo interface.

image

It also has rooms (noted as Segments in Valetudo).

Thanks again, I'll await your instructions.

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

Okay let's give it a try if you go on HACS, click on the integration, then refresh data. Re-download, but before you confirm check the show beta version. There should be a version Select v23.608.02 here the changes discussed are in. So when it finish to install there is to reboot unfortunately to get the new version operative. It will load the image after a while.. then the calibration data will be created as soon the full image is display.. if all get right as it should.. you don't need to reconfigure the camera for this. And yes the clean zones in your json are called differently.. if you have a file explorer or visual studio you will see that in the snapshot folder there is a png and json for sure when we finally get the image..

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

N.B. if you will finally get the image it would be really appreciated a copy of the json having the "segments" defined, I noticed you have also no_go areas it will be nice to add those functionality to the image_handler. So if you don't mind, I will wait for your feedback...

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

Okay so I got something to show. I couldn't get it working with 0 rotation/0 cropping (I noticed something in the logs about tile size cannot be larger than frame) so I used your settings.

I then sent the robot to do a quick area clean so the map would push some updates.

image

That's what I get - it's displaying two rooms but there are many more missing (including the room the robot docks in).

Interestingly, I had debug logging enabled and after about 10 seconds, my entire HA instance crashed and restarted - not sure if related, and my logs show nothing to clue me on to why. Probably worth noting though.

Here's some logs:

2023-07-08 23:22:01.209 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:02.692 INFO (SyncWorker_9) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:02.692 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:02.692 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:02.692 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:02.692 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:02.707 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:02.707 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:02.707 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:02.708 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'63398655-bd77-463f-9bf5-4e3dc97a56bf'} 2023-07-08 23:22:02.714 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:02.716 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 269}, 'points': [3848, 3646], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:02.716 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 269}, 'points': [3848, 3646], 'type': 'robot_position'}] 2023-07-08 23:22:02.716 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:02.717 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing image background 2023-07-08 23:22:03.232 DEBUG (SyncWorker_9) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing Zone Clean 2023-07-08 23:22:05.288 INFO (SyncWorker_9) [custom_components.valetudo_vacuum_camera.camera] Snapshot image loaded 2023-07-08 23:22:05.500 INFO (SyncWorker_9) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:10.603 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:12.654 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:12.654 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:12.655 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:12.655 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:12.655 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:12.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:12.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:12.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:12.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'d723aa79-0bae-422e-b369-3aa205223cb6'} 2023-07-08 23:22:12.661 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:12.664 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 65}, 'points': [3781, 3663], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:12.664 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 65}, 'points': [3781, 3663], 'type': 'robot_position'}] 2023-07-08 23:22:12.664 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:12.664 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 1 2023-07-08 23:22:14.013 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:14.015 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:14.442 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:14.581 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:18.409 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:22.658 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:22.658 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:22.658 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:22.658 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:22.658 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:22.660 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:22.660 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:22.660 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:22.660 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'cfbd2cfc-3adb-459d-a335-6880fb7c50f7'} 2023-07-08 23:22:22.663 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:22.666 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 242}, 'points': [3889, 3671], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:22.666 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 242}, 'points': [3889, 3671], 'type': 'robot_position'}] 2023-07-08 23:22:22.666 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:22.667 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 2 2023-07-08 23:22:24.036 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:24.036 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:24.470 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:24.621 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:26.556 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:27.658 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:27.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:27.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:27.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:27.658 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:27.660 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:27.660 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:27.660 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:27.660 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'b31e811d-b431-48b6-acfd-3dd8f96c052c'} 2023-07-08 23:22:27.663 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:27.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 148}, 'points': [3805, 3681], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:27.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 148}, 'points': [3805, 3681], 'type': 'robot_position'}] 2023-07-08 23:22:27.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:27.666 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 3 2023-07-08 23:22:28.967 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:28.967 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:29.389 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:29.532 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:30.926 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:32.658 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:32.659 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:32.659 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:32.659 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:32.659 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:32.662 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:32.662 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:32.662 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:32.662 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'fe29cdfb-918f-46eb-9024-7afada0f43c9'} 2023-07-08 23:22:32.666 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:32.667 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 90}, 'points': [3861, 3683], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:32.667 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 90}, 'points': [3861, 3683], 'type': 'robot_position'}] 2023-07-08 23:22:32.667 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:32.668 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 4 2023-07-08 23:22:33.952 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:33.953 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:34.375 DEBUG (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:34.517 INFO (SyncWorker_3) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:43.210 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:44.636 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:46.043 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:47.662 INFO (SyncWorker_4) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:47.662 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:47.662 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:47.662 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:47.662 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:47.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:47.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:47.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:47.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'5134dd91-0a2a-4661-b659-34cf9a6f56e9'} 2023-07-08 23:22:47.667 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:47.669 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 336}, 'points': [3805, 3681], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:47.669 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 336}, 'points': [3805, 3681], 'type': 'robot_position'}] 2023-07-08 23:22:47.669 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:47.669 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 5 2023-07-08 23:22:48.940 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:48.940 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:49.326 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:49.361 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:49.511 INFO (SyncWorker_4) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:52.664 INFO (SyncWorker_4) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:52.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:52.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:52.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:52.664 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:52.668 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:52.668 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:52.668 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:52.668 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'4327b6cf-e632-4693-97e6-eafc7d41b13a'} 2023-07-08 23:22:52.671 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:52.673 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 336}, 'points': [3752, 3565], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:52.673 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 336}, 'points': [3752, 3565], 'type': 'robot_position'}] 2023-07-08 23:22:52.673 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:52.673 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing image background 2023-07-08 23:22:52.947 DEBUG (SyncWorker_4) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Drawing Zone Clean 2023-07-08 23:22:54.866 INFO (SyncWorker_4) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:22:56.963 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:22:57.665 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:22:57.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:22:57.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:22:57.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:22:57.665 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:22:57.667 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:22:57.667 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:22:57.667 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:22:57.667 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'0d25d1b9-99de-45b6-b6d5-21f775dfe0e9'} 2023-07-08 23:22:57.670 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:22:57.672 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 309}, 'points': [3619, 3382], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:22:57.672 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 309}, 'points': [3619, 3382], 'type': 'robot_position'}] 2023-07-08 23:22:57.672 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:22:57.672 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 1 2023-07-08 23:22:58.992 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:22:58.992 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:22:59.421 DEBUG (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:22:59.564 INFO (SyncWorker_1) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:23:01.380 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT 2023-07-08 23:23:02.667 INFO (SyncWorker_7) [custom_components.valetudo_vacuum_camera.camera] Camera image update process: True 2023-07-08 23:23:02.668 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.connector] Processing data from MQTT 2023-07-08 23:23:02.668 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Decoding PNG to JSON 2023-07-08 23:23:02.668 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Valetudo Json data grabbed 2023-07-08 23:23:02.668 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON 2023-07-08 23:23:02.670 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.utils.valetudo_jdata] Extracting JSON Complete 2023-07-08 23:23:02.670 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Reading the json data we got from the MQTT 2023-07-08 23:23:02.670 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Image Size in X and Y: {6554} 2023-07-08 23:23:02.670 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Vacuum JSon ID: {'af38cd64-2422-46e9-848e-726c11822164'} 2023-07-08 23:23:02.674 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got zone clean: {'no_go_area': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860], 'type': 'no_go_area'}, {'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860], 'type': 'no_go_area'}], 'active_zone': [{'__class': 'PolygonMapEntity', 'metaData': {}, 'points': [3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720], 'type': 'active_zone'}]} 2023-07-08 23:23:02.675 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got the points in the json: {'robot_position': [{'__class': 'PointMapEntity', 'metaData': {'angle': 266}, 'points': [3515, 3386], 'type': 'robot_position'}], 'charger_location': [{'__class': 'PointMapEntity', 'metaData': {'angle': 184}, 'points': [3280, 3235], 'type': 'charger_location'}]} 2023-07-08 23:23:02.676 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got robot position: [{'__class': 'PointMapEntity', 'metaData': {'angle': 266}, 'points': [3515, 3386], 'type': 'robot_position'}] 2023-07-08 23:23:02.676 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Got charger position: [3280, 3235] 2023-07-08 23:23:02.677 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Frame number 2 2023-07-08 23:23:03.995 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop Box data: (2458, 2458, 4096, 4096) 2023-07-08 23:23:03.996 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.valetudo.image_handler] Crop image size: (1638, 1638) 2023-07-08 23:23:04.419 DEBUG (SyncWorker_7) [custom_components.valetudo_vacuum_camera.camera] Applied image rotation: {180} 2023-07-08 23:23:04.564 INFO (SyncWorker_7) [custom_components.valetudo_vacuum_camera.camera] Camera image update complete 2023-07-08 23:23:10.696 DEBUG (Thread-3 (_thread_main)) [custom_components.valetudo_vacuum_camera.valetudo.connector] Received data from MQTT

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

Here's the map JSON as requested:

{ "__class": "ValetudoMap", "metaData": { "version": 2, "nonce": "bf5ba661-c319-4a43-a371-ed5f566ef926", "totalLayerArea": 837600 }, "size": { "x": 6554, "y": 6554 }, "pixelSize": 5, "layers": [ { "__class": "MapLayer", "metaData": { "segmentId": "1", "active": false, "source": "regular", "name": "Study", "area": 63775 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 615, "max": 681, "mid": 648, "avg": 649 }, "y": { "min": 500, "max": 549, "mid": 525, "avg": 526 }, "pixelCount": 2551 }, "compressedPixels": [ 628, 500, 2, 627, 501, 4, 637, 501, 34, 627, 502, 3, 636, 502, 37, 626, 503, 47, 626, 504, 47, 627, 505, 46, 627, 506, 46, 627, 507, 46, 627, 508, 46, 626, 509, 47, 626, 510, 47, 626, 511, 47, 626, 512, 47, 628, 513, 45, 629, 514, 44, 629, 515, 44, 629, 516, 44, 629, 517, 44, 615, 518, 11, 629, 518, 44, 615, 519, 14, 630, 519, 43, 615, 520, 14, 630, 520, 43, 617, 521, 12, 630, 521, 43, 615, 522, 14, 631, 522, 3, 636, 522, 37, 615, 523, 10, 636, 523, 37, 615, 524, 9, 635, 524, 38, 615, 525, 9, 633, 525, 40, 615, 526, 12, 632, 526, 41, 617, 527, 11, 633, 527, 40, 615, 528, 13, 634, 528, 39, 615, 529, 12, 629, 529, 2, 635, 529, 38, 615, 530, 12, 628, 530, 6, 635, 530, 38, 615, 531, 12, 628, 531, 42, 615, 532, 65, 615, 533, 67, 615, 534, 1, 617, 534, 65, 617, 535, 8, 627, 535, 55, 616, 536, 5, 622, 536, 3, 627, 536, 55, 623, 537, 59, 623, 538, 59, 623, 539, 59, 623, 540, 59, 622, 541, 60, 622, 542, 58, 622, 543, 58, 622, 544, 60, 622, 545, 60, 622, 546, 60, 623, 547, 59, 625, 548, 57, 667, 549, 13 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "2", "active": false, "source": "regular", "name": "Bedroom", "area": 106550 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 685, "max": 752, "mid": 719, "avg": 717 }, "y": { "min": 503, "max": 572, "mid": 538, "avg": 538 }, "pixelCount": 4262 }, "compressedPixels": [ 686, 503, 18, 736, 503, 7, 686, 504, 18, 736, 504, 8, 686, 505, 8, 696, 505, 8, 705, 505, 29, 735, 505, 8, 696, 506, 47, 696, 507, 47, 686, 508, 10, 697, 508, 46, 686, 509, 57, 686, 510, 66, 686, 511, 66, 686, 512, 66, 686, 513, 33, 720, 513, 11, 733, 513, 19, 686, 514, 33, 720, 514, 11, 733, 514, 19, 686, 515, 33, 720, 515, 32, 686, 516, 33, 720, 516, 32, 686, 517, 33, 720, 517, 12, 734, 517, 18, 686, 518, 33, 720, 518, 12, 734, 518, 18, 686, 519, 33, 720, 519, 32, 686, 520, 33, 720, 520, 32, 686, 521, 33, 720, 521, 32, 686, 522, 33, 720, 522, 32, 686, 523, 33, 720, 523, 29, 751, 523, 1, 686, 524, 18, 706, 524, 13, 720, 524, 29, 686, 525, 18, 706, 525, 13, 720, 525, 14, 735, 525, 14, 686, 526, 33, 720, 526, 29, 686, 527, 33, 720, 527, 29, 686, 528, 33, 720, 528, 29, 686, 529, 33, 720, 529, 29, 686, 530, 33, 720, 530, 29, 686, 531, 33, 720, 531, 29, 686, 532, 33, 720, 532, 29, 686, 533, 33, 720, 533, 29, 686, 534, 29, 717, 534, 2, 720, 534, 29, 686, 535, 29, 717, 535, 2, 720, 535, 29, 686, 536, 33, 720, 536, 29, 686, 537, 33, 720, 537, 29, 686, 538, 33, 720, 538, 29, 686, 539, 63, 686, 540, 63, 686, 541, 63, 686, 542, 63, 686, 543, 63, 686, 544, 33, 721, 544, 12, 735, 544, 14, 686, 545, 33, 721, 545, 12, 735, 545, 14, 686, 546, 63, 686, 547, 63, 686, 548, 63, 686, 549, 63, 686, 550, 63, 686, 551, 63, 686, 552, 63, 686, 553, 63, 686, 554, 63, 685, 555, 64, 685, 556, 64, 685, 557, 64, 685, 558, 64, 685, 559, 64, 685, 560, 64, 685, 561, 64, 685, 562, 61, 685, 563, 60, 685, 564, 59, 747, 564, 2, 685, 565, 59, 746, 565, 6, 685, 566, 59, 745, 566, 8, 685, 567, 59, 746, 567, 7, 685, 568, 59, 746, 568, 7, 687, 569, 57, 746, 569, 7, 694, 570, 51, 747, 570, 5, 694, 571, 52, 748, 571, 5, 694, 572, 52, 748, 572, 4 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "3", "active": false, "source": "regular", "name": "Bathroom", "area": 19800 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 628, "max": 660, "mid": 644, "avg": 644 }, "y": { "min": 553, "max": 586, "mid": 570, "avg": 572 }, "pixelCount": 792 }, "compressedPixels": [ 655, 553, 6, 655, 554, 6, 655, 555, 6, 655, 556, 6, 655, 557, 6, 655, 558, 6, 638, 559, 11, 655, 559, 6, 638, 560, 10, 638, 561, 14, 653, 561, 1, 657, 561, 4, 637, 562, 24, 628, 563, 33, 628, 564, 33, 628, 565, 33, 628, 566, 33, 628, 567, 33, 628, 568, 33, 628, 569, 31, 628, 570, 31, 628, 571, 31, 628, 572, 27, 656, 572, 1, 628, 573, 27, 628, 574, 27, 628, 575, 27, 628, 576, 28, 628, 577, 28, 628, 578, 28, 628, 579, 29, 628, 580, 29, 628, 581, 29, 628, 582, 30, 629, 583, 1, 631, 583, 27, 631, 584, 27, 636, 585, 23, 635, 586, 7 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "4", "active": false, "source": "regular", "name": "Guest", "area": 54075 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 683, "max": 734, "mid": 709, "avg": 710 }, "y": { "min": 587, "max": 642, "mid": 615, "avg": 613 }, "pixelCount": 2163 }, "compressedPixels": [ 703, 587, 26, 703, 588, 26, 683, 589, 6, 702, 589, 27, 683, 590, 17, 702, 590, 27, 683, 591, 45, 683, 592, 46, 683, 593, 46, 683, 594, 46, 683, 595, 46, 683, 596, 47, 731, 596, 1, 734, 596, 1, 683, 597, 52, 683, 598, 52, 683, 599, 52, 683, 600, 52, 683, 601, 48, 733, 601, 2, 683, 602, 48, 686, 603, 45, 686, 604, 45, 686, 605, 45, 686, 606, 45, 685, 607, 46, 685, 608, 46, 685, 609, 46, 685, 610, 46, 685, 611, 46, 698, 612, 33, 698, 613, 33, 698, 614, 33, 697, 615, 34, 697, 616, 34, 697, 617, 34, 697, 618, 34, 697, 619, 34, 697, 620, 34, 697, 621, 34, 697, 622, 34, 697, 623, 34, 697, 624, 34, 697, 625, 34, 697, 626, 34, 697, 627, 34, 697, 628, 34, 697, 629, 34, 697, 630, 34, 697, 631, 34, 697, 632, 34, 697, 633, 34, 697, 634, 34, 697, 635, 31, 729, 635, 2, 697, 636, 32, 697, 637, 32, 697, 638, 34, 697, 639, 34, 697, 640, 34, 697, 641, 25, 723, 641, 6, 697, 642, 31 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "5", "active": false, "source": "regular", "name": "Laundry", "area": 21675 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 611, "max": 658, "mid": 635, "avg": 636 }, "y": { "min": 611, "max": 641, "mid": 626, "avg": 622 }, "pixelCount": 867 }, "compressedPixels": [ 630, 611, 29, 630, 612, 29, 625, 613, 1, 630, 613, 29, 625, 614, 34, 625, 615, 34, 624, 616, 35, 611, 617, 2, 624, 617, 34, 611, 618, 3, 623, 618, 35, 611, 619, 47, 611, 620, 47, 611, 621, 47, 611, 622, 47, 611, 623, 47, 611, 624, 47, 611, 625, 47, 611, 626, 40, 613, 627, 38, 613, 628, 25, 644, 628, 7, 613, 629, 25, 646, 629, 5, 613, 630, 25, 639, 630, 5, 646, 630, 5, 613, 631, 14, 639, 631, 5, 646, 631, 5, 639, 632, 5, 646, 632, 5, 639, 633, 5, 646, 633, 5, 639, 634, 5, 649, 634, 2, 639, 635, 5, 639, 636, 5, 646, 636, 2, 649, 636, 2, 639, 637, 5, 646, 637, 5, 639, 638, 3, 646, 638, 5, 646, 639, 5, 646, 640, 5, 646, 641, 5 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "6", "active": false, "source": "regular", "name": "Front door", "area": 31800 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 715, "max": 752, "mid": 734, "avg": 735 }, "y": { "min": 646, "max": 684, "mid": 665, "avg": 665 }, "pixelCount": 1272 }, "compressedPixels": [ 724, 646, 29, 724, 647, 29, 724, 648, 29, 724, 649, 29, 726, 650, 27, 726, 651, 27, 724, 652, 29, 724, 653, 29, 724, 654, 29, 724, 655, 29, 725, 656, 28, 725, 657, 28, 725, 658, 28, 717, 659, 36, 717, 660, 36, 717, 661, 36, 717, 662, 36, 717, 663, 36, 717, 664, 35, 717, 665, 35, 715, 666, 37, 715, 667, 37, 715, 668, 38, 715, 669, 38, 715, 670, 37, 715, 671, 36, 715, 672, 37, 715, 673, 38, 715, 674, 38, 715, 675, 38, 715, 676, 36, 715, 677, 36, 715, 678, 36, 715, 679, 36, 715, 680, 37, 717, 681, 3, 723, 681, 22, 746, 681, 6, 723, 682, 22, 723, 683, 22, 723, 684, 22 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "7", "active": false, "source": "regular", "name": "Lounge", "area": 236000 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 663, "max": 815, "mid": 739, "avg": 737 }, "y": { "min": 685, "max": 771, "mid": 728, "avg": 732 }, "pixelCount": 9440 }, "compressedPixels": [ 716, 685, 5, 722, 685, 23, 791, 685, 8, 716, 686, 29, 789, 686, 10, 716, 687, 29, 789, 687, 10, 716, 688, 29, 790, 688, 7, 801, 688, 3, 716, 689, 29, 791, 689, 6, 800, 689, 5, 716, 690, 29, 790, 690, 7, 800, 690, 5, 716, 691, 33, 791, 691, 6, 800, 691, 5, 716, 692, 33, 791, 692, 7, 800, 692, 5, 807, 692, 2, 810, 692, 2, 716, 693, 33, 778, 693, 20, 801, 693, 1, 806, 693, 7, 716, 694, 33, 763, 694, 4, 778, 694, 21, 806, 694, 8, 716, 695, 88, 806, 695, 8, 716, 696, 89, 806, 696, 8, 716, 697, 89, 806, 697, 8, 716, 698, 90, 807, 698, 6, 716, 699, 83, 801, 699, 5, 808, 699, 4, 716, 700, 83, 801, 700, 6, 811, 700, 1, 716, 701, 92, 716, 702, 95, 716, 703, 85, 803, 703, 8, 716, 704, 85, 803, 704, 7, 716, 705, 94, 716, 706, 94, 716, 707, 94, 678, 708, 5, 685, 708, 112, 677, 709, 6, 685, 709, 112, 677, 710, 6, 685, 710, 112, 676, 711, 8, 686, 711, 3, 691, 711, 6, 698, 711, 99, 676, 712, 8, 686, 712, 3, 691, 712, 106, 676, 713, 8, 686, 713, 111, 674, 714, 1, 677, 714, 6, 685, 714, 112, 671, 715, 4, 677, 715, 5, 685, 715, 112, 671, 716, 4, 678, 716, 4, 684, 716, 113, 671, 717, 4, 676, 717, 1, 679, 717, 2, 683, 717, 114, 671, 718, 3, 676, 718, 121, 671, 719, 3, 676, 719, 121, 671, 720, 3, 676, 720, 121, 674, 721, 123, 674, 722, 123, 671, 723, 126, 671, 724, 126, 672, 725, 125, 672, 726, 125, 671, 727, 126, 663, 728, 1, 670, 728, 127, 663, 729, 134, 663, 730, 134, 663, 731, 134, 663, 732, 134, 663, 733, 134, 663, 734, 134, 663, 735, 134, 663, 736, 134, 664, 737, 71, 737, 737, 19, 758, 737, 39, 664, 738, 70, 738, 738, 18, 758, 738, 39, 664, 739, 71, 747, 739, 50, 664, 740, 76, 750, 740, 47, 664, 741, 76, 751, 741, 46, 664, 742, 76, 753, 742, 44, 664, 743, 76, 754, 743, 43, 664, 744, 71, 754, 744, 43, 664, 745, 71, 754, 745, 43, 664, 746, 71, 754, 746, 43, 664, 747, 71, 741, 747, 5, 754, 747, 43, 664, 748, 71, 741, 748, 6, 753, 748, 44, 664, 749, 71, 741, 749, 6, 752, 749, 45, 664, 750, 71, 740, 750, 7, 751, 750, 46, 664, 751, 71, 739, 751, 7, 749, 751, 36, 787, 751, 10, 664, 752, 71, 739, 752, 7, 749, 752, 34, 787, 752, 16, 804, 752, 12, 664, 753, 70, 739, 753, 7, 749, 753, 10, 761, 753, 22, 785, 753, 18, 804, 753, 12, 664, 754, 70, 749, 754, 10, 761, 754, 22, 785, 754, 31, 664, 755, 73, 749, 755, 13, 763, 755, 11, 779, 755, 37, 663, 756, 74, 750, 756, 11, 764, 756, 10, 779, 756, 37, 663, 757, 74, 747, 757, 13, 779, 757, 37, 663, 758, 74, 747, 758, 14, 778, 758, 38, 671, 759, 66, 747, 759, 13, 779, 759, 36, 672, 760, 65, 747, 760, 13, 780, 760, 36, 666, 761, 1, 669, 761, 1, 673, 761, 64, 747, 761, 14, 775, 761, 4, 781, 761, 35, 665, 762, 6, 673, 762, 64, 747, 762, 3, 752, 762, 9, 771, 762, 2, 776, 762, 3, 781, 762, 4, 787, 762, 28, 665, 763, 72, 747, 763, 3, 752, 763, 10, 764, 763, 1, 771, 763, 3, 776, 763, 4, 781, 763, 4, 665, 764, 73, 747, 764, 15, 764, 764, 21, 665, 765, 73, 751, 765, 28, 781, 765, 4, 665, 766, 73, 751, 766, 3, 756, 766, 23, 781, 766, 4, 665, 767, 77, 756, 767, 29, 665, 768, 77, 756, 768, 29, 665, 769, 6, 672, 769, 70, 747, 769, 4, 755, 769, 30, 672, 770, 20, 693, 770, 41, 737, 770, 4, 747, 770, 5, 761, 770, 22, 672, 771, 62, 737, 771, 5, 747, 771, 5, 760, 771, 23 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "8", "active": false, "source": "regular", "name": "Dining", "area": 129550 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 613, "max": 714, "mid": 664, "avg": 667 }, "y": { "min": 645, "max": 704, "mid": 675, "avg": 676 }, "pixelCount": 5182 }, "compressedPixels": [ 665, 645, 15, 646, 646, 67, 646, 647, 67, 646, 648, 67, 646, 649, 67, 646, 650, 3, 651, 650, 62, 646, 651, 3, 651, 651, 62, 646, 652, 67, 646, 653, 67, 646, 654, 67, 646, 655, 67, 646, 656, 67, 646, 657, 67, 633, 658, 80, 633, 659, 80, 633, 660, 46, 681, 660, 32, 613, 661, 66, 681, 661, 32, 613, 662, 100, 613, 663, 100, 613, 664, 100, 615, 665, 98, 615, 666, 60, 676, 666, 39, 615, 667, 100, 615, 668, 100, 615, 669, 100, 615, 670, 50, 667, 670, 48, 615, 671, 50, 667, 671, 22, 691, 671, 24, 615, 672, 74, 691, 672, 24, 615, 673, 100, 615, 674, 100, 615, 675, 100, 615, 676, 100, 613, 677, 102, 613, 678, 102, 613, 679, 102, 613, 680, 102, 613, 681, 99, 613, 682, 99, 613, 683, 52, 667, 683, 46, 613, 684, 52, 667, 684, 22, 691, 684, 22, 615, 685, 74, 691, 685, 22, 613, 686, 100, 613, 687, 100, 613, 688, 54, 669, 688, 18, 689, 688, 24, 613, 689, 54, 669, 689, 18, 689, 689, 24, 613, 690, 100, 613, 691, 100, 613, 692, 100, 613, 693, 100, 613, 694, 21, 640, 694, 73, 613, 695, 21, 640, 695, 73, 613, 696, 20, 640, 696, 73, 614, 697, 19, 639, 697, 74, 616, 698, 18, 639, 698, 74, 639, 699, 74, 639, 700, 74, 639, 701, 74, 639, 702, 73, 639, 703, 73, 639, 704, 15, 655, 704, 5 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "9", "active": false, "source": "regular", "name": "Kitchen", "area": 46200 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 623, "max": 662, "mid": 643, "avg": 641 }, "y": { "min": 705, "max": 759, "mid": 732, "avg": 735 }, "pixelCount": 1848 }, "compressedPixels": [ 639, 705, 13, 655, 705, 5, 639, 706, 13, 654, 706, 5, 639, 707, 13, 654, 707, 6, 639, 708, 13, 654, 708, 6, 640, 709, 13, 655, 709, 5, 640, 710, 14, 655, 710, 5, 640, 711, 14, 623, 712, 31, 623, 713, 31, 623, 714, 31, 623, 715, 31, 623, 716, 31, 623, 717, 31, 623, 718, 31, 623, 719, 31, 623, 720, 31, 623, 721, 31, 623, 722, 31, 623, 723, 31, 623, 724, 31, 623, 725, 31, 623, 726, 31, 623, 727, 31, 623, 728, 37, 623, 729, 37, 623, 730, 37, 623, 731, 37, 623, 732, 37, 623, 733, 37, 623, 734, 37, 623, 735, 37, 623, 736, 37, 623, 737, 36, 623, 738, 37, 623, 739, 40, 623, 740, 40, 623, 741, 40, 623, 742, 40, 623, 743, 40, 623, 744, 40, 623, 745, 40, 623, 746, 40, 623, 747, 40, 623, 748, 40, 623, 749, 40, 623, 750, 40, 623, 751, 40, 623, 752, 40, 623, 753, 40, 623, 754, 36, 623, 755, 37, 623, 756, 37, 623, 757, 37, 623, 758, 37, 623, 759, 37 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "10", "active": false, "source": "regular", "name": "Toilet", "area": 10325 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 613, "max": 641, "mid": 627, "avg": 628 }, "y": { "min": 589, "max": 606, "mid": 598, "avg": 597 }, "pixelCount": 413 }, "compressedPixels": [ 616, 589, 24, 616, 590, 26, 617, 591, 24, 617, 592, 25, 613, 593, 2, 616, 593, 26, 613, 594, 29, 613, 595, 8, 623, 595, 19, 613, 596, 3, 618, 596, 1, 624, 596, 18, 613, 597, 2, 624, 597, 18, 624, 598, 18, 618, 599, 3, 623, 599, 19, 616, 600, 26, 616, 601, 26, 616, 602, 26, 616, 603, 23, 616, 604, 19, 616, 605, 14, 616, 606, 14 ] }, { "__class": "MapLayer", "metaData": { "segmentId": "11", "active": false, "source": "regular", "name": "Hallway", "area": 53900 }, "type": "segment", "pixels": [], "dimensions": { "x": { "min": 642, "max": 684, "mid": 663, "avg": 669 }, "y": { "min": 550, "max": 644, "mid": 597, "avg": 596 }, "pixelCount": 2156 }, "compressedPixels": [ 667, 550, 15, 666, 551, 16, 665, 552, 16, 665, 553, 16, 664, 554, 18, 664, 555, 21, 664, 556, 21, 664, 557, 21, 664, 558, 21, 664, 559, 21, 664, 560, 21, 664, 561, 21, 664, 562, 21, 664, 563, 21, 664, 564, 21, 664, 565, 21, 664, 566, 21, 664, 567, 21, 664, 568, 21, 664, 569, 21, 664, 570, 17, 664, 571, 18, 664, 572, 18, 664, 573, 18, 664, 574, 18, 664, 575, 18, 664, 576, 18, 664, 577, 18, 664, 578, 18, 664, 579, 18, 664, 580, 18, 664, 581, 18, 664, 582, 18, 664, 583, 18, 664, 584, 18, 664, 585, 18, 647, 586, 12, 664, 586, 18, 647, 587, 13, 664, 587, 18, 647, 588, 13, 664, 588, 18, 646, 589, 14, 664, 589, 19, 646, 590, 17, 664, 590, 19, 646, 591, 37, 646, 592, 37, 642, 593, 1, 644, 593, 39, 642, 594, 1, 644, 594, 39, 642, 595, 1, 644, 595, 39, 642, 596, 1, 644, 596, 39, 642, 597, 1, 644, 597, 39, 642, 598, 1, 644, 598, 39, 642, 599, 1, 644, 599, 39, 642, 600, 1, 644, 600, 39, 642, 601, 1, 644, 601, 39, 642, 602, 1, 644, 602, 39, 644, 603, 38, 646, 604, 35, 646, 605, 36, 646, 606, 36, 646, 607, 14, 664, 607, 18, 647, 608, 13, 664, 608, 18, 647, 609, 13, 664, 609, 18, 647, 610, 12, 664, 610, 18, 664, 611, 18, 664, 612, 18, 664, 613, 18, 664, 614, 18, 664, 615, 18, 664, 616, 18, 664, 617, 18, 664, 618, 18, 664, 619, 18, 664, 620, 18, 664, 621, 18, 664, 622, 18, 664, 623, 18, 664, 624, 18, 664, 625, 18, 664, 626, 16, 664, 627, 16, 664, 628, 16, 664, 629, 16, 664, 630, 16, 664, 631, 16, 664, 632, 16, 664, 633, 16, 664, 634, 16, 664, 635, 16, 664, 636, 16, 664, 637, 16, 664, 638, 16, 664, 639, 16, 664, 640, 16, 664, 641, 16, 665, 642, 15, 666, 643, 14, 666, 644, 14 ] }, { "__class": "MapLayer", "metaData": { "area": 63950 }, "type": "wall", "pixels": [], "dimensions": { "x": { "min": 608, "max": 816, "mid": 712, "avg": 693 }, "y": { "min": 499, "max": 773, "mid": 636, "avg": 644 }, "pixelCount": 2558 }, "compressedPixels": [ 626, 499, 4, 637, 499, 8, 624, 500, 3, 634, 500, 3, 644, 500, 29, 624, 501, 1, 634, 501, 1, 672, 501, 2, 685, 501, 20, 735, 501, 10, 624, 502, 1, 630, 502, 5, 673, 502, 1, 684, 502, 2, 704, 502, 1, 735, 502, 1, 744, 502, 1, 624, 503, 1, 673, 503, 1, 684, 503, 1, 704, 503, 32, 744, 503, 1, 624, 504, 1, 673, 504, 1, 684, 504, 1, 744, 504, 1, 624, 505, 1, 673, 505, 1, 684, 505, 1, 744, 505, 1, 624, 506, 1, 673, 506, 1, 684, 506, 1, 688, 506, 1, 690, 506, 6, 744, 506, 1, 624, 507, 1, 673, 507, 1, 684, 507, 2, 744, 507, 1, 624, 508, 1, 673, 508, 1, 684, 508, 1, 743, 508, 11, 624, 509, 1, 673, 509, 1, 684, 509, 1, 753, 509, 1, 623, 510, 2, 673, 510, 1, 684, 510, 1, 753, 510, 1, 623, 511, 1, 673, 511, 1, 684, 511, 1, 753, 511, 1, 623, 512, 2, 673, 512, 1, 684, 512, 1, 753, 512, 1, 624, 513, 2, 673, 513, 1, 684, 513, 1, 753, 513, 1, 625, 514, 3, 673, 514, 1, 684, 514, 1, 753, 514, 1, 613, 515, 2, 627, 515, 1, 673, 515, 1, 684, 515, 1, 753, 515, 1, 613, 516, 1, 618, 516, 1, 627, 516, 1, 673, 516, 1, 684, 516, 1, 753, 516, 1, 613, 517, 1, 619, 517, 7, 627, 517, 1, 673, 517, 1, 684, 517, 1, 753, 517, 1, 613, 518, 1, 626, 518, 2, 673, 518, 1, 684, 518, 1, 753, 518, 1, 613, 519, 1, 673, 519, 1, 684, 519, 1, 753, 519, 1, 613, 520, 1, 673, 520, 1, 684, 520, 1, 753, 520, 1, 613, 521, 1, 673, 521, 1, 684, 521, 1, 753, 521, 1, 613, 522, 1, 673, 522, 1, 684, 522, 1, 753, 522, 1, 613, 523, 1, 673, 523, 1, 684, 523, 1, 753, 523, 1, 613, 524, 1, 673, 524, 1, 684, 524, 1, 750, 524, 1, 752, 524, 2, 613, 525, 1, 673, 525, 1, 684, 525, 1, 751, 525, 2, 613, 526, 1, 628, 526, 3, 673, 526, 1, 684, 526, 1, 752, 526, 1, 613, 527, 1, 628, 527, 3, 673, 527, 1, 684, 527, 1, 752, 527, 1, 613, 528, 1, 628, 528, 1, 673, 528, 1, 684, 528, 1, 752, 528, 1, 613, 529, 1, 673, 529, 1, 684, 529, 1, 751, 529, 2, 613, 530, 1, 673, 530, 4, 684, 530, 1, 751, 530, 2, 613, 531, 1, 676, 531, 9, 752, 531, 1, 613, 532, 1, 683, 532, 2, 752, 532, 1, 613, 533, 1, 682, 533, 3, 752, 533, 1, 613, 534, 1, 682, 534, 1, 684, 534, 1, 751, 534, 2, 613, 535, 1, 615, 535, 1, 682, 535, 1, 684, 535, 1, 752, 535, 1, 613, 536, 2, 682, 536, 1, 684, 536, 1, 752, 536, 1, 614, 537, 2, 617, 537, 1, 619, 537, 3, 682, 537, 1, 684, 537, 1, 752, 537, 1, 621, 538, 1, 682, 538, 1, 684, 538, 1, 752, 538, 1, 620, 539, 2, 682, 539, 1, 684, 539, 1, 752, 539, 1, 620, 540, 1, 682, 540, 1, 684, 540, 1, 752, 540, 1, 620, 541, 1, 682, 541, 1, 684, 541, 1, 752, 541, 1, 620, 542, 1, 682, 542, 1, 684, 542, 1, 751, 542, 2, 620, 543, 1, 682, 543, 1, 684, 543, 1, 751, 543, 1, 620, 544, 1, 682, 544, 1, 684, 544, 1, 751, 544, 2, 620, 545, 2, 682, 545, 1, 684, 545, 1, 752, 545, 1, 621, 546, 1, 682, 546, 1, 684, 546, 1, 752, 546, 1, 621, 547, 1, 682, 547, 1, 684, 547, 1, 752, 547, 1, 621, 548, 1, 682, 548, 1, 684, 548, 1, 752, 548, 1, 621, 549, 45, 682, 549, 1, 684, 549, 1, 752, 549, 1, 665, 550, 1, 682, 550, 1, 684, 550, 1, 752, 550, 1, 664, 551, 2, 682, 551, 1, 684, 551, 1, 752, 551, 1, 645, 552, 17, 663, 552, 2, 681, 552, 4, 752, 552, 1, 645, 553, 1, 661, 553, 1, 663, 553, 1, 683, 553, 2, 752, 553, 1, 645, 554, 2, 661, 554, 1, 663, 554, 1, 752, 554, 1, 645, 555, 2, 661, 555, 1, 663, 555, 1, 752, 555, 1, 645, 556, 1, 661, 556, 1, 663, 556, 1, 752, 556, 1, 645, 557, 1, 654, 557, 1, 661, 557, 1, 663, 557, 1, 752, 557, 1, 637, 558, 12, 653, 558, 2, 661, 558, 1, 663, 558, 1, 752, 558, 1, 637, 559, 1, 661, 559, 1, 663, 559, 1, 752, 559, 1, 637, 560, 1, 661, 560, 1, 663, 560, 1, 752, 560, 1, 636, 561, 2, 661, 561, 1, 663, 561, 1, 751, 561, 2, 627, 562, 10, 661, 562, 1, 663, 562, 1, 751, 562, 2, 627, 563, 1, 661, 563, 1, 663, 563, 1, 752, 563, 1, 627, 564, 1, 661, 564, 1, 663, 564, 1, 752, 564, 2, 627, 565, 1, 661, 565, 1, 663, 565, 1, 753, 565, 1, 627, 566, 1, 661, 566, 1, 663, 566, 1, 753, 566, 1, 627, 567, 1, 661, 567, 1, 663, 567, 1, 753, 567, 1, 627, 568, 1, 661, 568, 1, 663, 568, 1, 753, 568, 1, 627, 569, 1, 659, 569, 3, 663, 569, 1, 753, 569, 1, 627, 570, 1, 659, 570, 1, 663, 570, 1, 753, 570, 1, 627, 571, 1, 659, 571, 1, 663, 571, 1, 683, 571, 3, 753, 571, 1, 627, 572, 1, 658, 572, 2, 663, 572, 1, 683, 572, 1, 685, 572, 1, 753, 572, 1, 627, 573, 1, 657, 573, 1, 663, 573, 1, 683, 573, 1, 685, 573, 69, 627, 574, 1, 657, 574, 1, 663, 574, 1, 683, 574, 1, 627, 575, 1, 657, 575, 2, 663, 575, 1, 683, 575, 1, 627, 576, 1, 658, 576, 1, 663, 576, 1, 683, 576, 1, 627, 577, 1, 658, 577, 1, 663, 577, 1, 683, 577, 1, 627, 578, 1, 658, 578, 1, 663, 578, 1, 683, 578, 1, 627, 579, 1, 658, 579, 1, 663, 579, 1, 683, 579, 1, 627, 580, 1, 658, 580, 1, 663, 580, 1, 683, 580, 1, 627, 581, 1, 658, 581, 2, 663, 581, 1, 683, 581, 1, 627, 582, 1, 659, 582, 1, 663, 582, 1, 683, 582, 1, 627, 583, 1, 630, 583, 1, 659, 583, 1, 663, 583, 1, 683, 583, 1, 630, 584, 1, 659, 584, 1, 663, 584, 1, 683, 584, 1, 630, 585, 6, 659, 585, 1, 663, 585, 1, 683, 585, 1, 634, 586, 1, 644, 586, 3, 659, 586, 2, 663, 586, 1, 683, 586, 1, 702, 586, 28, 645, 587, 2, 660, 587, 1, 663, 587, 1, 683, 587, 20, 729, 587, 1, 615, 588, 27, 645, 588, 1, 660, 588, 4, 729, 588, 1, 615, 589, 1, 640, 589, 1, 642, 589, 1, 645, 589, 1, 661, 589, 1, 729, 589, 1, 615, 590, 1, 645, 590, 1, 729, 590, 1, 615, 591, 2, 642, 591, 4, 729, 591, 1, 612, 592, 5, 643, 592, 2, 729, 592, 1, 612, 593, 1, 615, 593, 1, 729, 593, 1, 612, 594, 1, 729, 594, 1, 612, 595, 1, 621, 595, 2, 729, 595, 7, 612, 596, 1, 616, 596, 2, 619, 596, 4, 730, 596, 1, 735, 596, 1, 612, 597, 1, 622, 597, 1, 735, 597, 1, 612, 598, 2, 621, 598, 2, 735, 598, 1, 612, 599, 1, 735, 599, 1, 612, 600, 1, 735, 600, 1, 612, 601, 1, 735, 601, 1, 612, 602, 1, 731, 602, 5, 612, 603, 4, 639, 603, 5, 731, 603, 1, 615, 604, 1, 635, 604, 5, 643, 604, 3, 683, 604, 3, 731, 604, 1, 615, 605, 1, 630, 605, 6, 645, 605, 1, 683, 605, 2, 731, 605, 1, 615, 606, 1, 630, 606, 1, 645, 606, 1, 683, 606, 2, 731, 606, 1, 615, 607, 16, 645, 607, 1, 660, 607, 3, 683, 607, 2, 731, 607, 1, 645, 608, 1, 660, 608, 1, 662, 608, 1, 683, 608, 2, 731, 608, 1, 645, 609, 1, 660, 609, 1, 662, 609, 1, 683, 609, 2, 731, 609, 1, 622, 610, 24, 659, 610, 2, 662, 610, 1, 683, 610, 2, 731, 610, 1, 622, 611, 1, 659, 611, 1, 662, 611, 1, 683, 611, 2, 731, 611, 1, 622, 612, 1, 659, 612, 1, 662, 612, 1, 683, 612, 2, 731, 612, 1, 622, 613, 2, 659, 613, 1, 662, 613, 1, 683, 613, 14, 731, 613, 1, 622, 614, 2, 659, 614, 1, 662, 614, 1, 683, 614, 1, 696, 614, 1, 731, 614, 1, 610, 615, 1, 622, 615, 1, 659, 615, 1, 662, 615, 1, 683, 615, 1, 696, 615, 1, 731, 615, 1, 610, 616, 1, 621, 616, 2, 659, 616, 1, 662, 616, 1, 683, 616, 1, 696, 616, 1, 731, 616, 1, 610, 617, 1, 616, 617, 1, 620, 617, 2, 659, 617, 1, 662, 617, 1, 683, 617, 1, 696, 617, 1, 731, 617, 1, 610, 618, 1, 615, 618, 2, 618, 618, 3, 659, 618, 1, 662, 618, 1, 683, 618, 1, 696, 618, 1, 731, 618, 1, 610, 619, 1, 659, 619, 1, 662, 619, 1, 683, 619, 1, 696, 619, 1, 731, 619, 1, 610, 620, 1, 659, 620, 1, 662, 620, 1, 683, 620, 1, 696, 620, 1, 731, 620, 1, 610, 621, 1, 659, 621, 1, 662, 621, 1, 683, 621, 1, 696, 621, 1, 731, 621, 1, 610, 622, 1, 659, 622, 1, 662, 622, 1, 683, 622, 1, 696, 622, 1, 731, 622, 1, 610, 623, 1, 659, 623, 1, 662, 623, 1, 683, 623, 1, 696, 623, 1, 731, 623, 1, 610, 624, 1, 658, 624, 2, 662, 624, 1, 683, 624, 1, 696, 624, 1, 731, 624, 1, 610, 625, 1, 658, 625, 1, 662, 625, 1, 683, 625, 1, 696, 625, 1, 731, 625, 1, 610, 626, 1, 652, 626, 7, 662, 626, 1, 681, 626, 3, 696, 626, 1, 731, 626, 1, 610, 627, 2, 652, 627, 2, 662, 627, 1, 680, 627, 2, 696, 627, 1, 731, 627, 1, 611, 628, 1, 662, 628, 1, 680, 628, 1, 696, 628, 1, 731, 628, 1, 611, 629, 1, 662, 629, 1, 680, 629, 1, 696, 629, 1, 731, 629, 1, 611, 630, 1, 662, 630, 1, 680, 630, 1, 696, 630, 1, 731, 630, 1, 611, 631, 1, 636, 631, 2, 662, 631, 1, 680, 631, 1, 696, 631, 1, 731, 631, 1, 611, 632, 25, 637, 632, 1, 651, 632, 1, 662, 632, 1, 680, 632, 1, 696, 632, 1, 731, 632, 1, 637, 633, 1, 651, 633, 1, 662, 633, 1, 680, 633, 1, 696, 633, 1, 731, 633, 1, 637, 634, 1, 651, 634, 1, 662, 634, 1, 680, 634, 1, 696, 634, 1, 731, 634, 1, 637, 635, 1, 651, 635, 1, 662, 635, 1, 680, 635, 1, 696, 635, 1, 731, 635, 1, 637, 636, 1, 651, 636, 1, 662, 636, 1, 680, 636, 1, 696, 636, 1, 731, 636, 1, 637, 637, 1, 651, 637, 1, 662, 637, 1, 680, 637, 1, 696, 637, 1, 731, 637, 1, 637, 638, 1, 651, 638, 1, 662, 638, 1, 680, 638, 1, 696, 638, 1, 731, 638, 1, 637, 639, 1, 651, 639, 1, 662, 639, 1, 680, 639, 1, 696, 639, 1, 731, 639, 2, 637, 640, 1, 651, 640, 1, 662, 640, 1, 680, 640, 1, 696, 640, 1, 732, 640, 1, 637, 641, 1, 651, 641, 1, 662, 641, 1, 680, 641, 1, 696, 641, 1, 732, 641, 1, 637, 642, 2, 641, 642, 1, 646, 642, 4, 651, 642, 1, 662, 642, 2, 680, 642, 1, 696, 642, 1, 731, 642, 2, 638, 643, 8, 649, 643, 3, 663, 643, 2, 680, 643, 1, 696, 643, 1, 717, 643, 2, 731, 643, 1, 664, 644, 1, 680, 644, 17, 713, 644, 21, 644, 645, 21, 713, 645, 1, 723, 645, 2, 733, 645, 21, 644, 646, 1, 713, 646, 1, 721, 646, 3, 753, 646, 1, 644, 647, 1, 713, 647, 1, 721, 647, 1, 753, 647, 1, 644, 648, 1, 713, 648, 1, 721, 648, 1, 753, 648, 1, 644, 649, 1, 713, 649, 1, 721, 649, 1, 753, 649, 1, 644, 650, 1, 713, 650, 1, 721, 650, 1, 753, 650, 1, 644, 651, 1, 713, 651, 1, 721, 651, 1, 753, 651, 1, 644, 652, 1, 713, 652, 1, 721, 652, 2, 753, 652, 1, 644, 653, 1, 713, 653, 1, 722, 653, 1, 753, 653, 1, 644, 654, 1, 713, 654, 1, 721, 654, 2, 753, 654, 1, 644, 655, 1, 713, 655, 1, 721, 655, 1, 753, 655, 1, 644, 656, 1, 713, 656, 1, 721, 656, 2, 753, 656, 1, 611, 657, 7, 620, 657, 2, 632, 657, 11, 644, 657, 1, 713, 657, 1, 722, 657, 2, 753, 657, 1, 611, 658, 1, 614, 658, 2, 621, 658, 1, 632, 658, 1, 713, 658, 1, 716, 658, 8, 753, 658, 1, 611, 659, 1, 621, 659, 4, 632, 659, 1, 713, 659, 1, 716, 659, 1, 753, 659, 1, 610, 660, 2, 625, 660, 8, 713, 660, 1, 716, 660, 1, 753, 660, 1, 609, 661, 2, 713, 661, 1, 716, 661, 1, 753, 661, 1, 609, 662, 1, 713, 662, 1, 715, 662, 2, 753, 662, 1, 609, 663, 1, 713, 663, 1, 715, 663, 1, 753, 663, 1, 608, 664, 1, 713, 664, 1, 715, 664, 1, 753, 664, 1, 608, 665, 1, 713, 665, 3, 753, 665, 1, 608, 666, 1, 753, 666, 1, 608, 667, 1, 753, 667, 1, 608, 668, 1, 753, 668, 1, 608, 669, 1, 753, 669, 1, 608, 670, 1, 666, 670, 1, 753, 670, 1, 608, 671, 1, 666, 671, 1, 752, 671, 2, 608, 672, 1, 752, 672, 2, 608, 673, 1, 753, 673, 1, 608, 674, 1, 753, 674, 1, 608, 675, 1, 753, 675, 1, 608, 676, 1, 752, 676, 2, 608, 677, 1, 752, 677, 1, 608, 678, 2, 611, 678, 2, 752, 678, 2, 609, 679, 3, 753, 679, 1, 611, 680, 1, 753, 680, 1, 611, 681, 1, 713, 681, 3, 721, 681, 1, 753, 681, 1, 611, 682, 1, 712, 682, 2, 715, 682, 7, 745, 682, 9, 611, 683, 1, 713, 683, 1, 721, 683, 1, 745, 683, 1, 611, 684, 1, 665, 684, 2, 689, 684, 2, 713, 684, 9, 745, 684, 1, 787, 684, 13, 805, 684, 4, 611, 685, 1, 689, 685, 2, 713, 685, 2, 745, 685, 2, 787, 685, 1, 799, 685, 1, 808, 685, 1, 611, 686, 1, 713, 686, 2, 746, 686, 1, 799, 686, 1, 808, 686, 1, 611, 687, 1, 713, 687, 2, 746, 687, 1, 799, 687, 5, 808, 687, 1, 611, 688, 1, 713, 688, 2, 745, 688, 2, 808, 688, 1, 611, 689, 1, 713, 689, 2, 746, 689, 1, 777, 689, 9, 789, 689, 1, 807, 689, 2, 611, 690, 1, 713, 690, 2, 746, 690, 4, 777, 690, 1, 779, 690, 2, 785, 690, 5, 808, 690, 1, 611, 691, 1, 713, 691, 2, 749, 691, 1, 777, 691, 1, 807, 691, 6, 611, 692, 1, 713, 692, 2, 749, 692, 1, 777, 692, 1, 805, 692, 2, 812, 692, 2, 611, 693, 1, 713, 693, 2, 749, 693, 1, 752, 693, 23, 777, 693, 1, 800, 693, 1, 805, 693, 1, 813, 693, 2, 611, 694, 1, 713, 694, 2, 749, 694, 3, 775, 694, 3, 805, 694, 1, 814, 694, 1, 611, 695, 1, 713, 695, 2, 805, 695, 1, 814, 695, 1, 611, 696, 1, 713, 696, 2, 814, 696, 1, 611, 697, 1, 713, 697, 2, 814, 697, 1, 611, 698, 3, 713, 698, 2, 813, 698, 2, 613, 699, 5, 628, 699, 10, 713, 699, 2, 806, 699, 1, 813, 699, 1, 617, 700, 12, 637, 700, 2, 713, 700, 2, 807, 700, 3, 812, 700, 2, 638, 701, 1, 713, 701, 2, 812, 701, 1, 638, 702, 1, 713, 702, 2, 812, 702, 1, 638, 703, 1, 713, 703, 2, 812, 703, 1, 638, 704, 1, 713, 704, 2, 811, 704, 2, 638, 705, 1, 660, 705, 53, 714, 705, 1, 811, 705, 1, 638, 706, 1, 660, 706, 1, 699, 706, 1, 705, 706, 1, 714, 706, 1, 810, 706, 2, 638, 707, 1, 660, 707, 1, 677, 707, 1, 679, 707, 1, 681, 707, 19, 705, 707, 10, 810, 707, 1, 638, 708, 1, 660, 708, 1, 676, 708, 2, 683, 708, 2, 800, 708, 11, 638, 709, 1, 660, 709, 1, 675, 709, 2, 683, 709, 2, 797, 709, 3, 622, 710, 17, 660, 710, 1, 675, 710, 1, 683, 710, 2, 797, 710, 1, 621, 711, 2, 655, 711, 3, 660, 711, 1, 674, 711, 2, 684, 711, 1, 689, 711, 1, 797, 711, 1, 621, 712, 1, 654, 712, 2, 657, 712, 1, 660, 712, 1, 674, 712, 1, 684, 712, 2, 797, 712, 1, 621, 713, 1, 654, 713, 1, 671, 713, 5, 684, 713, 1, 797, 713, 1, 621, 714, 1, 654, 714, 1, 669, 714, 2, 675, 714, 1, 683, 714, 2, 797, 714, 1, 621, 715, 1, 654, 715, 1, 669, 715, 1, 676, 715, 1, 683, 715, 1, 797, 715, 1, 621, 716, 1, 654, 716, 1, 669, 716, 2, 676, 716, 1, 682, 716, 1, 797, 716, 1, 621, 717, 1, 654, 717, 1, 669, 717, 2, 797, 717, 1, 621, 718, 1, 654, 718, 1, 669, 718, 1, 797, 718, 1, 621, 719, 1, 654, 719, 1, 669, 719, 1, 674, 719, 2, 797, 719, 1, 621, 720, 1, 654, 720, 1, 669, 720, 2, 797, 720, 1, 621, 721, 1, 654, 721, 1, 670, 721, 1, 672, 721, 1, 797, 721, 1, 621, 722, 1, 654, 722, 1, 670, 722, 3, 797, 722, 1, 621, 723, 1, 654, 723, 1, 670, 723, 1, 797, 723, 1, 621, 724, 1, 654, 724, 1, 670, 724, 1, 797, 724, 1, 621, 725, 1, 654, 725, 1, 671, 725, 1, 797, 725, 1, 621, 726, 1, 654, 726, 4, 660, 726, 1, 670, 726, 2, 797, 726, 1, 621, 727, 1, 657, 727, 2, 660, 727, 1, 662, 727, 5, 669, 727, 2, 797, 727, 1, 621, 728, 1, 660, 728, 1, 662, 728, 1, 666, 728, 4, 797, 728, 1, 621, 729, 1, 660, 729, 1, 662, 729, 1, 797, 729, 1, 621, 730, 1, 660, 730, 1, 662, 730, 1, 797, 730, 1, 621, 731, 1, 660, 731, 1, 662, 731, 1, 797, 731, 1, 621, 732, 1, 660, 732, 1, 662, 732, 1, 797, 732, 1, 621, 733, 1, 660, 733, 1, 662, 733, 1, 797, 733, 1, 621, 734, 1, 660, 734, 1, 662, 734, 1, 797, 734, 1, 621, 735, 1, 660, 735, 1, 662, 735, 1, 797, 735, 1, 621, 736, 1, 660, 736, 1, 662, 736, 1, 797, 736, 1, 621, 737, 1, 660, 737, 3, 797, 737, 1, 621, 738, 1, 663, 738, 1, 797, 738, 1, 621, 739, 1, 663, 739, 1, 741, 739, 3, 797, 739, 1, 621, 740, 1, 741, 740, 5, 748, 740, 1, 797, 740, 1, 621, 741, 1, 742, 741, 1, 745, 741, 4, 797, 741, 1, 621, 742, 1, 741, 742, 2, 748, 742, 3, 797, 742, 1, 621, 743, 1, 740, 743, 2, 743, 743, 5, 750, 743, 1, 797, 743, 1, 621, 744, 1, 740, 744, 4, 747, 744, 7, 797, 744, 1, 621, 745, 1, 740, 745, 1, 742, 745, 1, 748, 745, 2, 751, 745, 2, 797, 745, 1, 621, 746, 1, 752, 746, 2, 797, 746, 1, 621, 747, 1, 736, 747, 1, 752, 747, 1, 797, 747, 1, 621, 748, 1, 751, 748, 2, 797, 748, 1, 621, 749, 1, 797, 749, 1, 621, 750, 1, 748, 750, 1, 797, 750, 1, 621, 751, 1, 747, 751, 1, 797, 751, 20, 621, 752, 1, 785, 752, 1, 816, 752, 1, 621, 753, 1, 735, 753, 2, 759, 753, 1, 784, 753, 1, 816, 753, 1, 621, 754, 1, 660, 754, 3, 735, 754, 1, 759, 754, 1, 816, 754, 1, 621, 755, 1, 660, 755, 1, 662, 755, 1, 739, 755, 1, 816, 755, 1, 621, 756, 1, 660, 756, 1, 662, 756, 1, 739, 756, 5, 816, 756, 1, 621, 757, 1, 660, 757, 1, 662, 757, 1, 738, 757, 2, 743, 757, 4, 763, 757, 5, 773, 757, 2, 816, 757, 1, 621, 758, 1, 660, 758, 1, 662, 758, 1, 738, 758, 2, 746, 758, 1, 761, 758, 3, 767, 758, 11, 816, 758, 1, 621, 759, 1, 660, 759, 1, 662, 759, 9, 739, 759, 3, 746, 759, 1, 761, 759, 2, 772, 759, 1, 777, 759, 2, 816, 759, 1, 621, 760, 1, 660, 760, 1, 663, 760, 1, 670, 760, 1, 741, 760, 2, 746, 760, 1, 760, 760, 1, 769, 760, 5, 778, 760, 2, 816, 760, 1, 621, 761, 40, 663, 761, 1, 671, 761, 1, 738, 761, 1, 742, 761, 2, 745, 761, 2, 763, 761, 3, 767, 761, 3, 771, 761, 3, 779, 761, 1, 816, 761, 1, 663, 762, 1, 743, 762, 3, 763, 762, 1, 768, 762, 2, 773, 762, 1, 779, 762, 1, 785, 762, 1, 815, 762, 2, 663, 763, 1, 763, 763, 1, 769, 763, 1, 774, 763, 1, 785, 763, 2, 802, 763, 1, 814, 763, 2, 663, 764, 1, 785, 764, 30, 663, 765, 1, 785, 765, 1, 663, 766, 1, 785, 766, 1, 663, 767, 1, 754, 767, 1, 785, 767, 1, 663, 768, 1, 785, 768, 1, 663, 769, 1, 785, 769, 1, 663, 770, 3, 669, 770, 2, 734, 770, 2, 753, 770, 4, 758, 770, 1, 783, 770, 3, 665, 771, 1, 669, 771, 2, 734, 771, 2, 754, 771, 1, 756, 771, 1, 758, 771, 1, 783, 771, 1, 665, 772, 90, 756, 772, 11, 773, 772, 1, 777, 772, 2, 781, 772, 3, 766, 773, 16 ] } ], "entities": [ { "__class": "PointMapEntity", "metaData": { "angle": 3 }, "points": [ 3278, 3254 ], "type": "robot_position" }, { "__class": "PointMapEntity", "metaData": { "angle": 183 }, "points": [ 3279, 3229 ], "type": "charger_location" }, { "__class": "PolygonMapEntity", "metaData": {}, "points": [ 3675, 3690, 3775, 3690, 3775, 3860, 3675, 3860 ], "type": "no_go_area" }, { "__class": "PolygonMapEntity", "metaData": {}, "points": [ 3780, 3770, 3925, 3770, 3925, 3860, 3780, 3860 ], "type": "no_go_area" }, { "__class": "PathMapEntity", "metaData": {}, "points": [ 3775, 3640, 3777, 3645, 3777, 3650, 3776, 3655, 3776, 3660, 3776, 3665, 3776, 3670, 3781, 3672, 3786, 3674, 3790, 3677, 3794, 3680, 3797, 3684, 3800, 3688, 3802, 3693, 3803, 3698, 3802, 3703, 3800, 3708, 3797, 3712, 3795, 3717, 3800, 3716, 3804, 3713, 3810, 3713, 3815, 3713, 3820, 3713, 3825, 3713, 3830, 3713, 3835, 3714, 3841, 3714, 3846, 3714, 3851, 3714, 3856, 3714, 3861, 3714, 3867, 3714, 3872, 3714, 3877, 3714, 3882, 3714, 3887, 3714, 3893, 3714, 3897, 3711, 3897, 3706, 3897, 3701, 3897, 3695, 3897, 3690, 3897, 3685, 3897, 3680, 3897, 3675, 3897, 3670, 3897, 3665, 3897, 3660, 3897, 3655, 3897, 3650, 3893, 3646, 3888, 3646, 3883, 3646, 3877, 3646, 3872, 3647, 3867, 3647, 3862, 3647, 3857, 3647, 3852, 3647, 3846, 3646, 3841, 3646, 3836, 3646, 3831, 3646, 3825, 3647, 3820, 3647, 3815, 3647, 3809, 3647, 3804, 3647, 3799, 3647, 3794, 3647, 3788, 3647, 3783, 3647, 3778, 3647, 3775, 3651, 3775, 3656, 3776, 3661, 3776, 3665, 3780, 3663, 3785, 3660, 3786, 3659, 3791, 3657, 3796, 3657, 3801, 3657, 3807, 3657, 3812, 3657, 3817, 3657, 3823, 3657, 3828, 3657, 3833, 3657, 3838, 3657, 3844, 3657, 3849, 3657, 3854, 3657, 3859, 3657, 3865, 3657, 3870, 3657, 3875, 3657, 3880, 3657, 3885, 3657, 3886, 3657, 3891, 3658, 3894, 3662, 3893, 3667, 3889, 3671, 3887, 3672, 3881, 3672, 3876, 3672, 3871, 3672, 3865, 3672, 3860, 3672, 3855, 3671, 3849, 3671, 3844, 3671, 3839, 3671, 3834, 3671, 3828, 3671, 3823, 3671, 3818, 3671, 3812, 3671, 3807, 3671, 3802, 3671, 3797, 3671, 3801, 3675, 3803, 3679, 3806, 3683, 3807, 3684, 3812, 3683, 3817, 3683, 3823, 3683, 3828, 3683, 3833, 3683, 3839, 3683, 3844, 3683, 3849, 3683, 3855, 3683, 3860, 3683, 3865, 3683, 3870, 3683, 3876, 3683, 3881, 3683, 3886, 3683, 3886, 3683, 3891, 3684, 3894, 3688, 3893, 3693, 3889, 3696, 3887, 3697, 3882, 3697, 3877, 3697, 3871, 3697, 3866, 3697, 3861, 3697, 3855, 3697, 3850, 3696, 3845, 3696, 3839, 3696, 3834, 3696, 3829, 3696, 3823, 3696, 3818, 3696, 3813, 3696 ], "type": "path" }, { "__class": "PolygonMapEntity", "metaData": {}, "points": [ 3770, 3641, 3903, 3641, 3903, 3720, 3770, 3720 ], "type": "active_zone" } ] }

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

Okay will work on it, I hope you can wait for a while. For the most the code works and I guess it is just matter of reformatting the Image. Will keep you posted

from valetudo_vacuum_camera.

billyourself avatar billyourself commented on September 24, 2024

No rush, thanks again for your effort on this.

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

There is to re-design the image_handler but I already know how to do it. The reason why it crashed is probably because the code was developed with the V1, so I decided to re-do the image_handler in a more flexible way.. it was long time that I waited for it. It is a nice challenge and we will get it done. Thanks once again for the data :)

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

image

this is the image with the data you provided (note the colours of the rooms at the moment are constants) the vacuum is in dock position (will be rotated 180 deg but at the moment it is like that because we will need to check the robot position while running). The issue with HA instance was defiantly because the image was too big to handle, this is why it crashed. I will increase the scan time to 10 sec. instead of 5 sec. because composing this image take around 4.7 sec. while the one from my vacuum is on the range of 2.5 sec. I still need to integrate the modifications I made on the image_handler and run some tests. @billyourself I hope this will work and please note you will need to setup the camera to crop 45% and rotate counter clock wise as desired (this mean you need to remove and integrate again the camera at today, hope soon to fix the config_flow to avoid it). NB at the time be there is no no_go area draw.

from valetudo_vacuum_camera.

sca075 avatar sca075 commented on September 24, 2024

@billyourself version 236.09.01 is now available. I will move this post to the discussions.

from valetudo_vacuum_camera.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.