Site updated at 2016-11-13 11:27:46 UTC
This commit is contained in:
parent
3ec1ea6ce7
commit
3bab881d0a
1303 changed files with 226 additions and 223035 deletions
|
@ -1,152 +0,0 @@
|
|||
<!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>Ecosystem - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="External tools for Home Assistant">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Ecosystem">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="External tools for 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="Ecosystem">
|
||||
<meta name="twitter:description" content="External tools for 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="/ecosystem/">Ecosystem</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">
|
||||
Ecosystem
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Ecosystem includes documentation for related tools and projects that extend Home Assistant to new platforms and systems. Use the sidebar to discover documentation for projects.</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="section">
|
||||
<h1 class="title delta">Ecosystem</h1>
|
||||
<ul class="divided">
|
||||
<li><a href="/ecosystem/scenegen/">SceneGen</a></li>
|
||||
<li><a href="/ecosystem/ios/">iOS</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>
|
||||
</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>
|
|
@ -1,172 +0,0 @@
|
|||
<!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>ios.conf - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Describes the contents and purpose of ios.conf">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/devices_file/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="ios.conf">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/devices_file/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Describes the contents and purpose of ios.conf">
|
||||
<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="ios.conf">
|
||||
<meta name="twitter:description" content="Describes the contents and purpose of ios.conf">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/devices_file.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
ios.conf
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>The <code class="highlighter-rouge">ios.conf</code> file contains the most recent state of all registered iOS devices. Deleting this file will not disable the devices and the file will be recreated the next time a new device is connected or an existing one reconnects.</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,172 +0,0 @@
|
|||
<!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>Features - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Describes the features of Home Assistant for iOS">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/features/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Features">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/features/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Describes the features of Home Assistant for iOS">
|
||||
<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="Features">
|
||||
<meta name="twitter:description" content="Describes the features of Home Assistant for iOS">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/features.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Features
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Coming soon</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,229 +0,0 @@
|
|||
<!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>iOS - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Documentation about the Home Assistant iOS app.">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="iOS">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Documentation about the Home Assistant iOS app.">
|
||||
<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="iOS">
|
||||
<meta name="twitter:description" content="Documentation about the Home Assistant iOS app.">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
iOS
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>The Home Assistant for iOS app offers a companion app for iOS which is deeply integrated into both Home Assistant and iOS. Its basic features include:</p>
|
||||
|
||||
<ul>
|
||||
<li>Advanced push notifications</li>
|
||||
<li>Location tracking</li>
|
||||
<li>Basic control of all Home Assistant entities</li>
|
||||
<li>Integration with third party apps</li>
|
||||
</ul>
|
||||
|
||||
<p class="note warning">
|
||||
Currently, the app is only available via a closed beta. It will be on the App Store within the next few weeks.
|
||||
</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/control1.png" width="310" height="552" />
|
||||
An example of a Home Assistant group as seen in the iOS app.
|
||||
</p>
|
||||
|
||||
<h2>Basic requirements</h2>
|
||||
|
||||
<ul>
|
||||
<li>iOS device running at least iOS 9, but iOS 10 is greatly preferred.</li>
|
||||
<li>Home Assistant 0.31.1 or higher for push notification support.</li>
|
||||
<li>SSL is strongly recommended. Self-signed SSL certificates will not work due to Apple’s limitations.</li>
|
||||
</ul>
|
||||
|
||||
<p>The <code class="highlighter-rouge">ios</code> component is the companion component for the Home Assistant iOS app. While not required, adding the <code class="highlighter-rouge">ios</code> component to your setup will greatly enhance the iOS app with new notification, location and sensor functions not possible with a standalone app.</p>
|
||||
|
||||
<p>Loading the <code class="highlighter-rouge">ios</code> component will also load the <a href="/components/device_tracker"><code class="highlighter-rouge">device_tracker</code></a> and <a href="/components/zeroconf"><code class="highlighter-rouge">zeroconf</code></a> components. It also provides functionality required for the iOS notify platform but will not automatically load the <code class="highlighter-rouge">notify</code> component or platform as of 0.31.1. You must manually load it. See the <a href="/ecosystem/ios/notifications/">iOS notify platform</a> for more information.</p>
|
||||
|
||||
<h2><a class="title-link" name="setup" href="#setup"></a> Setup</h2>
|
||||
|
||||
<h3>Automated Setup</h3>
|
||||
|
||||
<p>The <code class="highlighter-rouge">ios</code> component will automatically be loaded under the following circumstances:</p>
|
||||
|
||||
<ol>
|
||||
<li>The <a href="/components/discovery"><code class="highlighter-rouge">discovery</code></a> component is enabled.</li>
|
||||
<li>You have just installed the app and are at the getting started screen.</li>
|
||||
</ol>
|
||||
|
||||
<p>Automated discovery and component loaded can only happen at first install of the app. You may need to wait a few minutes for the iOS component to load as the <code class="highlighter-rouge">discovery</code> component only scans the network every 5 minutes.</p>
|
||||
|
||||
<h3>Manual Setup</h3>
|
||||
|
||||
<p>You may also manually load the <code class="highlighter-rouge">ios</code> component by adding the following to your configuration:</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
|
||||
<span class="s">ios</span><span class="pi">:</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Configuration variables:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>push</strong> (<em>Optional</em>): Push notification configuration. See the <a href="/ecosystem/ios/notifications/">iOS <code class="highlighter-rouge">notify</code> platform</a> for more information.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a class='active' href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,185 +0,0 @@
|
|||
<!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>Integration - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/integration/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Integration">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/integration/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
|
||||
<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="Integration">
|
||||
<meta name="twitter:description" content="Examples of how Home Assistant for iOS can be integrated with other apps">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/integration.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Integration
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Home Assistant for iOS supports opening from other apps via URL.</p>
|
||||
|
||||
<p>Query parameters are passed as a dictionary in the call.</p>
|
||||
|
||||
<h2>Call service</h2>
|
||||
<p>Example: <code class="highlighter-rouge">homeassistant://call_service/device_tracker.see?entity_id=device_tracker.entity</code></p>
|
||||
|
||||
<h2>Fire event</h2>
|
||||
|
||||
<p>Example <code class="highlighter-rouge">homeassistant://fire_event/custom_event?entity_id=device_tracker.entity</code></p>
|
||||
|
||||
<h2>Send one shot location</h2>
|
||||
|
||||
<p>Example: <code class="highlighter-rouge">homeassistant://send_location/</code></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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,199 +0,0 @@
|
|||
<!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>Location - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/location/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Location">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/location/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
|
||||
<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="Location">
|
||||
<meta name="twitter:description" content="Documentation about the location tracking abilities in Home Assistant for iOS">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/location.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Location
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<h2><a class="title-link" name="location-tracking-when-outside-a-home-assistant-zone" href="#location-tracking-when-outside-a-home-assistant-zone"></a> Location tracking when outside a Home Assistant zone</h2>
|
||||
|
||||
<p>Home Assistant for iOS receives <em>significant location updates</em> from iOS. Whenever an update is received, it is sent to Home Assistant. Roughly, an update is received everytime that your device transfers to a new cellular tower, a significant amount of time has passed (usually a couple hours) or a connection state changes and the system notices your location recently changed.</p>
|
||||
|
||||
<p>Apple <a href="https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW9">defines</a> significant significant-change location updates as:</p>
|
||||
|
||||
<blockquote>
|
||||
<p>The significant-change location service delivers updates only when there has been a significant change in the device’s location, such as 500 meters or more.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>They also say in the <a href="https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html#//apple_ref/doc/uid/TP40015243-CH24-SW4">Energy Efficiency Guide</a>:</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Significant-change location updates wake the system and your app once every 15 minutes, at minimum, even if no location changes have occurred.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Finally, I think this answer from <a href="http://stackoverflow.com/a/13331625/486182">Stack Overflow</a> says it best:</p>
|
||||
|
||||
<blockquote>
|
||||
<p>The significant location change is the least accurate of all the location monitoring types. It only gets its updates when there is a cell tower transition or change. This can mean a varying level of accuracy and updates based on where the user is. City area, more updates with more towers. Out of town, interstate, fewer towers and changes.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>What’s the real story on significant-change location updates? Who knows, because Apple keeps it private.</p>
|
||||
|
||||
<h2><a class="title-link" name="location-tracking-in-home-assistant-zones" href="#location-tracking-in-home-assistant-zones"></a> Location tracking in Home Assistant zones</h2>
|
||||
|
||||
<p>At launch, Home Assistant for iOS sets up geofences for all zones in your Home Assistant configuration. Enter and exit notifications are sent to Home Assistant.</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class='active' href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,316 +0,0 @@
|
|||
<!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>Actionable notifications - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Making push notifications a two way system">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/actions/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Actionable notifications">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/actions/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Making push notifications a two way system">
|
||||
<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="Actionable notifications">
|
||||
<meta name="twitter:description" content="Making push notifications a two way system">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/actions.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Actionable Notifications
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Actionable notifications allow you to attach 1-4 custom buttons to a notification. When one of the actions is selected Home Assistant will be notified which action was chosen. This allows you to build complex automations.</p>
|
||||
|
||||
<p>Examples of actionable notifications:</p>
|
||||
|
||||
<ul>
|
||||
<li>A notification is sent whenever motion is detected in your home while you are away or asleep. You can add an action to Sound Alarm. When tapped, Home Assistant is notified that the <code class="highlighter-rouge">sound_alarm</code> action was selected. You can add an automation to sound the burglar alarm whenever this event is seen.</li>
|
||||
<li>Someone rings your front door bell. You can send an action to lock or unlock your front door. When tapped, a notification is sent back to Home Assistant upon which you can build automations.</li>
|
||||
<li>Send a notification whenever your garage door opens with actions to open and close the garage.</li>
|
||||
</ul>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/actions.png" />
|
||||
Actionable notifications allow the user to send a command back to Home Assistant.
|
||||
</p>
|
||||
|
||||
<h2>Overview of how actionable notifications work</h2>
|
||||
|
||||
<p>In advance of sending a notification:</p>
|
||||
|
||||
<ol>
|
||||
<li>Define a notification category in your Home Assistant configuration which contain 1-4 actions.</li>
|
||||
<li>At launch iOS app requests notification categories from Home Assistant (can also be done manually in notification settings).</li>
|
||||
</ol>
|
||||
|
||||
<p>When sending a notification:</p>
|
||||
|
||||
<ol>
|
||||
<li>Send a notification with <code class="highlighter-rouge">data.push.category</code> set to a pre-defined notification category identifer.</li>
|
||||
<li>Push notification delivered to device</li>
|
||||
<li>User opens notification.</li>
|
||||
<li>Action tapped</li>
|
||||
<li>Identifier of action sent back to HA as the <code class="highlighter-rouge">actionName</code> property of the event <code class="highlighter-rouge">ios.notification_action_fired</code>, along with other metadata such as the device and category name.</li>
|
||||
</ol>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/NotificationActionFlow.png" />
|
||||
How the iOS device and Home Assistant work together to enable actionable notifications.
|
||||
</p>
|
||||
|
||||
<h2>Definitions</h2>
|
||||
<ul>
|
||||
<li>Category - A category represents a type of notification that the app might receive. Think of it as a unique group of actions. A categories parameters include:</li>
|
||||
<li>Action - An action consists of a button title and the information that iOS needs to notify the app when the action is selected. You create separate action objects for distinct action your app supports. An actions parameters include:</li>
|
||||
</ul>
|
||||
|
||||
<h2><a class="title-link" name="category-parameters" href="#category-parameters"></a> Category parameters</h2>
|
||||
|
||||
<ul>
|
||||
<li><strong>name</strong> (<em>Required</em>): A friendly name for this category.</li>
|
||||
<li><strong>identifier</strong> (<em>Required</em>): A unique identifier for the category. Must be uppercase and have no special characters or spaces.</li>
|
||||
<li><strong>action</strong> (<em>Required</em>): A list of actions.</li>
|
||||
</ul>
|
||||
|
||||
<h2><a class="title-link" name="action-parameters" href="#action-parameters"></a> Action parameters</h2>
|
||||
|
||||
<ul>
|
||||
<li><strong>identifier</strong> (<em>Required</em>): A unique identifier for this action. Must be uppercase and have no special characters or spaces. Only needs to be unique to the category, not unique globally.</li>
|
||||
<li><strong>title</strong> (<em>Required</em>): The text to display on the button. Keep it short.</li>
|
||||
<li><strong>activationMode</strong> (<em>Optional</em>): The mode in which to run the app when the action is performed. Setting this to <code class="highlighter-rouge">foreground</code> will make the app open after selecting. Default value is <code class="highlighter-rouge">background</code>.</li>
|
||||
<li><strong>authenticationRequired</strong> (<em>Optional</em>): If a truthy value (<code class="highlighter-rouge">true</code>, <code class="highlighter-rouge">True</code>, <code class="highlighter-rouge">yes</code>, etc.) the user must unlock the device before the action is performed.</li>
|
||||
<li><strong>destructive</strong> (<em>Optional</em>): When the value of this property is a truthy value, the system displays the corresponding button differently to indicate that the action is destructive (text color is red).</li>
|
||||
<li><strong>behavior</strong> (<em>Optional</em>): When <code class="highlighter-rouge">textInput</code> the system provides a way for the user to enter a text response to be included with the notification. The entered text will be sent back to Home Assistant. Default value is <code class="highlighter-rouge">default</code>.</li>
|
||||
<li><strong>textInputButtonTitle</strong> (<em>Optional</em>): The button label. <em>Required</em> if <code class="highlighter-rouge">behavior</code> is <code class="highlighter-rouge">textInput</code>.</li>
|
||||
<li><strong>textInputPlaceholder</strong> (<em>Optional</em>): The placeholder text to show in the text input field. Only used if <code class="highlighter-rouge">behavior</code> is <code class="highlighter-rouge">textInput</code> and the device runs iOS 10.</li>
|
||||
</ul>
|
||||
|
||||
<p>Here’s a fully built example configuration:</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">ios</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">categories</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">Alarm</span>
|
||||
<span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">ALARM'</span>
|
||||
<span class="s">actions</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">SOUND_ALARM'</span>
|
||||
<span class="s">title</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Sound</span><span class="nv"> </span><span class="s">Alarm'</span>
|
||||
<span class="s">activationMode</span><span class="pi">:</span> <span class="s1">'</span><span class="s">background'</span>
|
||||
<span class="s">authenticationRequired</span><span class="pi">:</span> <span class="s">yes</span>
|
||||
<span class="s">destructive</span><span class="pi">:</span> <span class="s">yes</span>
|
||||
<span class="s">behavior</span><span class="pi">:</span> <span class="s1">'</span><span class="s">default'</span>
|
||||
<span class="pi">-</span> <span class="s">identifier</span><span class="pi">:</span> <span class="s1">'</span><span class="s">SILENCE_ALARM'</span>
|
||||
<span class="s">title</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Silence</span><span class="nv"> </span><span class="s">Alarm'</span>
|
||||
<span class="s">activationMode</span><span class="pi">:</span> <span class="s1">'</span><span class="s">background'</span>
|
||||
<span class="s">authenticationRequired</span><span class="pi">:</span> <span class="s">yes</span>
|
||||
<span class="s">destructive</span><span class="pi">:</span> <span class="s">no</span>
|
||||
<span class="s">behavior</span><span class="pi">:</span> <span class="s1">'</span><span class="s">textInput'</span>
|
||||
<span class="s">textInputButtonTitle</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Silencio!'</span>
|
||||
<span class="s">textInputPlaceholder</span><span class="pi">:</span> <span class="s1">'</span><span class="s">Placeholder'</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<h2><a class="title-link" name="building-automations-for-notification-actions" href="#building-automations-for-notification-actions"></a> Building automations for notification actions</h2>
|
||||
<p>Here is an example automation to send a notification with a category in the payload:</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.ios_robbies_iphone_7_plus</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">badge</span><span class="pi">:</span> <span class="s">5</span>
|
||||
<span class="s">sound</span><span class="pi">:</span> <span class="s"><SOUND FILE HERE></span>
|
||||
<span class="s">category</span><span class="pi">:</span> <span class="s2">"</span><span class="s">ALARM"</span> <span class="c1"># Needs to match the top level identifier you used in the ios configuration</span>
|
||||
<span class="s">action_data</span><span class="pi">:</span> <span class="c1"># Anything passed in action_data will get echoed back to Home Assistant.</span>
|
||||
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">light.test</span>
|
||||
<span class="s">my_custom_data</span><span class="pi">:</span> <span class="s">foo_bar</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>When an action is selected an event named <code class="highlighter-rouge">ios.notification_action_fired</code> will be emitted on the Home Assistant event bus. Below is an example payload.</p>
|
||||
|
||||
<div class="language-json highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
|
||||
</span><span class="nt">"sourceDeviceName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Robbie's iPhone 7 Plus"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="nt">"sourceDeviceID"</span><span class="p">:</span><span class="w"> </span><span class="s2">"robbies_iphone_7_plus"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="nt">"actionName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SOUND_ALARM"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="nt">"sourceDevicePushId"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ab9f02fe-6ac6-47b8-adeb-5dd87b489156"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="nt">"textInput"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w">
|
||||
</span><span class="nt">"actionData"</span><span class="p">:</span><span class="w"> </span><span class="p">{}</span><span class="w">
|
||||
</span><span class="p">}</span><span class="w">
|
||||
</span></code></pre>
|
||||
</div>
|
||||
|
||||
<p>Here’s an example automation for the given payload:</p>
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Sound the alarm</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">platform</span><span class="pi">:</span> <span class="s">event</span>
|
||||
<span class="s">event_type</span><span class="pi">:</span> <span class="s">ios.notification_action_fired</span>
|
||||
<span class="s">event_data</span><span class="pi">:</span>
|
||||
<span class="s">actionName</span><span class="pi">:</span> <span class="s">SOUND_ALARM</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Notes:</p>
|
||||
|
||||
<ul>
|
||||
<li><code class="highlighter-rouge">textInput</code> will only exist if <code class="highlighter-rouge">behavior</code> was set to <code class="highlighter-rouge">textInput</code>.</li>
|
||||
<li><code class="highlighter-rouge">actionData</code> is a dictionary with parameters passed in the <code class="highlighter-rouge">action_data</code> dictionary of the <code class="highlighter-rouge">push</code> dictionary in the original notification.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,175 +0,0 @@
|
|||
<!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>Architecture - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="The push notification system layout">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/architecture/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Architecture">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/architecture/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="The push notification system layout">
|
||||
<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="Architecture">
|
||||
<meta name="twitter:description" content="The push notification system layout">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/architecture.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Architecture
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/PushNotificationLayout.png" />
|
||||
The push notification infrastructure layout
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,240 +0,0 @@
|
|||
<!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>Notification attachments - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Adding attachments to iOS push notifications">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/attachments/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Notification attachments">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/attachments/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Adding attachments to iOS push notifications">
|
||||
<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="Notification attachments">
|
||||
<meta name="twitter:description" content="Adding attachments to iOS push notifications">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/attachments.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Notification Attachments
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>iOS 10 adds <em>attachments</em> to notifications. An attachment is an image, video, or audio file which is downloaded to the device when a notification is received and shown alongside the notification. A thumbnail is shown when the notification is not expanded. The full size attachment is shown when the notification is expanded.</p>
|
||||
|
||||
<p class="note">
|
||||
To expand a notification on 3D Touch devices simply force touch any notification. On non-3D Touch devices swipe and tap the “View” button.
|
||||
</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.ios_robbies_iphone_7_plus</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span><span class="s2">"</span>
|
||||
<span class="s">data:</span>
|
||||
<span class="s">attachment:</span>
|
||||
<span class="s">url:</span><span class="nv"> </span><span class="s">https://67.media.tumblr.com/ab04c028a5244377a0ab96e73915e584/tumblr_nfn3ztLjxk1tq4of6o1_400.gif</span>
|
||||
<span class="s">content-type:</span><span class="nv"> </span><span class="s">gif</span>
|
||||
<span class="s">hide-thumbnail:</span><span class="nv"> </span><span class="s">false</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li>The thumbnail of the notification will be the media at the <code class="highlighter-rouge">url</code>.</li>
|
||||
<li>The notification content is the media at the <code class="highlighter-rouge">url</code>.</li>
|
||||
<li>Attachment can be used with custom push notification categories.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Example</h2>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/attachment.png" />
|
||||
An unexpanded push notification with an attachment.
|
||||
</p>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/expanded_attachment.png" />
|
||||
The same notification but expanded to show the full size attachment
|
||||
</p>
|
||||
|
||||
<h2>Supported media types</h2>
|
||||
|
||||
<p>If the attachment does not appear please ensure it is in one of the following formats:</p>
|
||||
|
||||
<h3>Audio attachments</h3>
|
||||
|
||||
<p>Maximum file size: 5 MB</p>
|
||||
|
||||
<p>Allowed Formats: AIFF, WAV, MP3, MPEG4 Audio</p>
|
||||
|
||||
<h3>Image attachments</h3>
|
||||
|
||||
<p>Maximum file size: 10 MB</p>
|
||||
|
||||
<p>Allowed Formats: JPEG, GIF, PNG</p>
|
||||
|
||||
<h3>Video attachments</h3>
|
||||
|
||||
<p>Maximum file size: 50 MB</p>
|
||||
|
||||
<p>Allowed Formats: MPEG, MPEG2, MPEG4, AVI</p>
|
||||
|
||||
<h2>Configuration</h2>
|
||||
|
||||
<ul>
|
||||
<li><strong>url</strong> (<em>Required</em>): The URL of content to use as the attachment. This URL <em>must</em> be accessible from the Internet, or the receiving device must be on the same network as the hosted content.</li>
|
||||
<li><strong>content-type</strong> (<em>Optional</em>): By default, the extension of the URL will be checked to determine the filetype. If there is no extension/it can’t be determined you can manually provide a file extension.</li>
|
||||
<li><strong>hide-thumbnail</strong> (<em>Optional</em>): If set to <code class="highlighter-rouge">true</code> the thumbnail will not show on the notification. The content will only be viewable by expanding.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,223 +0,0 @@
|
|||
<!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>Basic Notifications - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Basic notes about iOS notifications">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/basic/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Basic Notifications">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/basic/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Basic notes about iOS notifications">
|
||||
<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="Basic Notifications">
|
||||
<meta name="twitter:description" content="Basic notes about iOS notifications">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/basic.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Basic Notifications
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>The iOS notify platform accepts the standard <code class="highlighter-rouge">title</code>, <code class="highlighter-rouge">message</code> and <code class="highlighter-rouge">target</code> parameters. The iOS notify platform supports targets as services. Assuming that you did not set a <code class="highlighter-rouge">name</code> when configuring the platform you should find all your registered and notification-enabled iOS devices available as notify targets as services with names prefixed “notify.ios_” and then the device name you entered at setup.</p>
|
||||
|
||||
<p>Notes:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p><code class="highlighter-rouge">title</code> only displays on Apple Watch and iOS 10 devices.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code class="highlighter-rouge">target</code> can be used to specific a single device using its PushID, found in <code class="highlighter-rouge">ios.conf</code>. The preferred way of providing a target is through a target specific notify service.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/example.png" />
|
||||
A push notification showing all of the basic options <code class="highlighter-rouge">title</code> and <code class="highlighter-rouge">message</code> as well as <code class="highlighter-rouge">subtitle</code> and <a href="/ecosystem/ios/notifications/actions/">actions</a>.
|
||||
</p>
|
||||
|
||||
<h3><a class="title-link" name="enhancing-basic-notifications" href="#enhancing-basic-notifications"></a> Enhancing basic notifications</h3>
|
||||
|
||||
<h4>Badge</h4>
|
||||
<p>You can set the icon badge in the payload:</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">badge</span><span class="pi">:</span> <span class="s">5</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<h4>Subtitle</h4>
|
||||
<p>iOS 10 supports a subtitle in addition to the title:</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span>
|
||||
<span class="s">- alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Something</span><span class="nv"> </span><span class="s">happened</span><span class="nv"> </span><span class="s">at</span><span class="nv"> </span><span class="s">home!"</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">subtitle</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Subtitle</span><span class="nv"> </span><span class="s">goes</span><span class="nv"> </span><span class="s">here"</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,220 +0,0 @@
|
|||
<!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>Dynamic content - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Extend your notifications with dynamic content">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/content_extensions/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Dynamic content">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/content_extensions/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Extend your notifications with dynamic content">
|
||||
<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="Dynamic content">
|
||||
<meta name="twitter:description" content="Extend your notifications with dynamic content">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/content_extensions.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Dynamic Content
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>With the new Content Extension feature found in iOS 10, dynamic content can now be displayed as part of a notification without opening an app.</p>
|
||||
|
||||
<h1>Map</h1>
|
||||
<p>Will show a map with a red tipped pin at the coordinates given.
|
||||
The map will be centered at the coordinates given.</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s">Something happened at home!</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">category</span><span class="pi">:</span> <span class="s">map</span>
|
||||
<span class="s">action_data</span><span class="pi">:</span>
|
||||
<span class="s">latitude</span><span class="pi">:</span> <span class="s">40.785091</span>
|
||||
<span class="s">longitude</span><span class="pi">:</span> <span class="s">-73.968285</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p class="img">
|
||||
<img src="/images/ios/map.png" />
|
||||
An example of the map dynamic content.
|
||||
</p>
|
||||
|
||||
<h1>Camera Stream</h1>
|
||||
|
||||
<p>The notification thumbnail will be a still image from the camera.
|
||||
The notification content is a real time MJPEG stream of a camera (assuming the camera supports it).</p>
|
||||
|
||||
<p>You can use the attachment parameters <code class="highlighter-rouge">content-type</code> and <code class="highlighter-rouge">hide-thumbnail</code> with camera.</p>
|
||||
|
||||
<p>You can view an example <a href="https://www.youtube.com/watch?v=LmYwpxPKW0g">here</a>.</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s">Motion detected in the Living Room</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">category</span><span class="pi">:</span> <span class="s">camera</span>
|
||||
<span class="s">entity_id</span><span class="pi">:</span> <span class="s">camera.demo_camera</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<div class="videoWrapper">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/LmYwpxPKW0g" frameborder="0" allowfullscreen=""></iframe>
|
||||
</div>
|
||||
|
||||
<h1>Combining with actionable notifications</h1>
|
||||
|
||||
<p>As you can see the <code class="highlighter-rouge">category</code> key is used to tell the device what kind of content extension to use. You can use the same category identifiers in your own custom <a href="/ecosystem/ios/notifications/actions/">actions</a> to add actions to the content extension.</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,186 +0,0 @@
|
|||
<!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>Notifications Introduction - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Getting started with iOS notifications">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Notifications Introduction">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Getting started with iOS notifications">
|
||||
<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="Notifications Introduction">
|
||||
<meta name="twitter:description" content="Getting started with iOS notifications">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Notifications Introduction
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>The <code class="highlighter-rouge">ios</code> notify platform enables sending push notifications to the Home Assistant iOS app.</p>
|
||||
|
||||
<h2><a class="title-link" name="setup" href="#setup"></a> Setup</h2>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example configuration.yaml entry</span>
|
||||
<span class="s">notify</span><span class="pi">:</span>
|
||||
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">ios</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Configuration variables:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>name</strong> (<em>Optional</em>): The name of the service.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a class='active' href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,182 +0,0 @@
|
|||
<!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>Privacy, rate limiting and security - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Notes about important topics relating to push notifications">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/privacy_security_rate_limits/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Privacy, rate limiting and security">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/privacy_security_rate_limits/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Notes about important topics relating to push notifications">
|
||||
<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="Privacy, rate limiting and security">
|
||||
<meta name="twitter:description" content="Notes about important topics relating to push notifications">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/privacy_security_rate_limits.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Privacy, Rate Limiting and Security
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<h2><a class="title-link" name="privacy" href="#privacy"></a> Privacy</h2>
|
||||
|
||||
<p>No notification content is stored on remote servers. Only the required push registration data and a simple counter of the total number of push notifications sent per day per device (for rate limiting purposes) is kept.</p>
|
||||
|
||||
<h2><a class="title-link" name="rate-limiting" href="#rate-limiting"></a> Rate limiting</h2>
|
||||
|
||||
<p>Currently, you are allowed to send a maximum of 150 push notifications per day per device. This is to ensure that the service remains cheap to maintain. In the future we may add support for upgrading to allow more notifications. The rate limit resets at midnight UTC daily. When a notification is sent your current rate limits (including sent notifications and notifications remaining for the day) will be output to your Home Assistant logs. If an error occurs while sending a notification your rate limit will not be affected.</p>
|
||||
|
||||
<h2><a class="title-link" name="security" href="#security"></a> Security</h2>
|
||||
|
||||
<p>All traffic between your Home Assistant instance, the push infrastructure, and Apple, is encrypted with SSL.</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,190 +0,0 @@
|
|||
<!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>Requesting location updates - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Ask the device to send a location update remotely">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/requesting_location_updates/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Requesting location updates">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/requesting_location_updates/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Ask the device to send a location update remotely">
|
||||
<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="Requesting location updates">
|
||||
<meta name="twitter:description" content="Ask the device to send a location update remotely">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/requesting_location_updates.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Requesting Location Updates
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p class="note warning">
|
||||
<strong>Do not rely on this functionality due to the time limits mentioned below.</strong>
|
||||
</p>
|
||||
|
||||
<p>You can force a device to attempt to report its location by sending a special notification.</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">automation</span>
|
||||
<span class="s">- alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s2">"</span><span class="s">request_location_updates"</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Assuming the device receives the notification, it will attempt to get a location update within 5 seconds and report it to Home Assistant. This is a little bit hit or miss since Apple imposes a maximum time allowed for the app to work with the notification and location updates sometimes take longer than usual due to factors such as waiting for GPS acquisition.</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,350 +0,0 @@
|
|||
<!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>Notification Sounds - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Adding sounds to notifications">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/notifications/sounds/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Notification Sounds">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/notifications/sounds/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Adding sounds to notifications">
|
||||
<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="Notification Sounds">
|
||||
<meta name="twitter:description" content="Adding sounds to notifications">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/notifications/sounds.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Notification Sounds
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Adding a custom sound to a notification allows you to easily identify the notification without even looking at your device. Home Assistant for iOS comes with some notification sounds pre-installed but you can also upload your own.</p>
|
||||
|
||||
<p>Here is an example notification that uses one of the pre-installed sounds.</p>
|
||||
|
||||
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="pi">-</span> <span class="s">alias</span><span class="pi">:</span> <span class="s">Notify iOS app</span>
|
||||
<span class="s">trigger</span><span class="pi">:</span>
|
||||
<span class="s">...</span>
|
||||
<span class="s">action</span><span class="pi">:</span>
|
||||
<span class="s">service</span><span class="pi">:</span> <span class="s">notify.iOSApp</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">message</span><span class="pi">:</span> <span class="s">“Something happened at home!”</span>
|
||||
<span class="s">data</span><span class="pi">:</span>
|
||||
<span class="s">push</span><span class="pi">:</span>
|
||||
<span class="s">sound</span><span class="pi">:</span> <span class="s2">"</span><span class="s">US-EN-Morgan-Freeman-Roommate-Is-Arriving.wav"</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li>You must use the full filename in the payload (including extension).</li>
|
||||
</ul>
|
||||
|
||||
<h2><a class="title-link" name="custom-push-notification-sounds" href="#custom-push-notification-sounds"></a> Custom push notification sounds</h2>
|
||||
<p>The app allows you to use your own custom sounds in push notifications. The sounds must be formatted following [Apple’s requirements][sound-requirements]. You set the filename of the sound in the notification payload. To add sounds:</p>
|
||||
|
||||
<ol>
|
||||
<li>Connect the device to a PC or Mac running the latest version of iTunes.</li>
|
||||
<li>Go to the device in iTunes.</li>
|
||||
<li>Select “Apps” on the left sidebar.</li>
|
||||
<li>Scroll down until you see the section labeled “File Sharing”.</li>
|
||||
<li>Select HomeAssistant.</li>
|
||||
<li>Drag and drop properly formatted sounds.</li>
|
||||
<li>Click Sync in the lower right.</li>
|
||||
<li>Once sync is complete, disconnect the device from the computer.</li>
|
||||
<li>On your iOS device, open the Home Assistant app.</li>
|
||||
<li>Go to Settings -> Notification Settings.</li>
|
||||
<li>Select “Import sounds from iTunes”.</li>
|
||||
</ol>
|
||||
|
||||
<p>Assuming that you correctly formatted the sounds they are now available to use in push notifications.</p>
|
||||
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li><strong>Please note that due to a bug in iOS 10 you may need to restart your entire device before notification sounds can be played. This should hopefully be fixed by Apple soon.</strong></li>
|
||||
<li>Uploading a file with the same name as an existing one will overwrite the original.</li>
|
||||
<li>You can view what sounds are installed on each device by inspecting the <code class="highlighter-rouge">ios.conf</code> file in your configuration directory. They are listed in the <code class="highlighter-rouge">pushSounds</code> array.</li>
|
||||
</ul>
|
||||
|
||||
<h3><a class="title-link" name="preinstalled-notification-sounds" href="#preinstalled-notification-sounds"></a> Preinstalled notification sounds</h3>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>US-EN-Alexa-Back-Door-Opened.wav
|
||||
US-EN-Alexa-Back-Door-Unlocked.wav
|
||||
US-EN-Alexa-Basement-Door-Opened.wav
|
||||
US-EN-Alexa-Basement-Door-Unlocked.wav
|
||||
US-EN-Alexa-Boyfriend-Is-Arriving.wav
|
||||
US-EN-Alexa-Daughter-Is-Arriving.wav
|
||||
US-EN-Alexa-Front-Door-Opened.wav
|
||||
US-EN-Alexa-Front-Door-Unlocked.wav
|
||||
US-EN-Alexa-Garage-Door-Opened.wav
|
||||
US-EN-Alexa-Girlfriend-Is-Arriving.wav
|
||||
US-EN-Alexa-Good-Morning.wav
|
||||
US-EN-Alexa-Good-Night.wav
|
||||
US-EN-Alexa-Husband-Is-Arriving.wav
|
||||
US-EN-Alexa-Mail-Has-Arrived.wav
|
||||
US-EN-Alexa-Motion-At-Back-Door.wav
|
||||
US-EN-Alexa-Motion-At-Front-Door.wav
|
||||
US-EN-Alexa-Motion-Detected-Generic.wav
|
||||
US-EN-Alexa-Motion-In-Back-Yard.wav
|
||||
US-EN-Alexa-Motion-In-Basement.wav
|
||||
US-EN-Alexa-Motion-In-Front-Yard.wav
|
||||
US-EN-Alexa-Motion-In-Garage.wav
|
||||
US-EN-Alexa-Patio-Door-Opened.wav
|
||||
US-EN-Alexa-Patio-Door-Unlocked.wav
|
||||
US-EN-Alexa-Smoke-Detected-Generic.wav
|
||||
US-EN-Alexa-Smoke-Detected-In-Basement.wav
|
||||
US-EN-Alexa-Smoke-Detected-In-Garage.wav
|
||||
US-EN-Alexa-Smoke-Detected-In-Kitchen.wav
|
||||
US-EN-Alexa-Son-Is-Arriving.wav
|
||||
US-EN-Alexa-Water-Detected-Generic.wav
|
||||
US-EN-Alexa-Water-Detected-In-Basement.wav
|
||||
US-EN-Alexa-Water-Detected-In-Garage.wav
|
||||
US-EN-Alexa-Water-Detected-In-Kitchen.wav
|
||||
US-EN-Alexa-Welcome-Home.wav
|
||||
US-EN-Alexa-Wife-Is-Arriving.wav
|
||||
US-EN-Daisy-Back-Door-Motion.wav
|
||||
US-EN-Daisy-Back-Door-Open.wav
|
||||
US-EN-Daisy-Front-Door-Motion.wav
|
||||
US-EN-Daisy-Front-Door-Open.wav
|
||||
US-EN-Daisy-Front-Window-Open.wav
|
||||
US-EN-Daisy-Garage-Door-Open.wav
|
||||
US-EN-Daisy-Guest-Bath-Leak.wav
|
||||
US-EN-Daisy-Kitchen-Sink-Leak.wav
|
||||
US-EN-Daisy-Kitchen-Window-Open.wav
|
||||
US-EN-Daisy-Laundry-Room-Leak.wav
|
||||
US-EN-Daisy-Master-Bath-Leak.wav
|
||||
US-EN-Daisy-Master-Bedroom-Window-Open.wav
|
||||
US-EN-Daisy-Office-Window-Open.wav
|
||||
US-EN-Daisy-Refrigerator-Leak.wav
|
||||
US-EN-Daisy-Water-Heater-Leak.wav
|
||||
US-EN-Morgan-Freeman-Back-Door-Closed.wav
|
||||
US-EN-Morgan-Freeman-Back-Door-Locked.wav
|
||||
US-EN-Morgan-Freeman-Back-Door-Opened.wav
|
||||
US-EN-Morgan-Freeman-Back-Door-Unlocked.wav
|
||||
US-EN-Morgan-Freeman-Basement-Door-Closed.wav
|
||||
US-EN-Morgan-Freeman-Basement-Door-Locked.wav
|
||||
US-EN-Morgan-Freeman-Basement-Door-Opened.wav
|
||||
US-EN-Morgan-Freeman-Basement-Door-Unlocked.wav
|
||||
US-EN-Morgan-Freeman-Boss-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Boyfriend-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Cleaning-Supplies-Closet-Opened.wav
|
||||
US-EN-Morgan-Freeman-Coworker-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Daughter-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Friend-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Front-Door-Closed.wav
|
||||
US-EN-Morgan-Freeman-Front-Door-Locked.wav
|
||||
US-EN-Morgan-Freeman-Front-Door-Opened.wav
|
||||
US-EN-Morgan-Freeman-Front-Door-Unlocked.wav
|
||||
US-EN-Morgan-Freeman-Garage-Door-Closed.wav
|
||||
US-EN-Morgan-Freeman-Garage-Door-Opened.wav
|
||||
US-EN-Morgan-Freeman-Girlfriend-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Good-Morning.wav
|
||||
US-EN-Morgan-Freeman-Good-Night.wav
|
||||
US-EN-Morgan-Freeman-Liquor-Cabinet-Opened.wav
|
||||
US-EN-Morgan-Freeman-Motion-Detected.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Basement.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Bedroom.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Game-Room.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Garage.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Kitchen.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Living-Room.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Theater.wav
|
||||
US-EN-Morgan-Freeman-Motion-In-Wine-Cellar.wav
|
||||
US-EN-Morgan-Freeman-Patio-Door-Closed.wav
|
||||
US-EN-Morgan-Freeman-Patio-Door-Locked.wav
|
||||
US-EN-Morgan-Freeman-Patio-Door-Opened.wav
|
||||
US-EN-Morgan-Freeman-Patio-Door-Unlocked.wav
|
||||
US-EN-Morgan-Freeman-Roommate-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Searching-For-Car-Keys.wav
|
||||
US-EN-Morgan-Freeman-Setting-The-Mood.wav
|
||||
US-EN-Morgan-Freeman-Smartthings-Detected-A-Flood.wav
|
||||
US-EN-Morgan-Freeman-Smartthings-Detected-Carbon-Monoxide.wav
|
||||
US-EN-Morgan-Freeman-Smartthings-Detected-Smoke.wav
|
||||
US-EN-Morgan-Freeman-Smoke-Detected-In-Basement.wav
|
||||
US-EN-Morgan-Freeman-Smoke-Detected-In-Garage.wav
|
||||
US-EN-Morgan-Freeman-Smoke-Detected-In-Kitchen.wav
|
||||
US-EN-Morgan-Freeman-Someone-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Son-Is-Arriving.wav
|
||||
US-EN-Morgan-Freeman-Starting-Movie-Mode.wav
|
||||
US-EN-Morgan-Freeman-Starting-Party-Mode.wav
|
||||
US-EN-Morgan-Freeman-Starting-Romance-Mode.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-All-The-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Air-Conditioner.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Bar-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Chandelier.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Family-Room-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Hallway-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Kitchen-Light.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Light.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-Mood-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-Off-The-TV.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Air-Conditioner.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Bar-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Chandelier.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Family-Room-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Hallway-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Kitchen-Light.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Light.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-Mood-Lights.wav
|
||||
US-EN-Morgan-Freeman-Turning-On-The-TV.wav
|
||||
US-EN-Morgan-Freeman-Vacate-The-Premises.wav
|
||||
US-EN-Morgan-Freeman-Water-Detected-In-Basement.wav
|
||||
US-EN-Morgan-Freeman-Water-Detected-In-Garage.wav
|
||||
US-EN-Morgan-Freeman-Water-Detected-In-Kitchen.wav
|
||||
US-EN-Morgan-Freeman-Welcome-Home.wav
|
||||
US-EN-Morgan-Freeman-Wife-Is-Arriving.wav
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a class='active' href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,176 +0,0 @@
|
|||
<!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>Requirements - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Basic requirements to use Home Assistant for iOS">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/ios/requirements/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="Requirements">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/ios/requirements/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Basic requirements to use Home Assistant for iOS">
|
||||
<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="Requirements">
|
||||
<meta name="twitter:description" content="Basic requirements to use Home Assistant for iOS">
|
||||
<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="/ecosystem/">Ecosystem</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">
|
||||
|
||||
|
||||
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_ecosystem/ios/requirements.markdown'>Edit this page on GitHub</a></div>
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="title indent">
|
||||
Requirements
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<ul>
|
||||
<li>iOS device running at least iOS 9, but iOS 10 is greatly preferred.</li>
|
||||
<li>Home Assistant 0.31.1 or higher for push notification support.</li>
|
||||
<li>SSL is strongly recommended. Self-signed SSL certificates will not work due to Apple’s limitations.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</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="section">
|
||||
<h1 class="title delta">iOS Guide</h1>
|
||||
<ul class="divided sidebar-menu">
|
||||
<li>
|
||||
<a href='/ecosystem/ios/'>General </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/ecosystem/ios/notifications/'>Push Notifications </a>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/basic/'>Basic notifications </a></li>
|
||||
<li>Advanced notifications</li>
|
||||
<ul>
|
||||
<li><a href='/ecosystem/ios/notifications/attachments/'>Attachments </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/content_extensions/'>Dynamic content </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/actions/'>Actionable notifications </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/requesting_location_updates/'>Requesting location updates </a></li>
|
||||
</ul>
|
||||
<li><a href='/ecosystem/ios/notifications/examples/'>Examples </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/sounds/'>Sounds </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/architecture/'>Architecture </a></li>
|
||||
<li><a href='/ecosystem/ios/notifications/privacy_security_rate_limits/'>Privacy, rate limiting and security </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href='/ecosystem/ios/location/'>Location Tracking </a></li>
|
||||
<li><a href='/ecosystem/ios/integration/'>Integration with other apps </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>
|
||||
</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>
|
|
@ -1,326 +0,0 @@
|
|||
<!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>SceneGen - Home Assistant</title>
|
||||
<meta name="author" content="Home Assistant">
|
||||
<meta name="description" content="Scenegen is a scene generation tool for Home Assistant">
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="canonical" href="https://home-assistant.io/ecosystem/scenegen/">
|
||||
|
||||
<meta property="fb:app_id" content="338291289691179">
|
||||
<meta property="og:title" content="SceneGen">
|
||||
<meta property="og:site_name" content="Home Assistant">
|
||||
<meta property="og:url" content="https://home-assistant.io/ecosystem/scenegen/">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:description" content="Scenegen is a scene generation tool for 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="SceneGen">
|
||||
<meta name="twitter:description" content="Scenegen is a scene generation tool for 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="/ecosystem/">Ecosystem</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">
|
||||
SceneGen
|
||||
</h1>
|
||||
</header>
|
||||
<hr class="divider">
|
||||
|
||||
|
||||
<p>Scenegen is a scene generation tool for <a href="https://home-assistant.io/">Home Assistant</a> home automation software. It creates scenes by example, by reading the current states of devices and outputting a corresponding scene. Scenegen is written in python using Home Assistant’s RESTFul API so can be run from anywhere. It currently supports lights and switches only.</p>
|
||||
|
||||
<h2>Installation</h2>
|
||||
|
||||
<h3>Clone the Repository</h3>
|
||||
<p>Clone the <strong>scenegen</strong> repository to the current local directory on your machine.</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git clone https://github.com/home-assistant/scenegen.git
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Change your working directory to the repository root. Moving forward, we will be working from this directory.</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nb">cd </span>scenegen
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Install Prereqs</h2>
|
||||
|
||||
<p>Before running <code class="highlighter-rouge">SceneGen</code> you will need to add some python prerequisites:</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>sudo pip3 install configparser
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>You should now be ready to run <code class="highlighter-rouge">scenegen</code></p>
|
||||
|
||||
<h2>Basic Operation</h2>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>usage: scenegen [-h] [-k KEY] [-s SCENENAME] [-m MAPFILE] [-f FILTER]
|
||||
[-c {xy_color,rgb_color,color_temp,color_name}] [-t TYPES]
|
||||
url
|
||||
|
||||
positional arguments:
|
||||
url url for Home Assistant instance
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
-k KEY, --key KEY API Key of Home Assistant instance
|
||||
-s SCENENAME, --scenename SCENENAME
|
||||
Name of scene to generate
|
||||
-m MAPFILE, --mapfile MAPFILE
|
||||
Name of mapfile to enable device filtering
|
||||
-f FILTER, --filter FILTER
|
||||
Comma separated list of device collections as defined
|
||||
in mapfile
|
||||
-c {xy_color,rgb_color,color_temp,color_name}, --colortype {xy_color,rgb_color,color_temp,color_name}
|
||||
color type to use
|
||||
-t TYPES, --types TYPES
|
||||
list of device types to include
|
||||
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>For basic operation just supply the url and optionally the api key (using the –key option) on the command line and scenegen will output a list of all lights and switches with their attributes. Optionally use the <code class="highlighter-rouge">--scenename</code> flag to explicitly set the scenename.</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>$ ./scenegen.py https://<some url> -k <some api key>
|
||||
name: My New Scene
|
||||
entities:
|
||||
light.bedroom:
|
||||
state: on
|
||||
brightness: 28
|
||||
light.kitchen:
|
||||
state: off
|
||||
light.living_room:
|
||||
state: off
|
||||
light.bedside:
|
||||
state: on
|
||||
brightness: 125
|
||||
color_temp: 412
|
||||
light.office_level_29:
|
||||
state: on
|
||||
brightness: 28
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>This output can be cut and pasted into your configuration.yaml file as required (ensuring correct indentatation of course).</p>
|
||||
|
||||
<p>Scenegen supports all documented effects for lights including transitions and flash effects, however generally it is easier to run scenegen to get the basic setup and add any effects manually later.</p>
|
||||
|
||||
<p>Note that depending on the type of light there may be a delay in actually setting up its parameters and Home Assistant actually recieving that state. For instance, if you set a scene up with the Hue App, Home Assistant won’t see those changes for up to 10 seconds. Turning on a ZWave light might not be seen for an entire poll interval. For this reason, its good practice to wait for a while after the scene is setup before running scenegen. Alternatively, perform all setup using the Home Assistant frontend and it will instantly have the required state for capture.</p>
|
||||
|
||||
<h2>Advanced Usage</h2>
|
||||
|
||||
<p>For a more advanced way to use the output try the following. In configuration.yaml add the following line:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>scene: !include_dir_list scenes
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>This will tell home assistant to look in the subdirectory <code class="highlighter-rouge">scenes</code> for yaml files containing scene information. Each file will be named for the scene it will create and should contain information formatted as above. Then simply run Scenegen and redirect its output to the scenes subdirectory:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>$ ./scenegen.py https://<some url> -k <some api key> > scenes/my_new_scene.yaml
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>This will create a new scene called <code class="highlighter-rouge">my_new_scene</code> which will automatically be picked up by Home Assistant on the next restart.</p>
|
||||
|
||||
<h2>Colors</h2>
|
||||
|
||||
<p>Scenegen allows colors to be captured, and in fact Home Assistant light entities store up to 4 different ways of specifying the colors. This is redundant for creating scenes so Scenegen picks 1 and goes with it. The default is <code class="highlighter-rouge">color_temp</code> but you can change this with the <code class="highlighter-rouge">--colortype</code> flag, supported options are <code class="highlighter-rouge">xy_color</code>, <code class="highlighter-rouge">rgb_color</code>, <code class="highlighter-rouge">color_temp</code> and <code class="highlighter-rouge">color_name</code>.</p>
|
||||
|
||||
<h2>Types</h2>
|
||||
|
||||
<p>By default, Scenegen will list all lights and switches. To restrict the device type use the <code class="highlighter-rouge">--types</code> option and supply a comma separated list (no spaces) of types to output. e.g.:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://<some url> -k <some api key> --types light,switch
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>or:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://<some url> -k <some api key> --types light
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>This will make more sense as and when more types are added.</p>
|
||||
|
||||
<h2>Maps and Filters</h2>
|
||||
|
||||
<p>Maps allow you to specify and label various subsets of devices that you want to work on together. A mapfile is specified using the <code class="highlighter-rouge">--mapfile</code> option and is a <code class="highlighter-rouge">.ini</code> style file consisting of section headers and entries. The section headers specify a region or zone or otherwise organized selection of entities you want to filter on, and it is mandatory to have at least one. If you create a map file like this:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[entities]
|
||||
light.living_room:
|
||||
light.dining_room:
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>The trailing colons are necessary to prevent parsing errors for including just keys, as opposed to key=value so just go with it - it reminds us of YAML ;)</p>
|
||||
|
||||
<p>If you run scenegen with the <code class="highlighter-rouge">--mapfile</code> argument pointing to that file you will only get output for the listed entities (the name of the section is irrelevant if not using the <code class="highlighter-rouge">--filter</code> option). A more complex mapfile might look like this:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>[Outside]
|
||||
light.porch:
|
||||
switch.path_lights:
|
||||
[Living Room]
|
||||
light.living_room_front:
|
||||
light.living_room_back:
|
||||
[Bedroom]
|
||||
light.bedside:
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>Again, if you run with that map file it will output all of the entities listed, however you now have the possibility of restricting output devices based on the sections they are in, using the <code class="highlighter-rouge">--filter</code> option and supplying a comma separated list of sections you want to include, for instance:</p>
|
||||
|
||||
<div class="highlighter-rouge"><pre class="highlight"><code>./scenegen.py https://<some url> -k <some api key> --mapfile map.cfg --filter "Outside,Living Room"
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<p>The intended use of the mapfile and filter is that you create a map of all your devices and organize them into zones that you are interested in creating scenes for and use the filter to limit output to that zone. For instance you might want to create 3 or 4 scenes for your living room, and once the map is set up you can easily do so without the addition of unwanted devices.</p>
|
||||
|
||||
<h2>Updating SceneGen</h2>
|
||||
<p>To update SceneGen after a new version is released, just run the following command to update your copy:</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git pull
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Release Notes</h2>
|
||||
|
||||
<p><strong><em>Version 1.2</em></strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Add installation instructions</li>
|
||||
</ul>
|
||||
|
||||
<p><strong><em>Version 1.1</em></strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Add better error checking for Home Assistant errors</li>
|
||||
</ul>
|
||||
|
||||
<p><strong><em>Version 1.0</em></strong></p>
|
||||
|
||||
<p>Initial Release</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="section">
|
||||
<h1 class="title delta">Ecosystem</h1>
|
||||
<ul class="divided">
|
||||
<li><a href="/ecosystem/scenegen/">SceneGen</a></li>
|
||||
<li><a href="/ecosystem/ios/">iOS</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>
|
||||
</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>
|
Loading…
Add table
Add a link
Reference in a new issue