Commit Graph
441 Commits
Author SHA1 Message Date
Joost Lekkerkerker 77917506bb Improve lists in integrations [R-S] (#113233)
* Improve lists in integrations [R-S]

* Fix

* Fix
2024-03-13 21:55:00 +01:00
J. Nick Koston af6f2a516e Guard against db corruption when renaming entities (#112718) 2024-03-08 11:34:07 -10:00
Marc Mueller 32f3f46542 Add empty line after module docstring (2) [tests.components] (#112737) 2024-03-08 19:16:21 +01:00
Marc Mueller 7d6251ca08 Add empty line after module docstring [tests q-s] (#112711) 2024-03-08 14:47:22 +01:00
J. Nick Koston 235771aaa2 Bump SQLAlchemy to 2.0.28 (#112314) 2024-03-05 12:14:30 -10:00
Joakim Sørensen f622ddef47 Move backup/* WS commands to the backup integration (#111636)
Revert "Revert "Move backup/* WS commands to the backup integration" (#111136)"

This reverts commit 8f83426895.
2024-02-27 11:56:07 -05:00
Joakim Sørensen 8f83426895 Revert "Move backup/* WS commands to the backup integration" (#111136)
Revert "Move backup/* WS commands to the backup integration (#110651)"

This reverts commit ec4e6c3a74.
2024-02-22 16:08:30 +01:00
Joakim Sørensen ec4e6c3a74 Move backup/* WS commands to the backup integration (#110651)
* Move backup/* WS commands to the backup integration

* Call correct command

* Use debug for logging

* Remove assertion of hass.data for setup test

* parametrize token fixture
2024-02-22 10:25:38 +01:00
J. Nick Koston f9dc92a9a0 Fix recorder ws_info blocking the event loop (#110657)
* Fix recorder ws_info blocking the event loop

Fixes
```
2024-02-15 06:37:55.423 WARNING (MainThread) [asyncio] Executing <Task pending name=websocket_api.async:ws_info coro=<_handle_async_response() running at /usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py:26> wait_for=<_GatheringFuture pending cb=[Task.task_wakeup()] created at /usr/local/lib/python3.12/asyncio/tasks.py:712> cb=[set.remove()] created at /usr/src/homeassistant/homeassistant/core.py:653> took 0.332 seconds
```

* no instance did not actually work
2024-02-16 15:11:09 +01:00
Marc Mueller 2ef2172b01 Convert test helpers to get hass instance to contextmanagers (#109990)
* Convert get_test_home_assistant helper to contextmanager

* Convert async_test_home_assistant helper to contextmanager

* Move timezone reset to async_test_home_assistant helper
2024-02-11 21:23:51 +01:00
Marc Mueller 438d3b01b9 Use builtin TimeoutError [o-s] (#109682) 2024-02-05 12:14:37 +01:00
Erik Montnemery 1f466e737e Use send_json_auto_id in recorder tests (#109355) 2024-02-02 09:34:43 +01:00
J. Nick Koston 67e6febde4 Ensure the purge entities service cleans up the states_meta table (#109344) 2024-02-02 09:32:17 +01:00
J. Nick Koston a22244707b Create an issue when database backups fail because the system runs out of resources (#109020) 2024-01-30 10:23:58 -10:00
Marc Mueller 030727b078 Remove deprecated event_loop fixtures in tests (#109048) 2024-01-29 14:24:58 +01:00
J. Nick Koston c399cab427 Small speed up to checking core state (#107845) 2024-01-18 08:41:32 -10:00
J. Nick Koston 15384f4661 Remove unused entity_sources argument from shared_attrs_bytes_from_event (#108210) 2024-01-17 08:45:04 -05:00
J. Nick Koston acf78664e2 Reduce overhead to compile statistics (#106927)
* Reduce overhead to compile statistics

statistics uses LazyState for compatibility with State when pulling
data from the database.

After the previous round of refactoring to modern history, the setters
are never called and can be removed.

* reduce
2024-01-07 22:36:49 -05:00
J. Nick Koston d8c6534aff Refactor recorder for common event case (#106753)
Almost 99% of items that are put into the recorder queue are
Events. Avoid wrapping them in tasks since we have to unwrap
them right away and its must faster to check for both RecorderTask
and Events since events are the common case.
2024-01-07 22:31:40 -05:00
Ville Skyttä 24b1e01d71 Update Ruff to 0.1.8, avoid linter/formatter conflicts (#106080)
* Disable Ruff rules that may conflict with the formatter

* Upgrade Ruff to 0.1.8

- https://github.com/astral-sh/ruff/releases/tag/v0.1.7
- https://github.com/astral-sh/ruff/releases/tag/v0.1.8

* Format with Ruff 0.1.8
2023-12-20 23:55:09 +01:00
Aarni KoskelaandFranck Nijhof 706add4a57 Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
J. Nick Koston 9ed745638d Chunk purging attributes and data ids for old SQLite versions (#104296) 2023-11-24 11:46:02 +01:00
J. Nick Koston 268425b5e3 Recover from previously failed statistics migrations (#101781)
* Handle statistics columns being unmigrated from previous downgrades

If the user downgraded HA from 2023.3.x to an older version without
restoring the database and they upgrade again with the same database
they will have unmigrated statistics columns since we only migrate them
once.

As its expensive to check, we do not want to check every time
at startup, so we will only do this one more time since the
risk that someone will downgrade to an older version is very
low at this point.

* add guard to sqlite to prevent re-migrate

* test

* move test to insert with old schema

* use helper

* normalize timestamps

* remove

* add check

* add fallback migration

* add fallback migration

* commit

* remove useless logging

* remove useless logging

* do the other columns at the same time

* coverage

* dry

* comment

* Update tests/components/recorder/test_migration_from_schema_32.py
2023-10-22 23:34:43 -04:00
J. Nick Koston 27b5a9e074 Reduce number of test states in big purge test to fix CI (#102401) 2023-10-20 08:09:59 -10:00
J. Nick Koston c6ed022cce Fix compiling missing statistics losing rows (#101616) 2023-10-08 19:43:00 +02:00
J. Nick Koston 48a23798d0 Fix caching of latest short term stats after insertion of external stats (#101490) 2023-10-06 09:18:05 +02:00
J. Nick Koston da1d5fc862 Increase max bind vars based on database version (#101464) 2023-10-06 07:59:38 +02:00
J. Nick Koston c9a55c7f84 Cache the latest short term stat id for each metadata_id on each run (#100535) 2023-09-26 09:57:59 -05:00
Erik Montnemery 0dc21504f5 Remove support for excluding attributes in recorder platforms (#100679) 2023-09-24 14:45:06 +02:00
J. Nick Koston 6f8734167f Bump SQLAlchemy to 2.0.21 (#99745) 2023-09-20 16:19:53 +02:00
Ville SkyttäandMarc Mueller 9da192c752 Avoid use of datetime.utc* methods deprecated in Python 3.12 (#93684)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-08-24 16:38:22 +02:00
Ville Skyttä 34b47a2597 Remove unnnecessary pylint configs from components [m-r]* (#98924) 2023-08-24 00:56:50 +02:00
Ville Skyttä 2399cd283a Python 3.10 support cleanups (#98640) 2023-08-21 19:14:07 +02:00
Marc Mueller cd8d6ecd81 Fix recorder DeprecationWarnings (#97738) 2023-08-04 11:32:51 +02:00
Marc Mueller fe0fe19be9 Use datetime.UTC alias [3.11] (#97067) 2023-07-22 17:05:11 -05:00
Marc Mueller 77f38e33e5 Import names from typing instead of typing_extensions [3.11] (#97065) 2023-07-22 17:03:44 -05:00
J. Nick Koston b2e708834f Add slots to the StateMachine class (#95849) 2023-07-05 14:00:37 +02:00
12129e9d21 Update service call return values and error handling (#94657)
* Update return signature of service calls

* Add timeout error handling in websocket api for service calls

* Update recorder tests to remove assertion on service call

* Remove timeout behavior and update callers that depend on it today

* Fix tests

* Add missing else

* await coro directly

* Fix more tests

* Update the intent task to use wait instead of timeout

* Remove script service call limits and limit constants

* Update tests that depend on service call limits

* Use wait instead of wait_for and add test

* Update homeassistant/helpers/intent.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-06-16 07:01:40 -07:00
Ville Skyttä 940942a74a Import util.dt as dt_util in components/[p-s]* (#93761) 2023-05-30 00:09:42 +03:00
J. Nick Koston 2f1f32f0bb Make unit converter use a factory to avoid looking up the ratios each conversion (#93706) 2023-05-29 20:50:40 +02:00
J. Nick Koston 88893121a1 Increase timeout for test_purge_many_old_events (#93579) 2023-05-25 22:38:44 -05:00
J. Nick Koston f251c464e2 Fix history start time state returning None with some postgresql versions (#93555)
* Add additional coverage to history websocket api

related issue #93258

* Add additional coverage to history websocket api

related issue #93258

* Fix results when union query ends up at the end instead of front

* Apply suggestions from code review

* resort

* zero instead

* fix exception

* fix tests
2023-05-25 22:18:19 -04:00
J. Nick Koston 9dcd73b308 Update recorder tests to avoid patching utcnow (#93489) 2023-05-24 17:47:42 -05:00
Erik Montnemery c1f716487c Include data for entire periods in response to recorder/statistics_during_period (#92848)
* Include data for entire periods in response to recorder/statistics_during_period

* Break out function for calculating the end of the month
2023-05-11 11:28:33 +02:00
Erik Montnemery 4568207f9b Support calculating changes between consecutive sum statistics (#92823)
* Support calculating changes between consecutive sum statistics

* Add support for unit conversion when calculating change

* Don't include sum in WS response unless requested

* Improve tests

* Break out calculating change to its own function

* Improve test coverage
2023-05-11 10:05:58 +02:00
J. Nick Koston ce3cb5864a Improve reliablity of recorder purge test (#92641) 2023-05-07 01:28:43 +02:00
J. Nick Koston bb4c03ce3c Avoid returning statistics columns that the metadata knows are impossible (#92095) 2023-04-30 20:46:26 +02:00
J. Nick Koston 1a82b353e0 Auto repair incorrect collation on MySQL schema (#92270)
* Auto repair incorrect collation on MySQL schema

As we do more union queries in 2023.5.x if there is a mismatch
between collations on tables, they will fail with an error
that is hard for the user to figure out how to fix

`Error executing query: (MySQLdb.OperationalError) (1271, "Illegal mix of collations for operation UNION")`

This was reported in the #beta channel and by PM from others
so the problem is not isolated to a single user

https://discord.com/channels/330944238910963714/427516175237382144/1100908739910963272

* test with ascii since older maraidb versions may not work otherwise

* Revert "test with ascii since older maraidb versions may not work otherwise"

This reverts commit 787fda1aefcd8418a28a8a8f430e7e7232218ef8.t

* older version need to check collation_server because the collation is not reflected if its the default
2023-04-29 21:17:09 -04:00
J. Nick Koston 07d1a16efd Add as_dict cache to Context and Event (#92162) 2023-04-28 21:15:39 +02:00
J. Nick Koston e156d3132e Ensure purge can cleanup old format detached states in the database (#92145) 2023-04-28 21:03:59 +02:00