GithubHelp home page GithubHelp logo

hass-proscenic-790t-vacuum's Introduction

Home assistant proscenic 790T vacuum integration

GitHub release hacs_badge

The purpose of this integration is to provide an integration of proscenic 790T vacuum. It allow home assistant to:

  • start cleaning
  • pause cleaning
  • go to dock
  • retrieve vacuum informations (battery, state)
  • show the cleaning map

screenshot

Installation

HACS installation

You can use HACS to install this component. Search for the Integration "proscenic 790T vacuum"

Manual installation

  1. Go to releases page
  2. download the last release zip
  3. unzip it on custom_components directory
  4. see next chapter for configuration

Configuration

Add your device via the Integration menu.

Open your Home Assistant instance and start setting up a new integration.

You can choose between two connection mode:

  • local: the integration will use your local network to contact your vacuum (send command to start/stop). But the cloud will be used to get vacuum status, and the cleaning map.
  • cloud: All interactions are done using the cloud.

Note: Some vacuum don't support the local mode.

Get authentifications data

device id, token, user id and authentication code can be retrieved using the Proscenic robotic application :

  1. On your android smartphone (no solution for iphone), install Packet capture
  2. Open Packet capture and start a capture screenshot select Proscenic Robotic app
  3. Open the proscenic application, and open the vacuum view
  4. Reopen Packet capture
    1. Click on the first line
    2. Click on the line 47.91.67.181:20008
    3. Get you informations screenshot
  5. You can now enter your informations on home assistant
  6. You can add your vacuum on lovelace ui entities
    1. You can simply add it as an entity
    2. You can use the vacuum-card

Note: YAML configuration is deprecated. This will be removed soon.

Cleaning map management

map

The camera entity will be automaticaly added. The proscenic cloud is used to generate the map.

⚠️ 🚨: updating to 0.0.10 you should remove the integration and re-add it using cloud configuration to keep the map generation working

Available attributes

Theses attributes are available to be displayed on lovelace-ui:

  • clear_area: number of m2 cleaned
  • clear_duration: last clean duration in second
  • error_code: the current error code, if vacuum is on error status
  • error_detail: the current error message (in english), if vacuum is on error status

Know issue

  • At home assistant startup the vacuum cleaner status is not retrieved. You should perform an action on home assistant to get the vacuum cleaner status.
  • If you start the proscenic application, the status of the vacuum cleaner will not be refreshed on home assistant for 60 seconds.
  • If you start the proscenic application, you will be disconnected 60 seconds later. You can configure this time using sleep_duration_on_exit configuration.

buymeacoffee

hass-proscenic-790t-vacuum's People

Contributors

deblockt avatar wrt54g avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hass-proscenic-790t-vacuum's Issues

Custom component integration error

Good evening, I found your integration, and I was very glad that my old vacuum cleaner can work with HA / But I am having problems integrating your custom component into HA. installed manually and via HACS. The result is one, the integration does not want to load into HA.
`Logger: aiohttp.server
Source: components/hassio/init.py:518
First occurred: 21:38:25 (3 occurrences)
Last logged: 21:42:52

Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 76, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 24, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 144, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 135, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/api/init.py", line 376, in post
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/components/hassio/init.py", line 518, in async_handle_core_service
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: The system cannot restart because the configuration is not valid: Platform error vacuum.proscenic - Integration 'proscenic' not found.Настройка configuration.yaml##Prosceniv vacum
vacuum:

  • platform: proscenic
    host: 192.168.1.**
    deviceId: 4555b85******
    token: FAHby59G725171
    authCode: 1010
    20
    userId: 02fa6fd
    *******2b5292be3c08
    name: T790
    sleep_duration_on_exit: 30# default 60. number of second waiting before reconnection (if you use proscenic app)`

Cloud issue: state are not refresh after some time

After 1 or 2 day, the vacuum state is not refreshed anymore.
I can see this exception on log:

Traceback (most recent call last):
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 195, in start_state_refresh_loop
    await asyncio.wait_for(self._wait_for_state_refresh(), timeout=60.0)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 279, in _wait_for_state_refresh
    data = await self._wait_data_from_cloud()
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 245, in _wait_data_from_cloud
    data = await self.reader.read(1000)
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 684, in read
    await self._wait_for_data('read')
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 517, in _wait_for_data
    await self._waiter
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 856, in _read_ready__data_received
    data = self._sock.recv(self.max_size)
TimeoutError: [Errno 110] Operation timed out

