* 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