Site updated at 2015-09-18 06:41:51 UTC
This commit is contained in:
parent
9a3bd15c40
commit
5ccad30d25
73 changed files with 2022 additions and 1055 deletions
|
@ -133,24 +133,31 @@
|
|||
<li><a href="https://github.com/pavoni">Greg Dowling</a></li>
|
||||
<li><a href="https://github.com/gbarba">Guillem Barba</a></li>
|
||||
<li><a href="https://github.com/Gyran">Gustav Ahlberg</a></li>
|
||||
<li><a href="https://github.com/heathbar">Heathbar</a></li>
|
||||
<li><a href="https://github.com/issackelly">Issac Kelly</a></li>
|
||||
<li><a href="https://github.com/jamespcole">James Cole</a></li>
|
||||
<li><a href="https://github.com/Qrtn">Jeffrey Tang</a></li>
|
||||
<li><a href="https://github.com/SEJeff">Jeff Schroeder</a></li>
|
||||
<li><a href="https://github.com/loghound">John McLaughlin</a></li>
|
||||
<li><a href="https://github.com/Jaidan">John Williams</a></li>
|
||||
<li><a href="https://github.com/maddox">Jon Maddox</a></li>
|
||||
<li><a href="https://github.com/eagleamon">Joseph Piron</a></li>
|
||||
<li><a href="https://github.com/jd">Julien Danjou</a></li>
|
||||
<li><a href="https://github.com/kixam">kixam</a></li>
|
||||
<li><a href="https://github.com/MakeMeASandwich">MakeMeASandwich</a></li>
|
||||
<li><a href="https://github.com/fingon">Markus Stenberg</a></li>
|
||||
<li><a href="https://github.com/michaelarnauts">Michael Arnauts</a></li>
|
||||
<li><a href="https://github.com/Zyell">Michael Gilbert</a></li>
|
||||
<li><a href="https://github.com/nkgilley">Nolan Gilley</a></li>
|
||||
<li><a href="https://github.com/miniconfig">miniconfig</a></li>
|
||||
<li><a href="https://github.com/persandstrom">Per Sandström</a></li>
|
||||
<li><a href="https://github.com/Piratonym">Piratonym</a></li>
|
||||
<li><a href="https://github.com/mikegrb">Rev Michael Greb</a></li>
|
||||
<li><a href="https://github.com/rhooper">rhooper</a></li>
|
||||
<li><a href="https://github.com/rkabadi">rkabadi</a></li>
|
||||
<li><a href="https://github.com/rmkraus">Ryan Kraus</a></li>
|
||||
<li><a href="https://github.com/sfam">sfam</a></li>
|
||||
<li><a href="https://github.com/stefan-jonasson">Stefan Jonasson</a></li>
|
||||
<li><a href="https://github.com/theolind">Theodor Lindquist</a></li>
|
||||
<li><a href="https://github.com/vitorespindola">vitorespindola</a></li>
|
||||
<li><a href="https://github.com/wind-rider">wind-rider</a></li>
|
||||
|
|
|
@ -106,7 +106,9 @@
|
|||
|
||||
<p>In the package <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/remote.py"><code>homeassistant.remote</code></a> a Python API on top of the <a href="/developers/api.html">HTTP API</a> can be found.</p>
|
||||
|
||||
<p>The two snippets below shows how to use the <code>homeassistant.remote</code> package:</p>
|
||||
<p>This page is not a full documentation it’s more a collection of some example. A simple way to get all current entities is to visit the “Set State” page in the “Developer Tools”. For the examples below just choose one from the available entries. Here the sensor <code>sensor.office_temperature</code> and the switch <code>switch.livingroom_pin_2</code> are used.</p>
|
||||
|
||||
<p>First import the module and setup the basics.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
|
@ -114,12 +116,12 @@
|
|||
<span class='line-number'>4</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">"host"</span><span class="p">,</span> <span class="s">"password"</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">living_room</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">get_state</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="s">'group.living_room'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">'host'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="k">print</span><span class="p">(</span><span class="n">remote</span><span class="o">.</span><span class="n">validate_api</span><span class="p">(</span><span class="n">api</span><span class="p">))</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
|
||||
<p>This snippets shows how to use the <code>homeassistant.remote</code> package in another way.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
|
@ -129,14 +131,167 @@
|
|||
<span class='line-number'>6</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">"host"</span><span class="p">,</span> <span class="s">"password"</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">'host'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">hass</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">HomeAssistant</span><span class="p">(</span><span class="n">api</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">hass</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
|
||||
</span><span class='line'><span class="n">living_room</span> <span class="o">=</span> <span class="n">hass</span><span class="o">.</span><span class="n">states</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'group.living_room'</span><span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<h3><a class='title-link' name='get-details-about-servies-and-events' href='#get-details-about-servies-and-events'></a> Get details about servies and events</h3>
|
||||
|
||||
<p>Similar to the output in the “Developer Tools” of the frontend</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
<span class='line-number'>6</span>
|
||||
<span class='line-number'>7</span>
|
||||
<span class='line-number'>8</span>
|
||||
<span class='line-number'>9</span>
|
||||
<span class='line-number'>10</span>
|
||||
<span class='line-number'>11</span>
|
||||
<span class='line-number'>12</span>
|
||||
<span class='line-number'>13</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">'host'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">)</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="k">print</span><span class="p">(</span><span class="s">'-- Available services:'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">services</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">get_services</span><span class="p">(</span><span class="n">api</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">services</span><span class="p">:</span>
|
||||
</span><span class='line'> <span class="k">print</span><span class="p">(</span><span class="n">service</span><span class="p">[</span><span class="s">'services'</span><span class="p">])</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">-- Available event'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">events</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">get_event_listeners</span><span class="p">(</span><span class="n">api</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
|
||||
</span><span class='line'> <span class="k">print</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<h3><a class='title-link' name='get-the-state-of-an-entity' href='#get-the-state-of-an-entity'></a> Get the state of an entity</h3>
|
||||
|
||||
<p>To get the details of a single entity the <code>get_state</code> method is used.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
<span class='line-number'>6</span>
|
||||
<span class='line-number'>7</span>
|
||||
<span class='line-number'>8</span>
|
||||
<span class='line-number'>9</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">'host'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">office_temperature</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">get_state</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="s">'sensor.office_temperature'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="k">print</span><span class="p">(</span><span class="s">'{} is {} {}.'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">office_temperature</span><span class="o">.</span><span class="n">attributes</span><span class="p">[</span><span class="s">'friendly_name'</span><span class="p">],</span>
|
||||
</span><span class='line'> <span class="n">office_temperature</span><span class="o">.</span><span class="n">state</span><span class="p">,</span>
|
||||
</span><span class='line'> <span class="n">office_temperature</span><span class="o">.</span><span class="n">attributes</span><span class="p">[</span><span class="s">'unit_of_measurement'</span><span class="p">]</span>
|
||||
</span><span class='line'> <span class="p">)</span>
|
||||
</span><span class='line'> <span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<p>The output is composed out of the details which are stored for this entity.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
</pre></td><td class='code'><pre><code class='bash'><span class='line'>Office Temperature is <span class="m">19</span> °C.
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<p>The exact same thing is working for a switch. The difference is that both entities have different attributes.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
<span class='line-number'>6</span>
|
||||
<span class='line-number'>7</span>
|
||||
<span class='line-number'>8</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">api</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">API</span><span class="p">(</span><span class="s">'host'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">switch_livingroom</span> <span class="o">=</span> <span class="n">remote</span><span class="o">.</span><span class="n">get_state</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="s">'switch.livingroom_pin_2'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="k">print</span><span class="p">(</span><span class="s">'{} is {}.'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">switch_livingroom</span><span class="o">.</span><span class="n">attributes</span><span class="p">[</span><span class="s">'friendly_name'</span><span class="p">],</span>
|
||||
</span><span class='line'> <span class="n">switch_livingroom</span><span class="o">.</span><span class="n">state</span>
|
||||
</span><span class='line'> <span class="p">)</span>
|
||||
</span><span class='line'> <span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<h3><a class='title-link' name='set-the-state-of-an-entity' href='#set-the-state-of-an-entity'></a> Set the state of an entity</h3>
|
||||
|
||||
<p>Of course, it’s possible to set the state.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'><span class="kn">from</span> <span class="nn">homeassistant.const</span> <span class="kn">import</span> <span class="n">STATE_ON</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="s">'sensor.office_temperature'</span><span class="p">,</span> <span class="n">new_state</span><span class="o">=</span><span class="mi">123</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">set_state</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="s">'switch.livingroom_pin_2'</span><span class="p">,</span> <span class="n">new_state</span><span class="o">=</span><span class="n">STATE_ON</span><span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<p>The state will be set to those value until the next update occurs.</p>
|
||||
|
||||
<h3><a class='title-link' name='blinking-all-entites-of-a-domain' href='#blinking-all-entites-of-a-domain'></a> Blinking all entites of a domain</h3>
|
||||
|
||||
<p>If you want to turn on all entities of a domain, just a service which was retrieved by <code>get_services</code>.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
<span class='line-number'>6</span>
|
||||
<span class='line-number'>7</span>
|
||||
<span class='line-number'>8</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">time</span>
|
||||
</span><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">domain</span> <span class="o">=</span> <span class="s">'switch'</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">call_service</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="s">'turn_on'</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">call_service</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="s">'turn_off'</span><span class="p">)</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<h3><a class='title-link' name='control-a-single-entity' href='#control-a-single-entity'></a> Control a single entity</h3>
|
||||
|
||||
<p>To turn on or off a single switch, the ID of the entity is needed as attribute.</p>
|
||||
|
||||
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
|
||||
<span class='line-number'>2</span>
|
||||
<span class='line-number'>3</span>
|
||||
<span class='line-number'>4</span>
|
||||
<span class='line-number'>5</span>
|
||||
<span class='line-number'>6</span>
|
||||
<span class='line-number'>7</span>
|
||||
<span class='line-number'>8</span>
|
||||
<span class='line-number'>9</span>
|
||||
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">time</span>
|
||||
</span><span class='line'><span class="kn">import</span> <span class="nn">homeassistant.remote</span> <span class="kn">as</span> <span class="nn">remote</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">domain</span> <span class="o">=</span> <span class="s">'switch'</span>
|
||||
</span><span class='line'><span class="n">switch_name</span> <span class="o">=</span> <span class="s">'switch.livingroom_pin_2'</span>
|
||||
</span><span class='line'>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">call_service</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="s">'turn_on'</span><span class="p">,</span> <span class="p">{</span><span class="s">'entity_id'</span><span class="p">:</span> <span class="s">'{}'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">switch_name</span><span class="p">)})</span>
|
||||
</span><span class='line'><span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
</span><span class='line'><span class="n">remote</span><span class="o">.</span><span class="n">call_service</span><span class="p">(</span><span class="n">api</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="s">'turn_off'</span><span class="p">,</span> <span class="p">{</span><span class="s">'entity_id'</span><span class="p">:</span> <span class="s">'{}'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">switch_name</span><span class="p">)})</span>
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
<p>For more details please check the source of <a href="https://github.com/balloob/home-assistant/blob/master/homeassistant/remote.py">homeassistant.remote</a>.</p>
|
||||
|
||||
|
||||
</article>
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
<p>Home Assistant runs a web server accessible on port 8123.</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://127.0.0.1:8123/">http://127.0.0.1:8123/</a> is an interface to control Home Assistant.</li>
|
||||
<li><a href="http://localhost:8123/">http://localhost:8123/</a> is an interface to control Home Assistant.</li>
|
||||
<li><a href="http://localhost:8123/api/">http://localhost:8123/api/</a> is a Rest API.</li>
|
||||
</ul>
|
||||
|
||||
|
@ -121,7 +121,7 @@
|
|||
<span class='line-number'>3</span>
|
||||
</pre></td><td class='code'><pre><code class='bash'><span class='line'>curl -X GET <span class="se">\</span>
|
||||
</span><span class='line'> -H <span class="s2">"x-ha-access: YOUR_PASSWORD"</span> <span class="se">\</span>
|
||||
</span><span class='line'> http://localhost:8123/api
|
||||
</span><span class='line'> http://localhost:8123/api/
|
||||
</span></code></pre></td></tr></table></div></figure>
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue