home-assistant.github.io/components/switch.command_switch/index.html
2015-12-21 12:15:51 +00:00

285 lines
No EOL
11 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">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Command line switch">
<meta name="twitter:description" content="Instructions how to have switches call command line commands.">
<meta name="twitter: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'>
<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>
<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>A switch platform that issues specific commands when it is turned on and off. This might very well become our most powerful 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 shutdown 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.orvibo/'>Orvibo 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.zwave/'>Z-Wave switch</a>
</li>
<li>
<a href='/components/switch.arest/'>aREST switch</a>
</li>
<li>
<a href='/components/switch.mystrom/'>myStrom switch</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://github.com/balloob/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
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>
<!--[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>