sbidy / wiz_light

A WiZ Light integration for Home Assistant
MIT License
341 stars 68 forks source link

Bulb Unavailable, not related to the other issues (I don't think) #131

Closed morbidpete84 closed 3 years ago

morbidpete84 commented 3 years ago

update: 3 more bulbs now showing the same symptoms. Slowly loosing all my bulbs. Tried to roll back to 0.2 but 0 bulbs work on that version.

Had to restart HA today. Upon restart, 5 bulbs will not come back. Tried updating to 4.1 and master without any luck. Built a whole new HA docker from scratch on a new machine and same issue with the same bulbs. removed those bulbs from the WIZ app and re-added them without luck. Changed the static IP's and even added another AP (Mikrotik vs my home Unifi setup) and re-added via the app. No go. Even reverted back to a full snapshot from 3 days ago. I'm really not sure if its the integration, HA or what.

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable 2021-04-08 20:36:53 ERROR (MainThread) [homeassistant.components.light] wiz_light: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]),

kayodelycaon commented 3 years ago

I am also having this issue. It looks like a bulb software update broke wiz_light.

Working Lights

100-Watt Color Bulb (3)
Version: 1.21.0
Model ID: B23078

LED Strip (3)
Version: 1.21.50
Model ID: B23044

Broken Lights

60-watt Color Bulb (3)
Version: 1.22.0
Model ID: B32065

Log

Logger: homeassistant.components.light
Source: custom_components/wiz_light/light.py:376 
Integration: Light (documentation, issues) 
First occurred: 10:04:51 PM (3 occurrences) 
Last logged: 10:04:51 PM

wiz_light: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 358, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 466, in async_device_update
    await task
  File "/config/custom_components/wiz_light/light.py", line 251, in async_update
    await self.update_state()
  File "/config/custom_components/wiz_light/light.py", line 296, in update_state
    await self.get_bulb_type()
  File "/config/custom_components/wiz_light/light.py", line 376, in get_bulb_type
    self._bulbtype = await self._light.get_bulbtype()
  File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype
    kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]),
TypeError: 'NoneType' object is not subscriptable
morbidpete84 commented 3 years ago

I am also having this issue. It looks like a bulb software update broke wiz_light.

Working Lights

100-Watt Color Bulb (3)
Version: 1.21.0
Model ID: B23078

LED Strip (3)
Version: 1.21.50
Model ID: B23044

Broken Lights

60-watt Color Bulb (3)
Version: 1.22.0
Model ID: B32065

Log

Logger: homeassistant.components.light
Source: custom_components/wiz_light/light.py:376 
Integration: Light (documentation, issues) 
First occurred: 10:04:51 PM (3 occurrences) 
Last logged: 10:04:51 PM

wiz_light: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 358, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 466, in async_device_update
    await task
  File "/config/custom_components/wiz_light/light.py", line 251, in async_update
    await self.update_state()
  File "/config/custom_components/wiz_light/light.py", line 296, in update_state
    await self.get_bulb_type()
  File "/config/custom_components/wiz_light/light.py", line 376, in get_bulb_type
    self._bulbtype = await self._light.get_bulbtype()
  File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype
    kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]),
TypeError: 'NoneType' object is not subscriptable

I was thinking a software update because they are all slowly dropping off on me but I'm not qualified to make that determination.

vhanna70 commented 3 years ago

I am having the same issue with V 0.4.1. I have 6 bulbs and when I upgraded to this version only 1 bulb works the other shows unavailable and I can't get them to connect no matter what I do. I reinstalled v0.3.1 and all 6 bulbs work fine.

kayodelycaon commented 3 years ago

Can confirm rolling back to v0.3.1 works.

crewderek commented 3 years ago

Looks like I am having the same issue. I attempted to revert back to v0.3.1 and v0.4.0 to no avail. Attempted resetting the bulbs and readding them. Regardless of the version, none of them will show up as entities anymore. Here is the error I am getting:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update await task File "/config/custom_components/wiz_light/light.py", line 242, in async_update await self.get_bulb_type() File "/config/custom_components/wiz_light/light.py", line 363, in get_bulb_type self._bulbtype = await self._light.get_bulbtype() File "/usr/local/lib/python3.8/site-packages/pywizlight/bulb.py", line 296, in get_bulbtype kelvin_range=KelvinRange(min=_kelvin[0], max=_kelvin[1]), TypeError: 'NoneType' object is not subscriptable

I think I would agree that it is probably a bulb update. My bulb specs: Model ID: B23065 Firmware Version: 1.22.0

This issue only start occurring today.

sbidy commented 3 years ago

Yes, Wiz released a new FW version 1.22.0. They removed the Kelvin range in the getuserConfig.

I'll release an new backend lib today to fix this with a workaround.