When I try to start to clean, I have this error:

Traceback (most recent call last):
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 107, in _send_command
    await self.cloud.send_command(body)
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 180, in send_command
    await self.writer.drain()
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 375, in drain
    raise exc
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 107, in _send_command
    await self.cloud.send_command(body)
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 180, in send_command
    await self.writer.drain()
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 375, in drain
    raise exc
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 195, in start_state_refresh_loop
    await asyncio.wait_for(self._wait_for_state_refresh(), timeout=60.0)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 279, in _wait_for_state_refresh
    data = await self._wait_data_from_cloud()
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 245, in _wait_data_from_cloud
    data = await self.reader.read(1000)
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 684, in read
    await self._wait_for_data('read')
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 517, in _wait_for_data
    await self._waiter
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 856, in _read_ready__data_received
    data = self._sock.recv(self.max_size)
TimeoutError: [Errno 110] Operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 193, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1634, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1671, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 677, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 955, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 714, in _handle_entity_call
    await result
  File "/config/custom_components/proscenic/vacuum.py", line 202, in async_start
    await self.device.clean()
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 82, in clean
    await self._send_command(b'{"transitCmd":"100"}')
  File "/config/custom_components/proscenic/vacuum_proscenic.py", line 109, in _send_command
    raise VacuumUnavailable('can not connect to the vacuum. Turn on the physical switch button.')
custom_components.proscenic.vacuum_proscenic.VacuumUnavailable: can not connect to the vacuum. Turn on the physical switch button.

can not connect to vacuum

grafik

im wondering what the problem is...the vacuum was already connected, i got the status when it was driving to the dockingstation and the battery level btw
atm any possible action isnt working

Map issue

