* added gtt sensor
* removed trailing space
* updated requirements_all
* fixed two errors in the code style
* fixed imperative in docstring
* disabled pylint false positive
* fixed description on top of the file
* added files to .coveragerc
* fixes
* linting
* fixed linting 👍
* left a trailing space, now it's gone.
* fix
* Provide charging indicator for mychevy
This expands the mychevy sensor for the battery level to also know if
the system is currently charging to get the correct icon.
* address review feedback
When editing an entity in the frontend dialog, pressing save causes a "save failed: Entity is already registered" error. This is because the frontend always sets `name` and `new_entity_id` in the websocket command even if they haven't been changed. This adds a check that the `new_entity_id` is actually different from `entity_id` before erroring that the `new_entity_id` is already registered.
* Fixed manual alarm control panel restore state
* Revert "Fixed manual alarm control panel restore state"
This reverts commit 61c9faf434.
* Fixed manual alarm control panel's state restore
* Set lock status correctly for Schlage BE469 Z-Wave locks
PR #17386 attempted to improve the state of z-wave lock tracking for
some problematic models. However, it operated under a flawed
assumptions. Namely, that we can always trust `self.values` to have
fresh data, and that the Schlage BE469 sends alarm reports after every
lock event. We can't trust `self.values`, and the Schlage is very
broken. :)
When we receive a notification from the driver about a state change,
we call `update_properties` - but we can (and do!) have _stale_
properties left over from previous updates. #17386 really works best
if you start from a clean slate each time. However, `update_properties`
is called on every value update, and we don't get a reason why.
Moreover, values that weren't just refreshed are not removed. So blindly
looking at something like `self.values.access_control` when deciding to
apply a workaround is not going to always be correct - it may or may not
be, depending on what happened in the past.
For the sad case of the BE469, here are the Z-Wave events that happen
under various circumstances:
RF Lock / Unlock:
- Send: door lock command set
- Receive: door lock report
- Send: door lock command get
- Receive: door lock report
Manual lock / Unlock:
- Receive: alarm
- Send: door lock command get
- Receive: door lock report
Keypad lock / Unlock:
- Receive: alarm
- Send: door lock command get
- Receive: door lock report
Thus, this PR introduces yet another work around - we track the current
and last z-wave command that the driver saw, and make assumptions based
on the sequence of events. This seems to be the most reliable way to go
- simply asking the driver to refresh various states doesn't clear out
alarms the way you would expect; this model doesn't support the access
control logging commands; and trying to manually clear out alarm state
when calling RF lock/unlock was tricky.
The lock state, when the z-wave network restarts, may look out of sync
for a few minutes. However, after the full network restart is complete,
everything looks good in my testing.
* Fix linter
* Added motion, speed and battery attributes.
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
* Use dict[key] when we know there is a value there.
Co-Authored-By: ludeeus <joasoe@gmail.com>
When editing an entity in the frontend dialog, pressing save causes a "save failed: Entity is already registered" error. This is because the frontend always sets `name` and `new_entity_id` in the websocket command even if they haven't been changed. This adds a check that the `new_entity_id` is actually different from `entity_id` before erroring that the `new_entity_id` is already registered.
* Added brottsplatskartan sensor
* Update brottsplatskartan sensor
* Remove redundant configuration checks.
* Set attributes during initialization.
* Setup brottsplatskartan module in setup_platform().
* Just do a simple return, no need for returning false.
* Remove file that was used during testing
* Better variable name and remove excessive newline.
* More updates to brottsplatskartan
* Import uuid at the top of the module.
* Use sensor as domain.
* Don't fire custom events.
* Remove period from logging message.
* Adding validation for area parameter
* Validate empty area configuration
* Fixing indentation.
* Fixing the config schema
* Adding ambient_station.py sensor and updating requirements file
* Cleaning up code and fixing flake8 warnings
* Fixing flake8 and pylint warnings
* Adding ambient_station.py sensor and updating requirements file
* Cleaning up code and fixing flake8 warnings
* Fixing flake8 and pylint warnings
* Fixing bug, things are working well now
* removing nosetests file
* Adding changes as requested in pull request #18551
* Updating with more change requests from PR code review
* Removing SCAN_INTERVAL from PLATFORM_SCHEMA
* Removing unused import
* Adding platform schema validation for monitored_conditions and conf_units
* Updating link to documentation in doc-string. File already named in doc repo
* Only setup platform if component can successfully communicate with API
* Inverting check for platform setup success
* Adding basic Plum Lightpad support - https://plumlife.com/
* Used Const values
is_on is a bool
* Added LightpadPowerMeter Sensor to the plum_lightpad platform
* Moved to async setup, Introduced a PlumManager, events, subscription, Light and Power meter working
* Added PlumMotionSensor
* Added Glow Ring support
* Updated plum library and re-normalized
* set the glow-ring's icon
* Naming the glow ring
* Formatting and linting
* Cleaned up a number of linting issues. Left a number of documentation warnings
* setup_platform migrated to async_setup_platform Plum discovery run as a job
* bumped plumlightpad version
* On shutdown disconnect the telnet session from each plum lightpad
* Cleanup & formatting. Worked on parallell cloud update
* Moved setup from async to non-async
* Utilize async_call_later from the helpers
* Cleanedup and linted, down to documentation & one #TODO
* Remove commented out debug lines
* Fixed Linting issues
* Remove TODO
* Updated comments & fixed Linting issues
* Added plumlightpad to requirements_all.txt
* Fixing imports with isort
* Added components to .coveragerc
* Added PLUM_DATA constant for accessing hass.data[PLUM_DATA]
* used dictionary syntax vs get(...) for config
* Linting needed an additonal line
* Fully async_setup now. removed @callback utilize bus events for detecting new devices found.
* Upgraded to plumlightpad 0.0.10
* Removed extra unused PLATFORM_SCHEMA declarations
* Moved listener attachment to `async_added_to_hass` and removed unused properties & device_state_attributes
* Utilized Discovery when devices were located
* Linting and cleanup
* used `hass.async_create_task` instead of `hass.async_add_job` per Martin
* Removed redundant criteria in if block
* Without discovery info, there is no need to setup
* Better state management and async on/off for Glow Ring
* renamed async_set_config back to set_config, fixed cleanup callback and Plum Initialization
* Fixed flake8 linting issues
* plumlightpad package update
* Add 'motion' device_class to Motion Sensor
* Fixed last known Linting issue
* let homeassistant handle setting the brightness state
* String formatting vs concatenation
* use shared aiohttp session from homeassistant
* Updating to use new formatting style
* looks like @cleanup isn't neccesary
* ditch the serial awaits
* Ensure async_add_entities is only called once per async_setup_platform
* Creating tasks to wait for vs coroutines
* Remove unused white component in the GlowRing
* Used local variables for GlowRing colors & added a setter for the hs_color property to keep the values in sync
* Linted and added docstring
* Update the documentation path to point to the component page
* Removed the extra sensor and binary_sensor platforms as requested. (To be added in later PRs)
* Update plum_lightpad.py
* Update plum_lightpad.py