home-assistant.github.io/components/sensor.airvisual/index.html
2017-11-05 14:24:39 +00:00

353 lines
18 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>AirVisual - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Instructions on how to use AirVisual data within Home Assistant">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/sensor.airvisual/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="AirVisual">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/sensor.airvisual/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions on how to use AirVisual data within 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="AirVisual">
<meta name="twitter:description" content="Instructions on how to use AirVisual data within 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">
AirVisual
</h1>
</header>
<hr class="divider">
<p>The <code class="highlighter-rouge">airvisual</code> sensor platform queries the <a href="https://airvisual.com/">AirVisual</a> API for air quality
data. Data can be collected via latitude/longitude or by city/state/country.
The resulting information creates sensors for the Air Quality Index (AQI), the
human-friendly air quality level, and the main pollutant of that area. Sensors
that conform to either/both the <a href="http://www.clm.com/publication.cfm?ID=366">U.S. and Chinese air quality standards</a> can be
created.</p>
<p>This platform requires an AirVisual API key, which can be obtained <a href="https://airvisual.com/api">here</a>. Note
that the platform was designed using the “Community” package; the “Startup”
and “Enterprise” package keys should continue to function, but actual results
may vary (or not work at all).</p>
<p class="note warning">
The “Community” API key is limited to 10,000 calls per month. In order to leave
a buffer, the <code class="highlighter-rouge">airvisual</code> platform queries the API every 10 minutes.
</p>
<h2><a class="title-link" name="configuring-the-platform-via-latitudelongitude" href="#configuring-the-platform-via-latitudelongitude"></a> Configuring the Platform via Latitude/Longitude</h2>
<p>To enable the platform and gather data via latitude/longitude, add the
following lines to your <code class="highlighter-rouge">configuration.yaml</code> file:</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">airvisual</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">abc123</span>
<span class="s">monitored_conditions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">us</span>
<span class="pi">-</span> <span class="s">cn</span>
<span class="s">latitude</span><span class="pi">:</span> <span class="s">42.81212</span>
<span class="s">longitude</span><span class="pi">:</span> <span class="s">108.12422</span>
<span class="s">radius</span><span class="pi">:</span> <span class="s">500</span>
<span class="s">show_on_map</span><span class="pi">:</span> <span class="s">false</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>api_key</strong> (<em>Required</em>): your AirVisual API key</li>
<li><strong>monitored_conditions</strong> (<em>Required</em>): the air quality standard(s) to use
(<code class="highlighter-rouge">us</code> for U.S., <code class="highlighter-rouge">cn</code> for Chinese)</li>
<li><strong>latitude</strong> (<em>Optional</em>): the latitude to monitor; if excluded, the latitude
defined under the <code class="highlighter-rouge">homeassistant</code> key in <code class="highlighter-rouge">configuration.yaml</code> will be used</li>
<li><strong>longitude</strong> (<em>Optional</em>): the longitude to monitor; if excluded, the longitude
defined under the <code class="highlighter-rouge">homeassistant</code> key in <code class="highlighter-rouge">configuration.yaml</code> will be used</li>
<li><strong>radius</strong> (<em>Optional</em>): the radius (in meters) around the latitude/longitude to
search for the nearest city; defaults to <code class="highlighter-rouge">1000</code></li>
<li><strong>show_on_map</strong> (<em>Optional</em>): whether to show a marker on the map at the specified
location; defaults to <code class="highlighter-rouge">true</code></li>
</ul>
<h2><a class="title-link" name="configuring-the-platform-via-citystatecountry" href="#configuring-the-platform-via-citystatecountry"></a> Configuring the Platform via City/State/Country</h2>
<p>To enable the platform and gather data via city/state/country, add the
following lines to your <code class="highlighter-rouge">configuration.yaml</code> file:</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">airvisual</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">abc123</span>
<span class="s">monitored_conditions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">us</span>
<span class="pi">-</span> <span class="s">cn</span>
<span class="s">city</span><span class="pi">:</span> <span class="s">southend-on-sea</span>
<span class="s">state</span><span class="pi">:</span> <span class="s">essex</span>
<span class="s">country</span><span class="pi">:</span> <span class="s">uk</span>
<span class="s">show_on_map</span><span class="pi">:</span> <span class="s">false</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>api_key</strong> (<em>Required</em>): your AirVisual API key</li>
<li><strong>monitored_conditions</strong> (<em>Required</em>): the air quality standard(s) to use
(<code class="highlighter-rouge">us</code> for U.S., <code class="highlighter-rouge">cn</code> for Chinese)</li>
<li><strong>city</strong> (<em>Optional</em>): the city to monitor</li>
<li><strong>state</strong> (<em>Optional</em>): the state/region to monitor</li>
<li><strong>country</strong> (<em>Optional</em>): the country to monitor</li>
<li><strong>show_on_map</strong> (<em>Optional</em>): whether to show a marker on the map at the specified
location; defaults to <code class="highlighter-rouge">true</code></li>
</ul>
<p>To easily determine the proper values for a particular location, use the
<a href="https://airvisual.com/world">AirVisual region directory</a>. Once you browse to the particular city you want,
take note of the breadcrumb title, which is of the form
<code class="highlighter-rouge">country &gt; state/region &gt; city</code>. Use this information to fill out
<code class="highlighter-rouge">configuration.yaml</code>.</p>
<p>For example, Sao Paulo, Brazil shows a breadcrumb title of
<code class="highlighter-rouge">Brazil &gt; Sao Paulo &gt; Sao Paulo</code> thus, the proper configuration would look
like this:</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">airvisual</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">abc123</span>
<span class="s">monitored_conditions</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">us</span>
<span class="pi">-</span> <span class="s">cn</span>
<span class="s">city</span><span class="pi">:</span> <span class="s">sao-paulo</span>
<span class="s">state</span><span class="pi">:</span> <span class="s">sao-paulo</span>
<span class="s">country</span><span class="pi">:</span> <span class="s">brazil</span>
</code></pre>
</div>
<h2><a class="title-link" name="sensor-types" href="#sensor-types"></a> Sensor Types</h2>
<p>When configured, the platform will create three sensors for each configured
air quality standard:</p>
<h3>Air Quality Index</h3>
<p><strong>Description:</strong> This sensor displays a numeric air quality index (AQI), a metric
for the overall “health” of the air.</p>
<p><strong>Example Sensor Name:</strong> <code class="highlighter-rouge">sensor.chinese_air_quality_index</code></p>
<p><strong>Example Sensor Value:</strong> <code class="highlighter-rouge">32</code></p>
<p><strong>Explanation:</strong></p>
<table>
<thead>
<tr>
<th>AQI</th>
<th style="text-align: center">Status</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>0 - 50</td>
<td style="text-align: center"><strong>Good</strong></td>
<td>Air quality is considered satisfactory, and air pollution poses little or no risk</td>
</tr>
<tr>
<td>51 - 100</td>
<td style="text-align: center"><strong>Moderate</strong></td>
<td>Air quality is acceptable; however, for some pollutants there may be a moderate health concern for a very small number of people who are unusually sensitive to air pollution</td>
</tr>
<tr>
<td>101 - 150</td>
<td style="text-align: center"><strong>Unhealthy for Sensitive Groups</strong></td>
<td>Members of sensitive groups may experience health effects. The general public is not likely to be affected</td>
</tr>
<tr>
<td>151 - 200</td>
<td style="text-align: center"><strong>Unhealthy</strong></td>
<td>Everyone may begin to experience health effects; members of sensitive groups may experience more serious health effects</td>
</tr>
<tr>
<td>201 - 300</td>
<td style="text-align: center"><strong>Very unhealthy</strong></td>
<td>Health warnings of emergency conditions. The entire population is more likely to be affected</td>
</tr>
<tr>
<td>301+</td>
<td style="text-align: center"><strong>Hazardous</strong></td>
<td>Health alert: everyone may experience more serious health effects</td>
</tr>
</tbody>
</table>
<h3>Air Pollution Level</h3>
<p><strong>Description:</strong> This sensor displays the associated <code class="highlighter-rouge">Status</code> (from the above
table) for the current AQI.</p>
<p><strong>Sample Sensor Name:</strong> <code class="highlighter-rouge">sensor.us_air_pollution_level</code></p>
<p><strong>Example Sensor Value:</strong> <code class="highlighter-rouge">Moderate</code></p>
<h3>Main Pollutant</h3>
<p><strong>Description:</strong> This sensor displays the pollutant whose value is currently
highest.</p>
<p><strong>Sample Sensor Name:</strong> <code class="highlighter-rouge">sensor.us_main_pollutant</code></p>
<p><strong>Example Sensor Value:</strong> <code class="highlighter-rouge">PM2.5</code></p>
<p><strong>Explanation:</strong></p>
<table>
<thead>
<tr>
<th>Pollutant</th>
<th style="text-align: center">Symbol</th>
<th>More Info</th>
</tr>
</thead>
<tbody>
<tr>
<td>Particulate (&lt;= 2.5 μm)</td>
<td style="text-align: center">PM2.5</td>
<td><a href="https://www.epa.gov/pm-pollution">EPA: Particulate Matter (PM) Pollution </a></td>
</tr>
<tr>
<td>Particulate (&lt;= 10 μm)</td>
<td style="text-align: center">PM10</td>
<td><a href="https://www.epa.gov/pm-pollution">EPA: Particulate Matter (PM) Pollution </a></td>
</tr>
<tr>
<td>Ozone</td>
<td style="text-align: center">O</td>
<td><a href="https://www.epa.gov/ozone-pollution">EPA: Ozone Pollution</a></td>
</tr>
<tr>
<td>Sulpher Dioxide</td>
<td style="text-align: center">SO2</td>
<td><a href="https://www.epa.gov/so2-pollution">EPA: Sulfur Dioxide (SO2) Pollution</a></td>
</tr>
<tr>
<td>Carbon Monoxide</td>
<td style="text-align: center">CO</td>
<td><a href="https://www.epa.gov/co-pollution">EPA: Carbon Monoxide (CO) Pollution in Outdoor Air</a></td>
</tr>
</tbody>
</table>
</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.airvisual.markdown'>Edit this page on GitHub</a></div>
<div class='brand-logo-container section'>
<img src='/images/supported_brands/airvisual.jpg' />
</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>: Cloud Polling
</div>
<div class='section'>
Introduced in release: 0.53
</div>
<div class='section'>
Source:
<a href='https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/sensor/airvisual.py'>sensor/airvisual.py</a>
</div>
<div class='section'>
<h1 class="title delta">Category Health</h1>
<ul class='divided'>
<li>
AirVisual
</li>
<li>
<a href='/components/sensor.fitbit/'>Fitbit</a>
</li>
<li>
<a href='/components/sensor.london_air/'>London Air Quality</a>
</li>
<li>
<a href='/components/sensor.luftdaten/'>Luftdaten Sensor</a>
</li>
<li>
<a href='/components/sensor.waqi/'>World Air Quality Index</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>