Commit Graph
569 Commits
Author SHA1 Message Date
Franck NijhofandGitHub 51a9f65a01 Clean up unnecessary registry mocks from Core tests (#87726) 2023-02-08 13:28:44 -06:00
epenetandGitHub 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 MontnemeryandGitHub 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 NijhofandGitHub bf482eee24 Extend state class sensor warnings with expected values (#87294) 2023-02-04 11:49:24 +01:00
Erik MontnemeryandGitHub 4d4fb2477d Optionally update sensor units when unit system is changed (#83851) 2023-02-03 16:30:50 +01:00
epenetandGitHub 810367b757 Fix can not typo (#87254) 2023-02-03 11:37:16 +01:00
epenetandGitHub cc469ab9a9 Add unit conversion to Power sensors (#87136)
* Add missing PowerConverter to UNIT_CONVERTERS

* Adjust tests
2023-02-02 10:27:12 +01:00
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 MontnemeryandGitHub 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 KostonandGitHub 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
e4a78420b8 Enable Ruff PT013 (#86757)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-01-27 09:09:46 +01:00
Joakim PlateandGitHub 1b97a51b5e Print expected device class units in error log (#86125) 2023-01-25 20:45:50 +01:00
Erik MontnemeryandGitHub 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
epenetandGitHub 30bf0634fe Add per-file-ignore to pylint (#86289) 2023-01-22 17:26:24 +01:00
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
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
MichaelandGitHub 9709391b52 Replace the usage of unit constants by enumerations in Tests [s-u] (#85937) 2023-01-16 09:00:27 +01:00
Erik MontnemeryandGitHub e4e96d3394 Fix sensor test (#85740) 2023-01-12 12:21:19 +01:00
Erik MontnemeryandGitHub 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 MontnemeryandGitHub 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
epenetandGitHub 9eb06fd59d Simplify sensor state validation (#85513) 2023-01-10 11:52:29 +01:00
Erik MontnemeryandGitHub 72c9ca2567 Update sensor test (#85522) 2023-01-09 14:26:52 +01:00
Franck NijhofandGitHub f8fa676ac8 Do not validate device classes when entity state is unknown (#84860) 2022-12-30 13:07:49 -05:00
Franck NijhofandGitHub c832982d94 Add sensor unit of measurement validation for device classes (#84366) 2022-12-21 16:14:11 +01:00
epenetandGitHub f4c13645d2 Add support for CCF volume unit (#84029) 2022-12-19 14:57:04 +01:00
epenetandGitHub 0c9a78fb8e Use tuple in test parametrization (#83379) 2022-12-06 09:46:10 +01:00
Franck NijhofandGitHub 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
Erik MontnemeryandGitHub 67875b99a3 Refactor support for integrations to drop custom unit conversion (#83228)
* Refactor support for integrations to drop custom unit conversion

* Fix lying comment

* Address review comment
2022-12-05 16:12:37 +01:00
Franck NijhofandGitHub ce00f093d6 Add enum device_class and state options property to sensor entities (#82489) 2022-12-02 09:11:15 +01:00
Erik MontnemeryandGitHub a038314d8b Add display unit to WS recorder/get_statistics_metadata (#82870) 2022-11-28 13:46:57 -05:00
Erik MontnemeryandGitHub b6586d5c34 Align number and sensor device classes (#81909)
* Align number and sensor device classes

* Add tests

* Tweak tests
2022-11-17 14:00:28 +01:00
Erik MontnemeryandGitHub 607a0e7697 Reduce size of get_statistics_during_period WS API response (#82131) 2022-11-16 17:36:30 +01:00
Erik MontnemeryandGitHub 7aa4654eb4 Improve docstring for sensor testcase (#81875) 2022-11-09 23:59:58 +01:00
a4310d2085 Allow integrations to drop custom unit conversion (#81005)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-10-26 15:11:28 -04:00
Erik MontnemeryandGitHub 352976fd1d Add rules for converting volumes (#80951)
* Add rules for converting volumes

* Use SensorDeviceClass in new tests

* Tweak tests

* Update flo tests

* Update sensor tests
2022-10-26 10:29:33 +02:00
Erik MontnemeryandGitHub 3d3349240f Don't trigger statistics issues when sensor units are equivalent (#80099) 2022-10-25 09:50:01 +02:00
6979cd95b0 Add suggested_unit_of_measurement attribute to sensors (#80638)
* Add suggested_unit_of_measurement attribute to sensors

* Lazy calculation of initial entity options

* Add type alias for entity options

* Small tweak

* Add tests

* Store suggested_unit_of_measurement in its own option key

* Adapt to renaming of IMPERIAL_SYSTEM

* Fix rebase mistakes

* Apply suggestions from code review

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-24 16:08:02 +02:00
epenetandGitHub e84e5f134e Use US_CUSTOMARY_SYSTEM in tests (#80658)
* Use US_CUSTOMARY_SYSTEM in tests

* Don't update test_unit_system
2022-10-20 15:42:23 +02:00
Erik MontnemeryandGitHub 31a787558f Ensure recorder test fixture is setup before hass fixture (#80528)
* Ensure recorder test fixture is setup before hass fixture

* Adjust more tests
2022-10-19 07:58:47 +02:00
Erik MontnemeryandGitHub 918243b7c8 Improve some sensor statistics tests (#80087) 2022-10-11 08:57:08 -04:00
Erik MontnemeryandGitHub a391b8dd9d Support correcting sensor volume unit (#80081) 2022-10-11 13:51:28 +02:00
Erik MontnemeryandGitHub 69d935b7bd Teach long term statistics that unit 'rpm' is same as 'RPM' (#80012)
* Teach long term statistics that unit 'rpm' is same as 'RPM'

* Add tests
2022-10-11 10:32:01 +02:00
Erik MontnemeryandGitHub aa5575ba65 Only validate sensors in sensor.recorder.validate_statistics (#79749) 2022-10-06 21:17:46 +02:00
Erik MontnemeryandGitHub 0a59d37e62 Correct how unit used for statistics is determined (#79725) 2022-10-06 14:01:54 -04:00
Erik MontnemeryandGitHub e93deaa8aa Simplify long term statistics by always supporting unit conversion (#79557) 2022-10-03 21:50:05 -04:00
Erik MontnemeryandGitHub a2e3978d53 Don't normalize units of long term statistics (#79320)
* Don't normalize units of long term statistics

* Update statistics.py
2022-10-03 21:42:44 +02:00
Erik MontnemeryandGitHub 2de273500e Remove state_unit_of_measurement from metadata DB table (#79370)
* Remove state_unit_of_measurement from metadata DB table

* Adjust test
2022-10-01 18:55:00 +02:00
Erik MontnemeryandGitHub bc2dffabc4 Improve naming of units used in statistics (#79276) 2022-09-30 08:38:44 +02:00
epenetandGitHub 5389ff3253 Add new weight device class (#79185) 2022-09-28 12:13:49 +02:00
Erik MontnemeryandGitHub 9084beda32 Keep storing statistics for sensors which change device class (#79155) 2022-09-27 14:33:28 -04:00