* 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
* 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
* 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.
* 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
* 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
* 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
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
* 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.
* 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`
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
* 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 ?
* 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
* 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
* 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
* 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
* 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
* 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
* remove the need to have query feature support
Some InfluxDB servers don't have /query support feature but are still valid servers for storing data.
Usually those servers are proxies to others timeseries databases.
The change proposes to still validate the configuration but with less requirements on the server side.
* `.query` call is replaced by `.write_points`
* no more query call in the influxdb component. remove test
* reset mock after the setup and before the test
* remove unused import
* reset mock stats after component setup
* Add new events for automation trigger and script run, fix context for image processing, add tests to ensure same context
* remove custom logbook entry for automation and add new automation event to logbook
* code review updates
* Allow verisure locks to be configured with a default code
* linting fix
* PR feedback
* PR feedback - try harder to prevent future typos
A python mock is a magical thing, and will respond to basicaly
any method you call on it. It's somewhat better to assert against
an explicit variable named 'mock', rather than to assert on the
method name you wanted to mock... could prevent a typo from messing up
tests.
* PR feedback: convert tests to integration-style tests
Set up a fake verisure hub, stub out a _lot_ of calls, then test
after platform discovery and service calls.
It should be noted that we're overriding the `update()` calls in
these tests. This was done to prevent even further mocking of
the verisure hub's responses.
Hopefully, this'll be a foundation for people to write more tests.
* more pr feedback