🏡 Open source home automation that puts local control and privacy first.
Go to file
J. Nick Koston a6b17dbe68
Schedule polling as periodic tasks (#112640)
* Schedule periodic coordinator updates as background tasks.

Currently, the coordinator's periodic refreshes delay startup because they are not scheduled as background tasks. We will wait if the startup takes long enough for the first planned refresh. Another coordinator's scheduled refresh will be fired on busy systems, further delaying the startup. This chain of events results in the startup taking a long time and hitting the safety timeout because too many coordinators are refreshing.

This case can also happen with scheduled entity refreshes, but it's less common. A future PR will address that case.

* periodic_tasks

* periodic_tasks

* periodic_tasks

* merge

* merge

* merge

* merge

* merge

* fix test that call the sync api from async

* one more place

* cannot chain

* async_run_periodic_hass_job

* sun and pattern time changes from automations also block startup

* Revert "sun and pattern time changes from automations also block startup"

This reverts commit 6de2defa05.

* make sure polling is cancelled when config entry is unloaded

* Revert "Revert "sun and pattern time changes from automations also block startup""

This reverts commit e8f12aad55.

* remove DisabledError from homewizard test as it relies on a race

* fix race

* direct coverage
2024-03-07 23:32:26 -05:00
.devcontainer Add Shelly CoAP port to default container port (#108016) 2024-01-24 19:00:57 +01:00
.github Bump Wandalen/wretry.action from 1.4.5 to 1.4.7 (#112575) 2024-03-07 09:33:31 +01:00
.vscode Add task to install all requirements of an integration (#108262) 2024-01-18 22:11:02 +01:00
homeassistant Schedule polling as periodic tasks (#112640) 2024-03-07 23:32:26 -05:00
machine Fix Raspberry Pi utilities installation on Alpine 3.19 (#110463) 2024-02-13 15:07:37 +01:00
pylint Remove config flow specifics from FlowResult (#111932) 2024-03-01 13:07:13 +01:00
rootfs Stop the Home Assistant Core container by default (#101105) 2023-09-30 10:43:07 +02:00
script Restore the juicenet integration (#112578) 2024-03-07 16:41:54 +01:00
tests Schedule polling as periodic tasks (#112640) 2024-03-07 23:32:26 -05:00
.core_files.yaml Add todo to core files (#103102) 2023-10-31 07:55:03 +01:00
.coveragerc Restore the juicenet integration (#112578) 2024-03-07 16:41:54 +01:00
.dockerignore Not to Tox (#76582) 2022-11-23 14:40:37 +01:00
.gitattributes Ensure .pcm binary files do not have line endings changed (#91881) 2023-04-22 22:22:30 -04:00
.gitignore Remove dev API docs from repository (#102274) 2023-10-20 08:10:46 +02:00
.hadolint.yaml Update base image to 2023.10.0 (#102126) 2023-10-18 19:11:41 +02:00
.pre-commit-config.yaml Update ruff to 0.2.1 (#109796) 2024-02-06 15:41:34 +01:00
.prettierignore Add tests for yaml syntax errors (#103908) 2023-11-13 14:04:58 +01:00
.strict-typing Enable strict typing of homeworks (#112267) 2024-03-04 19:50:33 +01:00
.yamllint Add tests for yaml syntax errors (#103908) 2023-11-13 14:04:58 +01:00
CLA.md
CODEOWNERS Restore the juicenet integration (#112578) 2024-03-07 16:41:54 +01:00
CODE_OF_CONDUCT.md Update URLs forwarding to HA blog posts (#91698) 2023-04-20 20:55:13 +02:00
CONTRIBUTING.md
Dockerfile Attempt to fix 32bit docker builds (#107210) 2024-01-05 08:23:04 +01:00
Dockerfile.dev Add ffmpeg to dev-container (#106710) 2023-12-30 13:14:49 +01:00
LICENSE.md
MANIFEST.in Move remaining keys to `setup.cfg` (#65154) 2022-01-28 20:18:09 -08:00
README.rst Fix readme images (#108767) 2024-01-30 15:00:57 +01:00
build.yaml Update Home Assistant base image to 2024.02.1 (#110395) 2024-02-12 20:17:24 +01:00
codecov.yml Add recorder platform to required test category (#86704) 2023-01-26 11:03:56 +01:00
mypy.ini Enable strict typing of homeworks (#112267) 2024-03-04 19:50:33 +01:00
pyproject.toml Make hass-nabucasa a core requirement (#112623) 2024-03-07 17:11:45 +01:00
requirements.txt Make hass-nabucasa a core requirement (#112623) 2024-03-07 17:11:45 +01:00
requirements_all.txt Bump pymodbus to v3.6.5 (#112629) 2024-03-07 22:38:51 +01:00
requirements_test.txt Update pytest to 8.1.0 (#112173) 2024-03-04 23:58:20 +01:00
requirements_test_all.txt Bump pymodbus to v3.6.5 (#112629) 2024-03-07 22:38:51 +01:00
requirements_test_pre_commit.txt Update ruff to 0.2.1 (#109796) 2024-02-06 15:41:34 +01:00

README.rst

Home Assistant |Chat Status|
=================================================================================

Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.

Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://demo.home-assistant.io>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation/>`__ and `documentation <https://home-assistant.io/docs/>`__.

|screenshot-states|

Featured integrations
---------------------

|screenshot-integrations|

The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/architecture_index/>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/creating_component_index/>`__.

If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

.. |Chat Status| image:: https://img.shields.io/discord/330944238910963714.svg
   :target: https://www.home-assistant.io/join-chat/
.. |screenshot-states| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-states.png
   :target: https://demo.home-assistant.io
.. |screenshot-integrations| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-integrations.png
   :target: https://home-assistant.io/integrations/