home-assistant.github.io/components/sensor.rest/index.html
2018-01-25 17:33:45 +00:00

735 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>RESTful Sensor - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Instructions how to integrate REST sensors into Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/sensor.rest/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="RESTful Sensor">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/sensor.rest/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to integrate REST sensors into Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="RESTful Sensor">
<meta name="twitter:description" content="Instructions how to integrate REST sensors into Home Assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection, print" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header class='site-header'>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
<li><a href="/cookbook/">Examples</a></li>
<li><a href="/developers/">Developers</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="/help/">Need help?</a></li>
<li><a href='#' class='show-search'><i class="icon-search"></i></a></li>
</ul>
</nav>
<div class='search-container' style='display: none'>
<div class='search'>
<i class="icon-search"></i>
<input id='search' placeholder='Search the docs…'>
<a href='#' class='close'><i class="icon-remove-sign"></i></a>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="grid-wrapper">
<div class="grid grid-center">
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
<article class="page">
<header>
<h1 class="title indent">
RESTful Sensor
</h1>
</header>
<hr class="divider">
<p>The <code class="highlighter-rouge">rest</code> sensor platform is consuming a given endpoint which is exposed by a <a href="https://en.wikipedia.org/wiki/Representational_state_transfer">RESTful API</a> of a device, an application, or a web service. The sensor has support for GET and POST requests.</p>
<p>To enable this sensor, add the following lines to your <code class="highlighter-rouge">configuration.yaml</code> file for a GET request:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS/ENDPOINT</span>
</code></pre>
</div>
<p>or for a POST request:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS/ENDPOINT</span>
<span class="s">method</span><span class="pi">:</span> <span class="s">POST</span>
<span class="s">payload</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{</span><span class="nv"> </span><span class="s">"device"</span><span class="nv"> </span><span class="s">:</span><span class="nv"> </span><span class="s">"heater"</span><span class="nv"> </span><span class="s">}'</span>
</code></pre>
</div>
<div class="config-vars">
<h3><a class="title-link" name="configuration-variables" href="#configuration-variables"></a> Configuration Variables</h3>
<dl class="">
<dt><a class="title-link" name="resource" href="#resource"></a> resource</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Required)</span><span class="description">The resource or endpoint that contains the value.</span></p>
<p class="default">Default value: string</p>
</dd>
<dt><a class="title-link" name="method" href="#method"></a> method</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">The method of the request.</span></p>
<p class="default">Default value: GET</p>
</dd>
<dt><a class="title-link" name="name" href="#name"></a> name</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">Name of the REST sensor.</span></p>
<p class="default">Default value: REST Sensor</p>
</dd>
<dt><a class="title-link" name="value_template" href="#value_template"></a> value_template</dt>
<dd>
<p class="desc"><span class="type">(<span class="template"><a href="/docs/configuration/templating/">template</a></span>)</span><span class="required">(Optional)</span><span class="description">Defines a <a href="/docs/configuration/templating/#processing-incoming-data">template</a> to extract the value.</span></p>
</dd>
<dt><a class="title-link" name="payload" href="#payload"></a> payload</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">The payload to send with a POST request. Depends on the service, but usually formed as JSON.</span></p>
</dd>
<dt><a class="title-link" name="verify_ssl" href="#verify_ssl"></a> verify_ssl</dt>
<dd>
<p class="desc"><span class="type">(<span class="boolean">boolean</span>)</span><span class="required">(Optional)</span><span class="description">Verify the certification of the endpoint.</span></p>
<p class="default">Default value: true</p>
</dd>
<dt><a class="title-link" name="unit_of_measurement" href="#unit_of_measurement"></a> unit_of_measurement</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">Defines the units of measurement of the sensor, if any.</span></p>
</dd>
<dt><a class="title-link" name="authentication" href="#authentication"></a> authentication</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">Type of the HTTP authentication. <code class="highlighter-rouge">basic</code> or <code class="highlighter-rouge">digest</code>.</span></p>
</dd>
<dt><a class="title-link" name="username" href="#username"></a> username</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">The username for accessing the REST endpoint.</span></p>
</dd>
<dt><a class="title-link" name="password" href="#password"></a> password</dt>
<dd>
<p class="desc"><span class="type">(<span class="string">string</span>)</span><span class="required">(Optional)</span><span class="description">The password for accessing the REST endpoint.</span></p>
</dd>
<dt><a class="title-link" name="headers" href="#headers"></a> headers</dt>
<dd>
<p class="desc"><span class="type">(<span class="list, string">list | string</span>)</span><span class="required">(Optional)</span><span class="description">The headers for the requests.</span></p>
</dd>
<dt><a class="title-link" name="json_attributes" href="#json_attributes"></a> json_attributes</dt>
<dd>
<p class="desc"><span class="type">(<span class="list, string">list | string</span>)</span><span class="description">A list of keys to extract values from a JSON dictionary result and then set as sensor attributes.</span></p>
</dd>
<dt><a class="title-link" name="force_update" href="#force_update"></a> force_update</dt>
<dd>
<p class="desc"><span class="type">(<span class="boolean">boolean</span>)</span><span class="description">Sends update events even if the value hasnt changed. Useful if you want to have meaningful value graphs in history.</span></p>
<p class="default">Default value: false</p>
</dd>
</dl>
</div>
<p class="note warning">
Make sure that the URL exactly matches your endpoint or resource.
</p>
<p><code class="highlighter-rouge">curl</code> can help you identify the variable you want to display in your Home Assistant frontend. The example below shows the JSON response of a device that is running with <a href="http://arest.io/">aREST</a>.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>curl -X GET http://192.168.1.31/temperature/
<span class="o">{</span><span class="s2">"temperature"</span>: 77, <span class="s2">"id"</span>: <span class="s2">"sensor02"</span>, <span class="s2">"name"</span>: <span class="s2">"livingroom"</span>, <span class="s2">"connected"</span>: <span class="nb">true</span><span class="o">}</span>
</code></pre>
</div>
<h2><a class="title-link" name="examples" href="#examples"></a> Examples</h2>
<p>In this section you find some real life examples of how to use this sensor.</p>
<h3><a class="title-link" name="external-ip-address" href="#external-ip-address"></a> External IP address</h3>
<p>You can find your external IP address using the service <a href="http://www.jsontest.com">JSON Test</a> at their <a href="http://ip.jsontest.com/">http://ip.jsontest.com/</a> URL.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://ip.jsontest.com</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">External IP</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.ip</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<h3><a class="title-link" name="single-value-from-a-local-glances-instance" href="#single-value-from-a-local-glances-instance"></a> Single value from a local Glances instance</h3>
<p>The <a href="/components/sensor.glances/">glances</a> sensor is doing the exact same thing for all exposed values.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADRRESS:61208/api/2/mem/used</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Used mem</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.used|</span><span class="nv"> </span><span class="s">multiply(0.000000954)</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">round(0)</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s">MB</span>
</code></pre>
</div>
<h3><a class="title-link" name="value-from-another-home-assistant-instance" href="#value-from-another-home-assistant-instance"></a> Value from another Home Assistant instance</h3>
<p>The Home Assistant <a href="/developers/rest_api/">API</a> exposes the data from your attached sensors. If you are running multiple Home Assistant instances which are not <a href="/developers/architecture/#multiple-connected-instances">connected</a> you can still get information from them.</p>
<p>If the Home Assistant instance in the resource variable is protected by an API password, you can append <code class="highlighter-rouge">?api_password=YOUR_PASSWORD</code> to the resource URL to authenticate or use <code class="highlighter-rouge">headers:</code>.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS:8123/api/states/sensor.weather_temperature</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Temperature</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.state</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s2">"</span><span class="s">°C"</span>
</code></pre>
</div>
<h3><a class="title-link" name="accessing-a-http-authentication-protected-endpoint" href="#accessing-a-http-authentication-protected-endpoint"></a> Accessing a HTTP authentication protected endpoint</h3>
<p>The REST sensor supports HTTP authentication and customized headers.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://IP_ADDRESS:5000/sensor</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">ha1</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">test1</span>
<span class="s">authentication</span><span class="pi">:</span> <span class="s">basic</span>
<span class="s">headers</span><span class="pi">:</span>
<span class="s">User-Agent</span><span class="pi">:</span> <span class="s">Home Assistant</span>
<span class="s">Content-Type</span><span class="pi">:</span> <span class="s">application/json</span>
</code></pre>
</div>
<p>The headers will contain all relevant details. This will also give you the ability to access endpoints that are protected by tokens.</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>Content-Length: 1024
Host: IP_ADDRESS1:5000
Authorization: Basic aGExOnRlc3Qx
Accept-Encoding: identity
Content-Type: application/json
User-Agent: Home Assistant
</code></pre>
</div>
<h3><a class="title-link" name="use-github-to-get-the-latest-release-of-home-assistant" href="#use-github-to-get-the-latest-release-of-home-assistant"></a> Use GitHub to get the latest release of Home Assistant</h3>
<p>This sample is very similar to the <a href="/components/updater/"><code class="highlighter-rouge">updater</code></a> component but the information is received from GitHub.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">https://api.github.com/repos/home-assistant/home-assistant/releases/latest</span>
<span class="s">username</span><span class="pi">:</span> <span class="s">YOUR_GITHUB_USERNAME</span>
<span class="s">password</span><span class="pi">:</span> <span class="s">YOUR_GITHUB_ACCESS_TOKEN</span>
<span class="s">authentication</span><span class="pi">:</span> <span class="s">basic</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.tag_name</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">headers</span><span class="pi">:</span>
<span class="s">Accept</span><span class="pi">:</span> <span class="s">application/vnd.github.v3+json</span>
<span class="s">Content-Type</span><span class="pi">:</span> <span class="s">application/json</span>
<span class="s">User-Agent</span><span class="pi">:</span> <span class="s">Home Assistant REST sensor</span>
</code></pre>
</div>
<h3><a class="title-link" name="fetch-multiple-json-values-and-present-them-as-attributes" href="#fetch-multiple-json-values-and-present-them-as-attributes"></a> Fetch multiple JSON values and present them as attributes</h3>
<p><a href="http://www.jsontest.com">JSON Test</a> returns the current time, date and milliseconds since epoch from <a href="http://date.jsontest.com/">http://date.jsontest.com/</a>.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">JSON time</span>
<span class="s">json_attributes</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">date</span>
<span class="pi">-</span> <span class="s">milliseconds_since_epoch</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://date.jsontest.com/</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json.time</span><span class="nv"> </span><span class="s">}}'</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">template</span>
<span class="s">sensors</span><span class="pi">:</span>
<span class="s">date</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Date'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.json_time.attributes["date"]</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">milliseconds</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">milliseconds'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.json_time.attributes["milliseconds_since_epoch"]</span><span class="nv"> </span><span class="s">}}'</span>
</code></pre>
</div>
<p>This sample fetches a weather report from <a href="http://openweathermap.org/">OpenWeatherMap</a>, maps the resulting data into attributes of the RESTful sensor and then creates a set of <a href="/components/sensor.template/">template</a> sensors that monitor the attributes and present the values in a usable form.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">rest</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">OWM_report</span>
<span class="s">json_attributes</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">main</span>
<span class="pi">-</span> <span class="s">weather</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">value_json["weather"][0]["description"].title()</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">resource</span><span class="pi">:</span> <span class="s">http://api.openweathermap.org/data/2.5/weather?zip=80302,us&amp;APPID=VERYSECRETAPIKEY</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">template</span>
<span class="s">sensors</span><span class="pi">:</span>
<span class="s">owm_weather</span><span class="pi">:</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.owm_report.attributes.weather[0]["description"].title()</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">icon_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">"http://openweathermap.org/img/w/"+states.sensor.owm_report.attributes.weather[0]["icon"]+".png"</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.owm_report</span>
<span class="s">owm_temp</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Outside</span><span class="nv"> </span><span class="s">temp'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.owm_report.attributes.main["temp"]-273.15</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s2">"</span><span class="s">°C"</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.owm_report</span>
<span class="s">owm_pressure</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Outside</span><span class="nv"> </span><span class="s">pressure'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.owm_report.attributes.main["pressure"]</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s2">"</span><span class="s">hP"</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.owm_report</span>
<span class="s">owm_humidity</span><span class="pi">:</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Outside</span><span class="nv"> </span><span class="s">humidity'</span>
<span class="s">value_template</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{{</span><span class="nv"> </span><span class="s">states.sensor.owm_report.attributes.main["humidity"]</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">unit_of_measurement</span><span class="pi">:</span> <span class="s2">"</span><span class="s">%"</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">sensor.owm_report</span>
</code></pre>
</div>
</article>
</div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
<div class="grid">
<section class="aside-module grid__item one-whole lap-one-half">
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/sensor.rest.markdown'>Edit this page on GitHub</a></div>
<div class='brand-logo-container section'>
<img src='/images/supported_brands/restful.png' />
</div>
<div class='section'>
IoT class<sup><a href='/blog/2016/02/12/classifying-the-internet-of-things/#classifiers'><i class="icon-info-sign"></i></a></sup>: Local Polling
</div>
<div class='section'>
Introduced in release: 0.7.4
</div>
<div class='section'>
Source:
<a href='https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/sensor/rest.py'>sensor/rest.py</a>
</div>
<div class='section'>
<h1 class='title delta'>Related components</h1>
<ul class='divided'>
<li><a href='/components/notify.rest/'>
REST
</a></li>
<li><a href='/components/binary_sensor.rest/'>
RESTful Binary Sensor
</a></li>
<li><a href='/components/switch.rest/'>
RESTful Switch
</a></li>
</ul>
</div>
<div class='section'>
<h1 class="title delta">Category Sensor</h1>
<ul class='divided'>
<li>
<a href='/components/sensor.ads/'>ADS Sensor</a>
</li>
<li>
<a href='/components/sensor.api_stream/'>API Stream Sensor</a>
</li>
<li>
<a href='/components/sensor.arwn/'>ARWN Sensor</a>
</li>
<li>
<a href='/components/sensor.abode/'>Abode Sensor</a>
</li>
<li>
<a href='/components/sensor.alarmdecoder/'>AlarmDecoder Sensor</a>
</li>
<li>
<a href='/components/sensor.amcrest/'>Amcrest IP Camera</a>
</li>
<li>
<a href='/components/sensor.android_ip_webcam/'>Android IP Webcam Sensor</a>
</li>
<li>
<a href='/components/sensor.arlo/'>Arlo Sensor</a>
</li>
<li>
<a href='/components/sensor.bh1750/'>BH1750 Light sensor</a>
</li>
<li>
<a href='/components/sensor.bme280/'>BME280 Sensor</a>
</li>
<li>
<a href='/components/sensor.bbox/'>Bbox Sensor</a>
</li>
<li>
<a href='/components/sensor.blink/'>Blink Sensor</a>
</li>
<li>
<a href='/components/sensor.bloomsky/'>BloomSky Sensor</a>
</li>
<li>
<a href='/components/sensor.broadlink/'>Broadlink RM2 and A1 sensor</a>
</li>
<li>
<a href='/components/sensor.modem_callerid/'>Caller ID Sensor</a>
</li>
<li>
<a href='/components/sensor.canary/'>Canary Sensor</a>
</li>
<li>
<a href='/components/sensor.citybikes/'>CityBikes API sensor</a>
</li>
<li>
<a href='/components/sensor.coinbase/'>Coinbase Sensor</a>
</li>
<li>
<a href='/components/sensor.command_line/'>Command line Sensor</a>
</li>
<li>
<a href='/components/sensor.crimereports/'>Crime Reports</a>
</li>
<li>
<a href='/components/sensor.dnsip/'>DNS IP</a>
</li>
<li>
<a href='/components/sensor.daikin/'>Daikin AC</a>
</li>
<li>
<a href='/components/sensor.discogs/'>Discogs Sensor</a>
</li>
<li>
<a href='/components/sensor.dweet/'>Dweet.io</a>
</li>
<li>
<a href='/components/sensor.dyson/'>Dyson Purifier Sensor</a>
</li>
<li>
<a href='/components/sensor.ebox/'>EBox</a>
</li>
<li>
<a href='/components/sensor.eight_sleep/'>Eight Sleep Sensor</a>
</li>
<li>
<a href='/components/sensor.emoncms/'>Emoncms Sensor</a>
</li>
<li>
<a href='/components/sensor.enocean/'>EnOcean Sensor</a>
</li>
<li>
<a href='/components/sensor.envirophat/'>Enviro pHAT</a>
</li>
<li>
<a href='/components/sensor.envisalink/'>Envisalink Sensor</a>
</li>
<li>
<a href='/components/sensor.fail2ban/'>Fail2Ban Sensor</a>
</li>
<li>
<a href='/components/sensor.fedex/'>Fedex Sensor</a>
</li>
<li>
<a href='/components/sensor.fido/'>Fido</a>
</li>
<li>
<a href='/components/sensor.file/'>File Sensor</a>
</li>
<li>
<a href='/components/sensor.gpsd/'>GPSD</a>
</li>
<li>
<a href='/components/sensor.gearbest/'>Gearbest</a>
</li>
<li>
<a href='/components/sensor.geizhals/'>Geizhals</a>
</li>
<li>
<a href='/components/sensor.geo_rss_events/'>GeoRSS Events Sensor</a>
</li>
<li>
<a href='/components/sensor.gitter/'>Gitter Sensor</a>
</li>
<li>
<a href='/components/sensor.http/'>HTTP Sensor</a>
</li>
<li>
<a href='/components/sensor.htu21d/'>HTU21D Temperature and humidity sensor</a>
</li>
<li>
<a href='/components/sensor.haveibeenpwned/'>HaveIBeenPwned Sensor</a>
</li>
<li>
<a href='/components/sensor.history_stats/'>History Statistics Sensor</a>
</li>
<li>
<a href='/components/sensor.hive/'>Hive Sensor</a>
</li>
<li>
<a href='/components/sensor.homematic/'>Homematic Sensor</a>
</li>
<li>
<a href='/components/sensor.imap_email_content/'>IMAP Email Content</a>
</li>
<li>
<a href='/components/sensor.imap/'>IMAP Unread E-mail</a>
</li>
<li>
<a href='/components/sensor.isy994/'>ISY994 Sensor</a>
</li>
<li>
<a href='/components/sensor.influxdb/'>InfluxDB Sensor</a>
</li>
<li>
<a href='/components/sensor.juicenet/'>Juicenet Sensor</a>
</li>
<li>
<a href='/components/sensor.knx/'>KNX Sensor</a>
</li>
<li>
<a href='/components/sensor.kwb/'>KWB Easyfire Sensor</a>
</li>
<li>
<a href='/components/sensor.kira/'>Kira Sensor</a>
</li>
<li>
<a href='/components/sensor.lacrosse/'>LaCrosse Sensor</a>
</li>
<li>
<a href='/components/sensor.mhz19/'>MH-Z19 CO2 Sensor</a>
</li>
<li>
<a href='/components/sensor.mqtt/'>MQTT Sensor</a>
</li>
<li>
<a href='/components/sensor.raincloud/'>Melnor Raincloud Sensor</a>
</li>
<li>
<a href='/components/sensor.min_max/'>Min/max Sensor</a>
</li>
<li>
<a href='/components/sensor.modbus/'>Modbus Sensor</a>
</li>
<li>
<a href='/components/sensor.mold_indicator/'>Mold Indicator</a>
</li>
<li>
<a href='/components/sensor.mopar/'>Mopar</a>
</li>
<li>
<a href='/components/sensor.mysensors/'>MySensors Sensor</a>
</li>
<li>
<a href='/components/sensor.nest/'>Nest Sensor</a>
</li>
<li>
<a href='/components/sensor.otp/'>OTP Sensor</a>
</li>
<li>
<a href='/components/sensor.octoprint/'>OctoPrint Sensor</a>
</li>
<li>
<a href='/components/sensor.openevse/'>OpenEVSE Sensor</a>
</li>
<li>
<a href='/components/sensor.opensky/'>OpenSky Network</a>
</li>
<li>
<a href='/components/sensor.pilight/'>Pilight Sensor</a>
</li>
<li>
<a href='/components/sensor.pocketcasts/'>PocketCasts</a>
</li>
<li>
<a href='/components/sensor.pushbullet/'>Pushbullet Mirrors</a>
</li>
<li>
<a href='/components/sensor.qnap/'>QNAP Sensor</a>
</li>
<li>
RESTful Sensor
</li>
<li>
<a href='/components/sensor.rflink/'>RFLink Sensor</a>
</li>
<li>
<a href='/components/sensor.rfxtrx/'>RFXtrx Sensor</a>
</li>
<li>
<a href='/components/sensor.radarr/'>Radarr Sensor</a>
</li>
<li>
<a href='/components/binary_sensor.random/'>Random Binary Sensor</a>
</li>
<li>
<a href='/components/sensor.random/'>Random Sensor</a>
</li>
<li>
<a href='/components/sensor.ring/'>Ring Sensor</a>
</li>
<li>
<a href='/components/sensor.scrape/'>Scrape Sensor</a>
</li>
<li>
<a href='/components/sensor.season/'>Season Sensor</a>
</li>
<li>
<a href='/components/sensor.sensehat/'>Sense HAT</a>
</li>
<li>
<a href='/components/sensor.serial/'>Serial Sensor</a>
</li>
<li>
<a href='/components/sensor.shodan/'>Shodan Sensor</a>
</li>
<li>
<a href='/components/sensor.skybell/'>Skybell Sensor</a>
</li>
<li>
<a href='/components/sensor.sleepiq/'>SleepIQ Sensor</a>
</li>
<li>
<a href='/components/sensor.sonarr/'>Sonarr Sensor</a>
</li>
<li>
<a href='/components/sensor.statistics/'>Statistics Sensor</a>
</li>
<li>
<a href='/components/sensor.sytadin/'>Sytadin Sensor</a>
</li>
<li>
<a href='/components/sensor.tcp/'>TCP Sensor</a>
</li>
<li>
<a href='/components/sensor.ted5000/'>TED5000 electricity monitoring</a>
</li>
<li>
<a href='/components/sensor.temper/'>TEMPer Sensor</a>
</li>
<li>
<a href='/components/sensor.tado/'>Tado Sensor</a>
</li>
<li>
<a href='/components/sensor.tank_utility/'>Tank Utility Sensor</a>
</li>
<li>
<a href='/components/sensor.tellstick/'>TellStick Sensor</a>
</li>
<li>
<a href='/components/sensor.tellduslive/'>Telldus Live sensor</a>
</li>
<li>
<a href='/components/sensor.template/'>Template Sensor</a>
</li>
<li>
<a href='/components/sensor.tesla/'>Tesla Sensor</a>
</li>
<li>
<a href='/components/sensor.thethingsnetwork/'>The Things Network Sensor</a>
</li>
<li>
<a href='/components/sensor.thinkingcleaner/'>Thinking Cleaner sensor</a>
</li>
<li>
<a href='/components/sensor.tibber/'>Tibber</a>
</li>
<li>
<a href='/components/sensor.toon/'>Toon Sensor</a>
</li>
<li>
<a href='/components/sensor.travisci/'>Travis-CI Sensor</a>
</li>
<li>
<a href='/components/sensor.ups/'>UPS Sensor</a>
</li>
<li>
<a href='/components/sensor.usps/'>USPS Sensor</a>
</li>
<li>
<a href='/components/sensor.uptime/'>Uptime Sensor</a>
</li>
<li>
<a href='/components/sensor.vera/'>Vera Sensor</a>
</li>
<li>
<a href='/components/sensor.verisure/'>Verisure Sensor</a>
</li>
<li>
<a href='/components/sensor.version/'>Version Sensor</a>
</li>
<li>
<a href='/components/sensor.whois/'>Whois Sensor</a>
</li>
<li>
<a href='/components/sensor.wink/'>Wink Sensor</a>
</li>
<li>
<a href='/components/sensor.xiaomi_aqara/'>Xiaomi Sensor</a>
</li>
<li>
<a href='/components/sensor.zwave/'>Z-Wave Sensor</a>
</li>
<li>
<a href='/components/sensor.comfoconnect/'>Zehnder ComfoAir Q Ventilation sensors</a>
</li>
<li>
<a href='/components/sensor.zha/'>ZigBee Home Automation Sensor</a>
</li>
<li>
<a href='/components/sensor.zigbee/'>ZigBee Sensor</a>
</li>
<li>
<a href='/components/sensor.zoneminder/'>ZoneMinder Sensor</a>
</li>
<li>
<a href='/components/sensor.arest/'>aREST Sensor</a>
</li>
<li>
<a href='/components/sensor.deconz/'>deCONZ Sensor</a>
</li>
<li>
<a href='/components/sensor.mfi/'>mFi Sensor</a>
</li>
</ul>
</div>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<div class="copyright">
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a> (no support!).<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
</div>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">home-assistant.io</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
</div>
</div>
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<script type="text/javascript">
docsearch({
apiKey: 'ae96d94b201c5444c8a443093edf3efb',
indexName: 'home-assistant',
inputSelector: '#search',
debug: false // Set debug to true if you want to inspect the dropdown
});
document.querySelector('.search .close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'none';
});
document.querySelector('.show-search').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'block';
document.getElementById('toggle').checked = false;
document.querySelector('.search-container input').focus();
});
</script>
</body>
</html>