Giter Site home page Giter Site logo

simple-wyze-vac's People

Contributors

kevinyc avatar romedtino avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simple-wyze-vac's Issues

Protobuff error on startup

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'

Will this change to Wyze login affect the intigration

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

[BUG]

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

Provide error state

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.

Individual rooms not cleaning

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 do not see rooms or built-in services

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?

Cannot get to work with TOTP

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.

Device Update Issue

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!

Switches don't persist state on reboot

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?

Don't see the integration in HASS?

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

Error setting up new integration.

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 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 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

Base32 Key?

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?

Configuration check fails

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'].

Unknown error when sending sweep_rooms command

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'

Error setting up entry Simple Wyze Vac

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

Wyze vacuums

  1. Family room vacuum
  2. Play room vacuum

Family room vacuum has been divided into 2 rooms:

  1. Family room
  2. Kitchen

Play room vacuum only has 1 room:

  1. Play room

Home Assistant install

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

Unable to have vacuum clean specific rooms.

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?
image

[BUG] Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups

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:

  1. Reboot HA
  2. Check Logs

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.

Not an issue, a question

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?

[BUG] requirement not found

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'].

Simple Wyze Vac Version
Latest

Wyze Vacuum Firmware Version
Latest beta

Home Assistant Version
2023.05.0b2 (since beta0)

Additional context
N/A

Configuration validation won't let me restart

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

[BUG] Enabling Polling causes the wyzevac to become unavailable.

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:

  1. Go to "Settings" then "Devices and Services" and then "Integrations"
  2. Click on "Configure" on the "Simple Wyza Vac" card
  3. Check the box for polling, and enter the value "00:00:60" then click submit
  4. Click the entities list for that integration to see the vacuum unavailable.

Expected behavior
I expect polling to be enabled and the device to remain available

Screenshots
image
image

Simple Wyze Vac Version

  • 1.7.2

Wyze Vacuum Firmware Version

  • 1.6.113

Home Assistant Version

  • Home Assistant 2022.10.1
  • Supervisor 2022.09.1
  • Operating System 9.0
  • Frontend 20221006.0 - latest

Query History?

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.

Error on install

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?

sweep_auto not an available service?

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?

Added an offline vac, removed it, and cannot add the new one

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?

Device is added but no vacuum entity?

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!

Wyze Vacuum Device:
image

Vacuum entities:
image

Integration:
image

Vacuum not starting [BUG]

Describe the bug
I went to start the vacuum and it isn't starting.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'mushroom vacuum card'
  2. Click on 'press start'
  3. Nothing happens

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.

Screen Shot 2022-09-25 at 5 49 58 PM

Screenshot_20220925-175454.png

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?

State is Error when Cleaning

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"

Screenshots
image

Simple Wyze Vac Version
1.8

Wyze Vacuum Firmware Version
1.6.202

Home Assistant Version
2023.3.5

Filter Hours

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?

[BUG] SSLCertVertification error

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)')))

No Vacuum Entity Showing Up with Firmware 1.6.306

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!

Integration "Failed to Setup"

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

Image is blank on >1.7.3; Firmware 1.6.202

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:

  1. Go to 1.7.3 and the image is this
    Home Vacuum_last_map (1)
  2. Go to >1.7.3 and the image is this
    Home Vacuum_last_map

Simple Wyze Vac Version

  • I've tried 1.7.3 (works), 1.8, 1.8.1, 1.8.2

Wyze Vacuum Firmware Version

  • 1.6.202

Home Assistant Version

  • Home Assistant 2023.4.4
  • Supervisor 2023.04.0
  • Operating System 9.5
  • Frontend 20230411.1 - latest

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

Failed to login Wyze servers.

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

Question: Custom Actions for Simple Vacuum Card

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!

[BUG] After removing and re-adding integration, TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'

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:

  1. Remove integration
  2. Re-Add integration
  3. Will enable the integration successfully but fails failed to load, check error logs
  4. Logs say Error setting up entry
  5. vacuums.py, TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'

Expected behavior
Successful add just like right before.

Screenshots
Screenshot 2023-04-04 182522

Simple Wyze Vac Version
1.82

Wyze Vacuum Firmware Version
1.6.306

Home Assistant Version
2023.3.6

Additional context

[QUESTION] Anyone have a working Xiomi lovelace config with room selection?

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:

  • template: vacuum_clean_segment
    predefined_selections:
    • id: Kitchen
      outline: [[301, 812, 753, 1624]]
      label:
      text: "Kitchen"
      x: 400
      y: 850
      offset_y: 35
      icon:
      name: "mdi:bed"
      x: 400
      y: 750
    • id: Bathroom
      outline: [[342, 2258, 451, 2570]]
      label:
      text: "Bathroom"
      x: 322
      y: 2264
      offset_y: 35
      icon:
      name: "mdi:shower"
      x: 322
      y: 2264`

[BUG]

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:

  • template: vacuum_clean_segment
    predefined_selections:
    • id: Kitchen
      outline: [[301, 812, 753, 1624]]
      label:
      text: "Kitchen"
      x: 400
      y: 850
      offset_y: 35
      icon:
      name: "mdi:bed"
      x: 400
      y: 750
    • id: Bathroom
      outline: [[342, 2258, 451, 2570]]
      label:
      text: "Bathroom"
      x: 322
      y: 2264
      offset_y: 35
      icon:
      name: "mdi:shower"
      x: 322
      y: 2264`

[BUG] Vacuum control appears to still work but logs full of errors

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:

  1. Check logs
  2. See it's full of errors

Expected behavior
Logs should not be full of errors constantly.

Screenshots

Screen Shot 2022-12-01 at 12 22 52 AM

Screen Shot 2022-12-01 at 12 25 33 AM

Screen Shot 2022-12-01 at 12 36 54 AM

Simple Wyze Vac Version

  • latest, idk where to find the version number

Wyze Vacuum Firmware Version

  • 1.6.173

Home Assistant Version

  • 2022.11.5

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.

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.