* 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