* Fix for #19072
PR #19072 introduced the custom_effect feature but it didnt make it optional as the documentation states.
This causes error on startup and the component does not work.
```
Error while setting up platform flux_led
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
return fut.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/light/flux_led.py", line 135, in setup_platform
device[CONF_CUSTOM_EFFECT] = device_config[CONF_CUSTOM_EFFECT]
KeyError: 'custom_effect'
```
Changing this line to make the custom_effect optional as the original intention.
* Update flux_led.py
* Improve component setup error logging/notification
* Prevent capabilities from being represented my multiple platforms
* Improved logging of received updates
* Updates based on review feedback
* Deprecate update_interval and replace with scan_interval
* Update tests
* Fix Darksky tests
* Fix Darksky tests correctly
This reverts commit a73384a223ba8a93c682042d9351cd5a7a399183.
* Provide the default for the non deprecated option
* Don't override default schema for sensors
This sets the uvloop version in Docker containers to 0.11.3, which is the
same version that hass.io uses.
uvloop might be causing issues with some Docker containers on some host
systems, as reported in #20829
* Bumped pysmartthings version to 0.6.1
* Added Lock to supported platforms
* Added SmartThings Lock component
* Updated lock to eagerly set state
* Updated requirements_all.txt & requirements_test_all.txt with pysmartthings==0.6.1
* Added SmartThings Lock tests
* Removed inapplicable comment
* Removed unused import (STATE_UNLOCKED)
* Populated device_state_attributes with values provided by SmartThings
* Condensed if_lock assertion function
* Updated gathered attributes
* Fixed typo
* Updated tests to use new setup_platform
* Updated assignment of device state attributes
* Updated tests to utilise the LOCK_DOMAIN constant where suitable
* Fixed false positive for Switch test: (test_unload_config_entry)
* Implemented constant to contain expected SmartThings state for is_locked check
* Improved allocation of State Attributes
* Improved allocation of state attributes
* Fixed lint error (was running lint checks against the wrong file, whoops)
* Added test for unloading lock config
* Use isinstance instead of type()
* Updated device state to explicitly check for is not None instead of a truthy value
* Add Rejseplanen danish public transport sensor component
* Removed commented out code and fixed style errors
* Use rjpl pypi package for API calls.
* Fix platform schema config and code cleanup.
* Use updated rjpl library with specific exceptions
* API error message is now logged, unknown state attributes excluded
* Make monitored_conditions more specific in Ambient PWS
* Revert messing around with storing monitored_conditions elsewhere
* Come on, Aaron
* Fix bug with monitored_conditions in Ambient PWS
* working unique ids for august
* cleanup blank lines
* cleanup blank lines
* cleanup blank lines
* rebase
* get the oneline back in
* blank line stuff
* whitespace cleanup
* Blank Line .
* blank line again
* modbus: support multiple modbus hub
* update data after entities added
* pass hub object to each entity. and save hub to hass.data but not in module level
* add hub_client setup log
* don't update when adding device, because hub_client is not ready right now
* support restore last state
* remove useless func
* compatible with python35
* removed unrelated style changes
* Update flexit for multi-device modbus
* change how hubs are referenced in the configuration
* Also update climate/modbus.py
* Remove unwanted whitescapce
* Defined common constants centrally
* Update DOMAIN in climate and switch components
* Removed unnecessary vol.schema
* Make hub name optional
* Add name property to ModbusHub
* set cover level using emulated_hue
* changed mapping for service turn_on/off for cover.
* removed whitespace for the sake of hound
* using const for domains instead of hardcoded strings.
* change length of lines for the sake of hound
* fixed under-intended line
* changed intent for the sake of hound
* Fixed Thethingsnetwork sensor issue so that it takes the most recent (last) item from the TTN data storage query result instead of the first.
* Update sensor.py
More pythonic way to get the last item of the sensor value list.
* Added support from HmIP-BSL
* Fixed setup of initial on
* Minor changes
Removed Black from Dictionary
added extra case to turn_on
added comments
* moved 3rd party libraries inside methods
* Fixed comment
* Removed code block to keep component behavior consisten to other dimmers
Minimum brightness is 10, otherwise the led is not visible anymore
* moved 3rd party libraries inside methods 2nd
* corrected spelling and variable assignment
* implemented feedback
* removed own state implementation
it is the same as in parent class
* reduced device_state_attributes
brightness is alread in parent class
* On/Off is only determined by brightness now
turn_off sets brightness to 0.
turn_on now uses the previous used color an sets the brightness to 255
* Fixed string sorting of unique_id
* improved usage of base class
* Update code after review by MartinHjelmare
* Fix for the hound
* Fix waze_travel_time component ERROR on startup
Fix the unhandled exception with Waze Travel Time sensor upon startup,
by adding Throttle before update_interval are starting.
* add missing whitespace after ','
* fix line too long (80 > 79 characters)
* lint
* fix interval to use const
* Change to Throttle as a decorator to update
Change to Throttle as a decorator to update instead of self.update = Throttle(interval)(self.update)
remove unnecessary code.
* fix indentations
* Update waze_travel_time.py
* Update waze_travel_time.py
* Update waze_travel_time.py
* Forbid duplicate IDs
* Allow loading persons from storage
* Convert to PersonManager
* Add storage support and WS commands to Person component
* Convert list command to differentiate types
* Allow loading person component without defining persons
* Fix cleanups after update/delete
* Address comments
* Start tracking when HA started
The available state for the August Doorbell is currently set based on the state of the binary ding sensor. This means that if there is no door bell rings in a while on startup the doorbell is shown as Unavailable (#20421) . This ties the availability of the doorbell to the actual online state thats in the device information retrieved from august so that even if there has not been a doorbell ring activity on a while the device shows as online when it is.
* Move more constants to const.py
* Import constants directly from const
* ATTR_ENTITY_ID is not defined in media_player
* MEDIA_PLAYER_PLAY_MEDIA_SCHEMA is still in __init__.py
* Correct imports in tts
* PLATFORM_SCHEMA, SCHEMA is still defined in __init__.py
* Pandora imports several services
* Some additional fixes for move of const in media_player
* Fix hound lengths
* Fix init of TransmissionData
Fix in order to avoid null object on first update of Turtle Mode Switch
* Using async functionality
* Various fix
* HoundBot fix
* Removed some async calls
* Fix compilation Error
* Fix
* PEP fix
* Add better handling of deprecated configs
* Embed the call to has_at_most_one_key in deprecated
* Add tests for checking the deprecated logs
* Add thoroughly documented tests
* Always check has_at_most_one_key
* Fix typing
* Move logging helpers to homea new logging helper
* Lint
* Rename to KeywordMessage instead of BraceMessage
* Remove unneeded KeywordStyleAdapter
* Lint
* Use dict directly rather than dict.keys() when creating set
* Patch the version in unit tests, update logging and use parse_version
* Re-add KeywordStyleAdapter and fix tests
* Lint
* Lint
* KNX: Bumped version to 0.9.4 and added support for tunable white and color temperature for lights.
* Updated to the latest changes
* return None when ct value is unknown
- return None instead of default value when ct is unknown
- remove DEFAULT_COLOR_TEMPERATURE
* use Kelvin as base for relative color temperature
use Kelvin as base for relative color temperature instead of Mireds
* moved fallback value tests for clarity
* Update request from oliverblaha
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Address suggested changes
* Update homeassistant/components/knx/light.py
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Update homeassistant/components/knx/light.py
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Add person component
* Required first name.
* Optional last name and user id.
* Optionally track device trackers. Last device tracker state change will
set state.
* Set device tracker state entity_id as source attribute.
* Set coordinates of device tracker state as state attributes.
* Restore state.
* Parse restored state too
* Clean up
* Add missing property decorator
* Validate source entities as device trackers
* Only use name instead of first and last name
* Add user_id validation
* Add unique_id
* Remove not needed properties
* Uniform docstrings
* Fail component setup if no valid entities
* Add tests
* Add id and use that for unique_id
* Clean up
* added xs1 main component
added implementations for switch, sensor, climate and binary_sensor
* updated code
fixed styling
added comments
removed binary_sensor (wasn't working)
* ran "gen_requirements_all.py" script
* fixed linting issues
* added config options for port and ssl
small fixes
* use already defined config constants instead of defining new ones
* avoid passing in hass to the entity
* use async keyword and proper asyncio calls
limit updates with a global lock to prevent overwhelming the gateway with concurrent requests
change info logger calls to debug
* update dependency
* removed unneeded constant
* fix lint issues
* updated requirements
* removed unused imports
* fixed some flake8 errors
* fixed some flake8 errors
* changed imports to absolute paths
* fixed some lint errors
* fixed some lint errors
* fix update of attached sensor
* reordered imports
added config defaults
check if platform is available
changed docstring
* lint fix
* review fixes
* isort
* import fix
* review fix
* review fix
* review fix
* removed unused imports
* lint fix
* lint fix
* climate fix
exclude sensors that will be used in climate component from default sensor category
* .coveragerc fix
* lint fix
* moved platform to it's own package
* Fix binary sensor in Ambient PWS
* Correctly load entities
* Corrected what on and off means for existing sensor
* Make sure to return a boolean
* Member comments
* Binary sensor doesn't need state property
* Added external auth provider that calls a configurable program
Closes#19975
* Raise proper InvalidAuth exception on OSError during program execution
* Changed name of external auth provider to command_line
* Renamed program config option to command in command_line auth provider
* Made meta variable parsing in command_line auth provider optional
* Added tests for command_line auth provider
* Fixed indentation
* Suppressed wrong pylint warning
* Fixed linting
* Added test for command line auth provider login flow
* Log error when user fails authentication
* Use %r formatter instead of explicit repr()
* Mix all used names of typing module into module namespace
I consider this nasty and bad coding style, but was requested by
@awarecan for consistency with the remaining codebase.
* Small code style change
* Strip usernames with command_line auth provider
* use async_call_later for update
* no need to timeout
* fixes
* move init tasks to hass.loop
* version bump of tellduslive
* fixes for @MartinHjelmare
* fixes task cancel
* don't return from new client
* Allow both VOLUME_STEP and VOLUME_SET
Seems like it should be possible to support both at the same time.
* Update test to allow VOLUME_SET and VOLUME_STEP
* fix state update when no cleaning is yet performed
allow pause vacuum when returning to base
* revert checking of atttribute updates. Will be fixed in upstream lib.
* remove unnecesarry if on pause_commadn
* Fix waze_travel_time component ERROR on startup
Fix the unhandled exception with Waze Travel Time sensor upon startup,
by adding Throttle before update_interval are starting.
* add missing whitespace after ','
* fix line too long (80 > 79 characters)
* lint
* fix interval to use const
* Change to Throttle as a decorator to update
Change to Throttle as a decorator to update instead of self.update = Throttle(interval)(self.update)
remove unnecessary code.
* fix indentations
* Update waze_travel_time.py
* Update waze_travel_time.py
* Update waze_travel_time.py
Flux Led controllers support defining a custom effect. User may define
up to 16 colors, speed of switching between them, and transition type.
Additional changes:
- add support for reporting currently running effect on the controller.
- make effects list sorted, so it's easier to find specific effect in
the list.
* Move group to it's own setup
* Let each component to handle restore of state
* Move constants for climate into const.py
For now import all into __init__.py to keep backword compat
* Move media plyaer constants to const.py file
For now import all constants into __init__.py to keep
backword compatibility
* Move media player to it's own file
* Move climate to it's own file
* Remove ecobee service from common components
BREAKING CHANGE
* Add tests for climate
* Add test for media_player
* Make sure we clone timestamps of state
* Add tests for groups
* Remove old tests for media player, it's handled by other tests
* Add tests for calls to component functions
* Add docstring for climate const
* Add docstring for media_player const
* Explicitly import constants in climate
* Explicitly import constants in media_player
* Add period to climate const
* Add period to media_player const
* Fix some lint errors in climate
* Fix some lint errors in media_player
* Fix lint warnings on climate tests
* Fix lint warnings on group tests
* Fix lint warnings on media_player tests
* Fix lint warnings on state tests
* Adjust indent for state tests
* use async_call_later for update
* no need to timeout
* fixes
* move init tasks to hass.loop
* version bump of tellduslive
* fixes for @MartinHjelmare
* fixes task cancel
* don't return from new client
**Description:**
I modified the file because it should not disable a MTU based on voltage or power. If one has programmed a certain amount of MTUs in his Gateway, they should be all visible and show 0W or 0V.
The problem arises when you have a device that shuts off at night (e.g.: pool pump). It pulls 0W for a while, I don't want my interface to show a big yellow error during that time because the sensor no longer exists. Even the 0V is not a good idea because we can use it to indicate the breaker has tripped.
Hopefully it would be accepted :-)
* Add ffmpeg version
* Add ffmpeg stream content type
* Change ffmpeg camera stream content type
* Change ffmpeg stream content type
* Lint
* Add a none guard
* Fix
* Fix
* Update onvif.py
* Fix version match regrex
* Fix regrex
* Upgrade ha-ffmpeg to 1.11
* Lint
* Get ffmpeg version in ffmpeg component setup
* Add ffmpeg version
* Add ffmpeg stream content type
* Change ffmpeg camera stream content type
* Change ffmpeg stream content type
* Lint
* Add a none guard
* Fix
* Fix
* Update onvif.py
* Fix version match regrex
* Fix regrex
* Upgrade ha-ffmpeg to 1.11
* Lint
* Get ffmpeg version in ffmpeg component setup
* Move sensor.speedtest to the new speedtestdotnet component.
* Split out speedtest.net into a component and sensor platform
* Remove the throttle and add async_track_time_interval
* Add should_poll and cleanup
* Update requirements_all.txt
* Move time interval tracking out of the data class and into the setup method
* Add now=None argument to update
* Change foscam python library to pyfoscam, which is more up to date and has several critical bug fixes.
* Update requirements_all.txt to match.
* Inserting automatically generated requirements.txt
* Revert changes until pyfoscam captures recent bug fixes. The pyfoscam version pulled by pip is currently broken.
* Updated requirements_all.txt based on changing pyfoscam back to libpyfoscam.
* Change foscam python library to pyfoscam, which is more up to date and has several critical bug fixes.
* Update requirements_all.txt to match.
* Inserting automatically generated requirements.txt
* Revert changes until pyfoscam captures recent bug fixes. The pyfoscam version pulled by pip is currently broken.
* Updated requirements_all.txt based on changing pyfoscam back to libpyfoscam.
The 'Loading [wireless] devices from Mikrotik ([ip address])' message
is incredibly spammy at the info log level, such that in the last 24
hours on my installation, that log message has appeared 6732 times,
versus 70 for every other log message. I've moved this message to the
debug log level as I don't believe it adds anything at the info level,
and makes it harder to diagnose other problems.
* start test setup
test cleanup
test deps
update switch test
actually update test deps
cleanup and remove switch from coveragerc
comment
refactor to use fixtures and shared components
lint
* remove availability part that isn't in zha yet
* review comments and cleanup
* review comments
* add switch back unil post reorg merge
* Add SmartThings Light platform and tests
* Cleaned a few awk comments
* Updates per review feedback
* Switched to super
* Changes per review feedback
* Add SmartThings Light platform and tests
* Cleaned a few awk comments
* Updates per review feedback
* Switched to super
* Changes per review feedback
* Split out fastdotcom into a component and a sensor platform
* Update .coveragerc
* Switching to async and using a Throttle
* Add the async_track_time_interval call
* Remove the throttle
* Reorder sensor methods and add should_poll property
* Fix issue #16606
Some projectors do not respond to pjlink requests during a short period after the status changes or when its in standby, resulting in pypjlink2 throwing an error. This fix catches these errors. Furthermore, only the status 'on' and 'warm-up' is interpreted as switched on, because 'cooling' is actually a switched off status.
* Update pjlink.py
Improved error handling
* Update pjlink.py
Improved error handling
* Update pjlink.py
Clean up
* Fix issue #16606
Some projectors do not respond to pjlink requests during a short period after the status changes or when its in standby, resulting in pypjlink2 throwing an error. This fix catches these errors. Furthermore, only the status 'on' and 'warm-up' is interpreted as switched on, because 'cooling' is actually a switched off status.
* Update pjlink.py
Improved error handling
* Update pjlink.py
Improved error handling
* Update pjlink.py
Clean up
When xiaomi_aqara services with one gateway, the default should be set
to the sid of the gateway, not the python object itself, otherwise the
call fails.
* Support for new velux api, added cover.velux
* More steps on new velux covers.
* correct position handling of velux windows
* Following suggestion from hound.
* bumped version
* added cover stop
* bumped version of pyvlx
* Bumped version to 0.2.8
* removed log_frames parameter
* Move mqtt_mock to tests/components/mqtt/conftest.py
* Move mqtt room presence sensor test to tests/components/mqtt
* Revert "Move mqtt room presence sensor test to tests/components/mqtt"
This reverts commit e08bc143
* Decouple mqtt room presence sensor test and mqtt_mock
* Add component for googlehome
* Add missing name in CODEOWNERS
* Linting issues
* googledevices version bump
* Use NAME from component instead of DOMAIN
* Cleaner handling of accepted devices in for loop
* Fixes one linting issue
* Validate device_types
* Fixes one linting issue
* Fixes linting issue
* Revert 0abb642 and import DOMAIN as GOOGLEHOME_DOMAIN
* Return false if discovery_info is None
* Combine if's in for loop
* Use async_load_platfrom
* Fix line length
* Add error message to user
* Shorter log message
* error -> warning, remove period
* Update .coveragerc
* Move to correct place
* Added SmartThings component and switch platform
* Corrected comment typos.
* Embedded switch platform.
* Replaced custom view usage with webhook component.
* Replaced urls with tokens in strings.
* Fixed line length.
* Use generated webhook id instead of static one.
* Reuse core constant instead of defining again.
* Optimizations in anticipation of future platforms.
* Use async_generate_path instead of hard-coded path.
* Fixed line length.
* Updates per review feedback.
* Updates per latest review feedback.
* Use same data schema for configflow, make sensor_id a positive integer.
* Change sensor_id to int and remove duplicate Luftdaten config entries.
This fixes#18838, and also fixes the root cause
of #19981 and #19622.
* Use pure type for boolean.
* Adding sensor for SolarEdge Monitoring API support
* Adding support for Rova garbage calendar
* Added Rova platform to retrieve garbage pickup times
* Update async to new syntax
Added async_update to sensor class
Added Throttle to Rova update function
Minor code style changes
* Small style fixes
* Removed domain
* Update debug to error messages
Change CONF_MONITORED_VARIABLES to CONF_MONITORED_CONDITIONS
Update async update call to normal update
* Update requirements to rova v0.0.2
Add address check to see if ROVA collects in the given area
* Rename entity names to English
Add json_key to Sensor entities
* Add device_class to the RovaSensor
* Fix pylint and flake8 messages
* Add check for None in case collection date is unknown
* Return device class constant
* New Transmission component and interaction
First commit for New Transmission component and interaction
* Fix commit
* Fix commit
* Fix + Switch checkin
Fix according to failed build and request, first checkin for Turtle Mode Switch in Transmission, still have to figure it out why it's not working.
* Bugfixing
* Fix commit
Multiple fix
* Fix
* fix for missing config
* Update on requirements_all.txt
* Fix in requirements_all.txt
* Fix
* Fix for build
* fix
* Fix
* Fix (again)
* Fix
* Fix indentation
* Fix indentation
* Fix Throttle
* Update .coveragerc
* Fix import and coveragerc
* Added Recollect Waste Curbside Collection sensor for tracking next collection date and for which types of waste.
* Added missing schema attributes.
* Adding requirements and coverage entries for Recollect Waste platform.
* Added exception handling, some other fixes and suggestions from code review.
* Fixed reference to incorrect exception type.
* Updated requirements_all.txt with new version of recollect-waste.
* Added true to add_entities. Created constant for default time interval. Used different pylint exclusion comment.
* Using HA's CONF_SCAN_INTERVAL now. Unique_id is now set in @property.
* Changed parameter of timedelta from seconds to days.
* Added test run of recollect client during setup_platform. Using built in SCAN_INTERVAL now.
* Return nothing in setup_platform if there is an exception.
* First draft of area registry
* Refactor based on input
* Add tests for areas
Add tests for updating device
* Updating a device shouldn't require area
* Fix Martins comment
* Require admin
* Save after deleting
* Rename read to list_areas
Fix device entry_dict
Remove area id from device when deleting area
* Fix tests
* Moving existing sensor file
* Initial functionality in place
* Added test for config flow
* Updated coverage and CODEOWNERS
* Linting
* Linting
* Member comments
* Hound
* Moving socket disconnect on HASS stop
* Member comments
* Removed unnecessary dispatcher call
* Config entry fix
* Added support in config flow for good accounts with no devices
* Hound
* Updated comment
* Member comments
* Stale docstrings
* Stale docstring
* Only fetch values of characteristics we are tracking.
* Use callbacks on subclasses to update individual values
* Update alarm_control_panel to use update callbacks
* Update climate to use update callbacks
* Update cover to use update callbacks
* Update light to use update callbacks
* Update lock to use update callbacks
* Update switch to use update callbacks
* Remove compatibility code as all entities migrated
* pylint by name rather than code
* Define the characteristics to poll (or subscribe to) up front
* Configure characteristics immediately instead of during first poll
* Do as much cover configuration upfront as possible
* Remove test workaround as no longer needed
* Remove switch code that is already handled by HomeKitEntity
* Remove lock code already handled by HomeKitEntity
* Remove light code already handled by HomeKitEntity
* Remove alarm code already handled by HomeKitEntity
* Remove climate code already handled by HomeKitEntity
* homekit_controller tests: automatically find entity ids in tests
Some entities use dynamic ids because of the nature of the test fakes it is
hard to predict the name of the entity that will be created. This inspects the
EntityComponent of the domain to find the freshly created entity.
* homekit_controller: Tests can now define their own Service models.
All existing tests use models as defined upstream. But upstream only defines a
few service models. This adds a generic model helper for creating test
service/characteristic models.
* homekit_controller: Add cover tests
* homekit_controller: Add lock tests
* homekit_controller: Add alarm_control_panel tests
* homekit_controller: Update light tests for color_temp.
* Revert "homekit_controller tests: automatically find entity ids in tests"
This reverts commit 506caa4c3e.
* homekit_controller: Mock entity name so entity_id is consistent.
Also remove spurious subclass overrides that are identical to parent class.
* homekit_controler: Make tests less awkward as allowed top level imports
* Reset the incident types count every day
* Remove functionality that was never implemented
We don't need to keep track of previous incidents because it's not used
anywhere.
* Create empty dictionary with a pair of braces: {}
* Change foscam python library to pyfoscam, which is more up to date and has several critical bug fixes.
* Update requirements_all.txt to match.
* Inserting automatically generated requirements.txt
* Embed device_tracker in locative
* Load/unload locative entities correctly between component and platform
* Await the coroutine directly
* Await the correct coroutine
* Add nilu air_pollutants platform
* Code Review - validation, DRYs, rm state override, new attr
- Repeated code moved to own method.
- Removed override of state property.
- New attr for showing nilu pollution recommendations.
- More validation of stations input.
- Minor fixes and typos.
* Removed unused prop
* Check for none result from client before entity add
* Moved platform to air_quality component
* Updated outdated docstrings
* Minor changes
* Add a test for a homekit_controller switch
* Add a test for a homekit_controller lightbulb
* Add a test for homekit_controller thermostat
* Changes from review
* Patch utcnow to known time in HK tests
* Neater fixture use per review
* Split out dovado to a component and sensor platform
* Lint
* Address code review comments (#20339)
* Switch to using a notify platform for dovado SMS (#20339)
* Optimizing imports
* Remove return on `setup_platform`.
* Clean up unneeded constants
* Include exception details in the error log
I see this error quite often in my HA logs and this will be helpful for anyone who is attempting to debug this.
* Minor change
* Remove line break
* fix for smoke detection
* a tilted window is now considered as "open"/on
* changed comparison to enum
* line length
* insert brackets for line length and comparison
* indentation should now be ok for hound
changed api version to 0.10.4
* indentation should now be ok for hound
changed api version to 0.10.4
* updating requirement files
* satisfy lint
* Cleanup if discovered mqtt light can't be added
* No bare except
* Clear ALREADY_DISCOVERED list with helper
* Use constant instead of string literal
for white hue bulbs and bulbs from other brands like Ikea and Innr, this warning will be issued while this is not really a problem.
So just remove the warning.
for white hue bulbs and bulbs from other brands like Ikea and Innr, this warning will be issued while this is not really a problem.
So just remove the warning.
* SongPal: error handling if active_source can't be detected
* sonpal: Add comment to the use of getattr() for property source
* songpal: make comment single-line
Sessions were timing out and requiring a HA restart in order to restore
functionality. Network disconnects are now handled and sessions will be
automatically recovered after they fail.
* Add support for Danfoss Air HRV systems.
* Correct lint errors after initial commit of Danfoss Air HRV support.
* A couple of lint fixes for danfoss_air.
* Refactor to comply with HA standards.
* Style fix.
* Use wildcard for danfoss_air in .coveragerc.
* Remove config example from header documentation.
Correct import name for platforms.
* Add data/data_template/title to alert component
* Fix line length
* Fix tests
* Fix lint
* fix line length
* Fix tests, make title templatable
* Fix test
* Fix test
* Optimize data, make title templated
* Fix line length
* Add title template
* typo
* Fix tests
* Starting work on ecoal boiler controller iface.
* Sending some values/states to controller.
* Basic status parsing, and simple settings.
* Platform configuration.
* Temp sensors seems be working.
* Switch from separate h/m/s to datetime.
* Vocabulary updates.
* secondary_central_heating_pump -> central_heating_pump2
* Pumps as switches.
* Optional enabling pumps via config.
* requests==2.20.1 added to REQUIREMENTS.
* Optional enabling temp sensors from configuration yaml.
* autopep8, black, pylint.
* flake8.
* pydocstyle
* All style checkers again.
* requests==2.20.1 required by homeassistant.components.sensor.ecoal_boiler.
* Verify / set switches in update().
Code cleanup.
* script/lint + travis issues.
* Cleanup, imperative mood.
* pylint, travis.
* Updated .coveragerc.
* Using configuration consts from homeassistant.const
* typo.
* Replace global ECOAL_CONTR with hass.data[DATA_ECOAL_BOILER].
Remove requests from REQUIREMENTS.
* Killed .update()/reread_update() in Entities __init__()s.
Removed debug/comments.
* Removed debug/comments.
* script/lint fixes.
* script/gen_requirements_all.py run.
* Travis fixes.
* Configuration now validated.
* Split controller code to separate package.
* Replace in module docs with link to https://home-assistant.io .
* Correct component module path in .coveragerc.
More vals from const.py.
Use dict[key] for required config keys.
Check if credentials are correct during component setup.
Renamed add_devices to add_entities.
* Sensor/switch depends on ecoal_boiler component.
EcoalSwitch inherits from SwitchDevice.
Killed same as default should_poll().
Remove not neede schedule_update_ha_state() calls from turn_on/off.
* lint fixes.
* Move sensors/switches configuration to component setup.
* Lint fixes.
* Invalidating ecoal iface cache instead of force read in turn_on/off().
* Fail component setup before adding any platform entities.
Kill NOTE.
* Disallow setting entity names from config file, use code defined default names.
* Rework configuration file to use monitored_conditions like in rainmachine component.
* Killed pylint exception.
Log error when connection to controller fails.
* A few fixes.
* Linted.
* Added device tracker support for EE Brightbox 2
* removed timeago dependency
* get scanner checks and improved tests
* fixed lint issues
* removed redundant timeago from test requirements
* fixed variable naming in test
* removed unecessary blank line
* Fix type C02 to CO2 and added VOC to air quality platform
* singularized volatile_organic_compound
* Remove VOC prop
* Update __init__.py
* Update __init__.py
* Added state method to return current operating state to fix#18244 for radiotherm component.
* Changed to set the is_on property when actively heating or cooling.
* EverLights light integration. Supports single color (with color and brightness parameters) or saved pattern (with effect parameter).
* Fix pylint parameter name warning.
* Code review feedback.
* Add tests for the two helper functions of EverLights component.
* Fixes for review feedback.
* Change test style.
* Style fixes for hound.
Handle the case of async_render_with_possible_json_value's value argument
being something other than a string. This can happen, e.g., when using the
SQL sensor to extract a datetime column such as last_changed and also using
its value_template to convert that datetime to another format. This was
causing a TypeError from json.loads, but async_render_with_possible_json_value
was only catching ValueError's.
Handle the case of async_render_with_possible_json_value's value argument
being something other than a string. This can happen, e.g., when using the
SQL sensor to extract a datetime column such as last_changed and also using
its value_template to convert that datetime to another format. This was
causing a TypeError from json.loads, but async_render_with_possible_json_value
was only catching ValueError's.
* Add binary sensor for Lutron RadioRA2 keypad buttons
Allow automations to be triggered from RadioRA2 keypads by exposing
each button as a binary sensor.
* Remove binary sensor component; fire events directly instead.
* Address comments from code review
* Added relay ports to LCN lights platform
* Exchanged validation for ports with uppercase validator. Makes interfacing with pypck enums much more simple.
* Removed supported_features property as it is correctly inherited from parent
* Removed type annotations.
* Added Search Configuration to IMAP Sensor
The IMAP sensor currently only counts unread emails in a folder. By exposing the IMAP search parameter, the sensor can be used to count other results:
- All emails in an inbox
- Emails sent from an address
- Emails matching a subject
- Other advanced searches, especially with vendor-specific extensions. Gmail in particular supports X-GM-RAW, which lets you use any Gmail search directly ("emails with X label older than 14 days with", etc)
For my use case, I just wanted total emails in a folder, to show an "X/Y" counter for total/unread. I started work on a one-off script to throw the data in, but figured I'd try to extend Home Assistant more directly, especially since this IMAP sensor correctly handles servers that push data. This is my first Home Assistant contribution, so apologies in advance if something is out of place! It's a pretty minimal modification.
* Added Server Response Checking
Looks like no library exception is thrown, so check for response text before parsing out results (previous code just counts spaces, so an error actually returns a state value of 4).
* IMAP Warning -> Error, Count Initializes to None
IMAP search response parsing throws an error instead of a warning.
Email count initializes as None instead 0.
Email count is untouched in case of failure to parse response (i.e. if server is temporarily down or throwing errors, or maybe due to user updating their authentication/login/etc).
Fixed line length on error so it fits under 80 characters.
* Fixed Indent on Logger Error
Sorry about the churn! Python is pretty far from my daily-use language. (I did run this one through pep8, at least)
* Use local_ip from config to discover IGD device
In case of multi-homed server UPNP discovery finds IGD device on some "default" interface. WIth this modification discovery will be performed from 'local_ip'.
* Update device.py
* Changed version of async_upnp_client in requirements
* Used aysnc_upnp_client==0.14.0
* Changed requirement to async_upnp_client==0.14.0.dev0
* Changed requirement to async_upnp_client==0.14.0.dev0
* Changed requirement to async_upnp_client==0.14.0.dev0
* Fixed code style
* Fixed code style
* Changed version of async_upnp_client in requerements
* Changed version of async_upnp_client in requirements
* Regenerated requirements (new async_upnp_client)
* Regenerated requirements (new async_upnp_client)
* Changed requirement to async_upnp_client=0.14.1
* Changed requirement to async_upnp_client=0.14.1
* Updated requirements
* Updated requirements.txt
* Corrected requirements
* Corrected import of DeviceState
* Constants changed according new async_upnp_client
* Upgraded for async_upnp_client==0.14.2
Calling clear all is enough to turn off the light. Calling the color
command makes the light no longer function until clear all is called
again. The component calls clear all beforing turning it on which is
why it works through home assistant. However if you try to control the
light via the hyperion app or through kodi after it has been turned off
via home assistant it will not function until you call clear all again.
* Switch locative to use the webhook component
* Lint
* Remove dead test code
* Use voluptuous to validate the webhook schema
* Validate test mode schema as well
* Lint
* Remove allow_extra
* Return web.Response correctly
* #20043: Remove superfluous dict in WEBHOOK_SCHEMA validation
The previous symbol used for degrees was U+00BA, the "Masculine Ordinal Indicator". This patch changes the symbol to U+00B0, "Degree Sign", to match the rest of the Home Assistant system.
* Update requirements
Updated requirements
* Add attributes
Add firmware and config version attributes
* Small bump for aioharmony
Small version bump increase for aioharmony
* Fix requirements file
For some reason aioharmony ended up in there as a duplicate. Fixed it.
* Fix for send command with named device
* Update requirements to get reconnect fix
* Set aioharmony version to 0.1.4
Version 0.1.4 has additional small fixes.
* Keep trying to connect on startup
Keep trying to connect to the HUB on startup
* Revert rebase changes
Revert some changes that should have been reverted back as part of rebase.
* PlatformNotReady if unable to connect on startup
Will call PlatformNotReady if unable to connect to Hub on startup
* Increase aioharmony requirement to 0.1.5
Increase aioharmony requirement to 0.1.5
* Register callbacks when entity added to HASS
Register the callbacks only once the entity has been added to HASS instead of during setup of platform.
* Removed debug log in __init__
Removed debug log in __init__
Set color only if light supports color mode.
Set color temp only light supports color temp.
Update entity's brightness only if Zigbee command to set the brightness
was sent successfuly.
* Add notify.html5_dismiss service
* fix test
* add can_dismiss
* fix service data payload
* fix hasattr -> getattr
* fixes
* move dismiss service to html5
* fix services.yaml
* fix line to long
* Add gamut capability to color util
* Include gamut in hue_test
* Improve Philips Hue color conversion
* correct import for new location hue.light
* include file changes between PR's
* update aiohue version
* update aiohue version
* update aiohue version
* fix hue_test
Now Idea why it failed compared to the previous time
* Include gamut in hue_test
* fix hue_test
* Try to test hue gamut conversion
supply a color that is well outside the color gamut of the light, and see if the response is correctly converted to within the reach of the light.
* switch from gamut A to gamut B for the tests.
* remove white space in blanck line
* Fix gamut hue test
* Add Gamut tests for the util.color
* fix hue gamut test
* fix hue gamut test
* Improve Philips Hue color conversion
* fix for #19954, discovered tellsticks shows up to be configured
* fix for #19954, authentication issues
* updated tests
* move I/O to executer thread pool
* Apply suggestions from code review
Co-Authored-By: fredrike <fredrik.e@gmail.com>
* Adjust OpenUV integration for upcoming API limit changes
* Added fix for "Invalid API Key"
* Bugfix
* Add initial nighttime check
* Move from polling to a service-based model
* Fixed test
* Removed unnecessary scan interval
* Fixed test
* Moving test imports
* Member comments
* Hound
* Removed unused import
* Change return text code for alarmdotcom
* Change return text code for ialarm
* Change return text code for IFTTT
* Change return text code for manual alarm panel
* Change return text code for manual MQTT alarm
* Change return text code for MQTT
* Change return text code for Simplisafe
* Added support for HomeKit Controller covers
* removed copied code
* more linting fixes
* added device type to service info
* added checks for value in characteristics
* added state stopped parsing
* removed logger
* removed unused args
* fixed inits
* removed unused imports
* fixed lint issues
* fixed lint issues
* remove state_unknown
* remove validation of kwargs in homekit controller covers
* guarantee tilt position is not none before setting
The battery level sensor is broken because the logic for determining
if the battery is charged accessed the wrong variable. This one
character fix makes it work again.
* Update requirements
Updated requirements
* Add attributes
Add firmware and config version attributes
* Small bump for aioharmony
Small version bump increase for aioharmony
* Order ATTR constants
* Add the service
Add service change_channel
* Fix requirements file
For some reason aioharmony ended up in there as a duplicate. Fixed it.
* Updates based on review
* Upgrade greeneye_monitor to 1.0
This is a breaking change; it causes the `serial_number` field in
configuration to be treated as the full 8-digit serial number rather
than the last 5 digits as was previously done, which results in the unique
identifiers for the sensors being different. (Fixing them up in
`config/.storage/core.entity_registry` before rebooting into the updated
version seems to prevent any weirdness.)
The last-5-digits behavior was a result of me misunderstanding the packet
format docs and not realizing that the true serial number was split across
two fields. In addition to being confusing (see
https://community.home-assistant.io/t/brultech-greeneye-issues/86852), it
was technically incorrect. The `greeneye_monitor` platform was just introduced
in 0.82, so it seems like the kind of thing that's best to fix now while
adoption is relatively low rather than later when somebody runs into it
as more than just a point of confusion.
* Switch to 8-character string
* Coerce to int
* Remove now-unnecessary cast
* Update doorbird events to include URLs on event_data as shown in documentation.
(cherry picked from commit 2405bc96fe)
* Format timestamp
* Update timestamp
* Lint
* catch TypeError's in addition to ValueError's in response from unifi access point
sometimes unifi's access point returns incomplete json which results in a TypeError because ssid_table is None
* fix syntax error
* Preparing for transition to config flow
Added multiple gateway support
Reworked parameter flow to platforms to enable multiple controllers
Breaking change to config, now a list of gateways is expected instead of a single config
* Updated coveragerc
Added new location of fibaro component
* Fixes based on code review and extended logging
Addressed issues raised by code review
Added extended debug logging to get better reports from users if the device type mapping is not perfect
* Changhes based on code review
Changes to how configuration is read and schemas
Fix to device type mapping logic
* simplified reading config
* oops
oops
* grr
grr
* change based on code review
* changes based on code review
changes based on code review
This lane ended up calling vars(transport) on an asyncio Transport
object. In a standard setup, that's a python object provided by syncio,
and it works. Home Assistant injects uvloop into asyncio, which makes this
a Python C object, and those don't support vars().
* Add mysensors state update delay
* Schedule state update after delay to avoid updating state multiple
times during the same short timespan.
* Code review
* reconfigure zha device service
add log line to reconfigure service for consistency
* add entity functions to support new services
* added new services and web socket api and split them into their own module
* support manufacturer code
logging to debug
get safe value for manufacturer
* update services.yaml
* add comma back
* update coveragerc
* remove blank line
* fix type
* api cleanup - review comments
* move static method to helpers - review comment
* convert reconfigure service to websocket command - review comment
* change path
* fix attribute
* Change state() to try/except to catch KeyError
When Tautulli is up but Plex is down, the API doesn't return a 'stream_count' key. This causes calls to state() to raise KeyError exceptions. The new code includes a try/except to catch the KeyError and return -1 signifying that the Tautulli API cannot talk to Plex
* Update tautulli.py
If a network_key is not configuired, the following error is logged:
TypeError: expected bytes, NoneType found
Exception ignored in: 'libopenzwave.str_to_cppstr'
TypeError: expected bytes, NoneType found
We don't need to set the key if it's None, let's skip in that case.
* fix cla-bot
* fix bug introduced after linter complaint
* merge two components into one
support telnet port configuration
* remove obsolete nadtcp component. nad component must be used instead.
* back to correct nad_receiver version
* Initial pass of cleanup for shabbat_times
* Switch to async defs
* First pass of unit tests + fixture data
* Completion of first round of unit tests, 100% passing
* Unit tests for state restoring
* Style fixes
* More style fixes
* Lint fix
* Add upcoming candelighting and havdalah sensors
* Add unit tests, remove havdalah offset
* More unit tests + small bugfix for weekly_portion
* Add issur melacha sensor
* Remove old shabbat_times work-in-progress files
* Bump required version of hdate
* Add havdalah offset config parameter
* Bump hdate version required
* Pin hdate requirement
* Lint fixes
* Changes based on review + API changes for hdate 0.8.7
* Add three-day holiday unit tests
* Remove debugging line
* Add missing docstring
* Fix doc lint comment
* Update googlehome.py
Added name from bluetooth device to attributes
* Update homeassistant/components/device_tracker/googlehome.py
Check if key exists before assigning name
Co-Authored-By: cliffordwhansen <clifford@nighthawk.co.za>
* Dont load if not in config
* Adding config options for sensors
* Fixed mistake with iterating over wrong things
* lint
* lint
* Setting None state
* Using .get when fetching optional config
The mychevy service is notoriously unreliable, often only having 50% uptime.
Previously a persistent notification was emitted when the platform errored out.
Users have found that is happening too often, so instead log an error when
this happens instead.
The accent must be removed (Léa -> Lea) just like the other voices (eg. Celine, Peneloppe) to match with Amazon voices ID.
Fun fact: there is no alternative name for "Léa" on Amazon Polly documentation: https://docs.aws.amazon.com/en_us/polly/latest/dg/voicelist.html, probably just omitted.
Mitigation: alternative voices (with and without accents) can be put into `SUPPORTED_VOICES`, both `voice.get('Id')` and `voice.get('Name')` must be then checked for a match.
This fixes#19802.
Thank you 👍
* added zwave lock state from alarm type workaround
* fixed test indents
* more linting fixes
* one more linting fix
* simplified logic
* fixed lint new lines
* fixed merge conflict issue
* fixed definition of _alarm_type_workaround in zwave lock
* added support for homekit security systems
* fixed linting issues
* fixed indentation issues
* simplifired logic on homekit_controller alarm controller panel
* cleaned up battery level const on homekit controller alarm control panel
* Add optional country parameter
mychevy 1.2.0 provides the ability to work in canada as well as the us
(there are different service urls for each region). This creates a new
config option to enable it.
* Update mychevy.py
* Moved component to a package and added a services.yaml file.
* Fixing coverage issue and grammar issue on the services.yaml file.
* Fixed typo in the services.yaml file.
* Alexa: implement auth and proactive ChangeReport messages
* refactor after rebase from dev to use the new AlexaDirective and Response classes
* move to aiohttp; cleanup
* better function name
* move endpoint to config
* allow passing token function
* remove uneeded state get
* use iterable directly
Co-Authored-By: abmantis <abmantis@users.noreply.github.com>
* missing delete from previous commit
* checks for when user has no auth config
* update cloud component
* PR suggestions
* string lint
* Revert "string lint"
This reverts commit a05a1f134c9ebc7a6e67c093009744f142256365.
* linters are now happier
* more happy linters
* use internal date parser; improve json response handling
* remove unused import
* use await instead of async_add_job
* protect access token update method
* add test_report_state
* line too long
* add docstring
* Update test_smart_home.py
* test accept grant api
* init prefs if None
* add tests for auth and token requests
* replace global with hass.data
* doc lint
* awair: do not choke on no data
The awair API returns an empty response for various air data queries
when a device is offline. The underlying library (python_awair) does
not directly inform us that a device is offline, since we really can
only infer it from an empty response - there is no online/offline
indicator in the graphql API.
So - we should just ensure that we do not attempt to update device state
from an empty response. This ensures that the platform does not crash
when starting up with offline devices, and also ensures that the
platform is marked unavailable once devices go offline.
* Fix typo
Further proof that coding after 10pm is rolling the dice.
* Added a new service for calling custom PGM functions.
* Fixed lint issues
* Fixed lint issues reported by travis-CI
* Fixed style issue.
* Complete rename of attribute.
* Add ness alarm control panel using nessclient
* indenting
* .
* Remove availability functionality, will improve and add back in another PR
* Use call_count
* lint
* lint
* Review changes
* Lint
* Bump nessclient to 0.9.8
* Bump nessclient to 0.9.9
* Remove from .coveragerc
* some minor tests refactor
* async/await refactor
* toggle have not brightness
* test for race condition in unknown device
* test for 'no_command' and 'not_connected'
* test for race condition in unknown device
* sensor events are handled in sensor devices, RflinkDevice handle
command events
* test race conditions & bogus entity remove
* two more tests
* Test race condition for unknown components
* Test cleanup for `commands events` and `sensor events`
* ADS light breaks if optional parameter adsvar_brightness is not set
Just a small change to prevent exception if optional parameter adsvar_brightness is not set
* corrected blank lines
* Use aioharmony for async
Use aioharmony to interact with Harmony hub. Due to this following improvements:
-) Setting of available state for entity
-) Automatic config update if configuration changes (including updating file containing config)
-) Allow using of device name instead of number
-) When sending command with repeat, nothing else will be able to put a IR command in between
* Requirements updated
* Version update for fix
* Mainly cleanup
* Update requirements
Updated requirements
* Fixed lint issue
* Small bump for aioharmony
Small version bump increase for aioharmony
* Updated based on review
* added components and requirement
* change config to allow the definition of multiple switches without redefining the gateway
* dont assume false state
fix default value
* added exclude to coveragerc
* sorted imports
* review fixes
* review fixes
* bugfix
review fixes
* review fix
* Updated version to 0.9.3
Adjusted climate component due to changes in the underlying library.
* Climate.KNX: fix updating view when operation mode is changed due to refactoring
* Addressed review comments
* Added validation for config.
Rewrote the tests a bit
the 'wait for the timer to finish' part of the test is now it's own test.
The rest is a sequence of fire/assert. Which i rewrote to a loop to
reduce the amount of duplicate code
* Initial commit of LCN component and light platform
* Corrected pre-review comments
* Fixed dimming behaviour in combination with transitions for lcn lights
* Removed unused logger
* Combined __init__.py and core.py into lcn.py component. Bumped to pypck==0.5.6
* Fixed .coveragerc
* Bumped to pypck==0.5.7
* Bump to pypck==0.5.8
* Fixed requirements_all.txt
* Moved unique generation of connection names to config schema's validator
* Minor changes due to review comments.
Bump to pypck==0.5.9.
* Address_connection is passed into LcnDevice
* Set should_poll property on LcnDevice to return False
* Moved platform config validation to component. Load platform using discovery helper
* Furtehr changes due to the review
* Light configuration is set required as there are no other platforms up to now
* Fix shuffle/random status
MPD always shows true for shuffle. For some reason casting the 0 or 1 as a boolean does not work. Now returns 'true' or 'false' based on the value of 'random'.
* Update homeassistant/components/media_player/mpd.py
Change to correct way of returning shuffle boolean. 'random' needs to be cast as an integer before being cast as a boolean.
Co-Authored-By: apetrycki <34962392+apetrycki@users.noreply.github.com>
* Remove incorrect string code
Original fix method returns a string instead of a boolean. Removed in favor of MartinHjelmare's method.
* Update pylaunches dependency to 0.2.0
Update launch library to use pylaunches 0.2.0 as a dependency. launch_time sensor attribute will now be passed in ISO format, allowing for templating/easier automating with this attribute.
* Update pylaunches to 0.2.0
* Bluetooth tracker: add device_id configuration option
Makes the device id that bluetooth tracker is using configurable instead
of using the first available device.
* Remove unncessary default in config.get
It is already handled in the configuration validation.
* Improve Lutron RadioRA2 support, adding switch and scene support.
- Update the version of pylutron to 0.2 which has various bug fixes.
- Switch to pylutron's per-device subscribe
- Add switch support, and configure any non-dimmable output as a switch.
- Add scene support, using any configured keypad button with a corresponding LED as a scene.
* Fixes for comments in pull request home-assistant/home-assistant#18330
* More fixes for comments in pull request #18330
* Remove unused imports
* Cleanup in docstrings for Lutron scene support.
* add hub- and device-info
* attempt to make I/O outside event loop
* add_executer_job
* coroutines
* async_get_hubs
Co-Authored-By: fredrike <fredrik.e@gmail.com>
* asyncio fixes
* do device_info IO when device is discovered
* it's called async_add_executor_job
* nicer unique_id
* add comment
* it's called `async_add_executor_job`
* hub always contains 'name'
* await each new device
* add comment to why gather is bad
The subnode id for the motion enable node of Insteon 2844-222 motion sensor II on the ISY is 'D'. The binary_sensory/isy994.py assumed this value will be an integer rather than hex and fails. Changing line 55 to subnode_id = int(node.nid[-1], 16) fixes the issue.
* Remove timer logic from sensor class
Proposed fix for issue #10500
* Updating the tests to remove timer logic
* Removing unecessary dependancy
* Fixing requested changes
* Commit to try to fix the CLA ?
* Added Lutron Homeworks components.
* Made all requested changes other than config.
* Removed commented out code.
* Removed binary_sensor.
Implemented new signal/events for button presses.
Cleaned up some data passing.
* Fixed minor formatting.
* Got rid of unused config stuff.
Reordered imports.
* Missed removing vol, and forgot an extra line.
* More requested changes
Removed HomeworksController, it wasn't needed.
* Removed stale code.
* Imperative doc change.
* Disable creating port mappings from UI, add discovery from component
* Remove unused constant
* Upgrade to async_upnp_client==0.13.6 and use manufacturer from device
* Upgrade to async_upnp_client==0.13.7
In HomeAssistant 0.84.3, the range filter would not work due to the unexpected precision filter parameter.
The default range scheme has been edited to remove the unexpected precision parameter.
Verified and tested.
* added new sensor platform to expose Islamic prayer times
* added new sensor platform to expose Islamic prayer times
* updated tests according to feedback
* make prayer_times_info a public attribute
* remove stale comments
* * Rename ocr.png to ssocr-(entity_name).png to allow multiple seven_segments instances to run without overwrting each other's data.
* Update seven_segments.py
* Update seven_segments.py
* Use string formatting
* Add Mythic Beasts DNSAPI Component
* Added timeout, and tests for exceptions while updating
* Move API to external module
* Move mbddns import into function
* Updated tests to mock out mbddns library
* Implement async_configure() method for ZHA entities.
Allow attribute reporting configuration to be stored as dict of zha
entity.
* Update ZHA platform to use new attribute reporting configuration.
* Use const declaration instead of magic numbers.
* Add support for manufacturer_id in ZCL attribute reporting configuration.
* Refactor async_configure() method.
Rename attribute reporting dict to zcl_reporting_config.
* Updates to Harmony for web sockets
Updates to harmony to use web sockets with async
* Lint
* Small fixes
* Fix send_command
Continued improvements:
-) Fixed send_command
-) Get HUB configuration during update in case it was not retrieved earlier (i.e. HUB unavailable)
* Further improvements
Completely removed dependency on __main__ for pyharmony, instead everything is now done from the HarmonyClient class.
Writing out Harmony configuration file as a JSON file.
Using same functionality to determine if activity provided is an ID or name for device, allowing send_command to receive a device ID or device name.
* Point requirements to updated pyharmony repo
Updated REQUIREMENTS to point to repository containing the updates for pyharmony.
* lint
lint
* Small fix for device and activity ID
Small fix in checking if provided device or activity ID is valid.
* Pin package version
* No I/O in event loop
* Point at HA fork with correct version bump
* Fix req
* Updates to Harmony for web sockets
Updates to harmony to use web sockets with async
* Lint
* Small fixes
* Fix send_command
Continued improvements:
-) Fixed send_command
-) Get HUB configuration during update in case it was not retrieved earlier (i.e. HUB unavailable)
* Further improvements
Completely removed dependency on __main__ for pyharmony, instead everything is now done from the HarmonyClient class.
Writing out Harmony configuration file as a JSON file.
Using same functionality to determine if activity provided is an ID or name for device, allowing send_command to receive a device ID or device name.
* Point requirements to updated pyharmony repo
Updated REQUIREMENTS to point to repository containing the updates for pyharmony.
* lint
lint
* Small fix for device and activity ID
Small fix in checking if provided device or activity ID is valid.
* Pin package version
* No I/O in event loop
* Point at HA fork with correct version bump
* Fix req
* Adding sensor for SolarEdge Monitoring API support
* Adding support for Rova garbage calendar
* Update solaredge to pass lint and flake8
* Added solaredge.py to .coveragerc
* Added extend for Voluptuous schema
* Fixed styling issues
* Removed rova.py for later feature
* Replaced API requests with python pip package
* Fixed styling issues
* Updated to new async syntax
Added async_update to sensor class
Added Throttle to SolarEdge data update
Added CONF_NAME to platform settings
Added credentials check for api
Minor code style changes
* Remove unnecessary debug logging
* Updated dict keys
* Added SCAN_INTERVAL
Updated platform setup
* Remove DOMAIN variable
Correct import for PLATFORM_SCHEMA
* Change some debug to error messages
Correct return statements
Remove initial update call
* Fix pylint and flake8 errors
* WeMo - Various fixes and improvements
Various fixes & improvements to the WeMo components, including:
-- Fixes to rediscovery
-- New reset filter service for the WeMo Humidifier
-- Switched the remainder of the WeMo components to async IO
-- Removed any remaining IO in entity properties and moved them to the polling/subscription update process
* WeMo - Fix pywemo version and remove test code from WeMo fan component
* WeMo Humidifier - Add services.yaml entry for reset filter life service
* WeMo - Update binary_sensor component to use asyncio
* WeMo - Add available property to binary_sensor component
* WeMo - Fixed line length issue
* WeMo - Fix issue with discovering the same device multiple times
* WeMo - Fix for the fix for discovering devices multiple times
* WeMo - Fix long lines
* WeMo - Fixes from code review
* WeMo - Breaking Change - entity_ids is now required on wemo_set_humidity
* WeMo - Code review fixes
* WeMo - Code review fixes
* WeMo - Code review fixes
* complete(?)
* fixed linting
* update requirements
* added to coveragerc
* fixed linting
* added ability to set custom name
* fixed linting
* added filter
* spacing
* Added list of possible fuels
* Minor updates
In HomeAssistant 0.84.3, the range filter would not work due to the unexpected precision filter parameter.
The default range scheme has been edited to remove the unexpected precision parameter.
Verified and tested.
* Adjusted api for new library version.
* Added support for output monitoring. Added initial status check for the alarm.
* Added default values to the configuration as per review notes.
* 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
* 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 InsteonEntity name to be combo of description and address.
ie "LampLinc Dimmer 26453a" or "Keypad Dimmer 291abb_2"
Using a centralized network name
* Updated the name to have a more contextual references for device
functions then just the group id.
* Cleanup for hound
* Removed the _generate_network_address function. Not used anymore
* Cleanup for lint
* clean for hound
* Moved descriptor mapper to be a class variable of the InsteonEntity in order to fix lib loading issue for lint
* Well, moved DescriptorMapper instance to a function variable now...
* fix hound
* Lint Cleanup
* Clean up docstrings
* Simplify Label lookup based on state name
* Add custom component to core
* Add pyrail to reqs
* Format & lint
* Sort nmbs.py into place on coveragerc
* Only set up station live if provided
* Only set up sensor if config is provided
* Fix line too long linting error
* PR Remarks
* Add docstrings
* Fix hound line to long error
* Fix quotes
* Rebase coveragerc
* PR Review
* Init empty attrs
* Dont include delay if there is none
* PR review
* Safer check
* Rebase reqs
* Generate req
* Update homeassistant/components/sensor/nmbs.py
Co-Authored-By: thibmaek <thibault.maekelbergh@iCloud.com>
* PR remarks
* Update synology_chat.py
* Added verify_ssl option to notify.synology_chat
Python requests will verify ssl by default, this configuration options allows the user to specify if they want to verify ssl or not. Non breaking change, default is True - do verify ssl.
* Feature: support for the HK AVR
* Remove testcode
* Feature: support for the HK AVR
* Remove testcode
* Added checklist
* Review fixes whitespaces
* Lint fixes
* Review fixes, add current source
* Remove unused imports
* Review fixes; State constants, dict[key]
* More review fixes, Unknown state and Sources
* Review fix; rename devices to entities
* Add websocket-based non-polling variant for songpal
* linting fixes
* changes based on Martin's feedback
* Fix linting
* add backoff timer for reconnects, fix variable naming (I thought that this wouldn't matter for internals..)
* Remove poll configuration variable
* bump the version just to be sure, the previous release lacked a version file (required for setup.py)
* event foundation
* implement quirks
* lock zha-quirks version
* allow quirks handling to be toggled on and off
* revert event commit
* disable warning
* update requirements_all
* Remove fix in favor of #19141#19141 should be what ultimately corrects this issue.
* review comment
* Enable alarmdecoder to see open/close state of bypassed zones when armed
The alarmdecoder component already reported RF state bits as attributes. If the user knows which loop is set up for the zone in the alarm panel, they can use that information to tell whether the zone is open or closed even when the system is armed by monitoring the appropriate attribute. That’s awkward, so this commit enables the user to simply configure which loop is used and the component will update the state itself.
* Simplify, also it's more correct to treat it as a state change rather than a
permanent state, since it's possible the decoder might miss some events.
* Remove relative import
* Add MVP
* Remove unused code
* Fix
* Add force back
* Fix tests
* Storage keyed
* Error out when storage doesnt find config
* Use old load_yaml
* Set config for panel correct
* Use instance cache var
* Make config option
* Add MVP
* Remove unused code
* Fix
* Add force back
* Fix tests
* Storage keyed
* Error out when storage doesnt find config
* Use old load_yaml
* Set config for panel correct
* Use instance cache var
* Make config option
This works by adding `?check_same_thread=False` to the sqlite
connection string, as suggested by robbiet480@.
It upgrades pygtfs from homeassitant's forked 0.1.3 version to 0.1.5.
Fixes#15725
* radiotherm: bump version to 2.0.0
* radiotherm: change handling of transient errors from tstat
Radiotherm 2.0.0 now throws an exception when a transient error is
detected, instead of returning -1 for the field where the error was
detected. This change supports handling the exception.
* Fix google assistant request sync service call
* More descriptive services.yaml
* Update services.yaml
* Update __init__.py
* Update request sync service call timeout
Change from 5s to 15s to allow Google to respond. 5s was too short. The service would sync but the service call would time out and throw the error.
* Add Philips Moonlight Bedside Lamp support
* Update comment
* Make hound happy
* Wrap the call that could raise the exception only
* Remote blank line
* Use updated python-miio API
* 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
* Automatically detect if ipv4/ipv6 is used for cert_expiry
Fixes#18818
Python sockets use ipv4 per default. If the domain which should be checked
only has an ipv6 record, socket creation errors out with
`[Errno -2] Name or service not known`
This fix tries to guess the protocol family and creates the socket
with the correct family type
* Fix line length violation
* Fix unavailable
Change setting to unavailable when getting request exceptions only after 1 minute has past since 1st occurrence.
* Put common code in _check_state_available
Put common code to determine if available should be set to False in method _check_state_available
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
@@ -33,8 +33,6 @@ of a component, check the `Home Assistant help section <https://home-assistant.i
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.