1
0
mirror of https://github.com/home-assistant/core.git synced 2026-07-02 04:06:41 +01:00
Commit Graph

661 Commits

Author SHA1 Message Date
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
Erik Montnemery 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 Nijhof ce00f093d6 Add enum device_class and state options property to sensor entities (#82489) 2022-12-02 09:11:15 +01:00
Erik Montnemery a038314d8b Add display unit to WS recorder/get_statistics_metadata (#82870) 2022-11-28 13:46:57 -05:00
Erik Montnemery 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 Montnemery 607a0e7697 Reduce size of get_statistics_during_period WS API response (#82131) 2022-11-16 17:36:30 +01:00
Erik Montnemery 7aa4654eb4 Improve docstring for sensor testcase (#81875) 2022-11-09 23:59:58 +01:00
Erik Montnemery 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 Montnemery 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 Montnemery 3d3349240f Don't trigger statistics issues when sensor units are equivalent (#80099) 2022-10-25 09:50:01 +02:00
Erik Montnemery 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
epenet 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 Montnemery 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 Montnemery 918243b7c8 Improve some sensor statistics tests (#80087) 2022-10-11 08:57:08 -04:00
Erik Montnemery a391b8dd9d Support correcting sensor volume unit (#80081) 2022-10-11 13:51:28 +02:00
Erik Montnemery 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 Montnemery aa5575ba65 Only validate sensors in sensor.recorder.validate_statistics (#79749) 2022-10-06 21:17:46 +02:00
Erik Montnemery 0a59d37e62 Correct how unit used for statistics is determined (#79725) 2022-10-06 14:01:54 -04:00
Erik Montnemery e93deaa8aa Simplify long term statistics by always supporting unit conversion (#79557) 2022-10-03 21:50:05 -04:00
Erik Montnemery 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 Montnemery 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 Montnemery bc2dffabc4 Improve naming of units used in statistics (#79276) 2022-09-30 08:38:44 +02:00
epenet 5389ff3253 Add new weight device class (#79185) 2022-09-28 12:13:49 +02:00
Erik Montnemery 9084beda32 Keep storing statistics for sensors which change device class (#79155) 2022-09-27 14:33:28 -04:00
epenet 12e4d18038 Add volume to SensorDeviceClass (#77960)
* Add volume to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust sensor UNIT_CONVERTERS

* Adjust recorder

* Update strings.json
2022-09-27 19:37:52 +02:00
epenet 7c448416e1 Add speed to SensorDeviceClass (#77953)
* Add speed to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust sensor UNIT_CONVERTERS

* Add tests

* Add websocket tests

* Update strings.json
2022-09-27 17:19:34 +01:00
epenet bfcc18e5b8 Add distance to SensorDeviceClass (#77951)
* Add distance to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust recorder

* Update __init__.py

* Update test_websocket_api.py

* Update test_websocket_api.py

* Update test_websocket_api.py

* Update strings.json

* Fix tests

* Adjust docstring
2022-09-27 15:34:00 +01:00
Erik Montnemery 5bcef1c7ce Indicate in statistics issues when units can be converted (#79121) 2022-09-27 13:51:38 +02:00
Erik Montnemery dae00c70de Allow selecting display unit when fetching statistics (#78578) 2022-09-20 17:43:57 -04:00
Erik Montnemery dd20a7ea62 Display statistics in the source's unit (#78031) 2022-09-15 12:01:24 -04:00
Ernst Klamer db4391adff Add device class moisture (#77666) 2022-09-01 11:47:47 -04:00
Erik Montnemery 008ac8d10d Improve statistics metadata WS API (#77209) 2022-08-31 11:30:45 +02:00