diff --git a/docs/core/entity.md b/docs/core/entity.md index cc33b8c3a90..9a4526f38a6 100644 --- a/docs/core/entity.md +++ b/docs/core/entity.md @@ -119,6 +119,17 @@ The following properties are also available on entities. However, they are for a | state_attributes | dict | None | `None` | State attributes of a base domain. This property is implemented by the domain base entity and should not be implemented by integrations. | unit_of_measurement | str | None | The unit of measurement that the entity's state is expressed in. In most cases, for example for the `number` and `sensor` domains, this is implemented by the domain base entity and should not be implemented by integrations. +## State attributes + +Entities can provide additional state attributes besides the built-in ones, to provide further details to its state. +This should be done by providing a dictionary with keys and values to the `extra_state_attributes` property. + +Providing state attributes comes with the following rules: + +- If an attribute is expected, it should be in the dictionary. Attributes should not "come and go". +- If an attribute is expected, but it's not providing a value right now, its value should be `None` and remain in the dictionary. +- If an attribute is not expected, it should not be in the dictionary. An attribute is expected if supported by the entity, for example as indicated by `supported_features`. + ## System properties The following properties are used and controlled by Home Assistant, and should not be overridden by integrations.