From 178c2aea611d0774e0cb89c2e27e494f42af5c6b Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Wed, 25 Oct 2017 15:42:16 -0400 Subject: [PATCH] Better documentation for state attributes (#3772) * Better documentation for state attributes * Fix extra tick * Extra notes for new components --- source/developers/development_states.markdown | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/developers/development_states.markdown b/source/developers/development_states.markdown index 4a8d1b81a8f..369f87ea54b 100644 --- a/source/developers/development_states.markdown +++ b/source/developers/development_states.markdown @@ -124,13 +124,17 @@ After a start or a restart of Home Assistant the component will be visible in th

-In order to expose attributes of your component, you will need to define a method called `state_attributes` which will return a dictionary of attributes: +In order to expose attributes for a platform, you will need to define a property called `device_state_attributes` on the entity class, which will return a dictionary of attributes: ``` @property -def state_attributes(self): - """Return the attributes of the entity.""" +def device_state_attributes(self): + """Return device specific state attributes.""" return self._attributes ``` +

+Entities also have a similar property `state_attributes`, which normally doesn't need to be defined by new platforms. This property is used by base components to add standard sets of attributes to a state. Example: The light component uses `state_attributes` to add brightness to the state dictionary. If you are designing a new component, you should define `state_attributes` instead. +

+ To get your component included in the Home Assistant releases, follow the steps described in the [Submitting improvements](https://home-assistant.io/developers/#submitting-improvements) section. Basically you only need to move your component in the `homeassistant/component/` directory of your fork and create a Pull Request.