Commit graph

27 commits

Author SHA1 Message Date
Franck Nijhof
ed79265843
Enable Ruff PT006 ()
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
epenet
b9beed4624
Add type hints to integration tests (part 6) () 2023-02-13 09:45:11 +01:00
epenet
3052de3e8e
Add type hints to integration tests (d-e) () 2023-02-08 13:01:44 +01:00
SgtBatten
0ccab19d2c
Add Mega Joule as valid unit of energy ()
* Add Mega joule

* Reorder valid energy types

Alphabetical

* Add Mega Joule

* Add Mega Joule as valid energy unit

* Add Mega Joule

* Add Mega Joule as a Unit of Measurement to Energy

* Update tests

* Update tests

* Update number docstring

Co-authored-by: Roving Ronin <108674933+Roving-Ronin@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-01-25 14:13:42 +01:00
Franck Nijhof
24fdd588fd
Code styling tweaks to the tests - Part 1 () 2023-01-20 13:52:46 +01:00
Erik Montnemery
8418a30cc0
Refactor energy validation issue reporting ()
* Refactor energy validation issue reporting

* Update English translations

* Adjust translations
2023-01-12 12:50:43 +01:00
Erik Montnemery
95fc641949
Add support to the energy integration for tracking water usage () 2022-10-26 21:20:52 +02:00
epenet
842cb18d39
Migrate energy units to an enum () 2022-10-26 13:56:51 +02:00
Erik Montnemery
727eccfec4
Add GJ as supported unit for energy sensors ()
* Add GJ as supported unit for energy sensors

* Update homeassistant/const.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-10-25 16:43:00 +02:00
Erik Montnemery
31a787558f
Ensure recorder test fixture is setup before hass fixture ()
* Ensure recorder test fixture is setup before hass fixture

* Adjust more tests
2022-10-19 07:58:47 +02:00
Erik Montnemery
6b0c9b6a6a
Simplify energy settings () 2022-09-22 21:58:15 -04:00
Jaroslav Hanslík
5b73cb10c1
MWh is valid unit for energy dashboard ()
MWh is valid unit for energy
2022-06-29 11:42:52 +02:00
J. Nick Koston
8b067e83f7
Initial orjson support take 3 ()
* Initial orjson support take 2

Still need to work out problem building wheels

--

Redux of  /  Now possible since the following is solved:
 (comment)

This implements orjson where we use our default encoder.  This does not implement orjson where `ExtendedJSONEncoder` is used as these areas tend to be called far less frequently.  If its desired, this could be done in a followup, but it seemed like a case of diminishing returns (except maybe for large diagnostics files, or traces, but those are not expected to be downloaded frequently).

Areas where this makes a perceptible difference:
- Anything that subscribes to entities (Initial subscribe_entities payload)
- Initial download of registries on first connection / restore
- History queries
- Saving states to the database
- Large logbook queries
- Anything that subscribes to events (appdaemon)

Cavets:
orjson supports serializing dataclasses natively (and much faster) which
eliminates the need to implement `as_dict` in many places
when the data is already in a dataclass. This works
well as long as all the data in the dataclass can also
be serialized. I audited all places where we have an `as_dict`
for a dataclass and found only backups needs to be adjusted (support for `Path` needed to be added for backups).  I was a little bit worried about `SensorExtraStoredData` with `Decimal` but it all seems to work out from since it converts it before it gets to the json encoding cc @dgomes

If it turns out to be a problem we can disable this
with option |= [orjson.OPT_PASSTHROUGH_DATACLASS](https://github.com/ijl/orjson#opt_passthrough_dataclass) and it
will fallback to `as_dict`

Its quite impressive for history queries
<img width="1271" alt="Screen_Shot_2022-05-30_at_23_46_30" src="https://user-images.githubusercontent.com/663432/171145699-661ad9db-d91d-4b2d-9c1a-9d7866c03a73.png">

* use for views as well

* handle UnicodeEncodeError

* tweak

* DRY

* DRY

* not needed

* fix tests

* Update tests/components/http/test_view.py

* Update tests/components/http/test_view.py

* black

* templates
2022-06-22 21:59:51 +02:00
J. Nick Koston
c365454afb
Revert "Initial orjson support ()" ()
This was causing the wheels to fail to build. We need
to workout why when we don't have release pressure

This reverts commit d9d22a9556.
2022-05-31 13:51:55 -07:00
J. Nick Koston
d9d22a9556
Initial orjson support () 2022-05-31 12:18:11 -07:00
Erik Montnemery
982e314de6
Use recorder_mock in tests ()
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-22 19:29:44 -10:00
Erik Montnemery
65b1f0d9eb
Minor refactor of energy validator () 2021-11-10 22:38:15 -08:00
Erik Montnemery
547e36ae94
Tweak energy validator ()
* Tweak energy validator

* Update code and tests

* Tweak implementation

* Update tests

* Update after rebase
2021-10-22 10:38:04 +02:00
Paulus Schoutsen
11ed70b774
Fix energy gas price validation () 2021-10-04 20:52:40 -07:00
Franck Nijhof
41e5f05d99
Fix energy validation when not tracking costs () 2021-09-29 13:24:34 +02:00
Erik Montnemery
83156fb9ec
Energy validation: Require last_reset attribute to be set for state_class measurement energy and cost sensors ()
* Require last_reset attribute to be set for measurement state_class

* Tweak

* Improve tests

* Lint

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-22 21:48:37 -07:00
Erik Montnemery
f77e93ceeb
Fix validation of cost entities for energy dashboard () 2021-09-22 13:57:58 -07:00
Erik Montnemery
bac55b78fe
Enforce device class for gas and energy sensors used by energy dashboard ()
* Enforce device class for gas and energy sensors used by energy dashboard

* Adjust tests
2021-09-14 16:56:36 +02:00
Erik Montnemery
443147e132
Wait for entities when updating energy preferences () 2021-09-10 09:07:52 -07:00
Erik Montnemery
bb6c2093a2
Add support for state class measurement to energy cost sensor () 2021-09-08 12:46:28 -07:00
Paulus Schoutsen
ec337101dd
Fix gas validation () 2021-09-07 20:53:43 -07:00
Paulus Schoutsen
2f77b5025c
Add energy validation () 2021-08-18 11:21:51 -07:00