* Add remote platform to hue integration
supporting ZGPSwitch, ZLLSwitch and ZLLRotary switches.
* Ported from custom component Hue-remotes-HASS from @robmarkcole
* Add options flow for hue, to toggle handling of sensors and remotes
* Sensors are enabled by default, and remotes are disabled,
to not generate any breaking change for existent users.
Also, when linking a new bridge these defaults are used,
so unless going explicitly to the Options menu,
the old behavior is preserved.
* SensorManager stores the enabled platforms and ignores everything else.
* Bridge is created with flags for `add_sensors` and `add_remotes`,
and uses them to forward entry setup to only the enabled platforms.
* Update listener removes disabled kinds of devices when options are changed,
so device list is in sync with options, and disabled kinds disappear from HA,
leaving the enable/disable entity option for individual devices.
* Fix hue bridge mock with new parameters
* Revert changes in hue bridge mock
* Remove OptionsFlow and platform flags
* Extract `GenericHueDevice` from `GenericHueSensor`
to use it as base class for all hue devices, including those without any entity,
like remotes without battery.
* Add `HueBattery` sensor for battery powered remotes
and generate entities for TYPE_ZLL_ROTARY and TYPE_ZLL_SWITCH remotes.
* Remove remote platform
* Add HueEvent class to fire events for button presses
* Use `sensor.lastupdated` string to control state changes
* Event data includes:
- "id", as pretty name of the remote
- "unique_id" of the remote device
- "event", with the raw code of the pressed button
('buttonevent' or 'rotaryevent' property)
- "last_updated", with the bridge timestamp for the button press
* Register ZGP_SWITCH, ZLL_SWITCH, ZLL_ROTARY remotes
* fix removal
* Exclude W0611
* Extract GenericHueDevice to its own module
and solve import tree, also fixing lint in CI
* Store registered events to do not repeat device reg
* Minor cleaning
* Add tests for hue_event and battery entities for hue remotes
* Use platform tag to register components on hue SensorManager
instead of a boolean flag to decide between sensor and binary sensor,
so it could be used externally (or to get ready for inclusion of other comps)
* Make new item discovery platform agnostic for SensorManager
* Refactor Hue Lights to use DataCoordinator
* Redo how Hue updates data
* Address comments
* Inherit from Entity and remove pylint disable
* Add tests for debounce
* Add basic support for native Hue sensors
* Update coveragerc
* Simplify attributes
* Remove config option
* Refactor and document device-ness and update mechanism
* Entity docstrings
* Remove lingering config for sensors
* Whitespace
* Remove redundant entity ID generation and hass assignment.
* More meaningful variable name.
* Add new 'not-darkness' pseudo-sensor.
* Refactor sensors into separate binary, non-binary, and shared modules.
* formatting
* make linter happy.
* Refactor again, fix update mechanism, and address comments.
* Remove unnecessary assignment
* Small fixes.
* docstring
* Another refactor: only call API once and make testing easier
* Tests & test fixes
* Flake & lint
* Use gather and dispatcher
* Remove unnecessary whitespace change.
* Move component related stuff out of the shared module
* Remove unused remnant of failed approach.
* Increase test coverage
* Don't get too upset if we're already trying to update an entity before it has finished adding
* relative imports