From 76b908b033359661a5db2b39b61391c4833e369a Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Tue, 1 May 2018 22:25:45 +0200 Subject: [PATCH] Sensor device class docs (#5219) * Sensor device class docs * Fix binary_sensor copy * Fix headings * Add icons screenshot * Add Empty device_class * Grammar * Update customizing-devices.markdown * Add periods --- plugins/configuration.rb | 2 +- source/_components/binary_sensor.markdown | 2 ++ source/_components/sensor.markdown | 14 +++++++++++++- .../configuration/customizing-devices.markdown | 3 ++- .../screenshots/sensor_device_classes_icons.png | Bin 0 -> 15305 bytes 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 source/images/screenshots/sensor_device_classes_icons.png diff --git a/plugins/configuration.rb b/plugins/configuration.rb index 52bcf87fb96..30a5196d721 100644 --- a/plugins/configuration.rb +++ b/plugins/configuration.rb @@ -2,7 +2,7 @@ module Jekyll class ConfigurationBlock < Liquid::Block TYPE_LINKS = { 'action' => '/docs/scripts/', - 'device_class' => '/components/%{component}/#device_class', + 'device_class' => '/components/%{component}/#device-class', 'template' => '/docs/configuration/templating/', } diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index 5826f9c1470..fe8f4a51078 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -11,6 +11,8 @@ footer: true Binary sensors gather information about the state of devices which have a "digital" return value (either 1 or 0). These can be switches, contacts, pins, etc. These sensors only have two states: **0/off/low/closed/false** and **1/on/high/open/true**. Knowing that there are only two states allows Home Assistant to represent these sensors in a better way in the frontend according to their functionality. +### {% linkable_title Device Class %} + The way these sensors are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for binary sensors: - **None**: Generic on/off. This is the default and doesn't need to be set. diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown index 57ee8300bb0..d973c2442e1 100644 --- a/source/_components/sensor.markdown +++ b/source/_components/sensor.markdown @@ -9,8 +9,20 @@ sharing: true footer: true --- -Sensors are gathering information about states and conditions. +Sensors are gathering information about states and conditions. Home Assistant currently supports a wide range of sensors. They are able to display information which are provides by Home Assistant directly, are gathered from web services, and, of course, physical devices. Please check the sidebar for a full list of supported sensor platforms. +### {% linkable_title Device Class %} +The way these sensors are displayed in the frontend can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for sensors: + +- **None**: Generic sensor. This is the default and doesn't need to be set. +- **battery**: Percentage of battery that is left. +- **humidity**: Percentage of humidity in the air. +- **temperature**: Temperature in °C or °F. + +

+ +Example of various device class icons for sensors. +

diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index c3cc8cc4415..a76c1ed2aa8 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -71,9 +71,10 @@ homeassistant: ### {% linkable_title Device Class %} -Device class is currently supported by the following platforms: +Device class is currently supported by the following components: * [Binary Sensor](/components/binary_sensor/) +* [Sensor](/components/sensor/) * [Cover](/components/cover/) ### {% linkable_title Reloading customize %} diff --git a/source/images/screenshots/sensor_device_classes_icons.png b/source/images/screenshots/sensor_device_classes_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..58e115250ca2630b6c0738f3301c65152b60787e GIT binary patch literal 15305 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 U36jH=e^y9dR^?-jv{}f10Xu