I'm not sure why wiz removes this but this is ab breaking change for determining the bulb specific Kelvin ranges.

The 0.4.2 should fix this.

vikas828 commented 3 years ago

Me too, having the same issues.

sbidy commented 3 years ago

Please test with the 0.4.2 - the pywizlight MUST be updated to 0.4.6. This should happened automatically. PyPip package

You can verify the installation with this INFO log entry: INFO (SyncWorker_2) [homeassistant.util.package] Attempting install of pywizlight==0.4.6

The FW update 1.22.0 for the bulbs (rollout starting at ~08.04.2021) breaking the automated kelvin detection. In detail: The getUserConfig was not providing extRange property anymore.

I fixed this with a workaround - this can cause that the bulbs, with special kelvin ranges, are not correctly initiated. I'm in contact with WiZ to find a solution for that change.

vikas828 commented 3 years ago

Thank you so much for your email, I will try this.

Regards Vikas

On Fri, 9 Apr 2021 at 6:19 pm, Stephan Traub @.***> wrote:

Please test with the 0.4.3 - the pywizlight MUST be updated to 0.4.6. This should happened automatically. PyPip package https://pypi.org/project/pywizlight/

The FW update 1.22.0 for the bulbs (rollout starting at ~08.04.2021) breaking the automated kelvin detection. In detail: The getUserConfig was not providing extRange property anymore.

I fixed this with a workaround - this can cause that the bulbs, with special kelvin ranges, are not correctly initiated. I'm in contact with WiZ to find a solution for that change.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sbidy/wiz_light/issues/131#issuecomment-816509447, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASDQ35WORUM7VGLJ7ATPGYDTH22CXANCNFSM42T6S2MA .

morbidpete84 commented 3 years ago

Please test with the 0.4.3 - the pywizlight MUST be updated to 0.4.6. This should happened automatically. PyPip package

You can verify the installation with this INFO log entry: INFO (SyncWorker_2) [homeassistant.util.package] Attempting install of pywizlight==0.4.6

The FW update 1.22.0 for the bulbs (rollout starting at ~08.04.2021) breaking the automated kelvin detection. In detail: The getUserConfig was not providing extRange property anymore.

I fixed this with a workaround - this can cause that the bulbs, with special kelvin ranges, are not correctly initiated. I'm in contact with WiZ to find a solution for that change.

I appreciate your responsiveness, it’s really unparalleled 🙌🏻 I setup the smart things integration in the Wiz App and in HA, updated all my automations and groups with the new entities for the time being. I’ll be switching to zigbee bulbs at this point. Phillips keeps changing things and without an API I feel like you will be stuck in a cat and mouse game forever causing instability and reliability issues with these bulbs and HA. If there is a way I can buy you a coffee (I’ll go searching) I will. Thank you for all the support I’ve the past year I have been using this component

sbidy commented 3 years ago

@morbidpete84 thank you for the feedback. I (try to) work closely with the colleges from WiZ to avoid such changes to the API. I think this change was not really planed and it looks more like an issue/mistake. But it is true that there are so many different types of bulbs and platforms out there. One unique point is, that for WiZ bulbs no additional network layer or bridging devices are needed. You only need WiFi - that's it. That is also why I decide to use this platform. At the end the best technical solution would be MQTT via WiFi to the bulbs (which is already used for the WiZ app).

But I don't want to discuss this here in the issue in detail 😉

crewderek commented 3 years ago

My lights appear to be working correctly now and being added as entities. Cudos for the quick turn-around. =)

morbidpete84 commented 3 years ago

Issue also fixed. Seems that the power off bug is gone also. I did replace 21 of them with the Home Depot zigbee bulbs but kept a few of the wiz Edison and rgb ones until I find proper replacements. Thank you. If you sign up for a Ko-fi account please let me know

ChrisLizon commented 3 years ago

Please test with the 0.4.3 - the pywizlight MUST be updated to 0.4.6. This should happened automatically. PyPip package

Hi Stephen, Is this a typo? I can't find any tags or branches for 0.4.3, but I can confirm my bulb that updated to 1.22 is working correctly with wiz_light version 0.4.2.

 (homeassistant) homeassistant@hass /srv/homeassistant/lib/python3.8/site-packages/pywizlight $ cat _version.py
"""PyPi Version."""
__version__ = "0.4.6"

I wonder if adding a Kelvin override in the yaml configuration would be a possible/useful solution for people who want to use the extended Kelvin range.

sbidy commented 3 years ago

Ah ... thats a typo. Sorry. I don't want to fallback to the static mapping. Maybe I'll get a feedback from WiZ this week.

sbidy commented 3 years ago

I got a response from Wiz. The property was only moved to an other function. I'll update the function ASAP.

sbidy commented 3 years ago

Please update to the 0.4.2 . Issue should be fixed.