Erik Montnemery
8ccb3b7151
Fix circular import loop in homeassistant/helpers/entity.py ( #87780 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-09 19:15:53 +01:00
Paulus Schoutsen
a090652560
Use correct state in Entity repr and output similar value to State class ( #87519 )
...
* Use correct state in Entity repr
* Test Entity.__repr__
* Align with State class
2023-02-06 13:35:36 -05:00
Franck Nijhof
06a35fb7db
Code styling tweaks to core helpers ( #85441 )
2023-01-08 13:44:09 -10:00
Franck Nijhof
d4f69a3652
String formatting and max line length - Part 7 ( #84532 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-12-27 11:18:56 +01:00
Erik Montnemery
8e617bbc1d
Add `translation_key` property to entites ( #82701 )
...
* Add translation_key attribute to entity state
* Update accuweather test
* Index entity translation keys by platform
* Store translation key in entity registry
2022-12-01 09:34:09 +01:00
Erik Montnemery
35dbc3151a
Fix docstring for entity helper ( #82704 )
...
Fix some language in entity.py
2022-11-25 18:20:33 +01:00
Marc Mueller
0c8eeaa643
Update mypy to 0.990 ( #81783 )
...
* Update mypy to 0.990
* Remove type ignore - overriding attr with property (13475)
* Remove type ignores - hasattr (13544)
* Adjust type ignore - assignment (13549)
* New error code - type-abstract (13785)
* Disable annotation-unchecked (13851)
2022-11-08 14:41:39 +01: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
Franck Nijhof
a30dfd9f3e
Add class attribute for capability attributes in entity base class ( #76599 )
2022-08-11 10:34:58 +02:00
Franck Nijhof
7adb0f0ef5
Custom component -> Custom integration ( #75404 )
2022-07-18 22:10:22 +02:00
Erik Montnemery
26a85c6644
Add Entity.has_entity_name attribute ( #73217 )
2022-06-28 09:38:05 -07:00
Erik Montnemery
921245a490
Remove deprecated temperature conversion of non sensors ( #73222 )
2022-06-08 20:47:47 +02:00
Erik Montnemery
deedbca46c
Mark unused sync toggle method from ToggleEntity as final ( #72370 )
2022-05-23 17:52:21 +02:00
Erik Montnemery
1aaf78ef99
Remove entity category system in favor of hidden_by ( #68550 )
2022-05-02 09:33:16 -07:00
Marc Mueller
283c04e424
Improve typing [helpers.entity] ( #70890 )
2022-04-28 10:52:42 +02:00
Erik Montnemery
c5d69ab1b2
Handle removed entites in collection.sync_entity_lifecycle ( #70759 )
...
* Handle removed entites in collection.sync_entity_lifecycle
* Add comment
2022-04-27 08:05:00 -07:00
Paulus Schoutsen
5317bf02e6
Fix hidden default ( #70699 )
2022-04-25 10:10:42 -07:00
Franck Nijhof
7b75a16745
Add visible by default property to base Entity ( #70370 )
2022-04-21 22:06:34 -07:00
epenet
4c7e1fe060
Cleanup ENTITY_CATEGORIES_SCHEMA ( #66549 )
...
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-04-01 09:40:43 -07:00
Paulus Schoutsen
130ca2213f
Enforce EntityCategory enum ( #69015 )
...
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:04:33 -07:00
Erik Montnemery
69ee4cd978
Deprecate temperature conversion in base entity class ( #68978 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-31 14:29:44 -07:00
Erik Montnemery
9471e4d77c
Don't override temperature unit for sensors ( #68910 )
2022-03-30 10:15:00 -07:00
Erik Montnemery
91f6e58e9a
Allow customizing unit for temperature and pressure sensors ( #64366 )
...
* Allow customizing unit for temperature and pressure sensors
* pylint
* Adjust google_wifi tests
* Address review comments and add tests
* Improve rounding when scaling
* Tweak rounding
* Further tweak rounding
* Allow setting entity options with config/entity_registry/update
* Address review comments
* Tweak tests
* Load custom unit when sensor is added
* Override async_internal_added_to_hass
* Adjust tests after rebase
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Address review comments
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-30 15:43:04 +02:00
J. Nick Koston
aaeaed4117
Compatibility for "device_state_attributes" which was deprecated in 2021.4 has been removed ( #67837 )
...
* Small performance tweaks to _async_write_ha_state
- Only call self.available once per cycle
- Only call self.device_state_attributes once per update cycle
- Do not check for device_state_attributes if extra_state_attributes is not None
* drop backcompat
* remove prop
2022-03-09 21:39:43 +01:00
J. Nick Koston
a75bbc79a2
Prevent polling from recreating an entity after removal ( #67750 )
2022-03-07 20:42:16 -08:00
Marc Mueller
30e2411761
Add type ignore error codes [last ones] ( #66816 )
2022-02-18 18:15:57 +01:00
Marc Mueller
bfb1abd3a2
Add type ignore error codes [helpers] ( #66776 )
2022-02-18 11:31:37 +01:00
epenet
0a7b1dec7d
Adjust type hint in core add_job ( #66503 )
...
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-02-14 11:13:10 +01:00
Joakim Sørensen
7a40ae13a4
Add guard for invalid EntityCategory value ( #66316 )
2022-02-11 14:57:45 +01:00
Erik Montnemery
911e488d48
Fix ENTITY_CATEGORIES_SCHEMA ( #66108 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-02-08 14:00:53 -08:00
epenet
f662e8669e
Address late review in entity registry ( #64851 )
...
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-24 22:42:38 +01:00
epenet
32d5c8e8ac
Add type hint to RegistryEntry.entity_category ( #64618 )
...
Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-24 12:51:11 +01:00
Franck Nijhof
176f03d4ac
Allow toggles (switches) state to be None ( #64621 )
2022-01-23 11:31:01 +01:00
Marc Mueller
b0f72f59da
Use imports from `core` ( #63458 )
2022-01-05 14:55:38 +01:00
Ruslan Sayfutdinov
55f4962c06
Fix pylint plugin which checks relative imports ( #62693 )
2021-12-23 11:14:47 -08:00
J. Nick Koston
04153c0075
Add hardware version to the device registry ( #61650 )
2021-12-16 05:16:19 -06:00
Franck Nijhof
ffb4b4df96
Only report deprecated device_state_attributes once ( #60980 )
2021-12-04 13:37:42 +01:00
Marvin Wichmann
707fe67c00
Move StrEnum to homeassistant.backports and move Platform to homeassistant.const ( #60880 )
...
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-12-03 09:31:17 +01:00
Franck Nijhof
c28b45cd83
Migrate entity categories to StrEnum ( #60720 )
2021-12-01 13:54:36 +01:00
Ville Skyttä
7c6a72b086
Remove unneeded pylint disables ( #60235 )
2021-11-23 21:40:53 +01:00
Ville Skyttä
053c456199
Change device entry type to an StrEnum ( #59940 )
...
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-22 18:14:15 +01:00
Erik Montnemery
49a27e12ad
Add support to entity registry for overriding device_class ( #59985 )
2021-11-22 08:38:06 -08:00
Erik Montnemery
1609c0cc2c
Sort some entity_registry code ( #59876 )
...
* Sort some entity_registry code
* Sort some more entity_registry code
* Tweak
2021-11-18 11:51:32 +01:00
Simone Chemelli
8a02d87a17
Removed deprecated "device_state_attributes" for Amberelectric ( #59672 )
...
* Removed deprecated "device_state_attributes"
* Cleanup
* Postpone removal
* log deprecation warning
* Update homeassistant/helpers/entity.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-16 16:11:46 +01:00
Paulus Schoutsen
a122cbab61
Mobile app to update entity registry on re-register sensors ( #58378 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-31 20:21:46 -07:00
Erik Montnemery
a0a8b9db26
Add entity category 'system' ( #58595 )
...
* Add entity category 'hidden'
* Update cloud
* Update Google assistant
* Update Alexa
* Fix tests
* Add ENTITY_CATEGORIES constant
* Rename ENTITY_CATEGORY_HIDDEN to ENTITY_CATEGORY_SYSTEM
* Correct import in motioneye
2021-10-28 14:36:41 +02:00
Erik Montnemery
1eebe45154
Add support for entity categories to MQTT entities ( #57656 )
...
* Add support for entity categories to MQTT entities
* Improve test
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/mqtt/mixins.py
Co-authored-by: Paul Monigatti <paulmonigatti@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paul Monigatti <paulmonigatti@users.noreply.github.com>
2021-10-15 14:28:30 +02:00
Erik Montnemery
e27e4c3561
Add support for device configuration URL ( #57539 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-14 11:16:56 -07:00
Erik Montnemery
4b3d423767
Add config and diagnostic entities ( #57528 )
...
* Add config entity concept
* Rename is_config_entity to entity_category
* Add test
* Add 'diagnostic' entity category
2021-10-14 10:04:26 +02:00
Erik Montnemery
bdbedd0f06
Alphabetize parts of device registry code ( #57532 )
2021-10-12 12:08:59 +02:00
Franck Nijhof
13db867c1d
Move attribution attribute to Entity base class ( #57492 )
2021-10-11 23:15:32 +02:00
Erik Montnemery
6954614e62
Warn if total_increasing sensor has negative states ( #56564 )
2021-09-30 07:49:16 -07:00
Marc Mueller
7af67d34cf
Use assignment expressions 01 ( #56394 )
2021-09-18 13:31:35 -10:00
Marc Mueller
69e413ac1e
Update pylint to 2.10.1 ( #54963 )
...
* Update pylint to 2.10.0
* useless-suppression
* Consider-using-tuple
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Use dict.items()
* Add pylint disable
* Use pylint 2.10.1
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-08-21 10:41:23 +02:00
Erik Montnemery
4e07ab1b32
Move temperature conversions to sensor base class (1/8) ( #48261 )
...
* Move temperature conversions to entity base class (1/8)
* Update integrations a-c
* Leave old temperature conversion until all integrations are migrated
* tweak
* Use contextlib.suppress
* Remove the MeasurableUnitEntity mixin
* Address comments, add tests
* Fix f-string
* Drop deprecation warning from base entity class
* Update with _attr-shorthand
* Fix rebase mistakes
* Fix additional rebase mistakes
* Only report temperature conversion once
* Fix additional rebase mistakes
* Format homeassistant/components/bbox/sensor.py
* Fix check for overidden _attr_state
* Remove test workarounds from implementation
* Remove useless None-check
* Tweaks
* Migrate new sensors a-c
* Update climacell
* Push deprecation of temperature conversion forward
* Override __repr__ in SensorEntity
* Include native_value in SensorEntity attributes
* Pylint
* Black
* Black
* Fix rebase mistakes
* black
* Fix rebase mistakes
* Revert changes in august/sensor.py
* Revert handling of unit converted restored state
* Apply code review suggestion
* Fix arlo test
2021-08-11 10:45:05 +02:00
Allen Porter
160bd74bae
Update DeviceInfo static types ( #54276 )
...
* Update nest static types from aditional PR feedback
Update nest and device helper static types based on post-merge discussion in PR #53475
* Remove unused type: ignore in synology
* Remove check for None device type
Remove check for None device type in order to reduce untested code as this is
a case not allowed by the nest python library.
2021-08-08 19:24:36 -07:00
Franck Nijhof
d4c4263730
Adjust typing of _attr_extra_state_attributes ( #53529 )
2021-07-27 01:25:22 +02:00
Franck Nijhof
0b44265232
Add description classes to entity components ( #53521 )
...
* Add description classes to entity components
* An -> A
* Add StateVacuumEntityDescription
2021-07-27 00:22:21 +02:00
Franck Nijhof
ee452d415d
Add SensorEntityDescription class ( #53357 )
2021-07-26 22:00:43 +02:00
Aaron Bach
0fd88e7e66
Type _attr_extra_state_attributes as a MutableMapping ( #52616 )
...
* Type extra_state_attributes as a MutableMapping
* Update homeassistant/helpers/entity.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
* Update homeassistant/helpers/entity.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-07-20 15:41:03 -06:00
Erik Montnemery
b916247e8e
Improve editing of device automation referring non added select entity ( #52047 )
...
* Improve editing of device automation referring non added select entity
* Update tests
2021-06-21 14:49:51 +02:00
Erik Montnemery
ba6b527d61
Improve editing of device actions referencing non-added HVAC ( #51706 )
...
* Improve editing of device actions referencing non-added HVAC
* Improve test coverage
2021-06-11 11:13:55 +02:00
Erik Montnemery
a1e3283f8f
Improve editing of device automations referencing non-added sensors ( #51312 )
2021-06-08 23:28:08 -07:00
Franck Nijhof
d51fc5814a
Define ToggleEntity entity attributes as class variables ( #51231 )
...
* Define ToggleEntity entity attributes as class variables
* Fix upcloud overriding state property
* Implement available state for upcloud, to compensate removed state
2021-06-02 08:53:55 +02:00
Franck Nijhof
38d095aa18
Define entity attributes as entity class variables ( #50925 )
...
* Define entity attributes as entity class variables
* Example coronavirus integration
* Example verisure
* Cleanup/typing fixes
* Fix Coronavirus
* Revert "Fix Coronavirus"
This reverts commit 060843860f
.
* Revert "Cleanup/typing fixes"
This reverts commit 659b79e75a
.
* Define entity attributes as entity class variables (attr alternative)
* Example coronavirus
* Example nut
* Example verisure
* Mark private
* Cleanup after all reverting/cherrypicking/merging
* Implement all entity properties
* Update coronavirus example
* Update nut example
* Update verisure example
* Lets not talk about this one...
* Fix multiple class attribute
2021-05-22 09:13:50 -07:00
Ville Skyttä
ed10856cc4
UpCloud API and typing update ( #50624 )
2021-05-14 21:49:41 -07:00
Ville Skyttä
b89c53f759
Type hint device registry identifiers as set of str 2-tuples ( #50355 )
...
* Type hint device registry identifiers as set of str 2-tuples
* Fix airly test
* Really fix airly test, add another migration test
2021-05-10 12:13:45 +02:00
Franck Nijhof
44383f25ce
Clean up pylint comments ( #49334 )
2021-05-05 08:56:50 +02:00
Ville Skyttä
59f32f7c9c
Make device info a TypedDict ( #49670 )
2021-04-30 23:21:39 +02:00
Erik Montnemery
d2fd504442
Limit precision when stringifying float states ( #48822 )
...
* Limit precision when stringifying float states
* Add test
* Fix typing
* Move StateType
* Update
* Move conversion to entity helper
* Address review comments
* Tweak precision
* Tweak
* Make _stringify_state an instance method
2021-04-27 21:48:24 +02:00
Marc Mueller
c07646db5d
Update typing syntax ( #49480 )
...
* Update typing syntax
* Replace typing imports with ones from collections where possible
* Changes after review
2021-04-20 17:40:41 +02:00
Erik Montnemery
7e4be921a8
Add helper to get an entity's supported features ( #48825 )
...
* Add helper to check entity's supported features
* Move get_supported_features to helpers/entity.py, add tests
* Fix error handling and improve tests
2021-04-10 08:19:16 +02:00
Ruslan Sayfutdinov
a6759d731d
Use Mapping[str, Any] instead of dict in Entity ( #48421 )
2021-03-31 19:34:00 +02:00
Marc Mueller
6fb2e63e49
Update typing 02 ( #48014 )
2021-03-17 18:34:19 +01:00
Franck Nijhof
5d5a110a20
None optional hass typing in base entity and notify ( #47528 )
2021-03-15 15:11:41 +01:00
Erik Montnemery
3a054c3be7
Replace Entity.device_state_attributes with Entity.extra_state_attributes ( #47304 )
2021-03-09 13:58:43 +01:00
tkdrob
c2302784c2
Use core constants for helpers ( #46240 )
2021-02-08 22:53:17 +01:00
Paulus Schoutsen
9e07910ab0
Mark entities as unavailable when they are removed but are still registered ( #45528 )
...
* Mark entities as unavailable when they are removed but are still registered
* Add sync_entity_lifecycle to collection helper
* Remove debug print
* Lint
* Fix tests
* Fix tests
* Update zha
* Update zone
* Fix tests
* Update hyperion
* Update rfxtrx
* Fix tests
* Pass force_remove=True from integrations
Co-authored-by: Erik <erik@montnemery.com>
2021-02-08 10:45:46 +01:00
J. Nick Koston
df2ede6522
Fix state overwrite race condition where two platforms request the same entity_id ( #42151 )
...
* Fix state overwrite race condition where two platforms request the same entity id
* fix test
* create reservations instead
* revert
* cannot use __slots__ because we patch async_all
2020-10-21 17:01:51 +02:00
J. Nick Koston
f50976a0b3
Switch to asyncio.wait for slow update warning implementation ( #41184 )
2020-10-05 15:28:15 +02:00
springstan
a2c3c33b22
Use core GitHub URL in all files ( #41089 )
2020-10-03 00:04:11 +02:00
Franck Nijhof
1c2ebdf307
Upgrade black to 20.8b1 ( #39287 )
2020-08-27 13:56:20 +02:00
Paulus Schoutsen
3dc79aa60a
Track entity sources ( #37258 )
...
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
2020-08-19 14:57:38 +02:00
Ville Skyttä
802c556e82
State and service related type hint improvements ( #38956 )
...
* Improve type hint of service_func to register
* Add named type for state values
* Narrow some unnecessarily broad state type hints
2020-08-17 15:02:43 -04:00
J. Nick Koston
79055487ed
Simplify generate_entity_id ( #38418 )
...
* Simplify generate_entity_id
Use similar optimized logic for async_generate_entity_id
from entity_registry that was already optimized
* pylint
* make generate_entity_id a wrapper around async_generate_entity_id instead
2020-07-31 08:50:42 +02:00
J. Nick Koston
910b6c9c2c
Index entity_registry_updated listeners ( #37940 )
2020-07-17 21:59:18 -07:00
Franck Nijhof
53545c984b
Log lines do not end with a full stop ( #37527 )
2020-07-05 23:04:19 +02:00
J. Nick Koston
152a80abed
Complete deprecation of hidden attribute (ATTR_HIDDEN) ( #37041 )
2020-06-23 17:05:32 -05:00
Ville Skyttä
0c5ca3084e
Add and fix type hints ( #36501 )
...
* Fix exceptions.Unauthorized.permission type
* Use auth.permission consts more
* Auth typing improvements
* Helpers typing improvements
* Calculate self.state only once
2020-06-06 20:34:56 +02:00
J. Nick Koston
13f4393042
Fix flapping reload tests ( #34837 )
2020-04-28 22:58:55 -07:00
Ville Skyttä
267d98b5eb
Type hint improvements ( #33082 )
2020-04-17 11:33:58 -07:00
Franck Nijhof
6d24a65313
Various light test improvements ( #34131 )
2020-04-13 15:33:04 +02:00
Erik Montnemery
867630a4a7
Remove state when entity is removed from registry ( #32184 )
2020-03-26 16:33:50 -07:00
Eugenio Panadero
fb22f6c301
Add Context support for async_entity removal ( #33209 )
...
* Add Context for async_remove
* Check context in state automation on entity removal
2020-03-24 09:59:17 -07:00
Erik Montnemery
7e387f93d6
Add MQTT WS command to remove device ( #31989 )
...
* Add MQTT WS command to remove device
* Review comments, fix test
* Fix tests
2020-02-24 20:46:02 -08:00
Paulus Schoutsen
9e7185c676
Write state if schedule update state from async context ( #31758 )
...
* Write state if schedule update state from async context
* Fix most tests
* Fix test and PS4 I/O in event loop
* Fix ps4 better
2020-02-13 10:22:06 -08:00
Paulus Schoutsen
51c35ab9a8
Entity Registry to store and restore name/icon ( #31714 )
...
* Entity Registry to store and restore name/icon
* Update test_entity_registry.py
* Add original name/icon to JSON result
2020-02-11 09:40:50 -08:00
Paulus Schoutsen
5a0f21cbe3
Adjust entity slow warning for custom component ( #31711 )
2020-02-10 16:32:47 -08:00
Paulus Schoutsen
a3b3924e21
Update link when IO in event loop ( #31519 )
2020-02-06 11:37:35 +01:00
Paulus Schoutsen
e970177eeb
Use entity.async_request_call in service helper ( #31454 )
...
* Use entity.async_request_call in service helper
* Clean up semaphore handling
* Address comments
* Simplify call entity service helper
* Fix stupid rflink test
2020-02-04 15:30:15 -08:00