home-assistant.github.io/components/switch.command_switch/index.html
2015-10-29 00:09:11 -07:00

264 lines
No EOL
10 KiB
HTML

<!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>Command line switch - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Instructions how to have switches call command line commands.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/switch.command_switch/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Command line switch">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/switch.command_switch/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions how to have switches call command line commands.">
<meta property="og:image" content="https://home-assistant.io/images/home-assistant-logo-2164x2164.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='/images/favicon-192x192.png'> Home Assistant
</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>
<ul>
<li><a href='/getting-started/'>Installing Home Assistant</a></li>
<li><a href='/getting-started/configuration/'>Configuration basics</a></li>
<li><a href='/getting-started/devices/'>Adding devices</a></li>
<li><a href='/getting-started/presence-detection/'>Presence detection</a></li>
<li><a href='/getting-started/automation/'>Automation</a></li>
<li><a href='/cookbook'>Configuration cookbook</a></li>
</ul>
</li>
<li><a href='/components/'>Components</a></li>
<li>
<a href="/developers/">Developers</a>
<ul>
<li><a href="/developers/architecture/">Architecture</a></li>
<li><a href="/developers/frontend/">Frontend development</a></li>
<li><a href="/developers/creating_components/">
Creating components
</a></li>
<li><a href="/developers/add_new_platform/">
Adding platform support
</a></li>
<li><a href="/developers/api/">API</a></li>
<li><a href="/developers/credits/">Credits</a></li>
</ul>
</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">
Command line switch
</h1>
</header>
<hr class="divider">
<p>The switch platform that issues specific commands when it is turned on and off. This might very well become our most platform as it allows anyone to integrate any type of switch into Home Assistant that can be controlled from the command line, including calling other scripts!</p>
<p>To enable it, add the following lines to your <code>configuration.yaml</code>:</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_switch</span></span>
<span class="key">switches</span>:
<span class="key">kitchen_light</span>:
<span class="key">oncmd</span>: <span class="string"><span class="content">switch_command on kitchen</span></span>
<span class="key">offcmd</span>: <span class="string"><span class="content">switch_command off kitchen</span></span>
</pre></div>
</div>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>switches</strong> (<em>Required</em>): The array that contains all command switches.
<ul>
<li><strong>entry</strong> (<em>Required</em>): Name of the command switch. Multiple entries are possible.
<ul>
<li><strong>oncmd</strong> (<em>Required</em>): The action to take for on.</li>
<li><strong>offcmd</strong> (<em>Required</em>): The action to take for off.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2><a class="title-link" name="examples" href="#examples"></a> Examples</h2>
<p>In this section you find some real life examples of how to use this switch.</p>
<h3><a class="title-link" name="arest-device" href="#arest-device"></a> aREST device</h3>
<p>The example below is doing the same as the <a href="/components/switch.arest/">aREST switch</a>. The commandline tool <a href="http://curl.haxx.se/"><code>curl</code></a> is used to toogle a pin which is controllable through REST.</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_switch</span></span>
<span class="key">switches</span>:
<span class="key">arest_pin4</span>:
<span class="key">oncmd</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">/usr/bin/curl -X GET http://192.168.1.10/digital/4/1</span><span class="delimiter">&quot;</span></span>
<span class="key">offcmd</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">/usr/bin/curl -X GET http://192.168.1.10/digital/4/0</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
</div>
<h3><a class="title-link" name="shutdown-your-local-host" href="#shutdown-your-local-host"></a> Shutdown your local host</h3>
<p>This switch will shutdown your system that is hosting Home Assistant.</p>
<p class="note warning">
This switch will shudown your host immediately, there will be no confirmation.
</p>
<div class="highlighter-coderay"><div class="CodeRay">
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
<span class="key">switch</span>:
<span class="key">platform</span>: <span class="string"><span class="content">command_switch</span></span>
<span class="key">switches</span>:
<span class="key">Home Assistant system shutdown</span>:
<span class="key">offcmd</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">/usr/sbin/poweroff</span><span class="delimiter">&quot;</span></span>
</pre></div>
</div>
</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='brand-logo-container section'>
</div>
<div class='section'>
This is a platform for
<a href='/components/switch/'>the Switches component</a>.
</div>
<div class='section'>
<h1 class="title delta">Category Switch</h1>
<ul class='divided'>
<li>
<a href='/components/switch.wemo/'>Belkin WeMo switch</a>
</li>
<li>
Command line switch
</li>
<li>
<a href='/components/switch.edimax/'>Edimax switch</a>
</li>
<li>
<a href='/components/switch.mqtt/'>MQTT switch</a>
</li>
<li>
<a href='/components/switch.modbus/'>Modbus switch</a>
</li>
<li>
<a href='/components/switch.rest/'>RESTful switch</a>
</li>
<li>
<a href='/components/switch.rfxtrx/'>RFXtrx switch</a>
</li>
<li>
<a href='/components/switch.tellstick/'>TellStick switch</a>
</li>
<li>
<a href='/components/switch.transmission/'>Transmission switch</a>
</li>
<li>
<a href='/components/switch.vera/'>Vera switch</a>
</li>
<li>
<a href='/components/switch.wink/'>Wink switch</a>
</li>
<li>
<a href='/components/switch.arest/'>aREST switch</a>
</li>
</ul>
</div>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<p class="copyright">
<span class="credit">Powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>. Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.</span>
</p>
</div>
</div>
</div>
</footer>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<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>