romedtino / simple-wyze-vac Goto Github PK
View Code? Open in Web Editor NEWHome Assistant Custom Component for Wyze Vacuum
Home Assistant Custom Component for Wyze Vacuum
I used to be able to access my vacuum state using the wyze add-on and the simple-wyze hacs, but I assume from the recent updates that I'm now seeing a protobuff parse error in the logs and my vacuum entity is not available. I'm on simple-wyze 1.6.1 and wyze 0.1.8.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
await asyncio.shield(task)
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 76, in setup_platform
vacs.append(WyzeVac(hass.data[WYZE_VAC_CLIENT], pl, username, password, polling))
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 108, in __init__
self.update()
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 303, in update
self._rooms = self.get_rooms(vacuum)
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 347, in get_rooms
for room in vacuum.current_map.rooms:
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 368, in rooms
map_data = self.parse_blob(blob=self._blob)
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 406, in parse_blob
map, typedef = blackboxprotobuf.protobuf_to_json(base64.b64decode(base64.b64encode(decompressed)), 'robot_map')
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/interface.py", line 75, in protobuf_to_json
value, message_type = decode_message(buf, message_type)
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/interface.py", line 62, in decode_message
value, typedef, _ = blackboxprotobuf.lib.types.length_delim.decode_message(buf, message_type)
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/types/length_delim.py", line 271, in decode_message
if isinstance(output[field_number], list):
KeyError: '5'
Dear friend of Wyze,
As Wyze continues efforts to improve your experience and security, we are upgrading our authentication endpoint. We are reaching out to inform you of a few changes coming to the Wyze app that you know and love.
As of July 7th, 2023 you will need to have updated your Wyze app beyond version 2.38 (Android and iOS devices) to be able to keep utilizing features as normal. Bottom line…now is the time to update your Wyze app.
As of now, you have 30 days before this change goes into effect. From that point, any app that is installed and is less than 2.38 will not be available for use. Please note that the latest Wyze app will need a minimum OS version to operate.
Android: 7.0+
iOS: 14.0+
*For users of Home Bridge/Home Assistant We have developed a portal for you to generate an API Key. Please follow these steps to update your script. Please make sure to update your script with this new endpoint to continue connecting to Wyze Cloud.
As always, your support means the world to us! We are here for you if anything comes up. Please contact Customer Support if you run into any issues.
Many thanks,
Your friends at Wyze
Describe the bug
After Following the steps for setup all of my devices have been deleted from my wyze account and now the simple wyze vac integration wont accept my login credentials no matter what.
Simple Wyze Vac Version = 1.7.2
Home Assistant Version = 2022.10.0
Hi – I love the integration, thanks so much for making it.
A feature I am sorely missing is the ability to notify Home Assistant when the device encounters an error, such as being stuck on a sock (which happens far too often).
For the Shark integration, the integration returns some extra state info: (example state from my Shark vaccum)
fan_speed_list:
- Eco
- Normal
- Max
battery_level: 100
battery_icon: mdi:battery-charging-100
fan_speed: Normal
last_error_code: 0
last_error_message: null
low_light: false
recharge_and_resume: true
friendly_name: Sharkie
supported_features: 13052
It would be fantastic if this integration could also expose the error information. Once there's an attribute in HA, the user can write an automation to detect state changes and do notifications that way, so no additional events are needed.
I have the multi-floor map firmware. Any progress on getting it to work so I can invoke a cleaning from HA?
Set up an automation to run at a specific time to clean one room on the main floor.
Time triggered automation. Automation ran. Vac did not move.
Following error report:
`This error originated from a custom integration.
Logger: custom_components.simple_wyze_vac
Source: custom_components/simple_wyze_vac/init.py:76
Integration: Simple Wyze Vac (documentation)
First occurred: 9:35:29 PM (1 occurrences)
Last logged: 9:35:29 PM
Failed to query vacuum rooms. If your firmware is higher than 1.6.113, rooms is currently not supported. Exception: wyze_sdk.models.devices.vacuums.VacuumMapRoom() argument after ** must be a mapping, not str`
I confirmed my vacuum firmware is above 1.6.113. It is at 1.6.202.
A clear and concise description of what you expected to happen.
Correct Simple Wyze Vac to support rooms.
Simple Wyze Vac Version
-1.7.3
Wyze Vacuum Firmware Version
-1.6.202
Home Assistant Version
-2023.2.2
Additional context
Vac does run when "Let iRobot Clean" is selected, but not when a room is selected.
After installing, I see my vacuum and I am able to run a FULL clean and dock sweep power setting, etc. But can't see rooms or the built-in service and choose the switch entities/rooms you want to do a sweep.
What needs to be done and where to enable these features?
I removed Wyze 2FA and got the app to work fine, however I prefer to have it enabled. When reenabling, and copying the base32 code, I was unable to get the Simple Vacuum integration to work.
2022-06-22 20:09:44 ERROR (MainThread) [custom_components.simple_wyze_vac.config_flow] Failed to login Wyze servers.
I am able to see 2 of the vacuums, but they show up just as cameras and some of the entities load.
2022-06-09 18:54:43 WARNING (MainThread) [homeassistant.components.local_file.camera] Could not read camera Prof. Dumbledust image from file: www/simple_wyze_vac/Prof. Dumbledust_last_map.jpg
2022-06-09 18:54:43 WARNING (MainThread) [homeassistant.components.local_file.camera] Could not read camera Sir Vacsalot image from file: www/simple_wyze_vac/Sir Vacsalot_last_map.jpg
2022-06-09 18:54:43 WARNING (MainThread) [custom_components.simple_wyze_vac.vacuum] Simple Wyze Vac Polling every 0:10:00. Careful of hitting Wyze servers rate limits.
2022-06-09 18:54:43 WARNING (MainThread) [custom_components.simple_wyze_vac.vacuum] Simple Wyze Vac Polling every 0:10:00. Careful of hitting Wyze servers rate limits.
2022-06-09 18:54:48 ERROR (MainThread) [homeassistant.components.vacuum] simple_wyze_vac: Error on device update!
Traceback (most recent call last):
File "/usr/lib/python3.9/pathlib.py", line 1313, in mkdir
self._accessor.mkdir(self, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'www/simple_wyze_vac'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/homeassistant/helpers/entity_platform.py", line 431, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/lib/python3.9/site-packages/homeassistant/helpers/entity.py", line 736, in async_device_update
await task
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 361, in async_update
await self.get_last_map()
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 394, in get_last_map
Path(f"www/{DOMAIN}").mkdir(parents=True, exist_ok=True)
File "/usr/lib/python3.9/pathlib.py", line 1317, in mkdir
self.parent.mkdir(parents=True, exist_ok=True)
File "/usr/lib/python3.9/pathlib.py", line 1313, in mkdir
self._accessor.mkdir(self, mode)
PermissionError: [Errno 13] Permission denied: 'www'
2022-06-09 18:54:49 ERROR (MainThread) [homeassistant.components.vacuum] simple_wyze_vac: Error on device update!
I am not sure if this is possible or not, but the room switches don't persist their state on restart of Home Assistant. I have my vacuums run every night and there is always a room I leave unvacuumed. Whenever I restart Home Assistant for any reason all room switches are "on", so I have to remember to go disable that room.
Is it possible to have the switches maintain their state prior to rebooting?
Not sure if I've missed something, but I added the repo, and downloaded it in HACS, restarted (twice to try again), but when I use "Add Integration" in HASS settings, nothing shows up for "simple" or "wyze" or anything.
I see this warning in the logs, which I see for all my HACS integrations:
2022-06-16 16:24:34 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration
simple_wyze_vac which has not been tested by Home Assistant. This component might cause stability
problems, be sure to disable it if you experience issues with Home Assistant
But nothing else odd that I can see.
Home Assistant Core 2022.6.6
Home Assistant Supervisor 2022.05.3
Home Assistant OS 8.2
I was using the previous version fine, then when I upgraded to the new version, I get the following error:
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/simple_wyze_vac/init.py:81
Integration: Simple Wyze Vac (documentation)
First occurred: 11:27:16 PM (1 occurrences)
Last logged: 11:27:16 PMError setting up entry Simple Wyze Vac for simple_wyze_vac
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 339, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/simple_wyze_vac/init.py", line 81, in async_setup_entry
"room_manager": room_manager
UnboundLocalError: local variable 'room_manager' referenced before assignment
This has been the same error I have received each time I have attempted to set it up. I uninstalled the custom integration, removed any reference in configuration.yaml, and removed the custom respiratory in HACS. I restarted HA and didn't add it back for a couple of days. I did a Core update to HA along with an OS update and figured I would give it another shot; same error.
Home Assistant Core 2022.6.1
Home Assistant Supervisor 2022.05.3
Home Assistant OS 8.1
Wyze Vacuum Firmware 1.6.173
Wyze Vacuum Plugin 2.31.9
So the newest instance of HA caused my Simple Wyze Vac to become disabled. I have uninstalled and reinstalled. It's asking for a Base32 key? Any idea what this is?
I followed installation instructions but after adding my wyze credentials (I don't use 2FA), home assistant fails config validation with error: Integration error: simple_wyze_vac - Requirements for simple_wyze_vac not found: ['https://github.com/romedtino/wyze-sdk/archive/refs/tags/10.2.7.zip#wyze-sdk==10.2.7'].
All other commands/service calls work except for sweep_rooms. I'm using the beta with multi-floor mapping.
2021-12-01 19:31:56 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139928878595472] Error handling message: Unknown error
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
await func(hass, connection, msg)
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 523, in handle_execute_script
await script_obj.async_run(msg.get("variables"), context=context)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1243, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 353, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 371, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 571, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1495, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1530, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 667, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 863, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 704, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/vacuum/__init__.py", line 262, in async_send_command
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 223, in send_command
self._client.vacuums.sweep_rooms(device_mac=self._vac_mac, room_ids=[room.id for room in vacuum.current_map.rooms if room.name in desired_rooms])
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 356, in rooms
map_data = self.parse_blob(blob=self._blob)
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 394, in parse_blob
map, typedef = blackboxprotobuf.protobuf_to_json(base64.b64decode(base64.b64encode(decompressed)), 'robot_map')
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/interface.py", line 75, in protobuf_to_json
value, message_type = decode_message(buf, message_type)
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/interface.py", line 62, in decode_message
value, typedef, _ = blackboxprotobuf.lib.types.length_delim.decode_message(buf, message_type)
File "/usr/local/lib/python3.9/site-packages/blackboxprotobuf/lib/types/length_delim.py", line 271, in decode_message
if isinstance(output[field_number], list):
KeyError: '5'
The integration appears to login properly now. However, I am getting a new error. I get the same error whether I login with my primary or secondary Wyze account.
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/simple_wyze_vac/__init__.py:69
Integration: Simple Wyze Vac (documentation)
First occurred: 1:00:00 PM (1 occurrences)
Last logged: 1:00:00 PM
Error setting up entry Simple Wyze Vac for simple_wyze_vac
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 339, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/simple_wyze_vac/__init__.py", line 69, in async_setup_entry
if vac_info.current_map.rooms is not None:
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 380, in rooms
return [VacuumMapRoom(**room) for room in map_data['12']]
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 380, in <listcomp>
return [VacuumMapRoom(**room) for room in map_data['12']]
TypeError: wyze_sdk.models.devices.vacuums.VacuumMapRoom() argument after ** must be a mapping, not str
Family room vacuum has been divided into 2 rooms:
Play room vacuum only has 1 room:
I have Simple Wyze Vac 1.7 installed.
id | value |
---|---|
Version | core-2022.6.2 |
Installation Type | Home Assistant OS |
Development | false |
Supervisor | true |
Docker | true |
User | root |
Virtual Environment | false |
Python Version | 3.9.12 |
Operating System Family | Linux |
Operating System Version | 5.15.41 |
CPU Architecture | x86_64 |
Timezone | America/Los_Angeles |
I have a feeling I may be doing something wrong so I apologize if I'm just bothering you.
The integration is fantastic and I'm so stoked to get it working. However, the room selection doesn't seem to work for me. I've used the card provided by the robot vacuum entity. When I turn on just one of the switches, then start cleaning from the entity on the card, it says "starting cleaning" as opposed to the expected "starting area cleaning" and then it proceeds to try and clean all rooms. Is there some other setup I need to preform or is something wrong with the room selection?
Describe the bug
Error message appears due to breaking changes in new HA versions:
Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for simple_wyze_vac using this method at custom_components/simple_wyze_vac/init.py, line 94: hass.config_entries.async_setup_platforms(entry, PLATFORMS)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No error message
Screenshots
Logs:
Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for simple_wyze_vac using this method at custom_components/simple_wyze_vac/init.py, line 94: hass.config_entries.async_setup_platforms(entry, PLATFORMS)
Simple Wyze Vac Version
1.7.2
Wyze Vacuum Firmware Version
N/A
Home Assistant Version
2023.02.0b7
Additional context
Add any other context about the problem here.
My vacuum says it is up to date and it is on "1.6.173", is it safe to update the addon or do you not know if it will work with that?
Logs
Logger: homeassistant.setup
Source: setup.py:206
First occurred: April 28, 2023 at 8:51:41 PM (1 occurrences)
Last logged: April 28, 2023 at 8:51:41 PM
Setup failed for custom integration simple_wyze_vac: Requirements for simple_wyze_vac not found: ['https://github.com/romedtino/wyze-sdk/archive/refs/tags/10.3.0.zip#wyze-sdk==10.3.0'].
Additional context
N/A
Configuration validation just spools and I can't restart after installing application and setting up the config file.
I'm running core-2021.9.6
When I tried a hard restart of HA my google devices disconnected. They reappeared after I deleted the integration. The vacuum entities never showed up.
This is the error I get in my for my nest and when I restart.
https://hastebin.com/efasulezeq
Describe the bug
Using this plugin, the integration works fine and I can see my vacuum, control it, and see the map. If I configure the integration and enable polling (00:00:60 or 1 minute), the entity for the main vac gets a red refresh arrow next to it with hovertext "restored" and clicking the entity provides the message "This entity is no longer being provided by the simple_wyze_vac integration. If the entity is no longer in use, delete it in settings."
The only way I have found to get the entity back is to delete and readd the integration, including going through the TOTP procedure again, which is a high amount of effort. Disabling polling does not bring the entity back.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect polling to be enabled and the device to remain available
Simple Wyze Vac Version
Wyze Vacuum Firmware Version
Home Assistant Version
Is there any way to query the run history of the vacuum?
I would like to set up an automation that would vacuum my at least every three days.
If the cleaning gets triggered within the HA but at I don't see a way to account for manually triggered cleanings through an app or otherwise.
I am trying to install this within a docker container running Home Assistant. First I got an error re: git but I got it installed in the docker container. Now I get the following error:
Unable to import component: No module named 'wyze_sdk'
Is there a way I can fix this?
First, this integration is awesome - thank you! I just recently updated it and redid my setup via the UI, all devices and entities added as expected. I'm trying to setup an evening clean using the sweep_auto command in Node Red, but the only service call available for simple wyze vacuum is 'sweep rooms' - this ignores any constraints from the room switches.
Is there a step or yaml configuration I'm missing to enable sweep auto?
I just moved into my new house. I used to only have one Wyze vac, but now I have a new one for the bottom floor.
The old vac is not active yet, but it was still registered to my house. I accidentally added it to home assistant with your integration, and then promptly removed it.
I set up the new vac and removed the old one from my account. And I cannot add it back to home assistant.
I'm getting this error. It said something about mapping, and I did a small mapping of my house. Not a full one, to try and fix the issue.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/simple_wyze_vac/__init__.py", line 69, in async_setup_entry
if vac_info.current_map.rooms is not None:
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 380, in rooms
return [VacuumMapRoom(**room) for room in map_data['12']]
File "/usr/local/lib/python3.9/site-packages/wyze_sdk/models/devices/vacuums.py", line 380, in <listcomp>
return [VacuumMapRoom(**room) for room in map_data['12']]
TypeError: wyze_sdk.models.devices.vacuums.VacuumMapRoom() argument after ** must be a mapping, not str
What does this error mean?
I'm setting up a new Wyze vacuum and after installing the integration, it detects and adds the device but doesn't add an accompanying entity. It does add the camera entity for the vacuum though.
So far, I've tried reloading the integration and also removing and re-adding the integration several times.
Any ideas? Thank you!
Describe the bug
I went to start the vacuum and it isn't starting.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The vacuum should start.
Screenshots
Here it says something about the API but I changed that back to 1 minute as recommended and it still isn't working. It just says docked as of 1 hour ago but won't start.
Simple Wyze Vac Version
1.7.2
Wyze Vacuum Firmware Version
1.6.173
Home Assistant Version
2022.9.2
Additional context
Maybe it's cuz I hit a rate limit and have to wait till tmrw for it to reset since I now changed it back to poll every 1 minute instead of 30 seconds?
Describe the bug
Every time I start the vacuum, either with the app or in home assistant, the state goes to "Error". No errors generated in the logs.
Expected behavior
State should be "Cleaning"
Simple Wyze Vac Version
1.8
Wyze Vacuum Firmware Version
1.6.202
Home Assistant Version
2023.3.5
The remaining filter hours is incorrect for my vacuum. It appears to be the result of subtracting the number of hours used from recommended/ theoretical hours from Wyze, but it seems to be using 100 for the filter rather than 150. Is this mathematical function being done via the HA attribute?
Below is error message. Anyways i did run the command "curl -i -X POST https://auth-prod.api.wyze.com/user/login" it said it had 100 tries left. I tried readding integration and restarting HA. Trying different DNS was using cloudflare. Help please
BB9E Vacuum Kitchen and Back Hallway: Error executing script. Unexpected error for call_service at pos 2: HTTPSConnectionPool(host='wyze-general-api.wyzecam.com', port=443): Max retries exceeded with url: /v1/user/event (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:997)')))
Like the title says, would love to track life of filter and brushes to send a reminder when they are at the end of their life.
I am working on getting my Wyze Vac set up in HA and it is only showing up with the camera entity and the rooms that I have mapped. Do you believe that this is due to the newer version of firmware or am I doing something incorrectly? I have followed the instructions as outlined. I appreciate any help you can provide!
Long time working integration through HACS (thank you thank you thank you!). As of this past week I get a "failed to setup" error under Devices and a "check the logs" link which has the following error.
Wyze Vacuum Firmware: 1.6.202
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/simple_wyze_vac/init.py:48
Integration: Simple Wyze Vac (documentation)
First occurred: 1:09:34 PM (1 occurrences)
Last logged: 1:09:34 PM
Error setting up entry Simple Wyze Vac for simple_wyze_vac
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/simple_wyze_vac/init.py", line 48, in async_setup_entry
client = await hass.async_add_executor_job(Client, None, None, username, password, totp)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/client.py", line 66, in init
self.login()
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/client.py", line 164, in login
response = self._auth_client().user_login(email=self._email, password=self._password, totp_key=self._totp_key)
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/auth_service.py", line 75, in user_login
response = self.api_call('/user/login', json=kwargs, nonce=nonce)
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/auth_service.py", line 56, in api_call
return super().api_call(
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/base.py", line 347, in api_call
return super().api_call(
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/base.py", line 204, in api_call
return self.do_post(url=api_url, headers=headers, payload=json, params=params)
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/base.py", line 132, in do_post
return self._do_request(client, req)
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/base.py", line 106, in _do_request
raise err
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/service/base.py", line 93, in _do_request
response.raise_for_status()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://auth-prod.api.wyze.com/user/login
Describe the bug
When I update to any version greater than 1.7.3 the latest image lacks all the details of the last run. it just shows the basic map
To Reproduce
Steps to reproduce the behavior:
Simple Wyze Vac Version
Wyze Vacuum Firmware Version
Home Assistant Version
Additional context
I've completely uninstalled and reinstalled the integration and hacks download twice restarting in between each action and delegated all references to simple-wyze-vac in the custom-components and www before reinstalling. I'm using 2FA. I've been using your integration since 1.1.2.
I've also tried adding my second floor and that did nothing so I removed it and still nothing
This error originated from a custom integration.
Logger: custom_components.simple_wyze_vac.config_flow
Source: custom_components/simple_wyze_vac/config_flow.py:51
Integration: Simple Wyze Vac (documentation)
First occurred: 1:53:34 PM (1 occurrences)
Last logged: 1:53:34 PM
Failed to login Wyze servers.
I tried logging in with my primary account, then I setup a secondary account that I shared my vacuums with. When the secondary login didn’t work, I tried adding 2FA to the secondary account. None of those changed it.
I also have the Wyze integration, which works correctly. So I don’t know why this integration wouldn’t be able to connect to the Wyze server.
Home Assistant 2022.5.5
Simple Wyze Vac 1.7
Has anyone else had issues adding the custom actions to the little toolbar in the custom card?
There is no reported bugs for it on Vacuum_Card and I just wanted to see if anyone using the wyze implementation was having issues.
Love this integration btw thank you!
Describe the bug
I moved my vacuum from my work to family account and after deleting and re-adding the integration, it fails to add now. I get a TypeError, unsupported errand type. It was working fine today before I removed the integration to add the new account. Tried with F2A email, F2A auth token, and F2A disabled. I don't believe the firmware was auto-updated, it didn't tell me if so
To Reproduce
Steps to reproduce the behavior:
vacuums.py, TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'
Expected behavior
Successful add just like right before.
Simple Wyze Vac Version
1.82
Wyze Vacuum Firmware Version
1.6.306
Home Assistant Version
2023.3.6
Additional context
Simple question hopefully I can close after.
Does anyone have a working xiomi lovelace card config they can paste here for me that works with rooms? Im looking at the wiki on their github and Im failing to make any kind of room show up on the lovelace card. I have 8 rooms defined (on wyze app), they show up on home assistant okay, but getting the xiomi card to showup with rooms i cant get working.
Would anyone mind pasting their config?
`type: custom:xiaomi-vacuum-map-card
title: Vacuum
entity: vacuum.romo_vacuum
vacuum_platform: romedtino/simple-wyze-vac
map_source:
camera: camera.romo_vacuum_camera
map_locked: true
map_modes:
Simple question hopefully I can close after.
Does anyone have a working xiomi lovelace card config they can paste here for me that works with rooms? Im looking at the wiki on their github and Im failing to make any kind of room show up on the lovelace card. I have 8 rooms defined (on wyze app), they show up on home assistant okay, but getting the xiomi card to showup with rooms i cant get working.
Would anyone mind pasting their config?
`type: custom:xiaomi-vacuum-map-card
title: Vacuum
entity: vacuum.romo_vacuum
vacuum_platform: romedtino/simple-wyze-vac
map_source:
camera: camera.romo_vacuum_camera
map_locked: true
map_modes:
Restarting my server fixes it. is there a way to refresh my api token without restarting the server? Maybe even on a daily script?
need to figure out protobuf dependencies -- see below open issue from other forks.
This completely crippled my other integrations and caused me to not even be able to reboot my HA instance.
UPDATE: the only solution was uninstalling this intrgration, downgrading from 2021.11.3 to 2021.11.2 and back to 2021.11.3
Describe the bug
So it seems I can still control my robot vacuum through HA just fine but the log is now constantly full of errors which I'd like to get rid of hopefully.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Logs should not be full of errors constantly.
Screenshots
Simple Wyze Vac Version
Wyze Vacuum Firmware Version
Home Assistant Version
LOGS ------------------------------------------------------------------------------------------------------
This error originated from a custom integration.
Logger: custom_components.simple_wyze_vac.vacuum
Source: custom_components/simple_wyze_vac/vacuum.py:323
Integration: Simple Wyze Vac (documentation)
First occurred: November 30, 2022 at 11:16:29 PM (20 occurrences)
Last logged: 12:09:42 AM
Please reload this component.
This error originated from a custom integration.
Logger: custom_components.simple_wyze_vac.vacuum
Source: custom_components/simple_wyze_vac/vacuum.py:322
Integration: Simple Wyze Vac (documentation)
First occurred: November 30, 2022 at 11:16:29 PM (20 occurrences)
Last logged: 12:09:42 AM
self._scan_interval is bugged? The last update was 2022-11-30 23:58:42.010227 which 0:01:00 hasn't passed. Not updating.
self._scan_interval is bugged? The last update was 2022-12-01 00:02:42.076385 which 0:01:00 hasn't passed. Not updating.
self._scan_interval is bugged? The last update was 2022-12-01 00:04:42.066572 which 0:01:00 hasn't passed. Not updating.
self._scan_interval is bugged? The last update was 2022-12-01 00:07:30.708881 which 0:01:00 hasn't passed. Not updating.
self._scan_interval is bugged? The last update was 2022-12-01 00:08:42.108569 which 0:01:00 hasn't passed. Not updating.
This error originated from a custom integration.
Logger: homeassistant.helpers.entity
Source: custom_components/simple_wyze_vac/vacuum.py:328
Integration: Simple Wyze Vac (documentation)
First occurred: 12:00:52 AM (1 occurrences)
Last logged: 12:00:52 AM
Update for vacuum.nestico_robot_vacuum fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 527, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_device_update
await task
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 328, in async_update
vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac))
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 328, in
vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac))
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 32, in info
vacuums = [_vacuum for _vacuum in self._list_vacuums()
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 22, in _list_vacuums
return [device for device in super()._list_devices(
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/base.py", line 73, in _list_devices
return self._api_client().get_object_list()["data"]["device_list"]
TypeError: 'NoneType' object is not subscriptable
This error originated from a custom integration.
Logger: homeassistant.helpers.entity
Source: custom_components/simple_wyze_vac/vacuum.py:387
Integration: Simple Wyze Vac (documentation)
First occurred: November 30, 2022 at 11:58:38 PM (1 occurrences)
Last logged: November 30, 2022 at 11:58:38 PM
Update for vacuum.nestico_robot_vacuum fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 527, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_device_update
await task
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 361, in async_update
await self.get_last_map()
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 387, in get_last_map
vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac))
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/simple_wyze_vac/vacuum.py", line 387, in
vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac))
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 32, in info
vacuums = [_vacuum for _vacuum in self._list_vacuums()
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 22, in _list_vacuums
return [device for device in super()._list_devices(
File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/base.py", line 73, in _list_devices
return self._api_client().get_object_list()["data"]["device_list"]
TypeError: 'NoneType' object is not subscriptable
This error originated from a custom integration.
Logger: custom_components.simple_wyze_vac.vacuum
Source: custom_components/simple_wyze_vac/vacuum.py:84
Integration: Simple Wyze Vac (documentation)
First occurred: November 30, 2022 at 11:15:29 PM (1 occurrences)
Last logged: November 30, 2022 at 11:15:29 PM
Simple Wyze Vac Polling every 0:01:00. Careful of hitting Wyze servers rate limits.
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.