bmccluskey / robovac Goto Github PK
View Code? Open in Web Editor NEWAdd a Eufy RoboVac easily to Home Assistant
License: Other
Add a Eufy RoboVac easily to Home Assistant
License: Other
Is there anyway that we can get an integration that would work for the ihome vacuum. It is also a Tuya device but with tuya you loose some features. Thank you!
Hello,
I'm trying to keep my IoT devices as locally controlled / away from the internet as possible.
As a matter of fact, even home-assistant itself doesn't have access to the internet in my very case.
For my RoboVacs I already do have the necessary access tokens.
I'd really appreciate a short guide - even if it's hacked up - on how to add RoboVacs via this integration by IP address / hostname and access token rather than Eufy credentials which will then used to interact with the Eufy cloud.
Thanks for your work!
Hi I am at the step where I add the scripts to give my vacuum functionality in home assistant. I have a eufy 30c vacuum, do I use the 15C scripts? or the g30 scripts? My intuition is telling me the 15c scripts since the only difference between the 15c and 30c is the magnetic strip detection. But there seems to be features in the g30 script that should work with my 30c. Any guidance would be very appreciated.
Logger: custom_components.robovac.tuyalocalapi
Source: custom_components/robovac/tuyalocalapi.py:753
Integration: Eufy Robovac
First occurred: 8:50:17 AM (20 occurrences)
Last logged: 8:55:33 AM
Failed to decrypt message from eb58d5d8e7305eca78jjgf (192.168.2.208:6668)
I have a feature request; can you implement Robovac Edge cleaning?
See repository: https://github.com/borski/eufy_robovac_edge_clean
I have 2 Robovacs added through the integration. A 15C and 15C Max. Both seem to function and are controllable though both the front end and automations. However I am getting persistent error messages in the logs despite functionality seemingly being fine. The errors are repeated every few hours for both vacuums and they usually appear rapidly one after another.
Home Assistant 2022.10.4
Supervisor 2022.10.0
Operating System 9.2
Frontend 20221010.0 - latest
HACS 1.28.0
I have obfuscated the IDs and the IPs for the Vacuums, but the messages are exactly the same for both.
This error originated from a custom integration.
Logger: custom_components.robovac.tuyalocalapi
Source: custom_components/robovac/tuyalocalapi.py:741
Integration: Eufy Robovac
First occurred: 23:15:29 (16 occurrences)
Last logged: 23:26:56
Connection to xxxxxxxxxxxxxxxxxxxxxxxxx (192.168.0.XXX:6668) failed: [Errno 104] Connection reset by peer
The custom integration robovac is extending the deprecated base class VacuumEntity instead of StateVacuumEntity.
Please report it to the author of the robovac custom integration.
Once an updated version of robovac is available, install it and restart Home Assistant to fix this issue.
Also the home and start commands at the bottom of the card don't work for the X8 I have to open the card to operate
Just added this into my HA but it doesnt see my X10 Pro omni. under configure it says select the vacuum to edit but nothing is there. Is there a newer version to install?
Having an issue where if i use the device toggle in the entity card or if i click turn on within the entity card i get the following error and nothing happens:
If i click the start/pause button in the entity card or if call the start/pause vacuum service it starts fine. Is there a reason why the turn on and off commands dont work for either the 15C and 15C Max? I would like to be able to turn them on using the toggle in my Lovelace dashboard but i am unable to. Is this expected behaviour?
Hello
I've tried setting
custom_components.robovac.tuyalocalapi: warning
custom_components.robovac.vacuum: warning
But keep getting this repeated log and others entires in the home assistant logs
Tuya local API Result: {'1': True, '2': False, '5': 'auto', '15': 'completed', '101': False, '102': 'Standard', '103': False, '104': 100, '106': 0, '107': False, '109': 1800, '110': 22, '111': 70, '118': True, '122': 'Nosweep', '131': False, '135': True, '137': 0}
I believe the above should only be logged if info / debug is requested
Tried every type of code and in the conflig tried the device ID still doesn't work
Is a Clean X9 Pro integration planned?
Hello,
Thanks for making this integration.
I noticed the vacuum has a Cleaning area
attribute. I was wondering if it would be possible to use this to automate the vacuum cleaning in certain rooms?
EG, Start cleaning in room number 2
Thanks!
I can not get the new X9 Pro working.
Integration shows the model name, I can set the IP, but then the Status-Attribute of the entity is "Error: None".
State is "off" and this are the attributes:
fan_speed_list: Standard
ip_address: 192.168.xxx.xxx
model_code: T2320
friendly_name: Eufy Clean X9 Pro
supported_features: 4084
battery_level: 0
battery_icon: mdi:battery-alert
status: Error: None
The Log shows following error message:
Logger: homeassistant.helpers.entity
Source: custom_components/robovac/tuyalocalapi.py:679
Integration: Eufy Robovac
First occurred: 21:14:16 (5 occurrences)
Last logged: 21:15:59
Update for vacuum.eufy_robovac fails
Traceback (most recent call last):
File "/config/custom_components/robovac/tuyalocalapi.py", line 763, in _async_send
await self.async_connect()
File "/config/custom_components/robovac/tuyalocalapi.py", line 679, in async_connect
sock.connect((self.host, self.port))
socket.gaierror: [Errno -2] Name does not resolve
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 559, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 784, in async_device_update
await self.async_update()
File "/config/custom_components/robovac/vacuum.py", line 319, in async_update
await self.vacuum.async_get()
File "/config/custom_components/robovac/tuyalocalapi.py", line 699, in async_get
return await message.async_send(self, callback)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/robovac/tuyalocalapi.py", line 529, in async_send
await device._async_send(self)
File "/config/custom_components/robovac/tuyalocalapi.py", line 769, in _async_send
await self.async_connect()
File "/config/custom_components/robovac/tuyalocalapi.py", line 679, in async_connect
sock.connect((self.host, self.port))
socket.gaierror: [Errno -2] Name does not resolve
Basically, the integration works for the G10 Hybrid. Thanks for that and kudos.
I have some small problems, maybe it's just not supported by the vacuum cleaner:
Cleaning time and area are not displayed in the UI. Is this supported at all, should I see the attributes in my device?
To the functions:
Cleaning does not work on the main page. The vacuum robot does not start. The button on the left side.
However, Start/Pause works in modal dialog.
Are these different functions?
When you click Start in the modal dialog. And the main page changes. Then stop (function not available) and pause (nothing happens) don't work either. However, on the modal dialog, the pause works.
In the extended functions, it do not work "do not disturb", nothing happens.
What is the difference between auto clean and cleaning?
My attributes
fan_speed_list:
Standard ip_address: xxx
model_code: T2150
battery_level: 100
battery_icon: mdi:battery-charging-100
fan_speed: Standard status:
charging mode: Nosweep
friendly_name: RoboVac
supported_features: 4084
Thanks for your support
Given that the maintainer of this integration hasn't been active on GitHub since December 2022, I've forked this repo with a view to maintain it along with anyone else who would like to help.
I'm also submitting my fork to be included in HACS by default.
Fork is here, but happy to consider setting up an org or whatever: https://github.com/CodeFoodPixels/robovac
The beta for HA Core 2023.8 is now released and is displaying a warning for this integration:
The robovac custom integration is using deprecated vacuum feature
This stops working in version 2024.2.0. Please address before upgrading.
The custom integration robovac
is extending the deprecated base class VacuumEntity
instead of StateVacuumEntity
.
Please report it to the author of the robovac
custom integration.
Once an updated version of robovac
is available, install it and restart Home Assistant to fix this issue.
Robovac 30C Max. I previously had a working integration that was manually configured but when facing the deprecated StateVacummEntity issue tried to migrate over. Receiving theerrors:
Failed to decrypt message from (192.168.86.92:6668)
Failed to decrypt message from (192.168.86.91:6668)
'utf-8' codec can't decode byte 0x95 in position 10: invalid start byte
'utf-8' codec can't decode byte 0xe4 in position 0: invalid continuation byte
'utf-8' codec can't decode byte 0xe6 in position 4: invalid continuation byte
'utf-8' codec can't decode byte 0x96 in position 10: invalid start byte
'utf-8' codec can't decode byte 0x97 in position 10: invalid start byte
I tried the solution here: #15 but this made no difference.
Any ideas where to start with sorting this greatly appreciated.
I was able to add this very easily by copying your code snippets. After adding the vacuum card, the auto clean and docking controls work, but the area that shows how long the machine has been running and the sq footage remain unchanged. I can see the info in the eufy app, is it possible this isn't making it into HA?
I'm getting an unexpected error when I try to add this integration at the step of supplying the credentials. These definitely are correct: I can login to the web/app, and even running the curl statement gets me a response with a token.
It seems to break in the tuyawebapi session request where I get an 'errorCode': 'USER_PASSWD_WRONG', 'status': 'error', 'errorMsg': 'Incorrect account ID or password'} returned.
Any suggestions why the first script does accept the password, but the second does not?
edit: went through the sniffing process with bluestacks and was able to get to the localkey etc. I've been able to use a basic integration and it works.
However, how to install this repo as working integration bypassing the 'auto configuring' tuya to get the most out f my G30?
I have installed this and it found all my devices but I cannot add the IP address as I do not know where to find them.
They are not in the Eufy app, only the MAC address is there.
I have checked all devices connected to my router and none of them have the corresponding MAC address so I am very confused.
Any help appreciated.
Hey,
firstly: amazing work with the integration!
I've installed it a couple hours ago and encountered the following:
Every time homeassistant restarts or the integration reloads, the battery percent is being reported as 0% for a short time.
Home Assistant 2022.10.0
Supervisor 2022.09.1
Operating System 9.0
Frontend 20221005.0 - latest
robovac integration: 2.0.0
Eufy 15C
Wi-Fi Version: 1.1.5
MCU Version: 1.1.5
2023-08-05 14:37:57.618 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Sending to 5******************* (192.168.0.139:6668): Message(0x9, b'', 0, <Device 5******************* (192.168.0.139:6668)>) 2023-08-05 14:37:57.623 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Received message from 5******************* (192.168.0.139:6668): Message(0x9, b'', 0, None) 2023-08-05 14:37:59.247 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Connecting to 5******************* (192.168.0.139:6668) 2023-08-05 14:37:59.295 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Sending to 5******************* (192.168.0.139:6668): Message(0xa, {'gwId': '5******************* ', 'devId': '5******************* '}, 1*******, <Device 5******************* (192.168.0.139:6668)>) 2023-08-05 14:37:59.296 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Sending to 5******************* (192.168.0.139:6668): Message(0x9, b'', 0, <Device 5******************* (192.168.0.139:6668)>) 2023-08-05 14:37:59.297 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Sending to 5******************* (192.168.0.139:6668): Message(0xa, {'gwId': '5******************* ', 'devId': '5******************* '}, 1*******, <Device 5******************* (192.168.0.139:6668)>) 2023-08-05 14:37:59.308 ERROR (MainThread) [custom_components.robovac.tuyalocalapi] Connection to 5******************* (192.168.0.139:6668) failed: [Errno 104] Connection reset by peer 2023-08-05 14:37:59.309 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Disconnected from 5******************* (192.168.0.139:6668)
This is the debug log if I try to connect my vacuum cleaner to HA. I already checked the IP of the robot, it's the right one. This 5*******************
is the ID of my vacuum cleaner (I just added the * by myself).
Has anybody experienced this issue already?
Andre Borie's Eufy Key Grabber has been moved to GitHub. Here is the new link.
NOTE: IT IS NO LONGER MAINTAINED
Sidenote: Still worked for me for my Robovac 35C as of today.
Logger: custom_components.robovac.tuyalocalapi
Source: custom_components/robovac/tuyalocalapi.py:749
Integration: Eufy Robovac
First occurred: 8:50:17 AM (20 occurrences)
Last logged: 8:55:33 AM
'utf-8' codec can't decode byte 0xf9 in position 0: invalid start byte
'utf-8' codec can't decode byte 0x97 in position 9: invalid start byte
I’ve successfully discovered my G40, but none of the commands work and it says it’s unavailable. I see it’s reported here, but whilst I’m pretty sure that’s a different integration it may call upon similar code, so linking it here just in case it’s useful.
Does anyone else have the same issue?
Hi All,
I am seeing a connection refused while trying to configure my G30 robovac (gist)
I have verified that the IP address are correctly used and I have also tried configuring a static IP for my robovac but no luck!
I have also tried the suggestion #4 (comment) and I see similar connection error. Is there anything else I could be missing?
Hi -
Can't login to the service. Not even getting past the initial login prompt.
I am sure I am entering proper account login information (using a pw mgr, copied pasted the pw) - fails. Tried to remove from HA and re-add; same issue. Invalid authentication.
Am i doing something wrong?
Hi,
thank you so much for this integration.
i added through HACS to my HASSIO (running on VM) and the integration added successfully, my two G30 robovac found on integration and i added the IP addresses obtained from my modem (double checked), but when i start the Robovac from Home assistant it returns the following error:
Failed to call service vacuum.turn_on. unknown error.
this happens on both robovacs.
any solutions will be appreciated.
I tried to set up a eufy robovac G10 and got this log.
The Log-In worked when I entered my credentials (at least the robovac was displayed by configuring the integration afterwards).
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 281, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/robovac/vacuum.py", line 115, in async_setup_entry
async_add_entities([RoboVacEntity(item)])
File "/config/custom_components/robovac/vacuum.py", line 247, in __init__
self._attr_access_token = item[CONF_ACCESS_TOKEN]
KeyError: 'access_token'
The custom integration robovac is extending the deprecated base class VacuumEntity instead of StateVacuumEntity.
Please report it to the author of the robovac custom integration.
Once an updated version of robovac is available, install it and restart Home Assistant to fix this issue.
The control appeared to install ok from HACS onto my HA instance running under HAOS on a NUC PC. However when I try to start the G30 I get a 'Failed to call service' error. Looking at the logs the component tuyalocalapi.py has timed out.
I attach the error log:
I'm not sure if this is a widespread problem, but the play/pause button and service only half works. When you press it once it starts cleaning but when you press it again, instead of pausing, it stops the run completely and goes into standby mode. This being the case instead of resuming the cleaning session it starts over completely. Also the play pause icons being together on the same button instead of switching to the other when pressed is a little OCD but that's just a minor visual thing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.