Site updated at 2016-03-28 03:56:49 UTC
This commit is contained in:
parent
0fbe06a0cb
commit
aaafbb1c55
25 changed files with 280 additions and 237 deletions
|
@ -136,7 +136,7 @@
|
|||
<li>The <strong>Event Bus</strong> facilitates the firing and listening of events. This is the beating heart of Home Assistant.</li>
|
||||
<li>The <strong>State Machine</strong> keeps track of the states of things. Fires a <code>state_changed</code> event when a state has been changed.</li>
|
||||
<li>The <strong>Service Registry</strong> listens on the event bus for <code>call_service</code> events and allows other code to register services.</li>
|
||||
<li>The <strong>Timer</strong> will send every 1 second a <code>time_changed</code> event on the event bus.</li>
|
||||
<li>The <strong>Timer</strong> will send a <code>time_changed</code> event every 1 second on the event bus.</li>
|
||||
</ul>
|
||||
|
||||
<p class="img">
|
||||
|
@ -146,16 +146,18 @@
|
|||
Overview of the Home Assistant core architecture
|
||||
</p>
|
||||
|
||||
<p>Home Assistant can be extended by <strong>components</strong>. Each component is responsible for a specific domain within Home Assistant. Components can listen for- or trigger events, offer services and maintain states. Components are written in Python and can do all the goodness that Python has to offer. Out of the box, Home Assistant offers a bunch of <a href="/components/">built-in components</a>.</p>
|
||||
<p>Home Assistant can be extended by <strong>components</strong>. Each component is responsible for a specific domain within Home Assistant. Components can listen for or trigger events, offer services and maintain states. Components are written in Python and can do all the goodness that Python has to offer. Out of the box, Home Assistant offers a bunch of <a href="/components/">built-in components</a>.</p>
|
||||
|
||||
<p>We can differentiate between two different types ofcomponents within Home Assistant.</p>
|
||||
<p>We can differentiate between two different types of components within Home Assistant.</p>
|
||||
|
||||
<h4><a class="title-link" name="components-that-interact-with-an-internet-of-things-domain" href="#components-that-interact-with-an-internet-of-things-domain"></a> Components that interact with an Internet of Things domain</h4>
|
||||
|
||||
<p>These components will track devices within a specific domain and exist of a core part and platform specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices.</p>
|
||||
<p>These components will track devices within a specific domain and consist of a core part and platform-specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices.</p>
|
||||
|
||||
<p>For example, one of the built-in components is the <code>switch</code> component. This component is responsible for interaction with different types of switches.</p>
|
||||
|
||||
<p>A platform provides support for a particular kind/brand of device. For example, a switch could use a WeMo or Orvibo platform, and a light component might interact with the Hue or LiFX platform.</p>
|
||||
|
||||
<p>If you are planning to add support for a new platform, please check out the <a href="/developers/add_new_platform/">add new platform section</a>.</p>
|
||||
|
||||
<h4><a class="title-link" name="components-that-respond-to-events-that-happen-within-home-assistant" href="#components-that-respond-to-events-that-happen-within-home-assistant"></a> Components that respond to events that happen within Home Assistant</h4>
|
||||
|
@ -201,7 +203,7 @@
|
|||
Overview of the full Home Assistant architecture with a couple of loaded components and platforms.
|
||||
</p>
|
||||
|
||||
<p>Component’s platform logic uses 3rd party Python libraries to communicate with the devices. This is done so that we can leverage great device libraries that are out there in the Python community.</p>
|
||||
<p>The platform logic for components uses 3rd party Python libraries to communicate with the devices. This is done so that we can leverage great device libraries that are out there in the Python community.</p>
|
||||
|
||||
<h2><a class="title-link" name="multiple-connected-instances" href="#multiple-connected-instances"></a> Multiple connected instances</h2>
|
||||
|
||||
|
@ -214,7 +216,7 @@
|
|||
Overview of the Home Assistant architecture for multiple devices.
|
||||
</p>
|
||||
|
||||
<p>A slave instance can be started with the following code and has the same support for components as a master-instance.</p>
|
||||
<p>A slave instance can be started with the following code and has the same support for components as a master instance.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre><span class="keyword">import</span> <span class="include">homeassistant.remote</span> <span class="keyword">as</span> remote
|
||||
|
@ -237,7 +239,7 @@ hass.block_till_stopped()
|
|||
</div>
|
||||
|
||||
<p class="note">
|
||||
Because each slave maintains its own ServiceRegistry it is possible to have multiple slaves respond to one service call.
|
||||
Because each slave maintains its own Service Registry it is possible to have multiple slaves respond to one service call.
|
||||
</p>
|
||||
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@
|
|||
|
||||
<p>The home of Home Assistant is <a href="https://home-assistant.io">https://home-assistant.io</a>. This is the place where we provide documentation and additional details about Home Assistant for end users and developers.</p>
|
||||
|
||||
<p>home-assistant.io is using <a href="http://octopress.org/">Octopress</a>. To get more details, please checkout the <a href="http://octopress.org/docs/">documentation</a>. That means that creating a new page is simple. The pages are written in <a href="http://daringfireball.net/projects/markdown/">markdown</a>, you don’t need to care about HTML or alike.</p>
|
||||
<p>home-assistant.io is using the <a href="http://octopress.org/">Octopress</a> framework for <a href="http://github.com/mojombo/jekyll">Jekyll</a>. To get more details, please checkout the <a href="http://octopress.org/docs/">documentation</a>. That means that creating a new page is simple. The pages are written in <a href="http://daringfireball.net/projects/markdown/">markdown</a>, you don’t need to care about HTML or alike.</p>
|
||||
|
||||
<p>To work on the website the process is no different to working on Home Assistant itself.</p>
|
||||
|
||||
|
@ -132,7 +132,7 @@
|
|||
<p>For a platform page it would be the fastest way to make a copy of an existing page and edit it. The <a href="/components/">component overview</a> is generated automatically, so there is no need to add a link to that your page.</p>
|
||||
|
||||
<h3><a class="title-link" name="code" href="#code"></a> Code</h3>
|
||||
<p>To take advantage of the build-in features of Octopress to display code snipplets, just use the default markdown syntax. Please use <code>$</code> and <code>#</code> if it’s a command and to differ from output.</p>
|
||||
<p>To take advantage of the built-in features of Octopress to display code snippets, just use the default markdown syntax. Please use <code>$</code> and <code>#</code> if it’s a command and to differ from output.</p>
|
||||
|
||||
<div class="highlighter-coderay"><div class="CodeRay">
|
||||
<div class="code"><pre>Here goes the code...
|
||||
|
@ -140,7 +140,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<p>If you want to display line numbers, add the following snipplets somewhere on your page.</p>
|
||||
<p>If you want to display line numbers, add the following snippet somewhere on your page.</p>
|
||||
|
||||
<pre><code>{::options coderay_line_numbers="table" /}
|
||||
</code></pre>
|
||||
|
@ -167,7 +167,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Not everything (product, component, etc.) has a logo, to show something for internal parts of Home Assistant we are using the <a href="https://materialdesignicons.com/">Material Design Icons</a>.</p>
|
||||
<p>Not everything (product, component, etc.) has a logo. To show something for internal parts of Home Assistant we are using the <a href="https://materialdesignicons.com/">Material Design Icons</a>.</p>
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue