* Enable Flame/Pilot switch
* Enable Flame/Pilot switch
* Update homeassistant/components/intellifire/switch.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/intellifire/switch.py
Thats a great fix!
Co-authored-by: J. Nick Koston <nick@koston.org>
* write not update
* fixed forced upates
* removed data field
* Refactor to support update to backing library
* pre-push-ninja-style
* moving over
* fixed coverage
* removed tuple junk
* re-added description
* Update homeassistant/components/intellifire/translations/en.json
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* adressing PR comments
* actually store generated values
* Update homeassistant/components/intellifire/__init__.py
Way better option!
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add Particulate Matter 2.5 of ZCL concentration clusters to ZHA component
* Fixed black and flake8 test
* New sensors and manufacturer cluster to support IKEA STARKVIND (with quirk)
* Isort and codespell fixes
* Instead using the fan cluster, i've created a Ikea air purifier cluster/channel that supports all sensors and fan modes
* update sensors to support the new ikea_airpurifier channel
* Fix black, flake8, isort
* Mylint/mypy fixes + Use a TypedDict for REPORT_CONFIG in zha #73629
* Last fix for test_fan.py
* fix fan test
Co-authored-by: David F. Mulcahey <david.mulcahey@me.com>
* Make energy value validation a bit less aggressive
Attempt to solve issue 69600 introduced by previous fix for issue
59285.
- Introduce a tolerance factor for energy value validation.
- Only skip update the specific invalid energy entity. An energy entity
with invalid values will now show "State unknown".
* Remove the tolerance factor. Let's just ignore the specific invalid energy entity.
* use new async integration library
* migrate to new async integration library
* updated unit tests
* updated logger
* fix tests and improve test coverage
* fix test
* fix requirements
* time control to fix tests
* Add ability to use user & pw not in stream url
* Increase test coverage to 100%
* Increase test coverage
* Verify that stream source includes user:pass
* Code review: refactor test to use MockConfigEntry
* Code review: Improve test docstring
* Edit comment; retrigger CI.
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
* Moved to AIOAladdinConnect API
* Added callback logic for door status
* close unused connections
* Close connection after verification
* Matched to current version
* Matched __init__.py to current release
* Matched cover.py to existing version
* added missing awaits
* Moved callback
* Bumped AIOAladdinConnect to 0.1.3
* Removed await from callback config
* Finished tests
* Added callback test
* Bumped AIOAladdinConnect to 0.1.4
* Finished tests
* Callback correct call to update HA
* Modified calls to state machine
* Modified update path
* Removed unused status
* Bumped AIOAladdinConnect to 0.1.7
* Revised test_cover cover tests and bumped AIOAladdinConnect to 0.1.10
* Bumped AIOAladdinConnect to 0.1.11
* Bumped AIOAladdinConenct to 0.1.12
* Bumped AIOAladdinConnect to 0.1.13
* Bumped AIOAladdinConnect to 0.1.14
* Added ability to handle multiple doors
* Added timout errors to config flow
* asyncio timout error added to setup retry
* Cleanup added to hass proceedure
* Bumped AIOAladdinConnect to 0.1.16
* Bumped AIOAladdinConnect to 0.1.18
* Bumped AIOAladdinConnect to 0.1.19
* Bumped AIOAladdinConnect to 0.1.20
* Addressed recommended changes: SCAN_INTERVAL and spelling
* Moved to async_get_clientsession and bumped AIOAladdinConnect to 0.1.21
* Missing test for new code structure
* removed extra call to write_ha_state, callback decorator, cleaned up tests
* Update tests/components/aladdin_connect/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Removed extra_attributes.
* Added typing to variable acc
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
List more private and link-local IP networks
The IPv6 link-local network is especially important as without it
local accounts don't work on IPv6-capable networks with no IPv6 DHCP
server.
* Speed up generation of template states
* tweak
* cache
* cache hash
* weaken
* Revert "weaken"
This reverts commit 4856f50080.
* lower cache size as it tends to be the same ones over and over
* lower cache size as it tends to be the same ones over and over
* lower cache size as it tends to be the same ones over and over
* cover
* Update homeassistant/helpers/template.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* id reuse is possible
* account for iterting all sensors
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Initial orjson support take 2
Still need to work out problem building wheels
--
Redux of #72754 / #32153 Now possible since the following is solved:
ijl/orjson#220 (comment)
This implements orjson where we use our default encoder. This does not implement orjson where `ExtendedJSONEncoder` is used as these areas tend to be called far less frequently. If its desired, this could be done in a followup, but it seemed like a case of diminishing returns (except maybe for large diagnostics files, or traces, but those are not expected to be downloaded frequently).
Areas where this makes a perceptible difference:
- Anything that subscribes to entities (Initial subscribe_entities payload)
- Initial download of registries on first connection / restore
- History queries
- Saving states to the database
- Large logbook queries
- Anything that subscribes to events (appdaemon)
Cavets:
orjson supports serializing dataclasses natively (and much faster) which
eliminates the need to implement `as_dict` in many places
when the data is already in a dataclass. This works
well as long as all the data in the dataclass can also
be serialized. I audited all places where we have an `as_dict`
for a dataclass and found only backups needs to be adjusted (support for `Path` needed to be added for backups). I was a little bit worried about `SensorExtraStoredData` with `Decimal` but it all seems to work out from since it converts it before it gets to the json encoding cc @dgomes
If it turns out to be a problem we can disable this
with option |= [orjson.OPT_PASSTHROUGH_DATACLASS](https://github.com/ijl/orjson#opt_passthrough_dataclass) and it
will fallback to `as_dict`
Its quite impressive for history queries
<img width="1271" alt="Screen_Shot_2022-05-30_at_23_46_30" src="https://user-images.githubusercontent.com/663432/171145699-661ad9db-d91d-4b2d-9c1a-9d7866c03a73.png">
* use for views as well
* handle UnicodeEncodeError
* tweak
* DRY
* DRY
* not needed
* fix tests
* Update tests/components/http/test_view.py
* Update tests/components/http/test_view.py
* black
* templates
* Speed up subscribing to mqtt topics
* update tests
* Remove extra function wrapper
* Recover debug logging for subscriptions
* Small changes and test
* Update homeassistant/components/mqtt/client.py
* Update client.py
Co-authored-by: jbouwh <jan@jbsoft.nl>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add FanEntity type hint checks to pylint plugin
* Add test
* Add test
* Review comments
* Adjust tests
* Rename variable
* also test keyword_only args
* Use docstrings
* Fix tests
* Better return type
* Add multiple config entry support for Nest
* Set a config entry unique id based on nest project id
* Add missing translations and remove untested committed
* Remove unnecessary translation
* Remove dead code
* Remove old handling to avoid duplicate error logs
* Support multiple config entries at once
* Add test coverage for multiple config entries
* Add support for multiple config entries to google config flow
* Clear hass.data when unloading config entry
* Make google config flow defensive against reuse of the same account
* Assign existing google config entries a unique id
* Migrate entities to new unique id format
* Support muliple accounts per oauth client id
* Fix mypy typing errors
* Hard fail to keep state consistent, removing graceful degredation
* Remove invalid entity regsitry entries
* Ensure config schema validation
* Use correct schema for device_tracker
* Remove schema validation from the platform setup
* Remove loop to build schema
* Update the nest integration to be useable fully from the config flow
* Support discovery in nest config flow
* Remove configuration entries
* Remove unused import
* Remove dead code
* Update homeassistant/components/nest/strings.json
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove commented out code
* Use config flow for app auth reauthentication path
* Improves for re-auth for upgrading existing project and creds
* More dead code removal
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove outdated code
* Update homeassistant/components/nest/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Reduce overhead to refire events
- asyncio timers can fire early for a varity of reasons including
poor clock resolution and performance. To solve this problem
we re-arm async_track_point_in_utc_time and try again later
when this happens.
- On some platforms this means the async_track_point_in_utc_time can
end up trying many times to prevent firing the timer early since as
soon as it rearms it fires again and this repeats until we reach
the appointed time. While there is not much we can do to prevent
asyncio from firing the timer callback early, we can reduce the
overhead when this happens by using avoiding creating datetime
objects
* tweak mocking
* -vvv
* fix time freeze being too broad in litterrobot
* adjust
* Add temperature unit conversion to number
* Remove type enforcements
* Lint
* Fix legacy unit_of_measurement
* Address review comments
* Fix unit_of_measurement, improve test coverage
* Use more specific exception for comms timeout
* Remove defered uniqueid assigner now yaml has gone
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
* Add config flow to eight_sleep
* simplify tests
* Remove extra file
* remove unused import
* fix redundant code
* Update homeassistant/components/eight_sleep/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* incorporate feedback
* Review comments
* remove typing from tests
* Fix based on changes
* Fix requirements
* Remove stale comment
* Fix tests
* Reverse the flow and force the config entry to reconnect
* Review comments
* Abort if import flow fails
* Split import and user logic
* Fix error
Co-authored-by: J. Nick Koston <nick@koston.org>
* Deprecate google calendar add_event service, replaced with entity service
* Fix inconsistencies and bugs in input validation
* Update validation rules and exceptions
* Resolve merge conflicts
* Feedreader: Properly support Atom feeds that use only the `updated` date format and resolve#73207.
* Revert "Feedreader: Properly support Atom feeds that use only the `updated` date format and resolve #73207."
This reverts commit 4dbd11ee04.
* Properly support Atom feeds that use only the `updated` date format and resolve#73207.
* Revert "Properly support Atom feeds that use only the `updated` date format and resolve #73207."
This reverts commit 14366c6a24.
* Properly support Atom feeds that use only the `updated` date format and resolve#73207.
* Refactor template entity to allow reuse
* Fix schema and default name
* Add tests
* Update requirements
* Improve test
* Tweak TemplateSensor initializer
* Drop attributes and availability from TemplateEntity
* Use rest sensor for proof of concept
* Revert changes in SNMP sensor
* Don't set _attr_should_poll in mixin class
* Update requirements
* Separate recorder database schema from other classes
* fix logbook imports
* migrate new tests
* few more
* last one
* fix merge
Co-authored-by: J. Nick Koston <nick@koston.org>
* fixing after MartinHjelmare review
* fixing after MartinHjelmare review conversion alarm state to hass state
* fixing after MartinHjelmare review conversion alarm state to hass state
* manage the status in the alarm control
* simplyfing return function
* Removing iAlarm XR integration because of Antifurto365 explicit request to remove after some issues in their cloud service
* Remove async_remove_listener
This avoids the ambuigity as to what happens if same callback is added multiple times.
* Keep track of a context for each listener
This allow a update coordinator to adapt what data to request on update from the backing service based on which entities are enabled.
* Clone list before calling callbacks
The callbacks can end up unregistering and modifying the dict while iterating.
* Only yield actual values
* Add a test for update context
* Factor out iteration of _listeners to helper
* Verify context is passed to coordinator
* Switch to Any as type instead of object
* Remove function which use was dropped earliers
The use was removed in 8bee25c938
* Add support for async_remove_config_entry_device to unifiprotect
* tweaks
* tweaks
* more cleanups
* more cleanups
* fix unhelpful auto import
* add coverage
* fix mac formatting
* collapse logic
* Change to new package and tcp
* Rework integration pt1
* Show by default
* Handle auth error
* Use const
* New version avaliable (to be replaced in future by update entity)
* Remove visible
* Version latest
* Filesystem space use
* Dev package
* Fix sensor
* Add services
* Update package
* Add temperature and voltage
* GPU
* Bump package version
* Update config flow
* Add displays
* Fix displays connected
* Round to whole number
* GPU fan speed in RPM
* Handle disconnections
* Update package
* Fix
* Update tests
* Handle more errors
* Check submodule and return missing uuid in test
* Handle auth error on config flow
* Fix test
* Bump package version
* Handle key errors
* Update package to release version
* Client session in config flow
* Log
* Increase timeout and use similar logic in config flow to init
* 30 secs
* Add test for timeout error
* Cleanup logs
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/system_bridge/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* uuid raise specific error
* Type
* Lambda to functions for complex logic
* Unknown error test
* Bump package to 3.0.5
* Bump package to 3.0.6
* Use typings from package and pydantic
* Use dict()
* Use data listener function and map to models
* Use passed module handler
* Use lists from models
* Update to 3.1.0
* Update coordinator to use passed module
* Improve coordinator
* Add debug
* Bump package and avaliable -> available
* Add version check
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Enforce type hints for config_flow
* Keep astroid migration for another PR
* Defer elif case
* Adjust tests
* Use ancestors
* Match on single base_class
* Invert for loops
* Review comments
* slots is new in 3.10
* add reauth flow
* add test
* use Mapping for async_step_reauth arguments
* only update changed data
* improve tests
* use different api key to test reauth
* fixing after MartinHjelmare review
* fixing after MartinHjelmare review conversion alarm state to hass state
* fixing after MartinHjelmare review conversion alarm state to hass state
* manage the status in the alarm control
* simplyfing return function
* address late review comment from #72654
* use entry_id instead of unique_id
* remove not needed `_hass` property
* fix skiping failing stations
* remove not neccessary error log
* set DeviceEntryType.SERVICE
* fix use entry_id instead of unique_id
* apply suggestions on tests
* add return value also to other tests
* invert data check to early return user form
* Improve readability and remove unused code
* Remove ws66i custom services. Scenes can be used instead.
* Unmute WS66i Zone when volume changes
* Raise CannotConnect instead of ConnectionError in validation method
* Move _verify_connection() method to module level
* Use the max request limit when setting tomorrowio update interval
* tests
* reduce lines
* simplify
* refactor
* Make Coordinator.async_setup_entry more efficient at determining when to refresh data and schedule refresh
* clean up
* clean up
* Remove unnecessary type definition
* typo
* fix logic ot be more deterministic
* Another fix
* Comment
* Reduce wasted API calls by doing partial updates when new entries get added with a new key
* Simplify and use asyncio event so that config entries only load after initial coordinator refresh
* Remove commented out piece
* Comment
* Remove unnecessary variable
* More cleanup
* Make future merge easier
* remove dupe
* switch order
* add comment
* Remove unnecessary error handling
* make code easier to read
* review feedback for code
* Fix logic
* Update test based on review
* Tweak comments
* reset mock so asertions are more clear
* Remove update interval check
* Add basic typing to emulated_hue
* type a few more places
* fixes
* numbers are always stringified
* numbers are always stringified
* coverage
* drop assert
* Migrate zha light to color_mode
* Fix restoring color mode
* Correct set operations
* Derive color mode from group members
* Add color mode to color channel
* use Zigpy color mode enum
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
* Fritz light free color selection
* Use setcolor as fallback
* better debug log message
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
* change if-clause
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
* Update requirement
* Remove aiohwenergy and use python-homewizard-energy
* Update test to work with python-homewizard-energy
* Bumb python-homewizard-energy to 1.0.3
* Stop updating google_calendars.yaml if it does not already exist
* Add additional test coverage to make CI pass
* Add test for no updates to google_calendar.yaml
* Add parameter to test for expecting write calls
* Missing call argument
* Remove conditional and replace with inline assert
* Check if attributes are present in new_state before accessing them.
* Early return if new state is None|Unknown|Unavailable
* Removed whitespace at line endings. +black run
* Update test for coverage