* 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>
* 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 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