home-assistant.github.io/components/alert/index.html
2017-04-18 08:30:03 +00:00

253 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>Alert - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Instructions how to setup automatic alerts within Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/alert/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Alert">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/alert/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to setup automatic alerts 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="Alert">
<meta name="twitter:description" content="Instructions how to setup automatic alerts within Home Assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" 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>
<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>
</ul>
</nav>
</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">
Alert
</h1>
</header>
<hr class="divider">
<p>The <code class="highlighter-rouge">alert</code> component is designed to notify you when problematic issues arise. For example, if the garage door is left open, the <code class="highlighter-rouge">alert</code> component can be used remind you of this by sending you repeating notifications at customizable intervals. This is also useful for low battery sensors, water leak sensors, or any condition that may need your attention.</p>
<p>Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved.</p>
<p>When using the <code class="highlighter-rouge">alert</code> component it is important that the timezone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the <code class="highlighter-rouge">America/Detroit</code> timezone but the operating system uses <code class="highlighter-rouge">UTC</code>).</p>
<h3><a class="title-link" name="basic-example" href="#basic-example"></a> Basic Example</h3>
<p>The <code class="highlighter-rouge">alert</code> component makes use of any of the <code class="highlighter-rouge">notifications</code> components. To setup the <code class="highlighter-rouge">alert</code> component, first, you must setup a <code class="highlighter-rouge">notification</code> component. Then, add the following to your configuration file:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alert</span><span class="pi">:</span>
<span class="s">garage_door</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Garage is open</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">input_boolean.garage_door</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">on'</span>
<span class="s">repeat</span><span class="pi">:</span> <span class="s">30</span>
<span class="s">can_acknowledge</span><span class="pi">:</span> <span class="s">True</span>
<span class="s">skip_first</span><span class="pi">:</span> <span class="s">True</span>
<span class="s">notifiers</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">ryans_phone</span>
<span class="pi">-</span> <span class="s">kristens_phone</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>name</strong> (<em>Required</em>): The friendly name of the alert.</li>
<li><strong>entity_id</strong> (<em>Required</em>): The ID of the entity to watch.</li>
<li><strong>state</strong> (<em>Optional</em>): The problem condition for the entity. Defaults to <code class="highlighter-rouge">on</code>.</li>
<li><strong>repeat</strong> (<em>Required</em>): Number of minutes before the notification should be repeated. Can be either a number or a list of numbers.</li>
<li><strong>can_acknowledge</strong> (<em>Optional</em>): Allows the alert to be unacknowledgable. Defaults to <code class="highlighter-rouge">true</code>.</li>
<li><strong>skip_first</strong> (<em>Optional</em>): Controls whether the notification should be sent immediately or after the first delay. Defaults to <code class="highlighter-rouge">false</code>.</li>
<li><strong>notifiers</strong> (<em>Required</em>): List of <code class="highlighter-rouge">notification</code> components to use for alerts.</li>
</ul>
<p>In this example, the garage door status (<code class="highlighter-rouge">input_boolean.garage_door</code>) is watched and this alert will be triggered when its status is equal to <code class="highlighter-rouge">on</code>. This indicates that the door has been opened. Because the <code class="highlighter-rouge">skip_first</code> option was set to <code class="highlighter-rouge">True</code>, the first notification will not be delivered immediately. However, every 30 minutes, a notification will be delivered until either <code class="highlighter-rouge">input_boolean.garage_door</code> no longer has a state of <code class="highlighter-rouge">on</code> or until the alert is acknowledged using the Home Assistant frontend.</p>
<p>For notifiers that require other parameters (such as <code class="highlighter-rouge">twilio_sms</code> which requires you specify a <code class="highlighter-rouge">target</code> parameter when sending the notification), you can use the <code class="highlighter-rouge">group</code> notification to wrap them for an alert. Simply create a <code class="highlighter-rouge">group</code> notification type with a single notification member (such as <code class="highlighter-rouge">twilio_sms</code>) specifying the required parameters other than <code class="highlighter-rouge">message</code> provided by the <code class="highlighter-rouge">alert</code> component:</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">group</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">john_phone_sms</span>
<span class="s">services</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">service</span><span class="pi">:</span> <span class="s">twilio_sms</span>
<span class="s">data</span><span class="pi">:</span>
<span class="s">target</span><span class="pi">:</span> <span class="kt">!secret</span> <span class="s">john_phone</span>
</code></pre>
</div>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">freshwater_temp_alert</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Warning:</span><span class="nv"> </span><span class="s">I</span><span class="nv"> </span><span class="s">have</span><span class="nv"> </span><span class="s">detected</span><span class="nv"> </span><span class="s">a</span><span class="nv"> </span><span class="s">problem</span><span class="nv"> </span><span class="s">with</span><span class="nv"> </span><span class="s">the</span><span class="nv"> </span><span class="s">freshwater</span><span class="nv"> </span><span class="s">tank</span><span class="nv"> </span><span class="s">temperature"</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">binary_sensor.freshwater_temperature_status</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">on'</span>
<span class="s">repeat</span><span class="pi">:</span> <span class="s">5</span>
<span class="s">can_acknowledge</span><span class="pi">:</span> <span class="s">true</span>
<span class="s">skip_first</span><span class="pi">:</span> <span class="s">false</span>
<span class="s">notifiers</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">john_phone_sms</span>
</code></pre>
</div>
<h3><a class="title-link" name="complex-alert-criteria" href="#complex-alert-criteria"></a> Complex Alert Criteria</h3>
<p>By design, the <code class="highlighter-rouge">alert</code> component only handles very simple criteria for firing. That is, is only checks if a single entitys state is equal to a value. At some point, it may be desireable to have an alert with a more complex criteria. Possibly, when a battery percentage falls below a threshold. Maybe you want to disable the alert on certain days. Maybe the alert firing should depend on more than one input. For all of these situations, it is best to use the alert in conjunction with a <code class="highlighter-rouge">Template Binary Sensor</code>. The following example does that.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">binary_sensor</span><span class="pi">:</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">motion_battery_low</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.motion.attributes.battery</span><span class="nv"> </span><span class="s">&lt;</span><span class="nv"> </span><span class="s">15</span><span class="nv"> </span><span class="s">}}'</span>
<span class="s">friendly_name</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Motion</span><span class="nv"> </span><span class="s">battery</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">low'</span>
<span class="s">alert</span><span class="pi">:</span>
<span class="s">motion_battery</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Motion Battery is Low</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">binary_sensor.motion_battery_low</span>
<span class="s">repeat</span><span class="pi">:</span> <span class="s">30</span>
<span class="s">notifiers</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">ryans_phone</span>
<span class="pi">-</span> <span class="s">kristens_phone</span>
</code></pre>
</div>
<p>This example will begin firing as soon as the entity <code class="highlighter-rouge">sensor.motion</code>s <code class="highlighter-rouge">battery</code> attribute falls below 15. It will continue to fire until the battery attribute raises above 15 or the alert is acknowledged on the frontend.</p>
<h3><a class="title-link" name="dynamic-notification-delay-times" href="#dynamic-notification-delay-times"></a> Dynamic Notification Delay Times</h3>
<p>It may be desireable to have the delays between alert notifications dynamically change as the alert continues to fire. This can be done by setting the <code class="highlighter-rouge">repeat</code> configuration key to a list of numbers rather than a single number. Altering the first example would look like the following.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
<span class="s">alert</span><span class="pi">:</span>
<span class="s">garage_door</span><span class="pi">:</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Garage is open</span>
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">input_boolean.garage_door</span>
<span class="s">state</span><span class="pi">:</span> <span class="s1">'</span><span class="s">on'</span> <span class="c1"># Optional, 'on' is the default value</span>
<span class="s">repeat</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">15</span>
<span class="pi">-</span> <span class="s">30</span>
<span class="pi">-</span> <span class="s">60</span>
<span class="s">can_acknowledge</span><span class="pi">:</span> <span class="s">True</span> <span class="c1"># Optional, default is True</span>
<span class="s">skip_first</span><span class="pi">:</span> <span class="s">True</span> <span class="c1"># Optional, false is the default</span>
<span class="s">notifiers</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">ryans_phone</span>
<span class="pi">-</span> <span class="s">kristens_phone</span>
</code></pre>
</div>
<p>Now the first message will be sent after a 15 minute delay, the second will be sent 30 minutes after that, and a 60 minute delay will fall between every following notification. For example, if the garage door opens at 2:00, a notification will be sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.</p>
</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/alert.markdown'>Edit this page on GitHub</a></div>
<div class='brand-logo-container section'>
<img src='/images/supported_brands/home-assistant.png' />
</div>
<div class='section'>
Introduced in release: 0.38
</div>
<div class='section'>
<h1 class="title delta">Category Automation</h1>
<ul class='divided'>
<li>
Alert
</li>
<li>
<a href='/components/automation/'>Automation</a>
</li>
<li>
<a href='/components/switch.flux/'>Flux Light Adjustment</a>
</li>
<li>
<a href='/components/hdmi_cec/'>HDMI CEC</a>
</li>
<li>
<a href='/components/ifttt/'>IFTTT</a>
</li>
<li>
<a href='/components/input_boolean/'>Input Boolean</a>
</li>
<li>
<a href='/components/input_select/'>Input Select</a>
</li>
<li>
<a href='/components/input_slider/'>Input Slider</a>
</li>
<li>
<a href='/components/keyboard/'>Keyboard</a>
</li>
<li>
<a href='/components/lirc/'>LIRC</a>
</li>
<li>
<a href='/components/device_sun_light_trigger/'>Presence based lights</a>
</li>
<li>
<a href='/components/proximity/'>Proximity</a>
</li>
<li>
<a href='/components/rest_command/'>RESTful Command</a>
</li>
<li>
<a href='/components/script/'>Scripts</a>
</li>
<li>
<a href='/components/shell_command/'>Shell command</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>.<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>
</body>
</html>