* Add ZHA core typing helper.
* Add aux_channels to ZHA rule matching.
* Add match rule claim_channels() method.
* Expose underlying zigpy device.
* Not sure we need this one.
* Move "base" channels.
* Framework for channel discovery.
* Make DEVICE_CLASS and REMOTE_DEVICE_TYPE default dicts.
* Remove attribute reporting configuration registry.
* Refactor channels.
- Refactor zha events
- Use compound IDs and unique_ids
- Refactor signal dispatching on attribute updates
* Use unique id compatible with entities unique ids.
* Refactor ZHA Entity registry.
Let match rule to check for the match.
* Refactor discovery to use new channels.
* Cleanup ZDO channel.
Remove unused zha store call.
* Handle channel configuration and initialization.
* Refactor ZHA Device to use new channels.
* Refactor ZHA Gateway to use new discovery framework.
Use hass.data for entity info intermediate store.
* Don't keep entities in hass.data.
* ZHA gateway new discovery framework.
* Refactor ZHA platform loading.
* Don't update ZHA entities, when restoring from zigpy.
* ZHA entity discover tests.
* Add AnalogInput sensor.
* Remove 0xFC02 based entity from Keen smart vents.
* Clean up IAS channels.
* Refactor entity restoration.
* Fix lumi.router entities name.
* Rename EndpointsChannel to ChannelPool.
* Make Channels.pools a list.
* Fix cover test.
* Fix FakeDevice class.
* Fix device actions.
* Fix channels typing.
* Revert update_before_add=False
* Refactor channel class matching.
* Use a helper function for adding entities.
* Make Pylint happy.
* Rebase cleanup.
* Update coverage for ZHA device type overrides.
* Use cluster_id for single output cluster registry.
* Remove ZHA typing from coverage.
* Fix tests.
* Address comments.
* Address comments.
* fixes per Martin Hjelmare
* pylint fix
* final fixes per request
* fixed unit tests for new config flow
* Added unit-tests to increase coverage. at 97% now
* Added unit tests for 100% coverage of component
* removed configured_host function and updated config_flow unit tests
* added a pylint directive since it tells me by mistake DOMAIN is not used
* fixed path (removed __init__)
* Update homeassistant/components/dynalite/light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/dynalite/light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* fixed the test as we moved from schedule_update_... to async_schedule
* Update homeassistant/components/dynalite/bridge.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* removed context from config_flow
changed test_init to use the core methods
* moved test_light to also use the core interfaces
* moved to config_entries.async_unload
* additional fixes for the tests
* pylint fix and removed unnecessary code
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* added break in loop
* removed last mock_coro reference
pylint fix
* added coverage for try_connect
* added check for a successful connection before bridge.async_setup succeeds
also added a "nowait" config option (default False) that avoids this check
* changed log level
* fixed accidental chmod I did
* fixed accidental change
* not storing config in bridge
* not patching asyncio
* moved CONFIG_SCHEMA into component
* moved all logs to start capitalized (and revised some of them)
* moved test_config_flow to not patch the DynaliteBridge
* also took DynaliteBridge patching out of test_init
* removed NO_WAIT
* fixes to SCHEMA
* changed _ in multi-word CONF
moved imports to component const.py
* removed tries
* removed redundant tests
* fixed some small change i broke in the library. only version update
* fixed rewuirements
* Update tests/components/dynalite/test_config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_light.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/dynalite/test_config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* removed HIDDEN_ENTITY
removed hass in test fixture
* black fixes
* removed final piece of hidden_entity from light
fix in the library
updated config flow so if the entry is already set but with a different config, calls async_update_entry
* removed DATA_CONFIGS - no longer necessary
* pylint fixes
* added coverage
* use abort in config_flow
* test update
* removed logs
* test that update actually updates the entry
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Significantly reduce code in august integration
* Activity updates can now be processed by py-august
this allows us to eliminate the activity sync
code for the door sensors and locks
* Lock and door state can now be consumed from
the lock detail api which allows us to
remove the status call apis and reduce
the number of API calls to august
* Refactor the testing method for locks (part #1)
* Update homeassistant/components/august/binary_sensor.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Switch to asynctest instead of unittest for mock.patch
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add support for MQTT device triggers
* Fix test, tweaks
* Improve test coverage
* Address review comments, improve tests
* Tidy up exception handling
* Fix abbreviations
* Rewrite to handle update of attached triggers
* Update abbreviation test
* Refactor according to review comments
* Refactor according to review comments
* Improve trigger removal
* Further refactoring
* Audit state handling of august bridges and sensors
This addresses issue #29980
* Prevent setting up august locks that do not have a bridge as they will never work
* Prevent locks showing available when their bridge is offline
* Prevent door sensors from showing available when their bridge is offline
* Prevent creating door sensors for locks that do not have them
* Prevent doorbells showing unavailable when they are in standby mode
* Set SCAN_INTERVAL for binary_sensors to 5 seconds as
data comes in from the activity endpoint more frequently
* Update homeassistant/components/august/__init__.py
raise if the detail is missing when checking doorsense
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Handle another place where the lock detail could not exist
* Address review comments
* Handle lock detail update failing and add test
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* add oauth functionality and additional attributes
* Add tests WIP
* Make mocks work the correct way
* Use CONF_TOKEN constant for config
* Remove twitch from .coveragerc
* Update homeassistant/components/twitch/sensor.py
Lets be consistent
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Computes the features of a hue group as the union of the features of the bulbs in the group
* Moved create item to a function
* Added test for hue group features
* Adjust tests after speed up to restore coverage for HomematicIP Cloud
* Fix test data
* Fixes after review
* remove duplicate cade
* remove service marker
* Support XML conversion for RESTful sensors
Many devices continue to use XML for RESTful
APIs. Interfacing with these APIs requires custom
integrations or command line fork()/exec() overhead
which many of these devices can work with as if
they were JSON using xmltojson via this spec:
https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
This change implements converting XML output to
JSON via xmltojson so it can work with the existing
rest sensor component. As the attributes that
usually need to be scraped are deeper in the document
support for passing in a template to find the
JSON attributes that have been added. JSON APIs that
do not have their attributes at the top level
can also benefit from this change.
* Auto convert xml, change out the template for jsonpath
* Address review items and potentially unexpected normalize behavior with jsonpath
* Revert "Address review items and potentially unexpected normalize behavior with jsonpath"
This reverts commit fe9e179092.
* json_dict[0] turned out to be needed
* Fix CalDAV parsing of recurring events
Some CaDAV servers (see: SOGo) return the original event that contains
the recurrence rules. The CalDAV calendar component sorts and filters
events based on their start and end dates, and was failing to properly
show recurring events based on these recurrence rules.
This this change checks if an event has recurrence rules and changes the
start/end dates of the event to today if the event is set to occur
today. This allows the rest of the component logic to function properly.
* Use date from nextmost occurence
* Adding unit tests
* Add endless event unit test
* Create new vevent for each event recurrence today
* Remove redundant unit test
* Add timezone to events that have none
Python cannot compare them otherwise.
* Simplify code, add comments & guard clause
* Add test for recurring all day event
* Account for all-day events
* Remove redundant code
* Remove redundant code
* Remove unnecessary deepcopy
* Add hourly recurring tests
* Add tests for hourly repeating event
* Fix unit test
* Use event.copy()
* Add support for displaying Daf Yomi
* Ran black --fast
* Added docstring to get_daf
* Further lint fixes
* Remove unnecessary else
* clarify code
* Use fstrings
* pull daf yomi from hdate
* Update manifest version for daf_yomi support
* fix variable usage
* Update requirements
* Also pass in today's date as well
* Rename date variable to daytime_date
* Add tests for daf yomi sensor
* Update stale test IDs
* update ipma component for pyipma 2.0
* fix wind speed; refactor forecast
* update requirements*.txt
* fix tests; update CODEOWNERS; update pyipma to 2.0.1
* minor changes as suggested in PR
* make lint happy
* fix mocking coroutines
* restore old unique id
* fix station lat/lon; update pyipma version
* add hourly forecast option to IPMA
* add forecast tests
* use for instead of lambda