Jan-Philipp Benecke
22b14d83e8
Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components` ( #114316 )
...
* Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components`
* Missing file
* Fix import
* Remove invalid device class
2024-03-28 12:07:55 +01:00
Sid
00ec7f11f0
Enable Ruff rule PT007 ( #113764 )
...
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-19 09:01:07 +01:00
Sid
69564b1a17
Add ruff rule PIE800 ( #113619 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-16 16:31:30 -10:00
Marc Mueller
aa16a9d707
Add empty line after module docstring (3) ( #112750 )
2024-03-08 20:38:34 +01: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
fwestenberg
385b29bdf5
Add Beaufort to wind_speed ( #105795 )
...
* Add Beaufort to wind_speed
* Add Bft to UnitOfSpeed
* Update tests with Bft
* Remove check for unit
* Fix test_deprecated_constants
* Test depricated constant Beaufort
* Fix test_unit_system.py for Beaufort
* Remove _DEPRECATED_SPEED_FEET_BEAUFORT
* Remove maxsize from lru_cache
* Update test_deprecated_constants
* Update comment
* Add missing docstring
* Apply suggestions from code review
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-05 14:55:59 +01:00
J. Nick Koston
d9addc45f9
Avoid scheduling a task to add each entity when not using update_before_add ( #110951 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-02-23 10:49:26 -10: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
Jan Bouwhuis
5dfffb0818
Allow weight to be used as total_increasing state_class for sensors ( #108505 )
...
* Allow weight to be used as total_increasing state_class for sensors
* Add SensorStateClass.TOTAL
2024-02-05 18:01:06 +01:00
Joakim Plate
eefc6cd50a
Correct flow rate conversion review after merge ( #109501 )
2024-02-04 15:01:06 +01:00
Robert Resch
b409933d19
Add DurationConverter ( #108865 )
...
* Add DurationConverter
* Update withings snapshots
* Add sensor test
* Fix tests
* Update snapshots after #108902 was merged
2024-01-30 23:08:12 +01:00
Robert Resch
7d2c6a1bb6
Add check for valid initial_suggested_unit ( #108902 )
...
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-01-30 18:55:59 +01:00
Joakim Plate
cece117c93
Flow rate unit conversions and device class ( #106077 )
...
* Add volume flow rate conversions
* Add missing translations
* Adjust liter unit and add gallons per minute
* Adjust to min instead of m for minutes
* Add matching class for number
* Add some tests for number and sensor platform
* Add deprecated constants
* Add explicit list of flow rate for check
This reverts commit 105171af31
.
2024-01-30 15:01:08 +01:00
Jan-Philipp Benecke
80bfd4cef7
Raise ValueError when `last_reset` set and not `total` state class ( #108391 )
...
* Raise ValueError when last_reset set and not total state class
* Fix test
* Break long string into smaller ones
2024-01-29 20:21:35 +01:00
J. Nick Koston
c399cab427
Small speed up to checking core state ( #107845 )
2024-01-18 08:41:32 -10:00
Erik Montnemery
c805ea7b4f
Include deprecated constants in wildcard imports ( #107114 )
2024-01-05 11:46:45 +01:00
Robert Resch
ebdf7b9c8c
Deprecate some deprecated const constants ( #106230 )
...
* Deprecate some deprecated const constants
* Improve code
* fix typing
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-12-23 20:18:51 +01:00
Robert Resch
d47ec91231
Deprecate deprecated sensor constants ( #106120 )
2023-12-21 00:02:20 +01:00
Jan Bouwhuis
a66c9bb7b6
Update stale doc strings in entity platform tests ( #105526 )
2023-12-12 08:28:08 +01:00
Erik Montnemery
b5a6e6b9d5
Use real devices in sensor device condition tests ( #102713 )
2023-10-24 23:37:36 +02:00
Erik Montnemery
82cc62416e
Use real devices in sensor device trigger tests ( #102695 )
2023-10-24 22:37:44 +02:00
Robert Resch
f7292d5b00
Add check that sensors don't have EntityCategory.CONFIG set ( #101471 )
2023-10-09 13:37:52 +02:00
J. Nick Koston
c6ed022cce
Fix compiling missing statistics losing rows ( #101616 )
2023-10-08 19:43:00 +02:00
Erik Montnemery
775751ece5
Add WS command sensor/numeric_device_classes ( #101257 )
2023-10-06 10:27:45 +02:00
Erik Montnemery
659d437cac
Use loader.async_suggest_report_issue in sensor ( #101389 )
2023-10-05 20:07:56 +02:00
Erik Montnemery
17779c5f0c
Add loader.async_suggest_report_issue and loader.async_get_issue_tracker ( #101336 )
...
* Add loader.async_suggest_report_issue and loader.async_get_issue_tracker
* Update tests
* Add tests
* Address review comments
* Address review comments
2023-10-04 13:40:33 +02:00
Erik Montnemery
d0dc4d0963
Add missing device class to sensor.DEVICE_CLASS_UNITS ( #101256 )
2023-10-02 13:01:26 +02:00
Erik Montnemery
7a1ee98bb6
Fix handling of unit system change in sensor ( #100715 )
2023-09-23 13:28:14 +02:00
Erik Montnemery
bbcbb2e322
Improve Entity._suggest_report_issue ( #100204 )
2023-09-12 21:07:32 +02:00
Ville Skyttä
b51c0f6ddc
Remove unnnecessary pylint configs from components [s-z]* ( #98925 )
2023-08-24 01:25:32 +02:00
Erik Montnemery
e3b945a8d0
Don't allow numerical sensor state to be NaN or inf ( #98110 )
2023-08-23 14:16:40 +02:00
Ville Skyttä
2399cd283a
Python 3.10 support cleanups ( #98640 )
2023-08-21 19:14:07 +02:00
Miguel Camba
38111141f9
Add new device class: PH (potential hydrogen) ( #95928 )
2023-07-23 18:49:10 +02:00
J. Nick Koston
b24c6adc75
Avoid regex for negative zero check in sensor ( #95691 )
...
* Avoid regex for negative zero check in sensor
We can avoid calling the regex for every sensor value
since most of the time values are not negative zero
* tweak
* tweak
* Apply suggestions from code review
* simpler
* cover
* safer and still fast
* safer and still fast
* prep for py3.11
* fix check
* add missing cover
* more coverage
* coverage
* coverage
2023-07-02 21:53:50 -04:00
Erik Montnemery
b71e0302d6
Use entity registry id in sensor device conditions ( #95260 )
2023-06-26 21:20:40 +02:00
Erik Montnemery
5884afd485
Teach sensor device trigger about entity registry ids ( #94988 )
2023-06-22 11:13:54 +02:00
Erik Montnemery
446a820cbb
Name unnamed sensors by their device class ( #94646 )
2023-06-20 23:09:24 +02:00
Erik Montnemery
eba04824a4
Replace assert_lists_same with pytest_unordered in integrations n-s ( #94902 )
2023-06-20 20:23:14 +02:00
J. Nick Koston
fba826ae9e
Migrate restore_state helper to use registry loading pattern ( #93773 )
...
* Migrate restore_state helper to use registry loading pattern
As more entities have started using restore_state over time, it
has become a startup bottleneck as each entity being added is
creating a task to load restore state data that is already loaded
since it is a singleton
We now use the same pattern as the registry helpers
* fix refactoring error -- guess I am tired
* fixes
* fix tests
* fix more
* fix more
* fix zha tests
* fix zha tests
* comments
* fix error
* add missing coverage
* s/DATA_RESTORE_STATE_TASK/DATA_RESTORE_STATE/g
2023-05-30 20:48:17 -05:00
Jan Bouwhuis
ec98e22330
Add type hints for stub_blueprint_populate fixture ( #93568 )
...
Add typehints for stub_blueprint_populate fixture
2023-05-26 08:13:13 +02:00
Erik Montnemery
3cca338c6e
Improve blueprint test fixtures ( #93519 )
2023-05-25 13:45:19 +02:00
J. Nick Koston
7ec6e03d5d
Update sensor tests to avoid patching utcnow ( #93497 )
2023-05-24 19:54:08 -05:00
Erik Montnemery
d62cdf3d65
Improve error message for sensors with a non-numeric value ( #93399 )
...
* Improve error message for sensors with a non-numeric value
* Address review comment
2023-05-23 15:54:24 +02:00
Erik Montnemery
5a7c3aaa2d
Add sensor device class volatile_organic_compounds_parts ( #92973 )
2023-05-12 14:37:54 +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
Erik Montnemery
0126cfa9d9
Allow exposing any entity to the default conversation agent ( #92398 )
...
* Allow exposing any entity to the default conversation agent
* Tweak
* Fix race, update tests
* Update tests
2023-05-03 09:45:54 -04:00
J. Nick Koston
49079691d4
Reduce overhead of legacy database columns on new installs ( #90246 )
...
* Reduce overhead of legacy database columns on new installs
* Reduce overhead of legacy database columns on new installs
* Reduce overhead of legacy database columns on new installs
* Reduce overhead of legacy database columns on new installs
* not working as expected
* override the type compiler
* override the type compiler
* override the type compiler
* override the type compiler
* Apply suggestions from code review
* pgsql char1
* make entity filter test setup with old schema
* fix some more tests that were mutating state
* fix some more tests that were mutating state
* fix some more tests that were mutating state
* fix more dbstate mutations
* add shim for older tests
* split migration tests
* add coverage for purging legacy data
* tweak
* more fixes
* drop some legacy
* fix another test
* fix a few more
* add casts for postgresql in case someone deletes the schema changes table
* dry
* dry
* dry
2023-04-10 10:08:46 -04:00
J. Nick Koston
d0d4ab6056
Require a list of entity ids when fetching history ( #90992 )
2023-04-08 16:14:44 -10:00
epenet
19ab76dad9
Fix lingering timers in sensor tests ( #90856 )
2023-04-05 19:52:30 +02:00
epenet
ab699d17a5
Ensure numeric sensors have a valid value ( #85605 )
...
* Ensure numeric sensors have a valid value
* Flake8
2023-03-31 14:12:51 +02:00
J. Nick Koston
88ad97f112
Fix generating statistics for time periods smaller than we can measure ( #90069 )
...
If the time period for the mean/time weighted average was smaller
than we can measure (less than one microsecond), generating
statistics would fail with a divide by zero error. This is likely
only happens if the database schema precision is incorrect.
2023-03-21 21:12:45 -04:00
J. Nick Koston
5ffb233004
Avoid database executor job to fetch statistic metadata on cache hit ( #89960 )
...
* Avoid database executor job to fetch statistic metadata on cache hit
Since we will almost always have a cache hit fetching
statistic meta data we can avoid an executor job
* Avoid database executor job to fetch statistic metadata on cache hit
Since we will almost always have a cache hit fetching
statistic meta data we can avoid an executor job
* Avoid database executor job to fetch statistic metadata on cache hit
Since we will almost always have a cache hit fetching
statistic meta data we can avoid an executor job
* remove exception catch since the threading.excepthook will actually catch this in production
* fix a few missed ones
* threadsafe
* Update homeassistant/components/recorder/table_managers/statistics_meta.py
* coverage and optimistic caching
2023-03-19 22:01:16 -04:00
J. Nick Koston
c41f91be89
Deduplicate entity_id in the states table ( #89557 )
2023-03-12 10:01:58 -10:00
Erik Montnemery
cf7e500a8e
Support translating entity names ( #88242 )
2023-03-12 15:55:04 +01:00
Jan Bouwhuis
8968ed1c47
Fix check on non numeric custom sensor device classes ( #89052 )
...
* Custom device classes are not numeric
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add test
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-03-02 14:20:26 -05:00
Erik Montnemery
fca5cc6ea3
Add number + sensor device class volume storage ( #88312 )
...
* Add number + sensor device class volume storage
* Fix typo
* Format code
* Update device automations
2023-03-01 11:22:57 +01:00
Erik Montnemery
69ce6980d6
Add number + sensor device class energy storage ( #88310 )
...
* Add number + sensor device class energy storage
* Format code
* Update device automations
2023-02-28 19:35:43 +01:00
Erik Montnemery
390daf1723
Sort unit lists sent to frontend ( #88898 )
2023-02-28 16:12:49 +01:00
Erik Montnemery
fe8f3602ff
Fix sensor unit conversion bug ( #88825 )
...
* Fix sensor unit conversion bug
* Ensure the correct unit is stored in the entity registry
2023-02-27 11:46:55 +01:00
epenet
488d78571e
Add missing device class triggers ( #88316 )
...
* Add constant tests for sensor device classes
* Add missing strings
* Adjust tests
* Add missing conditions
* Add missing trigger
* Cleanup
2023-02-20 08:30:51 +01:00
Franck Nijhof
1e05697080
Enable Ruff B007 ( #88356 )
...
* Enable Ruff B007
* Adjust existing cases
2023-02-17 21:08:18 -05:00
Erik Montnemery
9989a4787b
Fix recorder platform tests ( #88330 )
2023-02-17 08:22:15 -06:00
Franck Nijhof
d3ed8de232
Update Ruff to v0.0.247 ( #88210 )
...
* Update Ruff to v0.0.247
* Fix new found violations
2023-02-15 16:46:03 -05:00
epenet
80ee196fd8
Add type hints to integration tests (part 19) ( #88178 )
2023-02-15 18:07:40 +01:00
Gertjan
66ba0cb1d3
Fixed float number validation in sensor component ( #88074 )
2023-02-15 15:53:44 +01:00
Franck Nijhof
ed79265843
Enable Ruff PT006 ( #88165 )
...
* Enable Ruff PT006
* Adjust existing cases
* Fix tests
* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
Erik Montnemery
4ca0a24f87
Increase test scope of MariaDB + PostgreSQL tests ( #87019 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-13 15:58:13 -06:00
Erik Montnemery
8f2a764a43
Adjust suggested_display_precision according to unit conversion ( #87614 )
2023-02-13 13:55:12 +01:00
Erik Montnemery
3f910b49ae
Fix sensor unit conversion ( #87978 )
2023-02-13 10:08:07 +01:00
J. Nick Koston
85649ec589
Reduce overhead to see if an entity is recorded ( #87912 )
...
A significant chunk of list_statistic_ids was checking if the entity
was recorded because it had to get the recorder instance over and
over
2023-02-11 23:21:16 -05:00
J. Nick Koston
c35661947a
Optimize fetching statistics by avoiding timestamp conversions ( #87845 )
...
* Optimize fetching statistics by avoiding timestamp conversions
* remove accidential unrelated change
* fix test
* recreate so we handle timezone changes
2023-02-10 11:26:46 -05:00
Erik Montnemery
cc564026fa
Move EntityCategory to homeassistant.const ( #87792 )
...
* Move EntityCategory to homeassistant.const
* Fix more imports
2023-02-09 20:15:37 +01:00
Franck Nijhof
51a9f65a01
Clean up unnecessary registry mocks from Core tests ( #87726 )
2023-02-08 13:28:44 -06:00
epenet
4142f0d15d
Add return type to tests without arguments ( #87613 )
...
* Add return type to tests without arguments
* Black
* Cancel fixture amends
2023-02-07 14:20:06 +01:00
Erik Montnemery
bcc1aa03b4
Move sensor rounding to frontend ( #87330 )
...
* Move sensor rounding to frontend
* Update integrations
* Add comment
2023-02-04 14:54:36 -05:00
Franck Nijhof
bf482eee24
Extend state class sensor warnings with expected values ( #87294 )
2023-02-04 11:49:24 +01:00
Erik Montnemery
4d4fb2477d
Optionally update sensor units when unit system is changed ( #83851 )
2023-02-03 16:30:50 +01:00
epenet
810367b757
Fix `can not` typo ( #87254 )
2023-02-03 11:37:16 +01:00
epenet
cc469ab9a9
Add unit conversion to Power sensors ( #87136 )
...
* Add missing PowerConverter to UNIT_CONVERTERS
* Adjust tests
2023-02-02 10:27:12 +01:00
Jan Bouwhuis
2e16b7e2df
Add numeric_state_expected property to Sensor class ( #87013 )
...
* Add is_numeric property to Sensor class
* Follw up comment
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Tests and corrections
* Simplify converion check
* Correct custom device class handling
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* rename to numeric_state_expected
* Replace with new const
* Adjust docstr
* Update homeassistant/components/sensor/__init__.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Move to const
* Correct logic
* Do not use bool
* Adjust docstr must be numeric
* remote state from docstr
* protect numeric_state_expected
* Use try_parse_enum for custom class check
* Remove redundant type hints
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-02-01 18:45:13 +01:00
Erik Montnemery
d4489faa68
Drop minus sign on negative zero ( #86939 )
...
* Drop minus sign on negative zero
* Add tests
2023-01-30 08:31:27 -05:00
J. Nick Koston
c612a92cfb
Use python defaults for comparing State, LazyState, and Event objects ( #86856 )
...
* Speed up comparing State and Event objects
Use default python implementation for State and Event __hash__ and __eq__
The default implementation compared based on the id() of the object
which is effectively what we want here anyways. These overrides are
left over from the days when these used to be attrs objects
By avoiding implementing these ourselves all of the equality checks
can happen in native code
* tweak
* adjust tests
* write out some more
* fix test to not compare objects
* more test fixes
* more test fixes
* correct stats tests
* fix more tests
* fix more tests
* update sensor recorder tests
2023-01-29 13:31:43 -05:00
Franck Nijhof
e4a78420b8
Enable Ruff PT013 ( #86757 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-01-27 09:09:46 +01:00
Joakim Plate
1b97a51b5e
Print expected device class units in error log ( #86125 )
2023-01-25 20:45:50 +01:00
Erik Montnemery
086a6460ef
Allow customizing sensor state precision ( #86074 )
...
* Allow customizing sensor precision
* Don't convert integer strings to floats
* Tweak converting sensor state to number
* Drop default rounding to 2 decimals
* Adjust test
* Tweak rounding, improve test coverage
* Don't convert to a number if not necessary
* Raise if native_precision is set and state is not numeric
* Address review comments
* Address comments, simplify
* Don't call property twice
* Make exception more helpful
2023-01-25 08:55:46 +01:00
epenet
30bf0634fe
Add per-file-ignore to pylint ( #86289 )
2023-01-22 17:26:24 +01:00
Franck Nijhof
0a367359f4
Add sensor state class validation for device classes ( #84402 )
...
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-01-16 14:31:24 +01:00
epenet
3179101fbc
Warn if numeric sensors have an invalid value ( #85863 )
...
Co-authored-by: mib1185 <mail@mib85.de>
2023-01-16 11:00:07 +01:00
Michael
9709391b52
Replace the usage of unit constants by enumerations in Tests [s-u] ( #85937 )
2023-01-16 09:00:27 +01:00
Erik Montnemery
e4e96d3394
Fix sensor test ( #85740 )
2023-01-12 12:21:19 +01:00
Erik Montnemery
305fb86d50
Add WS command sensor/device_class_convertible_units ( #85213 )
...
* Add WS command sensor/device_class_units
* Rename new command to device_class_convertible_units
2023-01-12 09:31:06 +01:00
Erik Montnemery
b0d4b73874
Add unitless unit converter ( #85694 )
...
* Add unitless unit converter
* Adjust type hints
* Adjust tests
* Rename to UnitlessRatioConverter
2023-01-12 09:20:00 +01:00
epenet
9eb06fd59d
Simplify sensor state validation ( #85513 )
2023-01-10 11:52:29 +01:00
Erik Montnemery
72c9ca2567
Update sensor test ( #85522 )
2023-01-09 14:26:52 +01:00
Franck Nijhof
f8fa676ac8
Do not validate device classes when entity state is unknown ( #84860 )
2022-12-30 13:07:49 -05:00
Franck Nijhof
c832982d94
Add sensor unit of measurement validation for device classes ( #84366 )
2022-12-21 16:14:11 +01:00
epenet
f4c13645d2
Add support for CCF volume unit ( #84029 )
2022-12-19 14:57:04 +01:00
epenet
0c9a78fb8e
Use tuple in test parametrization ( #83379 )
2022-12-06 09:46:10 +01:00
Franck Nijhof
762eb57636
Validate state class and unit of measurement for non-numeric sensors ( #83344 )
...
* Validate state class and unit of measurement for non-numeric sensors
* Remove duration
* Fix rest tests
2022-12-06 00:07:02 +01:00