When the integration tries to pull the map it results in an error.
The response from the cloud:
{ "control": { "broadcast": "0", "targetId": "000000000000", // REDACTED "targetType": "1" }, "value": { "adjoinRegion": "", "areaAdjoin": "", "blockSize": "10000", "centerPoint": "352,364", "chargerPos": "370,318", "cleanArea": "[]", "clearArea": "3", "clearModule": "9", "clearSign": "2022-10-29-22-32-26-5", "clearTime": "209", "deg": "87", "doTime": "610209", "emptyMap": "0", "forbiddenArea": "[]", "isMove": "0", "leftMaxPoint": "300,309", "map": "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", "mapHeight": "700", "mapSign": "1", "mapType": "-1", "mapWidth": "700", "mopForbiddenArea": "[]", "pointArea": {}, "regionNames": "[]", "regionNum": "0", "result": "0", "rightMaxPoint": "404,419", "robotPos": "335,407", "track": "BAQDAIsApgFVAVcBVQFVAVYBUwFYAVMBWQFSAVsBUQFdAVEBXwFSAWEBUgFjAVIBZQFSAWcBUQFoAU8BaQFNAWoBTAFrAUkBawFHAWsBSAFrAUkBawFKAWsBSwFrAUwBawFNAWsBTgFrAU8BawFQAWsBUQFrAVIBawFUAWsBVQFrAVYBawFYAWsBWQFrAVoBawFbAWsBXQFrAV4BawFfAWsBYAFrAWIBawFjAWsBZAFrAWUBawFnAWsBaAFrAWkBawFqAWsBbAFrAW0BawFuAWsBbwFrAXABawFyAWsBcwFrAXQBawF1AWsBdgFrAXcBawF5AWsBegFrAXsBagF8AWkBfQFnAX0BZgF8AWUBewFlAXoBZQF4AWUBdwFlAXYBZQF1AWUBdAFlAXMBZQFyAWUBcQFlAW8BZQFuAWUBbAFlAWsBZQFqAWUBaQFlAWcBZQFmAWUBZQFlAWQBZQFjAWUBYQFlAWABZQFfAWUBXgFlAVwBZQFbAWUBWgFlAVkBZAFYAWMBVwFhAVcBYAFYAV8BWQFfAVoBXwFbAV8BXAFfAV0BXwFfAV8BYAFfAWEBXwFiAV8BYwFfAWUBXwFmAV8BZwFfAWgBXwFqAV8BawFfAWwBXwFtAV8BbwFfAXABXwFxAV8BcwFfAXQBXwF1AV8BdgFfAXgBXwF5AV8BegFfAXsBXwF9AV8BfgFfAX8BXwGAAV8BgQFeAYIBXQGDAVsBgwFaAYIBWQGBAVkBgAFZAX8BWQF+AVkBfQFZAXwBWQF7AVkBegFZAXkBWQF3AVkBdgFZAXUBWQF0AVkBcgFZAXEBWQFwAVkBbwFZAW0BWQFsAVkBawFZAWkBWQFoAVkBZwFZAWYBWQFkAVkBYwFZAWIBWQFgAVkBXwFZAV4BWQFcAVkBWwFZAVoBWQFZAVkBVwFYAVYBVgFWAVUBVwFWAVgBVgFaAVYBXAFWAV8BVQFhAVQBYgFTAWQBUwFlAVMBZgFTAWcBUwFoAVMBagFTAWsBUwFsAVMBbQFTAW8BUwFwAVMBcQFTAXMBUwF0AVMBdQFTAXYBUwF4AVMBeQFTAXoBUwF7AVMBfQFTAX4BUwF/AVMBgAFTAYEBUwGDAVMBhAFTAYUBUQGGAVABiAFQAYoBUAGMAVABjgFRAZABUwGRAVIBkgFRAZMBTwGTAU4BkgFNAZEBTQGQAU0BjwFNAY4BTQGMAU0BiwFNAYoBTQGJAU0BhwFNAYYBTQGFAU0BgwFNAYIBTQGBAU0BgAFNAX8BTQF9AU0BfAFNAXsBTQF6AU0BeQFNAXgBTQF3AU0BdgFNAXUBTQF0AU0BcwFNAXIBTQFxAU0BcAFNAW8BTQFuAU0BbQFNAWwBTQFrAU0BaQFLAWgBSgFpAUoBawFKAW0BSgFvAUkBcAFJAXIBSAFzAUgBdQFIAXgBSAF6AUgBfAFIAX4BSAGAAUgBggFIAYQBSAGGAUgBiAFIAYoBSAGNAUgBjwFIAZEBSAGTAUgBlQFIAZcBSgGXAUwBlwFOAZgB", "trackTotal": "0", "transitCmd": "134", "virtualWall": "[]" }, "version": "1.0" }

2022-10-29 20:48:43.357 ERROR (MainThread) [custom_components.proscenic.vacuum_proscenic] Unknon error on refresh loop. Restart refresh loop. Traceback (most recent call last): File "/config/custom_components/proscenic/vacuum_proscenic.py", line 202, in start_state_refresh_loop await asyncio.wait_for(self._wait_for_state_refresh(), timeout=60.0) File "/usr/local/lib/python3.10/asyncio/tasks.py", line 445, in wait_for return fut.result() File "/config/custom_components/proscenic/vacuum_proscenic.py", line 309, in _wait_for_state_refresh self._map_received(values) File "/config/custom_components/proscenic/vacuum_proscenic.py", line 338, in _map_received map.map_svg = build_map(value['map'], value['track']) File "/config/custom_components/proscenic/vacuum_map_generator.py", line 48, in build_map placebyte(d[i + 1]) File "/config/custom_components/proscenic/vacuum_map_generator.py", line 22, in placebyte full[((akt + 3) // 100)][((akt + 3) % 100)] = '0' IndexError: list index out of range

targetId

Hello, i’m using this integration for my Proscenic 811gb
I did everything I should and I could see my vacuum status, battery but couldn’t control it from HA, then I went into vacuum_proscenic.py and replaced “targetId” with my actual “targetId”
Now, i can control my vacuum but I lost battery level. Any idea?

Packet Capture

Hy if i start packet capture on MEmu an than i start proscenic app i get this fault incorect local time . When i stop than packet capture the app is working

Some json reading error

Sometime I have error like that:

Jun 12 17:45:05 raspberrypi poetry[6215]: 2020-06-12 17:45:05 DEBUG (MainThread) [custom_components.proscenic.vacuum_proscenic] receive from state refresh: b'&\x01\x00\x00\xfb\x00\xc8\x00\x00\x00\x00\x00\xa2\x01N\x00\x00\x00\x00\x00{"control":{"broadcast":"0","targetId":"8684F3EB6C05B1","targetType":"1"},"value":{"errRecordId":"840e3aa348bc4fc5a11d19f3749a1b85","errorCode":"14","noteCmd":"109","pushMsg":"790T \xe5\x8f\x91\xe7\x94\x9f\xe6\x95\x85\xe9\x9a\x9c","pushType":"102","userId":"8821285508c84f0ca037ecbe33623726"},"version":"1.0"}\n\xee\x00\x00\x00\xfb\x00\xc8\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00{"control":{"authCode":"252997","broadcast":"0","targetId":"8684F3EB6C05B1","targetType":"1"},"value":{"errRecordId":"840e3aa348bc4fc5a11d19f3749a1b85","errorCode":"14","errorDesc":"","noteCmd":"100"},"version":"1.0"}\n'
Jun 12 17:45:05 raspberrypi poetry[6215]: 2020-06-12 17:45:05 ERROR (MainThread) [custom_components.proscenic.vacuum_proscenic] error decoding json b'{"control":{"broadcast":"0","targetId":"8684F3EB6C05B1","targetType":"1"},"value":{"errRecordId":"840e3aa348bc4fc5a11d19f3749a1b85","errorCode":"14","noteCmd":"109","pushMsg":"790T \xe5\x8f\x91\xe7\x94\x9f\xe6\x95\x85\xe9\x9a\x9c","pushType":"102","userId":"8821285508c84f0ca037ecbe33623726"},"version":"1.0"}\n\xee\x00\x00\x00\xfb\x00\xc8\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00{"control":{"authCode":"252997","broadcast":"0","targetId":"8684F3EB6C05B1","targetType":"1"},"value":{"errRecordId":"840e3aa348bc4fc5a11d19f3749a1b85","errorCode":"14","errorDesc":"","noteCmd":"100"},"version":"1.0"}'

Proscenic Cocosmart 820T

Hello, will it work with the Cocosmart 820T model?
I tried to find authcode and targetid but they don't come out.

Start/Stop not working by me

Hello,

By me the information is working such as Battery info, information to getting dock etc. but i can't start/stop/pauze the Robotic using Lovelace. Do you have any idea whats gooing wrong?

"Local_file" error during initialization

Bug Report

good afternoon, I saw that your repository was updated, and decided to update my system and your integration, but after rebooting the system I recorded errors in the system log

Versions

  • Driver: Core
    core-2021.8.8
    supervisor-2021.06.8

Steps to reproduce

<details>
<summary>2021-08-24 23:19:32 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of proscenic. Setup failed for dependencies: local_file
2021-08-24 23:19:32 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
    resp = await self._request_handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 89, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 24, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 144, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 135, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 128, in post
    return await super().post(request)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 63, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 72, in post
    result = await self._flow_mgr.async_init(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 153, in async_init
    flow, result = await task
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 171, in _async_init
    flow = await self.async_create_flow(handler, context=context, data=data)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 693, in async_create_flow
    await async_process_deps_reqs(self.hass, self._hass_config, integration)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 371, in async_process_deps_reqs
    raise HomeAssistantError("Could not set up all dependencies.")
homeassistant.exceptions.HomeAssistantError: Could not set up all dependencies.
</summary>

Use the cloud to get the cleaning map

Using the cloud configuration, the cleaning map can not be displayed.
This is because the integration try to perform a local connection to the vacuum to get the map.

The cleaning area and cleaning duration also do not work.

We should find a way to have a full cloud configuration.

Proscenic M8 Pro

It appears that the payloads are being encrypted with this device. I can only retrieve the userId and token so far, and I also found a tuya device id.

Example:

{
    "result": "WuN1NpO/bMt6XGXTOuhWy8NycNVHVvAFFGdlmWxUIaNmrh8uXx0TCPtW5kiu/EvCQSx/saWbD/dhFPgeBPrSZk1OpxssBpsg23Sy9XNZ5528VloYp987b9DdZpKUvnAhp7ol3yZsmqg0KKfjYvu4jzToAw+AgFGCdVymZb1dYXjl2i3ijAjrM/jieNHQKFHL6KzMdxGN9f+EgcKG7xxx9FgOv+X6uB9XmfX0tg1WOeT/qFGVBQU0tdJtwrSHzaVRctvIdDCglvxCrwxYcVzYj2G55/Hm9HKHIdBE9bIhCQjT1xXFB4aoHW3yRSTLv8lJrQb/Eg6lV+lMMYcrYixWjfzvfVv575kQZMAD5nYdqE7SfawCjvqUSyPc8C/XZkpx9QD3j2CZwoUwLytKVosuFxFxVINgQo8ggrLIqDFJwJ3QQPU+xBcatA2XetVpn5jIgVKJqjc6NXlgZaPrNMqcDGHMoBdt6kdrYfw9/MPbWStpmNPy+QqG",
    "sign": "1856866f1be7f7b0a5b4ed16a026d70c",
    "t": 1656936442
}

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.