Site updated at 2016-12-06 08:11:16 UTC
This commit is contained in:
parent
c96b6cd430
commit
9db92b7101
1358 changed files with 220 additions and 236889 deletions
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Community | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/community/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -57,11 +57,11 @@ Are you not a programmer but still want to contribute to Home Assistant? Check o
|
|||
<id>https://home-assistant.io/blog/2016/06/01/community-highlights</id>
|
||||
<content type="html"><![CDATA[Our community is amazingly helpful and creative. If you haven't been there yet, make sure to stop by our [chat room] and come hang out with us. In this blog post I want to highlight a few recent awesome projects and videos from the community.
|
||||
|
||||
### <a class='title-link' name='scenegen---cli-for-making-scenes' href='#scenegen---cli-for-making-scenes'></a> SceneGen - cli for making scenes
|
||||
### {% linkable_title SceneGen - cli for making scenes %}
|
||||
|
||||
[SceneGen] is a new command line utility developed by [Andrew Cockburn] that helps with creating scene configurations for Home Assistant. To use it, you put your house in the preferred state, run SceneGen and it will print the scene configuration for your current states.
|
||||
|
||||
### <a class='title-link' name='videos' href='#videos'></a> Videos
|
||||
### {% linkable_title Videos %}
|
||||
|
||||
[Nick Touran] has been working on integrating IR remotes with Home Assistant. He made it into a component which should be available in the next release which should arrive in a couple of days. In the meanwhile, he wrote up [a blog post] and has put out a video showing the new integration, very cool!
|
||||
|
||||
|
@ -97,13 +97,13 @@ Muhammed Kilic has created a video how to make your Home Assistant instance acce
|
|||
<id>https://home-assistant.io/blog/2016/02/20/community-highlights</id>
|
||||
<content type="html">< to the website full of examples how you can automate different things. Make sure you take a look and share your own recipes too!
|
||||
|
||||
### <a class='title-link' name='home-automation-demo-by-part-of-the-thing' href='#home-automation-demo-by-part-of-the-thing'></a> Home automation demo by Part of the Thing
|
||||
### {% linkable_title Home automation demo by Part of the Thing %}
|
||||
|
||||
<div class='videoWrapper'>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Mc_29EC3aZw" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
### <a class='title-link' name='haaska---alexa-skill-adapter-for-home-assistant' href='#haaska---alexa-skill-adapter-for-home-assistant'></a> Haaska - Alexa Skill Adapter for Home Assistant
|
||||
### {% linkable_title Haaska - Alexa Skill Adapter for Home Assistant %}
|
||||
|
||||
Haaska allows you to control lights, switches, and scenes exposed by your Home Assistant instance using an Amazon Echo. This is different from our own [Alexa](/components/alexa/) component because it will teach the Amazon Echo directly about the devices instead of teaching it to talk to Home Assistant. It will not allow you to use custom sentences but it will allow you to skip the 'Ask Home Assistant' part when giving commands:
|
||||
|
||||
|
@ -113,7 +113,7 @@ Haaska allows you to control lights, switches, and scenes exposed by your Home A
|
|||
|
||||
[Haaska on GitHub](https://github.com/auchter/haaska)
|
||||
|
||||
### <a class='title-link' name='integrating-home-assistant-with-homekit' href='#integrating-home-assistant-with-homekit'></a> Integrating Home Assistant with HomeKit
|
||||
### {% linkable_title Integrating Home Assistant with HomeKit %}
|
||||
|
||||
Contributor Maddox has created a plugin for HomeBridge, an open-source HomeKit bridge. This will allow you to control your home using Siri on your Apple devices. HomeBridge has recently restructured so you'll have to install the plugin separately with the homebridge-homeassistant npm package.
|
||||
|
||||
|
@ -134,7 +134,7 @@ Example config.json entry to load Home Assistant:
|
|||
[HomeBridge on GitHub](https://github.com/nfarina/homebridge)
|
||||
[HomeBridge Home Assistant Plugin](https://github.com/maddox/homebridge-homeassistant)
|
||||
|
||||
### <a class='title-link' name='custom-alarm-system-with-home-assistant' href='#custom-alarm-system-with-home-assistant'></a> Custom alarm system with Home Assistant
|
||||
### {% linkable_title Custom alarm system with Home Assistant %}
|
||||
|
||||
User thaijames [describes in the Home Assistant forums](https://community.home-assistant.io/t/controlling-house-alarm-from-ha/67) how he has created his own NFC-based alarm system using Home Assistant, DIY components and Garfield dolls.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Device-Tracking | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/device-tracking/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
In [Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better) I talked about using iBeacons to improve presence tracking. In part 2 I’ll talk about how to track things like keys that can’t track themselves by using iBeacons.
|
||||
|
||||
### <a class='title-link' name='tracking-things-using-ibeacons' href='#tracking-things-using-ibeacons'></a> Tracking things using iBeacons
|
||||
### {% linkable_title Tracking things using iBeacons %}
|
||||
In the first part I mentioned that iBeacons just send out *I’m here* packets, and we used this to trigger an update when your phone came close to a fixed beacon.
|
||||
|
||||
But beacons don’t have to be fixed.
|
||||
|
@ -89,10 +89,10 @@ automation:
|
|||
- alias: 'Forgotten keys'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}{% endraw %}'
|
||||
condition:
|
||||
condition: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != "home" }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != "home" }}{% endraw %}'
|
||||
action:
|
||||
service: script.turn_on
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -100,7 +100,7 @@ automation:
|
|||
- alias: 'Forgotten keys - cancel'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}{% endraw %}'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -128,7 +128,7 @@ script:
|
|||
2. I’ve found that beacons (especially the low power Estimote Nearables) can get disconnected for a few seconds so it’s best to wait a minute or so before deciding that you’ve left your keys behind)
|
||||
|
||||
|
||||
### <a class='title-link' name='using-both-types-of-ibeacons-at-the-same-time' href='#using-both-types-of-ibeacons-at-the-same-time'></a> Using both types of iBeacons at the same time
|
||||
### {% linkable_title Using both types of iBeacons at the same time %}
|
||||
Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and a iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home.
|
||||
|
||||
<p class='img'>
|
||||
|
@ -142,7 +142,7 @@ Long range / High power beacon
|
|||
Waterproof beacon
|
||||
|
||||
|
||||
### <a class='title-link' name='buying-beacons' href='#buying-beacons'></a> Buying Beacons
|
||||
### {% linkable_title Buying Beacons %}
|
||||
This isn’t a buyer's guide, but I just wanted to mention the iBeacons I’ve been using. I think you should be able to use any iBeacon with HA and OwnTracks. You generally can’t buy beacons in your local electronics shop - so I just wanted to briefly mention the two suppliers I’ve used so far.
|
||||
|
||||
I’ve bought quite a few iBeacons from a company called [Blue Sense Networks](http://bluesensenetworks.com/). I work in the tech startup sector in the UK so I partly chose them because they are a local start-up who seemed worth supporting. The products, support and software all seem good. I use a number of their beacons - from a simple USB dongle, to a long range beacon. All their products have batteries that can be changed (or no batteries in the case of the externally powered USB device) - and you can configure all the parameters you’d want to using their software. I had one software issue, support got back to me at a weekend(!) - and the issue was resolved with a software release two days later.
|
||||
|
@ -155,12 +155,12 @@ I’ve mainly used these as *devices to track* rather that *location* beacons. E
|
|||
|
||||
The larger Blue Sense Network beacons seem to be better at maintaining a connection that the Estimotes - although that might be because I’m reluctant to turn the power to maximum and reduce the gap between sending packets on the Estimotes where I can’t replace the batteries!
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
As I said in [part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better), I’ve found iBeacons to be a good way of improving presence detection. I also used them to track devices like my car and my keys that can’t track themselves.
|
||||
|
||||
I'm still experimenting, so I hope I can do more with iBeacons. I hope I've encouraged you do so the same. If you do please share your experiences.
|
||||
|
||||
### <a class='title-link' name='notes' href='#notes'></a> Notes
|
||||
### {% linkable_title Notes %}
|
||||
|
||||
Please see the [notes at the end of Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/#tips) for documentation information.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: ESP8266 | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/esp8266/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -29,7 +29,7 @@ You have to make a decision: Do you want to pull or to poll? For slowly changing
|
|||
|
||||
An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
|
||||
|
||||
### <a class='title-link' name='mqtt' href='#mqtt'></a> MQTT
|
||||
### {% linkable_title MQTT %}
|
||||
|
||||
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple).
|
||||
|
||||
|
@ -297,7 +297,7 @@ Home Assistant will keep track of historical values and allow you to integrate i
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='components' href='#components'></a> Components
|
||||
### {% linkable_title Components %}
|
||||
|
||||
I've been using Adafruit for my shopping:
|
||||
|
||||
|
@ -307,14 +307,14 @@ I've been using Adafruit for my shopping:
|
|||
|
||||
_Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable._
|
||||
|
||||
### <a class='title-link' name='alternatives' href='#alternatives'></a> Alternatives
|
||||
### {% linkable_title Alternatives %}
|
||||
|
||||
Since this article has been published the HDC1008 has been discontinued. Updated sketches are available for the following alternatives:
|
||||
|
||||
- [DHT22 sensor](https://www.adafruit.com/product/385) and [updated sketch](https://gist.github.com/balloob/1176b6d87c2816bd07919ce6e29a19e9).
|
||||
- [BME280 sensor](https://www.adafruit.com/product/2652) and [updated sketch](https://gist.github.com/mtl010957/9ee85fb404f65e15c440b08c659c0419).
|
||||
|
||||
### <a class='title-link' name='connections' href='#connections'></a> Connections
|
||||
### {% linkable_title Connections %}
|
||||
|
||||
On your breadboard, make the following connections from your ESP8266 to the HDC1008:
|
||||
|
||||
|
@ -327,7 +327,7 @@ On your breadboard, make the following connections from your ESP8266 to the HDC1
|
|||
|
||||
_I picked `#2` and `14` myself, you can configure them in the sketch._
|
||||
|
||||
### <a class='title-link' name='preparing-your-ide' href='#preparing-your-ide'></a> Preparing your IDE
|
||||
### {% linkable_title Preparing your IDE %}
|
||||
|
||||
Follow [these instructions](https://github.com/esp8266/Arduino#installing-with-boards-manager) on how to install and prepare the Arduino IDE for ESP8266 development.
|
||||
|
||||
|
@ -336,7 +336,7 @@ After you're done installing, open the Arduino IDE, in the menu click on `sketch
|
|||
- PubSubClient by Nick 'O Leary
|
||||
- Adafruit HDC1000
|
||||
|
||||
### <a class='title-link' name='sketch' href='#sketch'></a> Sketch
|
||||
### {% linkable_title Sketch %}
|
||||
|
||||
If you have followed the previous steps, you're all set.
|
||||
|
||||
|
@ -464,7 +464,7 @@ void loop() {
|
|||
}
|
||||
```
|
||||
|
||||
### <a class='title-link' name='configuring-home-assistant' href='#configuring-home-assistant'></a> Configuring Home Assistant
|
||||
### {% linkable_title Configuring Home Assistant %}
|
||||
|
||||
The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: How-To | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/how-to/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -29,7 +29,7 @@ You have to make a decision: Do you want to pull or to poll? For slowly changing
|
|||
|
||||
An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
|
||||
|
||||
### <a class='title-link' name='mqtt' href='#mqtt'></a> MQTT
|
||||
### {% linkable_title MQTT %}
|
||||
|
||||
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple).
|
||||
|
||||
|
@ -143,7 +143,7 @@ Heatmap
|
|||
|
||||
<!--more-->
|
||||
|
||||
## <a class='title-link' name='another-take-on-automation' href='#another-take-on-automation'></a> Another Take on Automation
|
||||
## {% linkable_title Another Take on Automation %}
|
||||
|
||||
If you haven't yet read Paulus' excellent Blog entry on [Perfect Home Automation](https://home-assistant.io/blog/2016/01/19/perfect-home-automation/) I would encourage you to take a look. As a veteran of several Home Automation systems with varying degrees success, it was this article more than anything else that convinced me that Home Assistant had the right philosophy behind it and was on the right track. One of the most important points made is that being able to control your lights from your phone, 9 times out of 10 is harder than using a lightswitch - where Home Automation really comes into its own is when you start removing the need to use a phone or the switch - the "Automation" in Home Automation. A surprisingly large number of systems out there miss this essential point and have limited abilities to automate anything which is why a robust and open system such as Home Assistant is such an important part of the equation to bring this all together in the vast and chaotic ecosystem that is the "Internet of Things".
|
||||
|
||||
|
@ -170,11 +170,11 @@ So why `AppDaemon`? `AppDaemon` is not meant to replace Home Assistant Automatio
|
|||
|
||||
It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatever about what it is controlling or reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner - the bulk of the work after that was adding additonal functions to make things that were already possible easier.
|
||||
|
||||
## <a class='title-link' name='how-it-works' href='#how-it-works'></a> How it Works
|
||||
## {% linkable_title How it Works %}
|
||||
|
||||
The best way to show what `AppDaemon` does is through a few simple examples.
|
||||
|
||||
### <a class='title-link' name='sunrisesunset-lighting' href='#sunrisesunset-lighting'></a> Sunrise/Sunset Lighting
|
||||
### {% linkable_title Sunrise/Sunset Lighting %}
|
||||
|
||||
Lets start with a simple App to turn a light on every night at sunset and off every morning at sunrise. Every App when first started will have its `initialize()` function called which gives it a chance to register a callback for `AppDaemons`'s scheduler for a specific time. In this case we are using `run_at_sunrise()` and `run_at_sunset()` to register 2 separate callbacks. The argument `0` is the number of seconds offset from sunrise or sunset and can be negative or positive. For complex intervals it can be convenient to use Python's `datetime.timedelta` class for calculations. When sunrise or sunset occurs, the appropriate callback function, `sunrise_cb()` or `sunset_cb()` is called which then makes a call to Home Assistant to turn the porch light on or off by activating a scene. The variables `args["on_scene"]` and `args["off_scene"]` are passed through from the configuration of this particular App, and the same code could be reused to activate completely different scenes in a different version of the App.
|
||||
|
||||
|
@ -196,7 +196,7 @@ class OutsideLights(appapi.AppDaemon):
|
|||
|
||||
This is also fairly easy to achieve with Home Assistant automations, but we are just getting started.
|
||||
|
||||
### <a class='title-link' name='motion-light' href='#motion-light'></a> Motion Light
|
||||
### {% linkable_title Motion Light %}
|
||||
|
||||
Our next example is to turn on a light when motion is detected and it is dark, and turn it off after a period of time. This time, the `initialize()` function registers a callback on a state change (of the motion sensor) rather than a specific time. We tell `AppDaemon` that we are only interested in state changes where the motion detector comes on by adding an additional parameter to the callback registration - `new = "on"`. When the motion is detected, the callack function `motion()` is called, and we check whether or not the sun has set using a built-in convenience function: `sun_down()`. Next, we turn the light on with `turn_on()`, then set a timer using `run_in()` to turn the light off after 60 seconds, which is another call to the scheduler to execute in a set time from now, which results in `AppDaemon` calling `light_off()` 60 seconds later using the `turn_off()` call to actually turn the light off. This is still pretty simple in code terms:
|
||||
|
||||
|
@ -450,7 +450,7 @@ _TL; DR: Use [this Jupyter Notebook][nb-prev] to visualize of your data_
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='dependencies' href='#dependencies'></a> Dependencies
|
||||
### {% linkable_title Dependencies %}
|
||||
|
||||
In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:
|
||||
|
||||
|
@ -464,11 +464,11 @@ As a Windows user myself, I find the easiest, quickest and most hassle-free way
|
|||
|
||||
[WinPython]: https://winpython.github.io/
|
||||
|
||||
#### <a class='title-link' name='why-jupyter' href='#why-jupyter'></a> Why Jupyter?
|
||||
#### {% linkable_title Why Jupyter? %}
|
||||
|
||||
While all Home Assistant implementations can have varying setup, components and scripts, the underlying data structure is standardized and well-defined. This allows us to write Python code that is environmentally agnostic. Wrapping it in a Jupyter notebook ensures the code, visualizations and directions/explanations are kept digestible and neatly-packaged. One of the amazing features of Jupyter is the ability to change code as you go along, customizing all outputs and visualizations on the fly!
|
||||
|
||||
#### <a class='title-link' name='where-do-i-start' href='#where-do-i-start'></a> Where do I start?
|
||||
#### {% linkable_title Where do I start? %}
|
||||
|
||||
This tutorial is based around a heavily commented Jupyter Notebook that we created. So to get started, you will have to open that:
|
||||
|
||||
|
@ -487,7 +487,7 @@ After just those few steps, you will be greeted with beautiful formatted data li
|
|||
One of the graphs created with this tutorial.
|
||||
</p>
|
||||
|
||||
#### <a class='title-link' name='whats-next' href='#whats-next'></a> What’s next?
|
||||
#### {% linkable_title What’s next? %}
|
||||
|
||||
Thanks to the magic of Jupyter, all of the code is customizable: want to selectively display your data, only covering a specific entity? Sure thing! Want to change the properties of the plots? No problem!
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: iBeacons | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/ibeacons/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
In [Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better) I talked about using iBeacons to improve presence tracking. In part 2 I’ll talk about how to track things like keys that can’t track themselves by using iBeacons.
|
||||
|
||||
### <a class='title-link' name='tracking-things-using-ibeacons' href='#tracking-things-using-ibeacons'></a> Tracking things using iBeacons
|
||||
### {% linkable_title Tracking things using iBeacons %}
|
||||
In the first part I mentioned that iBeacons just send out *I’m here* packets, and we used this to trigger an update when your phone came close to a fixed beacon.
|
||||
|
||||
But beacons don’t have to be fixed.
|
||||
|
@ -89,10 +89,10 @@ automation:
|
|||
- alias: 'Forgotten keys'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}{% endraw %}'
|
||||
condition:
|
||||
condition: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != "home" }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != "home" }}{% endraw %}'
|
||||
action:
|
||||
service: script.turn_on
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -100,7 +100,7 @@ automation:
|
|||
- alias: 'Forgotten keys - cancel'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}{% endraw %}'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -128,7 +128,7 @@ script:
|
|||
2. I’ve found that beacons (especially the low power Estimote Nearables) can get disconnected for a few seconds so it’s best to wait a minute or so before deciding that you’ve left your keys behind)
|
||||
|
||||
|
||||
### <a class='title-link' name='using-both-types-of-ibeacons-at-the-same-time' href='#using-both-types-of-ibeacons-at-the-same-time'></a> Using both types of iBeacons at the same time
|
||||
### {% linkable_title Using both types of iBeacons at the same time %}
|
||||
Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and a iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home.
|
||||
|
||||
<p class='img'>
|
||||
|
@ -142,7 +142,7 @@ Long range / High power beacon
|
|||
Waterproof beacon
|
||||
|
||||
|
||||
### <a class='title-link' name='buying-beacons' href='#buying-beacons'></a> Buying Beacons
|
||||
### {% linkable_title Buying Beacons %}
|
||||
This isn’t a buyer's guide, but I just wanted to mention the iBeacons I’ve been using. I think you should be able to use any iBeacon with HA and OwnTracks. You generally can’t buy beacons in your local electronics shop - so I just wanted to briefly mention the two suppliers I’ve used so far.
|
||||
|
||||
I’ve bought quite a few iBeacons from a company called [Blue Sense Networks](http://bluesensenetworks.com/). I work in the tech startup sector in the UK so I partly chose them because they are a local start-up who seemed worth supporting. The products, support and software all seem good. I use a number of their beacons - from a simple USB dongle, to a long range beacon. All their products have batteries that can be changed (or no batteries in the case of the externally powered USB device) - and you can configure all the parameters you’d want to using their software. I had one software issue, support got back to me at a weekend(!) - and the issue was resolved with a software release two days later.
|
||||
|
@ -155,12 +155,12 @@ I’ve mainly used these as *devices to track* rather that *location* beacons. E
|
|||
|
||||
The larger Blue Sense Network beacons seem to be better at maintaining a connection that the Estimotes - although that might be because I’m reluctant to turn the power to maximum and reduce the gap between sending packets on the Estimotes where I can’t replace the batteries!
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
As I said in [part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better), I’ve found iBeacons to be a good way of improving presence detection. I also used them to track devices like my car and my keys that can’t track themselves.
|
||||
|
||||
I'm still experimenting, so I hope I can do more with iBeacons. I hope I've encouraged you do so the same. If you do please share your experiences.
|
||||
|
||||
### <a class='title-link' name='notes' href='#notes'></a> Notes
|
||||
### {% linkable_title Notes %}
|
||||
|
||||
Please see the [notes at the end of Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/#tips) for documentation information.
|
||||
|
||||
|
@ -179,7 +179,7 @@ In 2013 Apple introduced iBeacons: a class of Bluetooth low energy (LE) devices
|
|||
|
||||
The reason I started using iBeacons was to improve presence detection (and I think that’s the case with most people) so that's what I’ll discuss in _part 1_. In _part 2_ I’ll talk about using iBeacons to track devices that can’t track themselves.
|
||||
|
||||
### <a class='title-link' name='using-beacons-to-improve-owntracks-location-data' href='#using-beacons-to-improve-owntracks-location-data'></a> Using beacons to improve OwnTracks location data
|
||||
### {% linkable_title Using beacons to improve OwnTracks location data %}
|
||||
|
||||
When you use OwnTracks in standard _major move_ mode (which is kind to your phone battery) it sometimes fails to update when you’d like it to. In my case I found that it would often send a location update as I was on my way home, but then not update when I got home. The result would be that Home Assistant would think I was 500M away from home, and take quite a while to notice I was home. It would also mean that the automation that should turn on my lights when I got home didn’t work very well! There were a few times when my phone location updated at 2am and turned the lights on for me. Fortunately my wife is very patient!
|
||||
|
||||
|
@ -187,7 +187,7 @@ Luckily, OwnTracks supports iBeacons so I could use them to make presence detect
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='getting-started' href='#getting-started'></a> Getting Started
|
||||
### {% linkable_title Getting Started %}
|
||||
|
||||
To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - and make sure that HA can track your phone.
|
||||
|
||||
|
@ -196,7 +196,7 @@ To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - a
|
|||
|
||||
You then have to (A) tell Home Assistant where the beacon is located and (B) tell OwnTracks to recognise the beacon.
|
||||
|
||||
#### <a class='title-link' name='a-tell-home-assistant-where-your-beacon-is-located' href='#a-tell-home-assistant-where-your-beacon-is-located'></a> A. Tell Home Assistant where your beacon is located
|
||||
#### {% linkable_title A. Tell Home Assistant where your beacon is located %}
|
||||
|
||||
You tell HomeAssistant about fixed locations by creating a Zone with the longitude and latitude of your beacon. You should also give the zone a name which you will also use when you set up OwnTracks. An an example this zone specifies the location of my drive way.
|
||||
|
||||
|
@ -215,7 +215,7 @@ The radius isn’t used by the beacon code, but it is used by the GPS location s
|
|||
|
||||
Once you’ve created the zone - you need to restart HA. The next step is:-
|
||||
|
||||
#### <a class='title-link' name='b-tell-owntracks-to-track--your-beacon' href='#b-tell-owntracks-to-track--your-beacon'></a> B. Tell OwnTracks to track your beacon
|
||||
#### {% linkable_title B. Tell OwnTracks to track your beacon %}
|
||||
|
||||
1. Go to the OwnTracks app on your phone
|
||||
2. Touch the `Regions` menu at the bottom of the screen
|
||||
|
@ -244,7 +244,7 @@ So with the steps above you should be able to improve the reliability of trackin
|
|||
|
||||
I’m also pleased to say I no longer get an _arrive home_ event at 2am that turns the lights on. I hope I’ve convinced you that iBeacons are worth trying!
|
||||
|
||||
### <a class='title-link' name='mixing-beacons-and-gps-locations' href='#mixing-beacons-and-gps-locations'></a> Mixing Beacons and GPS locations
|
||||
### {% linkable_title Mixing Beacons and GPS locations %}
|
||||
|
||||
You will probably use beacons to make entry into your existing GPS zones more reliable. By default either a beacon or a GPS location can cause you to enter a zone - and HA has some logic that should make them two work well together (it ignores GPS updates when you’re in an iBeacon Zone).
|
||||
|
||||
|
@ -275,17 +275,17 @@ You could use this technique to try to detect which room someone is in. This mig
|
|||
|
||||
To get this to work you’ll probably need to experiment with the beacon signal strength to try to match the beacon reception area to the location you want to track. Let me know if you get this to work (it doesn’t make sense in my open plan house)
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
|
||||
Presence tracking sounds easy - and it's an important part of Home Automation. Trying it shows how difficult it is to get presence detection right. I've found that iBeacons have improved the reliability and timeliness of knowing where I am, and I hope I encouraged you to try them too.
|
||||
|
||||
### <a class='title-link' name='tips' href='#tips'></a> Tips
|
||||
### {% linkable_title Tips %}
|
||||
|
||||
You can find out more about configuring the OwnTracks application and beacons [here](http://owntracks.org/booklet/features/beacons/)
|
||||
|
||||
There is information about configuring Homeassistant to use beacons [here](https://home-assistant.io/components/device_tracker.owntracks/)
|
||||
|
||||
#### <a class='title-link' name='connections-and-disconnecting' href='#connections-and-disconnecting'></a> Connections and disconnecting
|
||||
#### {% linkable_title Connections and disconnecting %}
|
||||
|
||||
Owntracks treats a region name with a leading `-` as a hint that it shouldn't disconnect after a single missed packet. This improves the ability to keep a connection to a beacon.
|
||||
|
||||
|
@ -293,7 +293,7 @@ However, even when using this feature I’ve noticed that you can still lose con
|
|||
|
||||
In automations you can use a `for:` to avoid triggering during a brief disconnect, or use a script with a delay. Stay tuned for _part 2_ for an example of this.
|
||||
|
||||
#### <a class='title-link' name='using-multiple-beacons-for-the-same-zone' href='#using-multiple-beacons-for-the-same-zone'></a> Using Multiple beacons for the same Zone
|
||||
#### {% linkable_title Using Multiple beacons for the same Zone %}
|
||||
iBeacons have a `UUID` (usually set to the same value for beacons from the same manufacturer), as well as a `minor` and `major` number. If you set two beacons to have exactly same details then OwnTracks will think multiple beacons are at the same location.
|
||||
|
||||
This means you can have more than one beacon around your home - and a connection to any of them will count as `home` to OwnTracks and HA. This reduces disconnections.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Internet-of-Things | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/internet-of-things/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -104,11 +104,11 @@ We want our users to get the best home automation experience out there and this
|
|||
The background to how we got to these classifiers can be read after the break.
|
||||
<!--more-->
|
||||
|
||||
## <a class='title-link' name='state' href='#state'></a> State
|
||||
## {% linkable_title State %}
|
||||
|
||||
How state is communicated can be broken down into 5 categories. They are not mutually exclusive - a device state can be available both via the cloud and local connectivity.
|
||||
|
||||
### <a class='title-link' name='no-state-available' href='#no-state-available'></a> No state available
|
||||
### {% linkable_title No state available %}
|
||||
These are devices that do not have the capabilities to make their state available. They only allow to be controlled. For example, devices with infrared remote controls like TVs and ACs. You can press the turn on button on the remote but can only assume that your command was received and executed successfully. The device might not be powered or something is blocking the infrared receiver.
|
||||
|
||||
Home automation will have to approach such devices based on the assumption that it’s commands are received correctly: using optimistic updates. This means that after sending a command it will update the state of the device as if the command was received successfully.
|
||||
|
@ -121,7 +121,7 @@ Disadvantages:
|
|||
|
||||
- Home automation will assume the wrong state if the the command is not received correctly or if the device is controlled in any other way outside of the home automation system.
|
||||
|
||||
### <a class='title-link' name='polling-the-cloud' href='#polling-the-cloud'></a> Polling the cloud
|
||||
### {% linkable_title Polling the cloud %}
|
||||
These are devices that will only report their state to their own cloud backend. The cloud backend will allow reading the state but will not notify when a new state has arrived. This requires the home automation to check frequently if the state has been updated.
|
||||
|
||||
Advantages:
|
||||
|
@ -134,14 +134,14 @@ Disadvantages:
|
|||
- It doesn’t work if the internet is down or the company stops support.
|
||||
- You are no longer in control about who has access to your data.
|
||||
|
||||
### <a class='title-link' name='cloud-pushing-new-state' href='#cloud-pushing-new-state'></a> Cloud pushing new state
|
||||
### {% linkable_title Cloud pushing new state %}
|
||||
All off the previous section applies to this one. On top of that the cloud will now notify the home automation when a new state has arrived. This means that as soon as the cloud knows, the home automation knows.
|
||||
|
||||
Advantages:
|
||||
|
||||
- New state known as soon as available in the cloud.
|
||||
|
||||
### <a class='title-link' name='polling-the-local-device' href='#polling-the-local-device'></a> Polling the local device
|
||||
### {% linkable_title Polling the local device %}
|
||||
These devices will offer an API that is locally accessible. The home automation will have to frequently check if the state has been updated.
|
||||
|
||||
Advantages:
|
||||
|
@ -152,7 +152,7 @@ Disadvantages:
|
|||
|
||||
- To be pollable, a device needs to be always online which requires the device to be connected to a power source.
|
||||
|
||||
### <a class='title-link' name='local-device-pushing-new-state' href='#local-device-pushing-new-state'></a> Local device pushing new state
|
||||
### {% linkable_title Local device pushing new state %}
|
||||
The best of the best. These devices will send out a notice when they get to a new state. These devices usually use a home automation protocol to pass it’s message to a hub that will do the heavy lifting of managing and notifying subscribers
|
||||
|
||||
Advantages:
|
||||
|
@ -166,14 +166,14 @@ Disadvantages:
|
|||
- If using deep sleep and wifi, will suffer a delay when waking up because connecting to WiFi and receiving an IP takes time.
|
||||
|
||||
|
||||
## <a class='title-link' name='control' href='#control'></a> Control
|
||||
## {% linkable_title Control %}
|
||||
|
||||
Controlling a device can, just like state, be done through cloud and/or local connectivity. But the more important part of control is knowing if your command was a success and the new state of the device.
|
||||
|
||||
### <a class='title-link' name='no-control-available' href='#no-control-available'></a> No control available
|
||||
### {% linkable_title No control available %}
|
||||
These devices are not able to be controlled. They will only offer state.
|
||||
|
||||
### <a class='title-link' name='poll-state-after-sending-command' href='#poll-state-after-sending-command'></a> Poll State after sending command
|
||||
### {% linkable_title Poll State after sending command %}
|
||||
These devices will require the state to be polled after sending a command to see if a command was successfull.
|
||||
|
||||
Advantages:
|
||||
|
@ -184,13 +184,13 @@ Disadvantages:
|
|||
|
||||
- It can take time before the state gets updated. How often do we poll and how long do we wait till we consider the command failed? Also, a state may change because of other factors. Difficult to determine if the updated state is because of our command.
|
||||
|
||||
### <a class='title-link' name='device-pushes-state-update' href='#device-pushes-state-update'></a> Device pushes state update
|
||||
### {% linkable_title Device pushes state update %}
|
||||
These devices will not return a new state as a result of the command but instead will push a new state right away. The downside of this approach is that we have to assume that a state update coming in within a certain period of time after a command is related to the command.
|
||||
|
||||
### <a class='title-link' name='command-returns-new-state' href='#command-returns-new-state'></a> Command returns new state
|
||||
### {% linkable_title Command returns new state %}
|
||||
The very best. These devices will answer the command with the new state after executing the command.
|
||||
|
||||
## <a class='title-link' name='classifying-home-assistant' href='#classifying-home-assistant'></a> Classifying Home Assistant
|
||||
## {% linkable_title Classifying Home Assistant %}
|
||||
Home Assistant tries to offer the best experience possible via its APIs. There are different ways of interacting with Home Assistant but all are local.
|
||||
|
||||
- State polling is available via the REST API
|
||||
|
@ -206,7 +206,7 @@ Home Assistant tries to offer the best experience possible via its APIs. There a
|
|||
<id>https://home-assistant.io/blog/2016/01/19/perfect-home-automation</id>
|
||||
<content type="html"><![CDATA[People often ask me about my vision for Home Assistant. Before I can describe where I want to go with Home Assistant, I should first talk about how home automation would look in my ideal world. This will be the aim of this post. I’m not going to focus on protocols, networks or specific hubs. That's all implementation details. Instead, this post will focus on what is most important: the interaction between the users and their home.
|
||||
|
||||
### <a class='title-link' name='you-should-not-have-to-adapt-to-technology' href='#you-should-not-have-to-adapt-to-technology'></a> You should not have to adapt to technology.
|
||||
### {% linkable_title You should not have to adapt to technology. %}
|
||||
|
||||
When people start using home automation, they always experience home control first: being able to control devices in new ways using a phone or computer. They believe the future is now and their app will be their remote for their lives. They only focus on what they are getting, not on what they are losing. You install some light bulbs and all of a sudden you are no longer able to use the light switches. You'll arrive at home at night and have to pull out your phone, open the app, let it connect and finally you'll be able to turn on the light. All while turning the light on could have been a switch away.
|
||||
|
||||
|
@ -215,19 +215,19 @@ Yes, you can solve this with presence detection. What if your phone runs out of
|
|||
If you find that using your new home devices is cumbersome, the promise of home automation technology has failed you. Your lights should work with both a switch (or button) at the entrance of your room and via presence detection. Honestly, there are hardly any valid use cases for being able to control lights from your phone except for showing off.
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='you-are-not-the-only-user-of-your-home-automation' href='#you-are-not-the-only-user-of-your-home-automation'></a> You are not the only user of your home automation.
|
||||
### {% linkable_title You are not the only user of your home automation. %}
|
||||
|
||||
People tend to forget that they are not the only ones in their home. As the developer of your house you're enthusiastic about the possibilities and are willing to overlook flaws. Chances are very high that the other people in your household have different hobbies and just want to mind their own business.
|
||||
|
||||
This means that everything you automate has to work flawlessly. If you successfully manage to cause a response to some stimulus 90% of the time, you’re going to have a disproportionately poor experience 10% of the time. A common automation that fits this pattern is to fade the lights when you start watching a movie or series in the living room. It only works if everyone is watching.
|
||||
|
||||
### <a class='title-link' name='limit-the-impact-of-false-positives-and-negatives' href='#limit-the-impact-of-false-positives-and-negatives'></a> Limit the impact of false positives and negatives.
|
||||
### {% linkable_title Limit the impact of false positives and negatives. %}
|
||||
|
||||
With every automation, you always have to think: what will be the impact if it doesn’t work? Home automation is composed of many different systems by many different vendors that speak many different protocols: things will go wrong. It’s up to you to make sure that they have a limited impact when they fail. Ideally, devices should fall back to a pre-smart home experience. A Philips Hue bulb will act like a standard white light if turned on/off using a normal switch or when not connected to a hub. If things get worse when your system is out of order, your users will revolt. Take for example the Nest thermostat that [had a bug in the beginning of January][nest-bug] which caused it to stop heating the house, yikes!
|
||||
|
||||
[nest-bug]: http://www.nytimes.com/2016/01/14/fashion/nest-thermostat-glitch-battery-dies-software-freeze.html
|
||||
|
||||
### <a class='title-link' name='the-perfect-app-is-no-app' href='#the-perfect-app-is-no-app'></a> The perfect app is no app.
|
||||
### {% linkable_title The perfect app is no app. %}
|
||||
|
||||
Home automation should blend with your current workflow, not replace it. For most devices, there is no faster way to control most devices than how you are already doing it today. Most of the time, the best app is no app. The only interface that can be more convenient, and is accessible for visitors of your home of all ages is a voice interface. The industry has realized this too and there are some major players focussing on voice interaction. Take Apple for example: the only way to control your HomeKit devices is with Siri. Amazon has taken it one step further with the Amazon Echo, providing an always-listening connected speaker/microphone for the living room. I expect a lot more companies to join this segment in 2016.
|
||||
|
||||
|
@ -235,7 +235,7 @@ Voice interfaces are not perfect either. The speed at which you can issue comman
|
|||
|
||||
This however doesn’t mean there isn’t a place for apps, there definitely is. They are perfectly well-suited for checking in while you’re away, browsing the state changes of your house or making the lights go all funky when there are kids visiting.
|
||||
|
||||
### <a class='title-link' name='your-system-should-run-at-home-not-in-the-cloud' href='#your-system-should-run-at-home-not-in-the-cloud'></a> Your system should run at home, not in the cloud.
|
||||
### {% linkable_title Your system should run at home, not in the cloud. %}
|
||||
|
||||
The cloud is a magical thing. Somewhere in the world there are computers collecting the data that your house generates, testing them against your automation rules and sending commands back when needed. The cloud will receive updates and improve itself over time so it is able to serve you better. Until it’s not. There are many reasons why your home might lose its connection to the cloud. The internet can stop working, an update might have gone wrong or the servers running the cloud crash.
|
||||
|
||||
|
@ -264,9 +264,9 @@ There is no widely adopted open standard for smart device communication. This pr
|
|||
As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers **home control**.
|
||||
|
||||
<p class='img'>
|
||||
<a href='/images/screenshots/nexus_7_dashboard.png'>
|
||||
<a href='{{site_root}}/images/screenshots/nexus_7_dashboard.png'>
|
||||
<img alt='Hub dashboard example'
|
||||
src='/images/screenshots/nexus_7_dashboard.png' />
|
||||
src='{{site_root}}/images/screenshots/nexus_7_dashboard.png' />
|
||||
</a>
|
||||
Example of a hub's dashboard. Showing the state of 2 persons, 4 lights and the sun.
|
||||
</p>
|
||||
|
@ -284,9 +284,9 @@ A glimpse today at how the future can look is the [Nest thermostat](https://nest
|
|||
All this results in the following overview of Home Automation.
|
||||
|
||||
<p class='img'>
|
||||
<a href='/images/architecture/home_automation_landscape.png'>
|
||||
<a href='{{site_root}}/images/architecture/home_automation_landscape.png'>
|
||||
<img alt='Home Automation landscape'
|
||||
src='/images/architecture/home_automation_landscape.png' />
|
||||
src='{{site_root}}/images/architecture/home_automation_landscape.png' />
|
||||
</a>
|
||||
Overview of the home automation landscape.
|
||||
</p>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: IoT-Data | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/iot-data/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -63,7 +63,7 @@ _TL; DR: Use [this Jupyter Notebook][nb-prev] to visualize of your data_
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='dependencies' href='#dependencies'></a> Dependencies
|
||||
### {% linkable_title Dependencies %}
|
||||
|
||||
In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:
|
||||
|
||||
|
@ -77,11 +77,11 @@ As a Windows user myself, I find the easiest, quickest and most hassle-free way
|
|||
|
||||
[WinPython]: https://winpython.github.io/
|
||||
|
||||
#### <a class='title-link' name='why-jupyter' href='#why-jupyter'></a> Why Jupyter?
|
||||
#### {% linkable_title Why Jupyter? %}
|
||||
|
||||
While all Home Assistant implementations can have varying setup, components and scripts, the underlying data structure is standardized and well-defined. This allows us to write Python code that is environmentally agnostic. Wrapping it in a Jupyter notebook ensures the code, visualizations and directions/explanations are kept digestible and neatly-packaged. One of the amazing features of Jupyter is the ability to change code as you go along, customizing all outputs and visualizations on the fly!
|
||||
|
||||
#### <a class='title-link' name='where-do-i-start' href='#where-do-i-start'></a> Where do I start?
|
||||
#### {% linkable_title Where do I start? %}
|
||||
|
||||
This tutorial is based around a heavily commented Jupyter Notebook that we created. So to get started, you will have to open that:
|
||||
|
||||
|
@ -100,7 +100,7 @@ After just those few steps, you will be greeted with beautiful formatted data li
|
|||
One of the graphs created with this tutorial.
|
||||
</p>
|
||||
|
||||
#### <a class='title-link' name='whats-next' href='#whats-next'></a> What’s next?
|
||||
#### {% linkable_title What’s next? %}
|
||||
|
||||
Thanks to the magic of Jupyter, all of the code is customizable: want to selectively display your data, only covering a specific entity? Sure thing! Want to change the properties of the plots? No problem!
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Micropython | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/micropython/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -29,7 +29,7 @@ You have to make a decision: Do you want to pull or to poll? For slowly changing
|
|||
|
||||
An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
|
||||
|
||||
### <a class='title-link' name='mqtt' href='#mqtt'></a> MQTT
|
||||
### {% linkable_title MQTT %}
|
||||
|
||||
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple).
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: MQTT | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/mqtt/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -29,7 +29,7 @@ You have to make a decision: Do you want to pull or to poll? For slowly changing
|
|||
|
||||
An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
|
||||
|
||||
### <a class='title-link' name='mqtt' href='#mqtt'></a> MQTT
|
||||
### {% linkable_title MQTT %}
|
||||
|
||||
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple).
|
||||
|
||||
|
@ -352,7 +352,7 @@ Home Assistant will keep track of historical values and allow you to integrate i
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='components' href='#components'></a> Components
|
||||
### {% linkable_title Components %}
|
||||
|
||||
I've been using Adafruit for my shopping:
|
||||
|
||||
|
@ -362,14 +362,14 @@ I've been using Adafruit for my shopping:
|
|||
|
||||
_Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable._
|
||||
|
||||
### <a class='title-link' name='alternatives' href='#alternatives'></a> Alternatives
|
||||
### {% linkable_title Alternatives %}
|
||||
|
||||
Since this article has been published the HDC1008 has been discontinued. Updated sketches are available for the following alternatives:
|
||||
|
||||
- [DHT22 sensor](https://www.adafruit.com/product/385) and [updated sketch](https://gist.github.com/balloob/1176b6d87c2816bd07919ce6e29a19e9).
|
||||
- [BME280 sensor](https://www.adafruit.com/product/2652) and [updated sketch](https://gist.github.com/mtl010957/9ee85fb404f65e15c440b08c659c0419).
|
||||
|
||||
### <a class='title-link' name='connections' href='#connections'></a> Connections
|
||||
### {% linkable_title Connections %}
|
||||
|
||||
On your breadboard, make the following connections from your ESP8266 to the HDC1008:
|
||||
|
||||
|
@ -382,7 +382,7 @@ On your breadboard, make the following connections from your ESP8266 to the HDC1
|
|||
|
||||
_I picked `#2` and `14` myself, you can configure them in the sketch._
|
||||
|
||||
### <a class='title-link' name='preparing-your-ide' href='#preparing-your-ide'></a> Preparing your IDE
|
||||
### {% linkable_title Preparing your IDE %}
|
||||
|
||||
Follow [these instructions](https://github.com/esp8266/Arduino#installing-with-boards-manager) on how to install and prepare the Arduino IDE for ESP8266 development.
|
||||
|
||||
|
@ -391,7 +391,7 @@ After you're done installing, open the Arduino IDE, in the menu click on `sketch
|
|||
- PubSubClient by Nick 'O Leary
|
||||
- Adafruit HDC1000
|
||||
|
||||
### <a class='title-link' name='sketch' href='#sketch'></a> Sketch
|
||||
### {% linkable_title Sketch %}
|
||||
|
||||
If you have followed the previous steps, you're all set.
|
||||
|
||||
|
@ -519,7 +519,7 @@ void loop() {
|
|||
}
|
||||
```
|
||||
|
||||
### <a class='title-link' name='configuring-home-assistant' href='#configuring-home-assistant'></a> Configuring Home Assistant
|
||||
### {% linkable_title Configuring Home Assistant %}
|
||||
|
||||
The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
|
||||
|
||||
|
@ -561,7 +561,7 @@ This post will give you a small overview of some other possibilities on how to u
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='manual-usage' href='#manual-usage'></a> Manual usage
|
||||
### {% linkable_title Manual usage %}
|
||||
|
||||
The simplest but not the coolest way as a human to interact with a Home Assistant sensor is launching a command manually. Let's create a "Mood" sensor. For simplicity Home Assistant and the MQTT broker are both running on the same host. The needed configuration snipplets to add to the `configuration.yaml` file consists of two parts: one for the broker and one for the sensor.
|
||||
|
||||
|
@ -590,7 +590,7 @@ $ mosquitto_pub -h 127.0.0.1 -t "home-assistant/fabian/mood" -m "bad"
|
|||
|
||||
This is a really bad example. Don't do this in the real world because you won't be able to create diagrams of historical data. Better use a numerical value.
|
||||
|
||||
### <a class='title-link' name='python-mqtt-bindings' href='#python-mqtt-bindings'></a> Python MQTT bindings
|
||||
### {% linkable_title Python MQTT bindings %}
|
||||
|
||||
The last section was pretty boring, I know. Nobody wants to send MQTT messages by hand if there is a computer on the desk. If you are playing the lottery this section is for you. If not, read it anyway because the lottery is just an example :-).
|
||||
|
||||
|
@ -643,7 +643,7 @@ Every 5 seconds a message with a new number is sent to the broker and picked up
|
|||
|
||||
With only a few lines of Python and an MQTT broker you can create your own "smartdevice" or send information to Home Assistant which you haven't think of. Of course this is not limited to Python. If there is an MQTT library available, the device can be used with Home Assistant now.
|
||||
|
||||
### <a class='title-link' name='arduino' href='#arduino'></a> Arduino
|
||||
### {% linkable_title Arduino %}
|
||||
|
||||
To get started with real hardware that is capable to send MQTT messages, the Arduino platform is an inexpensive way to do it. In this section an Arduino UNO with an Ethernet shield and a photo resistor is used. The photo resistor is connected to analog pin 0 (A0) and has an output from 0 to 1024.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Organisation | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/organisation/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -20,10 +20,10 @@
|
|||
<id>https://home-assistant.io/blog/2016/10/25/explaining-the-updater</id>
|
||||
<content type="html"><![CDATA[On Saturday, we released [Home Assistant 0.31][0.31] which includes an improved updater component that checks for new versions using the Home Assistant servers. We wanted to update the community on its rollout and answer some questions that have come up. As part of the update check anonymous information about your operating system and Python version is submitted to Home Assistant servers unless you have opted out.
|
||||
|
||||
## <a class='title-link' name='why-we-changed-the-updater' href='#why-we-changed-the-updater'></a> Why we changed the updater
|
||||
## {% linkable_title Why we changed the updater %}
|
||||
This change was driven by two important factors.
|
||||
|
||||
### <a class='title-link' name='improving-the-security-of-the-users' href='#improving-the-security-of-the-users'></a> Improving the security of the users.
|
||||
### {% linkable_title Improving the security of the users. %}
|
||||
|
||||
As a user, you will be able to be notified if you are running a Home Assistant version that includes components that have known security flaws.
|
||||
|
||||
|
@ -31,7 +31,7 @@ Although we hope to not have to use this feature often, it is important for us t
|
|||
|
||||
Please note that this functionality is not done yet but will be available in a future release.
|
||||
|
||||
### <a class='title-link' name='focusing-our-resources-where-it-matters' href='#focusing-our-resources-where-it-matters'></a> Focusing our resources where it matters
|
||||
### {% linkable_title Focusing our resources where it matters %}
|
||||
|
||||
As developers of Home Assistant, we will be able to see in what kind of environments Home Assistant is running. Here’s a few data points we didn’t have until now:
|
||||
|
||||
|
@ -42,19 +42,19 @@ As developers of Home Assistant, we will be able to see in what kind of environm
|
|||
* How popular is our new [Raspberry Pi image][rpi-image]?
|
||||
|
||||
|
||||
## <a class='title-link' name='why-we-look-up-your-ip-address-with-geoip' href='#why-we-look-up-your-ip-address-with-geoip'></a> Why we look up your IP address with GeoIP
|
||||
## {% linkable_title Why we look up your IP address with GeoIP %}
|
||||
We store the city so that we can see where our users are from. This information will be used to give us a better insight in where our users are from. This will help us gather data to see if we should for example prioritize internationalization. In addition, we previously had a nasty bug with the `sun` component in which users above a certain latitude were having crashes multiple times a day. Had the updater component been in place we could have targeted a special priority update notification only to them.
|
||||
|
||||
As stated in the release blog post, the location information is _not_ provided by your local Home Assistant installation but is instead gathered by comparing your IP address against the [GeoLite2 data created by MaxMind][geolite]. From their documentation:
|
||||
|
||||
> IP geolocation is inherently imprecise. Locations are often near the center of the population. Any location provided by a GeoIP database should not be used to identify a particular address or household.
|
||||
|
||||
## <a class='title-link' name='why-is-it-enabled-by-default' href='#why-is-it-enabled-by-default'></a> Why is it enabled by default
|
||||
## {% linkable_title Why is it enabled by default %}
|
||||
We decided to have it enabled by default because we consider the information that is gathered not harmful. We understand that not everyone will agree with us and so we have provided [multiple ways to opt out][opt-out].
|
||||
|
||||
It is in our short-term planning to add an option to control this to our frontend.
|
||||
|
||||
## <a class='title-link' name='source-code' href='#source-code'></a> Source Code
|
||||
## {% linkable_title Source Code %}
|
||||
The source code of our updater AWS Lambda function is now available [here][source].
|
||||
|
||||
|
||||
|
@ -113,7 +113,7 @@ Paulus
|
|||
The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/blog/ha-logo-history.png' />
|
||||
<img src='{{site_root}}/images/blog/ha-logo-history.png' />
|
||||
The old logo, the new detailed logo and the new simple logo.
|
||||
</p>
|
||||
]]></content>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: OwnTracks | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/owntracks/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
In [Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better) I talked about using iBeacons to improve presence tracking. In part 2 I’ll talk about how to track things like keys that can’t track themselves by using iBeacons.
|
||||
|
||||
### <a class='title-link' name='tracking-things-using-ibeacons' href='#tracking-things-using-ibeacons'></a> Tracking things using iBeacons
|
||||
### {% linkable_title Tracking things using iBeacons %}
|
||||
In the first part I mentioned that iBeacons just send out *I’m here* packets, and we used this to trigger an update when your phone came close to a fixed beacon.
|
||||
|
||||
But beacons don’t have to be fixed.
|
||||
|
@ -89,10 +89,10 @@ automation:
|
|||
- alias: 'Forgotten keys'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != states.device_tracker.beacon_keys.state}}{% endraw %}'
|
||||
condition:
|
||||
condition: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state != "home" }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state != "home" }}{% endraw %}'
|
||||
action:
|
||||
service: script.turn_on
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -100,7 +100,7 @@ automation:
|
|||
- alias: 'Forgotten keys - cancel'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}'
|
||||
value_template: '{% raw %}{{ states.device_tracker.greg_gregphone.state == states.device_tracker.beacon_keys.state }}{% endraw %}'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: script.send_key_alert
|
||||
|
@ -128,7 +128,7 @@ script:
|
|||
2. I’ve found that beacons (especially the low power Estimote Nearables) can get disconnected for a few seconds so it’s best to wait a minute or so before deciding that you’ve left your keys behind)
|
||||
|
||||
|
||||
### <a class='title-link' name='using-both-types-of-ibeacons-at-the-same-time' href='#using-both-types-of-ibeacons-at-the-same-time'></a> Using both types of iBeacons at the same time
|
||||
### {% linkable_title Using both types of iBeacons at the same time %}
|
||||
Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and a iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home.
|
||||
|
||||
<p class='img'>
|
||||
|
@ -142,7 +142,7 @@ Long range / High power beacon
|
|||
Waterproof beacon
|
||||
|
||||
|
||||
### <a class='title-link' name='buying-beacons' href='#buying-beacons'></a> Buying Beacons
|
||||
### {% linkable_title Buying Beacons %}
|
||||
This isn’t a buyer's guide, but I just wanted to mention the iBeacons I’ve been using. I think you should be able to use any iBeacon with HA and OwnTracks. You generally can’t buy beacons in your local electronics shop - so I just wanted to briefly mention the two suppliers I’ve used so far.
|
||||
|
||||
I’ve bought quite a few iBeacons from a company called [Blue Sense Networks](http://bluesensenetworks.com/). I work in the tech startup sector in the UK so I partly chose them because they are a local start-up who seemed worth supporting. The products, support and software all seem good. I use a number of their beacons - from a simple USB dongle, to a long range beacon. All their products have batteries that can be changed (or no batteries in the case of the externally powered USB device) - and you can configure all the parameters you’d want to using their software. I had one software issue, support got back to me at a weekend(!) - and the issue was resolved with a software release two days later.
|
||||
|
@ -155,12 +155,12 @@ I’ve mainly used these as *devices to track* rather that *location* beacons. E
|
|||
|
||||
The larger Blue Sense Network beacons seem to be better at maintaining a connection that the Estimotes - although that might be because I’m reluctant to turn the power to maximum and reduce the gap between sending packets on the Estimotes where I can’t replace the batteries!
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
As I said in [part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better), I’ve found iBeacons to be a good way of improving presence detection. I also used them to track devices like my car and my keys that can’t track themselves.
|
||||
|
||||
I'm still experimenting, so I hope I can do more with iBeacons. I hope I've encouraged you do so the same. If you do please share your experiences.
|
||||
|
||||
### <a class='title-link' name='notes' href='#notes'></a> Notes
|
||||
### {% linkable_title Notes %}
|
||||
|
||||
Please see the [notes at the end of Part 1](/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/#tips) for documentation information.
|
||||
|
||||
|
@ -179,7 +179,7 @@ In 2013 Apple introduced iBeacons: a class of Bluetooth low energy (LE) devices
|
|||
|
||||
The reason I started using iBeacons was to improve presence detection (and I think that’s the case with most people) so that's what I’ll discuss in _part 1_. In _part 2_ I’ll talk about using iBeacons to track devices that can’t track themselves.
|
||||
|
||||
### <a class='title-link' name='using-beacons-to-improve-owntracks-location-data' href='#using-beacons-to-improve-owntracks-location-data'></a> Using beacons to improve OwnTracks location data
|
||||
### {% linkable_title Using beacons to improve OwnTracks location data %}
|
||||
|
||||
When you use OwnTracks in standard _major move_ mode (which is kind to your phone battery) it sometimes fails to update when you’d like it to. In my case I found that it would often send a location update as I was on my way home, but then not update when I got home. The result would be that Home Assistant would think I was 500M away from home, and take quite a while to notice I was home. It would also mean that the automation that should turn on my lights when I got home didn’t work very well! There were a few times when my phone location updated at 2am and turned the lights on for me. Fortunately my wife is very patient!
|
||||
|
||||
|
@ -187,7 +187,7 @@ Luckily, OwnTracks supports iBeacons so I could use them to make presence detect
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='getting-started' href='#getting-started'></a> Getting Started
|
||||
### {% linkable_title Getting Started %}
|
||||
|
||||
To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - and make sure that HA can track your phone.
|
||||
|
||||
|
@ -196,7 +196,7 @@ To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - a
|
|||
|
||||
You then have to (A) tell Home Assistant where the beacon is located and (B) tell OwnTracks to recognise the beacon.
|
||||
|
||||
#### <a class='title-link' name='a-tell-home-assistant-where-your-beacon-is-located' href='#a-tell-home-assistant-where-your-beacon-is-located'></a> A. Tell Home Assistant where your beacon is located
|
||||
#### {% linkable_title A. Tell Home Assistant where your beacon is located %}
|
||||
|
||||
You tell HomeAssistant about fixed locations by creating a Zone with the longitude and latitude of your beacon. You should also give the zone a name which you will also use when you set up OwnTracks. An an example this zone specifies the location of my drive way.
|
||||
|
||||
|
@ -215,7 +215,7 @@ The radius isn’t used by the beacon code, but it is used by the GPS location s
|
|||
|
||||
Once you’ve created the zone - you need to restart HA. The next step is:-
|
||||
|
||||
#### <a class='title-link' name='b-tell-owntracks-to-track--your-beacon' href='#b-tell-owntracks-to-track--your-beacon'></a> B. Tell OwnTracks to track your beacon
|
||||
#### {% linkable_title B. Tell OwnTracks to track your beacon %}
|
||||
|
||||
1. Go to the OwnTracks app on your phone
|
||||
2. Touch the `Regions` menu at the bottom of the screen
|
||||
|
@ -244,7 +244,7 @@ So with the steps above you should be able to improve the reliability of trackin
|
|||
|
||||
I’m also pleased to say I no longer get an _arrive home_ event at 2am that turns the lights on. I hope I’ve convinced you that iBeacons are worth trying!
|
||||
|
||||
### <a class='title-link' name='mixing-beacons-and-gps-locations' href='#mixing-beacons-and-gps-locations'></a> Mixing Beacons and GPS locations
|
||||
### {% linkable_title Mixing Beacons and GPS locations %}
|
||||
|
||||
You will probably use beacons to make entry into your existing GPS zones more reliable. By default either a beacon or a GPS location can cause you to enter a zone - and HA has some logic that should make them two work well together (it ignores GPS updates when you’re in an iBeacon Zone).
|
||||
|
||||
|
@ -275,17 +275,17 @@ You could use this technique to try to detect which room someone is in. This mig
|
|||
|
||||
To get this to work you’ll probably need to experiment with the beacon signal strength to try to match the beacon reception area to the location you want to track. Let me know if you get this to work (it doesn’t make sense in my open plan house)
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
|
||||
Presence tracking sounds easy - and it's an important part of Home Automation. Trying it shows how difficult it is to get presence detection right. I've found that iBeacons have improved the reliability and timeliness of knowing where I am, and I hope I encouraged you to try them too.
|
||||
|
||||
### <a class='title-link' name='tips' href='#tips'></a> Tips
|
||||
### {% linkable_title Tips %}
|
||||
|
||||
You can find out more about configuring the OwnTracks application and beacons [here](http://owntracks.org/booklet/features/beacons/)
|
||||
|
||||
There is information about configuring Homeassistant to use beacons [here](https://home-assistant.io/components/device_tracker.owntracks/)
|
||||
|
||||
#### <a class='title-link' name='connections-and-disconnecting' href='#connections-and-disconnecting'></a> Connections and disconnecting
|
||||
#### {% linkable_title Connections and disconnecting %}
|
||||
|
||||
Owntracks treats a region name with a leading `-` as a hint that it shouldn't disconnect after a single missed packet. This improves the ability to keep a connection to a beacon.
|
||||
|
||||
|
@ -293,7 +293,7 @@ However, even when using this feature I’ve noticed that you can still lose con
|
|||
|
||||
In automations you can use a `for:` to avoid triggering during a brief disconnect, or use a script with a delay. Stay tuned for _part 2_ for an example of this.
|
||||
|
||||
#### <a class='title-link' name='using-multiple-beacons-for-the-same-zone' href='#using-multiple-beacons-for-the-same-zone'></a> Using Multiple beacons for the same Zone
|
||||
#### {% linkable_title Using Multiple beacons for the same Zone %}
|
||||
iBeacons have a `UUID` (usually set to the same value for beacons from the same manufacturer), as well as a `minor` and `major` number. If you set two beacons to have exactly same details then OwnTracks will think multiple beacons are at the same location.
|
||||
|
||||
This means you can have more than one beacon around your home - and a connection to any of them will count as `home` to OwnTracks and HA. This reduces disconnections.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Presence-Detection | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/presence-detection/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -24,7 +24,7 @@ In 2013 Apple introduced iBeacons: a class of Bluetooth low energy (LE) devices
|
|||
|
||||
The reason I started using iBeacons was to improve presence detection (and I think that’s the case with most people) so that's what I’ll discuss in _part 1_. In _part 2_ I’ll talk about using iBeacons to track devices that can’t track themselves.
|
||||
|
||||
### <a class='title-link' name='using-beacons-to-improve-owntracks-location-data' href='#using-beacons-to-improve-owntracks-location-data'></a> Using beacons to improve OwnTracks location data
|
||||
### {% linkable_title Using beacons to improve OwnTracks location data %}
|
||||
|
||||
When you use OwnTracks in standard _major move_ mode (which is kind to your phone battery) it sometimes fails to update when you’d like it to. In my case I found that it would often send a location update as I was on my way home, but then not update when I got home. The result would be that Home Assistant would think I was 500M away from home, and take quite a while to notice I was home. It would also mean that the automation that should turn on my lights when I got home didn’t work very well! There were a few times when my phone location updated at 2am and turned the lights on for me. Fortunately my wife is very patient!
|
||||
|
||||
|
@ -32,7 +32,7 @@ Luckily, OwnTracks supports iBeacons so I could use them to make presence detect
|
|||
|
||||
<!--more-->
|
||||
|
||||
### <a class='title-link' name='getting-started' href='#getting-started'></a> Getting Started
|
||||
### {% linkable_title Getting Started %}
|
||||
|
||||
To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - and make sure that HA can track your phone.
|
||||
|
||||
|
@ -41,7 +41,7 @@ To do this you first need to set up [MQTT] and [OwnTracks] in Home assistant - a
|
|||
|
||||
You then have to (A) tell Home Assistant where the beacon is located and (B) tell OwnTracks to recognise the beacon.
|
||||
|
||||
#### <a class='title-link' name='a-tell-home-assistant-where-your-beacon-is-located' href='#a-tell-home-assistant-where-your-beacon-is-located'></a> A. Tell Home Assistant where your beacon is located
|
||||
#### {% linkable_title A. Tell Home Assistant where your beacon is located %}
|
||||
|
||||
You tell HomeAssistant about fixed locations by creating a Zone with the longitude and latitude of your beacon. You should also give the zone a name which you will also use when you set up OwnTracks. An an example this zone specifies the location of my drive way.
|
||||
|
||||
|
@ -60,7 +60,7 @@ The radius isn’t used by the beacon code, but it is used by the GPS location s
|
|||
|
||||
Once you’ve created the zone - you need to restart HA. The next step is:-
|
||||
|
||||
#### <a class='title-link' name='b-tell-owntracks-to-track--your-beacon' href='#b-tell-owntracks-to-track--your-beacon'></a> B. Tell OwnTracks to track your beacon
|
||||
#### {% linkable_title B. Tell OwnTracks to track your beacon %}
|
||||
|
||||
1. Go to the OwnTracks app on your phone
|
||||
2. Touch the `Regions` menu at the bottom of the screen
|
||||
|
@ -89,7 +89,7 @@ So with the steps above you should be able to improve the reliability of trackin
|
|||
|
||||
I’m also pleased to say I no longer get an _arrive home_ event at 2am that turns the lights on. I hope I’ve convinced you that iBeacons are worth trying!
|
||||
|
||||
### <a class='title-link' name='mixing-beacons-and-gps-locations' href='#mixing-beacons-and-gps-locations'></a> Mixing Beacons and GPS locations
|
||||
### {% linkable_title Mixing Beacons and GPS locations %}
|
||||
|
||||
You will probably use beacons to make entry into your existing GPS zones more reliable. By default either a beacon or a GPS location can cause you to enter a zone - and HA has some logic that should make them two work well together (it ignores GPS updates when you’re in an iBeacon Zone).
|
||||
|
||||
|
@ -120,17 +120,17 @@ You could use this technique to try to detect which room someone is in. This mig
|
|||
|
||||
To get this to work you’ll probably need to experiment with the beacon signal strength to try to match the beacon reception area to the location you want to track. Let me know if you get this to work (it doesn’t make sense in my open plan house)
|
||||
|
||||
### <a class='title-link' name='conclusion' href='#conclusion'></a> Conclusion
|
||||
### {% linkable_title Conclusion %}
|
||||
|
||||
Presence tracking sounds easy - and it's an important part of Home Automation. Trying it shows how difficult it is to get presence detection right. I've found that iBeacons have improved the reliability and timeliness of knowing where I am, and I hope I encouraged you to try them too.
|
||||
|
||||
### <a class='title-link' name='tips' href='#tips'></a> Tips
|
||||
### {% linkable_title Tips %}
|
||||
|
||||
You can find out more about configuring the OwnTracks application and beacons [here](http://owntracks.org/booklet/features/beacons/)
|
||||
|
||||
There is information about configuring Homeassistant to use beacons [here](https://home-assistant.io/components/device_tracker.owntracks/)
|
||||
|
||||
#### <a class='title-link' name='connections-and-disconnecting' href='#connections-and-disconnecting'></a> Connections and disconnecting
|
||||
#### {% linkable_title Connections and disconnecting %}
|
||||
|
||||
Owntracks treats a region name with a leading `-` as a hint that it shouldn't disconnect after a single missed packet. This improves the ability to keep a connection to a beacon.
|
||||
|
||||
|
@ -138,7 +138,7 @@ However, even when using this feature I’ve noticed that you can still lose con
|
|||
|
||||
In automations you can use a `for:` to avoid triggering during a brief disconnect, or use a script with a delay. Stay tuned for _part 2_ for an example of this.
|
||||
|
||||
#### <a class='title-link' name='using-multiple-beacons-for-the-same-zone' href='#using-multiple-beacons-for-the-same-zone'></a> Using Multiple beacons for the same Zone
|
||||
#### {% linkable_title Using Multiple beacons for the same Zone %}
|
||||
iBeacons have a `UUID` (usually set to the same value for beacons from the same manufacturer), as well as a `minor` and `major` number. If you set two beacons to have exactly same details then OwnTracks will think multiple beacons are at the same location.
|
||||
|
||||
This means you can have more than one beacon around your home - and a connection to any of them will count as `home` to OwnTracks and HA. This reduces disconnections.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Public-Service-Announcement | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/public-service-announcement/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Release-Notes | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/release-notes/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -20,15 +20,15 @@
|
|||
<id>https://home-assistant.io/blog/2016/12/03/remote-websockets-sonarr</id>
|
||||
<content type="html"><![CDATA[Here we go... 0.34. Let's call it the "Santa Claus" release. Rudolph was faster than expected and there's lot's of goodies on the sleigh. Of course, more work on async programming done by [@pvizeli] and [@balloob], new components, new platforms, major improvements, and much more.
|
||||
|
||||
### <a class='title-link' name='gpslogger' href='#gpslogger'></a> GPSLogger
|
||||
### {% linkable_title GPSLogger %}
|
||||
|
||||
The work of [@dainok] let's you use your Android device, with the Geolocation feature enabled, to track itself using GPS or WiFi networks with the [GPSLogger](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) app. GPSLogger can use multiple sources: the passive one just get the latest Android known location, without activating GPS sensors or scanning for WiFi networks.
|
||||
|
||||
### <a class='title-link' name='remote-component' href='#remote-component'></a> Remote component
|
||||
### {% linkable_title Remote component %}
|
||||
|
||||
The brand new [`remote`][remote] component made by [@iandday] will simplify the integration of all kinds of remote control units. The first platform for [Harmony][harmony] is included in this release.
|
||||
|
||||
### <a class='title-link' name='homematic' href='#homematic'></a> HomeMatic
|
||||
### {% linkable_title HomeMatic %}
|
||||
|
||||
The [HomeMatic][homematic] component has received some updates worth mentioning:
|
||||
|
||||
|
@ -41,11 +41,11 @@ The [HomeMatic][homematic] component has received some updates worth mentioning:
|
|||
|
||||
The support for multiple hosts is a result of allowing mixed configurations with wireless, wired, and IP devices. This has the drawback of making the update a breaking change (along with the renamed `set_value` service). However, the benefits and possibilities gained will be worth it.
|
||||
|
||||
### <a class='title-link' name='websocket-api' href='#websocket-api'></a> Websocket API
|
||||
### {% linkable_title Websocket API %}
|
||||
|
||||
This release includes a new [websockets][websockets] based API by [@balloob] to power the next generation of Home Assistant frontends. The current frontend has been partly migrated to use it and will be further migrated in the future.
|
||||
|
||||
## <a class='title-link' name='all-changes' href='#all-changes'></a> All changes
|
||||
## {% linkable_title All changes %}
|
||||
|
||||
- New services and improved device support for [HomeMatic][homematic] ([@pvizeli], [@danielperna84])
|
||||
- Device tracker: New support for [GPSLogger][gpslogger] ([@dainok])
|
||||
|
@ -82,7 +82,7 @@ This release includes a new [websockets][websockets] based API by [@balloob] to
|
|||
- Minor and not so minor features and bug fixes by [@turbokongen], [@sdague], [@pvizeli], [@fabaff], [@chapple], [@mweinelt], [@Khabi], [@balloob], [@mnestor], [@kellerza], [@Morrisai],
|
||||
[@michaelarnauts], [@tchellomello], [@lwis], [@bjarniivarsson], [@danielperna84], [@LinuxChristian], [@MartinHjelmare], [@dethpickle], [@jnewland], [@lichtteil], [@brandonweeks], [@partofthething], [@mnoorenberghe], [@bah2830], and [@albertoarias].
|
||||
|
||||
### <a class='title-link' name='release-0341---december-4' href='#release-0341---december-4'></a> Release 0.34.1 - December 4
|
||||
### {% linkable_title Release 0.34.1 - December 4 %}
|
||||
|
||||
This release has a bunch of bug fixes including a big one: emulated_hue will now work with Google Home! We usually reserve patch releases for small bug fixes but we considered this more impactful bug fix so important that we're including it now instead of having people wait two weeks.
|
||||
|
||||
|
@ -105,32 +105,32 @@ We are working on a better solution for 0.35.
|
|||
- Revert TP-Link upgrade to fix issues ([@mweinelt])
|
||||
- Fix CORS ([@balloob])
|
||||
|
||||
### <a class='title-link' name='release-0342---december-5' href='#release-0342---december-5'></a> Release 0.34.2 - December 5
|
||||
### {% linkable_title Release 0.34.2 - December 5 %}
|
||||
|
||||
- Fix Nest interpreting Celsius as Fahrenheit and converting it ([@balloob])
|
||||
- Fix Nest sensor platforms throwing errors ([@technicalpickles])
|
||||
- Frontend will now always show persistent_notification and configurator entities even if not part of the active view ([@balloob])
|
||||
- Fixed media player cards taking up unnecessary space ([@balloob])
|
||||
|
||||
### <a class='title-link' name='release-0343---december-6' href='#release-0343---december-6'></a> Release 0.34.3 - December 6
|
||||
### {% linkable_title Release 0.34.3 - December 6 %}
|
||||
|
||||
- Fix Hook connections ([@dasos])
|
||||
- Fix random websocket connections ([@balloob])
|
||||
- Fix Google Home sometimes not finding our emulated_hue ([@jawilson])
|
||||
- Fix EnOcean config validation ([@rubund])
|
||||
|
||||
### <a class='title-link' name='breaking-changes' href='#breaking-changes'></a> Breaking changes
|
||||
### {% linkable_title Breaking changes %}
|
||||
|
||||
- The [HomeMatic][homematic] component now uses a different syntax for hosts and the `set_value` service has been renamed.
|
||||
- All [RFXtrx][rfxtrx] sensors will get a new entity ID.
|
||||
- If you are using NGINX, you will have to [adapt your configuration][nginx].
|
||||
- [Nest][nest] contains changes which will require your attention.
|
||||
|
||||
### <a class='title-link' name='if-you-need-help' href='#if-you-need-help'></a> If you need help...
|
||||
### {% linkable_title If you need help... %}
|
||||
|
||||
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). The release notes have comments enabled but it's preferred if you use these communication channels. Thanks.
|
||||
|
||||
### <a class='title-link' name='reporting-issues' href='#reporting-issues'></a> Reporting Issues
|
||||
### {% linkable_title Reporting Issues %}
|
||||
|
||||
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
|
||||
|
||||
|
@ -231,7 +231,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
|
|||
|
||||
But a new release wouldn't be awesome if it didn't had some new goodies and this release is no different. This release includes a new calendar component by [@mnestor]. It comes now with Google Calendar support, which should allow you to automate things based on your calendar events!
|
||||
|
||||
### <a class='title-link' name='changes' href='#changes'></a> Changes
|
||||
### {% linkable_title Changes %}
|
||||
|
||||
- New [calendar component][google] including Google support ([@mnestor])
|
||||
- Final core upgrade for async ([@pvizeli])
|
||||
|
@ -255,11 +255,11 @@ But a new release wouldn't be awesome if it didn't had some new goodies and this
|
|||
- Alarm Control Panel - [Envisalink]: Add new keypress service ([@jnimmo])
|
||||
- Light - [Hue]: Add service to activate scenes defined in Hue app ([@sdague])
|
||||
|
||||
### <a class='title-link' name='release-0331---november-20' href='#release-0331---november-20'></a> Release 0.33.1 - November 20
|
||||
### {% linkable_title Release 0.33.1 - November 20 %}
|
||||
|
||||
- Fix Z-Wave lights ([@turbokongen])
|
||||
|
||||
### <a class='title-link' name='release-0332---november-22' href='#release-0332---november-22'></a> Release 0.33.2 - November 22
|
||||
### {% linkable_title Release 0.33.2 - November 22 %}
|
||||
|
||||
- Fix Device Tracker init ([@pvizeli])
|
||||
- Fix Discovery init ([@pvizeli])
|
||||
|
@ -268,24 +268,24 @@ But a new release wouldn't be awesome if it didn't had some new goodies and this
|
|||
- Neato fixes ([@turbokongen])
|
||||
- Fix 'Unknown' status for Nest Protect devices ([@Khabi])
|
||||
|
||||
### <a class='title-link' name='release-0333---november-23' href='#release-0333---november-23'></a> Release 0.33.3 - November 23
|
||||
### {% linkable_title Release 0.33.3 - November 23 %}
|
||||
|
||||
- Update Yr.no entities every hour ([@kellerza])
|
||||
- Bump Netdisco to 0.7.7 (fixes discovery on Synology)
|
||||
- Fix discovery race condition (most obvious in Wemo) ([@balloob])
|
||||
|
||||
### <a class='title-link' name='release-0334---november-24' href='#release-0334---november-24'></a> Release 0.33.4 - November 24
|
||||
### {% linkable_title Release 0.33.4 - November 24 %}
|
||||
|
||||
- Set executor pool size to 10 (as intended) ([@pvizeli])
|
||||
|
||||
This should fix occasional performance problems that some people have reported.
|
||||
|
||||
### <a class='title-link' name='breaking-changes' href='#breaking-changes'></a> Breaking changes
|
||||
### {% linkable_title Breaking changes %}
|
||||
|
||||
- We have included a fix that impacts how we generate entity ids. This only impacts devices with accented characters. Instead of being stripped out, they are now replaced with the non-accented version. So now `Tèst Mörê` will become `test_more` instead of `tst_mr`.
|
||||
- Command line switches will now use the specified object ID for their entity ID instead of basing it off the name.
|
||||
|
||||
### <a class='title-link' name='reporting-issues' href='#reporting-issues'></a> Reporting issues
|
||||
### {% linkable_title Reporting issues %}
|
||||
|
||||
Experiencing issues introduced by this release? Please report them in our [issue tracker]. Make sure to fill in all fields of the issue template.
|
||||
|
||||
|
@ -343,22 +343,22 @@ Experiencing issues introduced by this release? Please report them in our [issue
|
|||
<id>https://home-assistant.io/blog/2016/11/05/hacktoberfest-influxdb-weather</id>
|
||||
<content type="html"><![CDATA[Another two weeks have passed and we are pleased to present Home Assistant 0.32.
|
||||
|
||||
### <a class='title-link' name='hacktoberfest' href='#hacktoberfest'></a> Hacktoberfest
|
||||
### {% linkable_title Hacktoberfest %}
|
||||
The [Hacktoberfest] is over now. Home Assistant made the 2nd and the 3rd place out of almost 30'000 participating repositories with a total of 528 pull requests closed - that's an average of 17 pull requests a day! Thanks to all the contributors but also to the team of reviewers. This wouldn't been possible without you 👏 .
|
||||
|
||||
### <a class='title-link' name='improved-error-reporting' href='#improved-error-reporting'></a> Improved error reporting
|
||||
### {% linkable_title Improved error reporting %}
|
||||
This release has improved the reporting when a config validation error occurs. Thanks to [@kellerza] you will now get a persistent notification added to your UI when this happens.
|
||||
|
||||
### <a class='title-link' name='asynchronous' href='#asynchronous'></a> Asynchronous
|
||||
### {% linkable_title Asynchronous %}
|
||||
This release contains the first asynchronous sensor and camera platforms. [@pvizeli] and [@fabaff] ported most of the "internal" sensors to async programming. We hope that you will enjoy the new speed.
|
||||
|
||||
[@balloob] and [@pvizeli] worked a lot on the improvement of the core itself.
|
||||
|
||||
### <a class='title-link' name='weather-component' href='#weather-component'></a> Weather component
|
||||
### {% linkable_title Weather component %}
|
||||
|
||||
For a long time we have had a bunch of [weather sensors][weather-sensors] but it's getting better: There is now a [Weather component][weather-component]. Sorry, not much more to tell right now. The plans are to create a weather UI element and to improve the initial implementation.
|
||||
|
||||
### <a class='title-link' name='all-changes' href='#all-changes'></a> All changes
|
||||
### {% linkable_title All changes %}
|
||||
|
||||
<img src='https://home-assistant.io/images/supported_brands/icloud.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/influxdb.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/emby.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/synologydsm.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/garadget_logo.jpg' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/yeelight.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/philips.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/nfandroidtv.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/currencylayer.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/influxdb.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' />
|
||||
|
||||
|
@ -395,7 +395,7 @@ For a long time we have had a bunch of [weather sensors][weather-sensors] but it
|
|||
- Device tracker: [iCloud][icloud] improvements ([@Bart274])
|
||||
- Minor features and bug fixes by [@fabaff], [@kellerza], [@robbiet480], [@balloob], [@DavidLP], [@Bart274], [@sdague], [@mtreinish], [@Khabi], [@bbesset], [@bestlibre], [@pvizeli], [@turbokongen], [@devdelay], [@molobrakos], [@postlund], [@wokar], [@armills], [@arsaboo], [@hartmms], [@nsideras], [@tbeckha], and [@kirichkov].
|
||||
|
||||
### <a class='title-link' name='release-0321---november-6' href='#release-0321---november-6'></a> Release 0.32.1 - November 6
|
||||
### {% linkable_title Release 0.32.1 - November 6 %}
|
||||
|
||||
We've added a warning to 0.32 to catch platforms accidentally slowing down Home Assistant. Our aim is to fix these quickly when reported, so here is 0.32.1 with all reported platforms fixed.
|
||||
|
||||
|
@ -403,14 +403,14 @@ We've added a warning to 0.32 to catch platforms accidentally slowing down Home
|
|||
- Fix Radiotherm doing I/O inside the event loop ([@balloob])
|
||||
- Fix camera MJPEG streams when using HTTP 1.0 ([@balloob])
|
||||
|
||||
### <a class='title-link' name='release-0322---november-7' href='#release-0322---november-7'></a> Release 0.32.2 - November 7
|
||||
### {% linkable_title Release 0.32.2 - November 7 %}
|
||||
|
||||
- Move Honeywell I/O out of the event loop ([@balloob])
|
||||
- Use sequential updates for non-async entities to prevent race conditions ([@pvizeli])
|
||||
- Fix setting temperature in Celsius on Radiotherm CT50 thermostats ([@andyat])
|
||||
- Fix PiLight config validation ([@DavidLP])
|
||||
|
||||
### <a class='title-link' name='release-0323---november-11' href='#release-0323---november-11'></a> Release 0.32.3 - November 11
|
||||
### {% linkable_title Release 0.32.3 - November 11 %}
|
||||
|
||||
- Fix OpenWeather weather platform doing I/O in event loop ([@lwis])
|
||||
- Fix Alarm.com doing I/O in event loop ([@jnewland])
|
||||
|
@ -426,26 +426,26 @@ We've added a warning to 0.32 to catch platforms accidentally slowing down Home
|
|||
- Light - Flux Led Lights: allow specifying mode if light does not support white mode ([@DanielHiversen])
|
||||
- Fix Rest switch default template ([@pvizeli])
|
||||
|
||||
### <a class='title-link' name='release-0324---november-15' href='#release-0324---november-15'></a> Release 0.32.4 - November 15
|
||||
### {% linkable_title Release 0.32.4 - November 15 %}
|
||||
|
||||
- Fix device tracker from crashing HASS when a new device was discovered ([@balloob])
|
||||
- HTTP: Fix X-Forwarded-For feature ([@mweinelt])
|
||||
|
||||
### <a class='title-link' name='misc' href='#misc'></a> Misc
|
||||
### {% linkable_title Misc %}
|
||||
|
||||
Our website has now an additional category called "Ecosystem". This will become the place where tools, apps, and other helper for the Home Assistant ecosystem can store their documentation or guides.
|
||||
|
||||
- [iOS](https://home-assistant.io/ecosystem/ios/)
|
||||
- [SceneGen](https://home-assistant.io/ecosystem/scenegen/)
|
||||
|
||||
### <a class='title-link' name='breaking-changes' href='#breaking-changes'></a> Breaking changes
|
||||
### {% linkable_title Breaking changes %}
|
||||
|
||||
- The [Yahoo Finance][yahoo] platform supports now multiple stock. Please adjust your configuration.
|
||||
- Deprecated components `garage_door`, `rollershutter`, `thermostat`, and `hvac` have been removed.
|
||||
- The minimum Python version on Windows has been bumped to Python 3.5.
|
||||
- The Insteon Hub integration has been disabled due to a [request from Insteon][req-insteon].
|
||||
|
||||
### <a class='title-link' name='if-you-need-help' href='#if-you-need-help'></a> If you need help...
|
||||
### {% linkable_title If you need help... %}
|
||||
|
||||
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). The release notes have comments enabled but it's preferred if you the former communication channels. Thanks.
|
||||
|
||||
|
@ -535,16 +535,16 @@ Every other weekend around here gets a little hectic leading to a big sigh of re
|
|||
|
||||
One last thing before we get going though, I should warn you... [@balloob] got a bit lazy this week and let me ([@robbiet480]) step up to the plate again to write the blog post and do the release. I guess I didn't do such a bad job in [0.27][zero-two-seven-release]. You'll never know what surprises I have in store. Now that i've got all that stuff out of the way, let's get started...
|
||||
|
||||
## <a class='title-link' name='stats-update' href='#stats-update'></a> Stats Update
|
||||
## {% linkable_title Stats Update %}
|
||||
Sadly, no big amazing stats to update you with this time, but we did recently pass 7,000 commits! This release featured submissions from 45 contributors. Hopefully with the new updater component we will be able to give you some really good stats in the 0.32 blog post.
|
||||
|
||||
## <a class='title-link' name='hacktoberfest' href='#hacktoberfest'></a> Hacktoberfest
|
||||
## {% linkable_title Hacktoberfest %}
|
||||
|
||||
![Hacktoberfest logo][logo]
|
||||
|
||||
October means Hacktoberfest time and our community has really come through with some excellent improvements and additions. As of this writing, we have 194 merged and 41 open pull requests to the [home-assistant repository][hacktoberfest-ha-prs] and 209 merged/28 open pull requests submitted to the [home-assistant.github.io repository][hacktoberfest-site-prs]. If you want to get in on the fun check out our [Hacktoberfest][hacktoberfest-blog] blog post or the [Hacktoberfest website][hacktoberfest-website]. You get an awesome t-shirt for free if you have 4 pull requests merged in the month of October! We even have tasks that a non-developer can easily accomplish with a tiny bit of work. Better hurry up though, only 9 days left and most of the easy tasks are gone!
|
||||
|
||||
## <a class='title-link' name='-a-greatly-improved-updater-component-please-read-this-' href='#-a-greatly-improved-updater-component-please-read-this-'></a> ⚠️ A greatly improved updater component (Please read this!) ⚠️
|
||||
## {% linkable_title ⚠️ A greatly improved updater component (Please read this!) ⚠️ %}
|
||||
|
||||
This release includes an update to our [updater] component. The responsibility of the updater component is to check if a new version is available and notify the user if this is the case.
|
||||
|
||||
|
@ -556,7 +556,7 @@ It used to be that this component would check with [PyPi] (the Python package ma
|
|||
|
||||
So to work around these problems, we decided to start hosting the version check service ourselves. Since we had to get some infrastructure spun up anyway, we figured we would take it a step further. Which leads me to this bit of the update (the most important part):
|
||||
|
||||
### <a class='title-link' name='what-you-need-to-know-the-important-bit' href='#what-you-need-to-know-the-important-bit'></a> What you need to know (the important bit!)
|
||||
### {% linkable_title What you need to know (the important bit!) %}
|
||||
|
||||
Remember how I mentioned that up there in the title that there is some serious business in this release? Well, we also added some basic analytics to the updater component which get sent to the server and stored so that we get a better idea of our user base.
|
||||
|
||||
|
@ -627,7 +627,7 @@ _This section was updated on October 24 to be more clear about geo-lookups being
|
|||
|
||||
Now, back to the fun stuff...
|
||||
|
||||
## <a class='title-link' name='good-evening-im-ron-burgundy-and-heres-what-happening-in-your-world-tonight' href='#good-evening-im-ron-burgundy-and-heres-what-happening-in-your-world-tonight'></a> Good evening. I'm Ron Burgundy and here's what happening in your world tonight.
|
||||
## {% linkable_title Good evening. I'm Ron Burgundy and here's what happening in your world tonight. %}
|
||||
|
||||
Home Assistant got a crazy idea recently that it couldn't do enough already and wanted to challenge itself even more. I really don't understand how it came up with this kooky idea, but it now thinks that its newest hobby should be a minor career in journalism.
|
||||
|
||||
|
@ -642,7 +642,7 @@ Now I know how to best get to [my real job][runway] (no, Home Assistant is _not_
|
|||
You stay classy, San Diego. (It's funny, because balloob lives in San Diego))
|
||||
</p>
|
||||
|
||||
## <a class='title-link' name='major-breaking-z-wave-changes-ahead' href='#major-breaking-z-wave-changes-ahead'></a> Major breaking Z-Wave changes ahead
|
||||
## {% linkable_title Major breaking Z-Wave changes ahead %}
|
||||
|
||||
A rather nasty Z-Wave [issue][z-wave-issue] was discovered recently by [@lukas-hetzenecker]. There was a somewhat large chance that if you had multiple of the same model Z-Wave device they may both try to use the same entity IDs. To fix the issue the internal Z-Wave index is now appended to the end of all Z-Wave entity IDs.
|
||||
|
||||
|
@ -658,7 +658,7 @@ Your todo list may be a little different from mine, I just wanted to outline the
|
|||
|
||||
This is super annoying, I know, especially since we had said in [0.12][zero-one-two-release] that Z-Wave IDs should hopefully never change again, but we are now forced to eat those words. I will state again that Z-Wave IDs shouldn't change in the future but obviously we see how that went. To sum up on this section... sorry but it had to happen.
|
||||
|
||||
## <a class='title-link' name='all-changes' href='#all-changes'></a> All changes
|
||||
## {% linkable_title All changes %}
|
||||
|
||||
- [Updater] component ([@infamy], [@robbiet480], [@kellerza])
|
||||
- Continue to setup other platforms when 1 platform config is invalid ([@kellerza])
|
||||
|
@ -709,24 +709,24 @@ This is super annoying, I know, especially since we had said in [0.12][zero-one-
|
|||
- iOS support ([@robbiet480])
|
||||
- Minor features and bug fixes by [@mtl010957], [@molobrakos], [@flyte], [@fabaff], [@phardy], [@sander76], [@T3m3z], [@c-w], [@balloob], [@robbiet480], [@StaticCube], [@vittoriom], [@hartmms], [@kirichkov], [@mezz64], [@ishults], [@Danielhiversen] and [@tchellomello].
|
||||
|
||||
### <a class='title-link' name='release-0311---october-24' href='#release-0311---october-24'></a> Release 0.31.1 - October 24
|
||||
### {% linkable_title Release 0.31.1 - October 24 %}
|
||||
|
||||
- Identify special character encoding error in YAML files ([@kellerza], [@lwis])
|
||||
- iOS app component bug fixes ([@robbiet480])
|
||||
- Fix a spelling problem on user-facing error ([@robbiet480])
|
||||
- YAML includes will ignore dirs/files prefixed with . ([@lwis])
|
||||
|
||||
## <a class='title-link' name='breaking-changes' href='#breaking-changes'></a> Breaking changes
|
||||
## {% linkable_title Breaking changes %}
|
||||
|
||||
- The [HTTP] component now takes a different format for authenticating IPs
|
||||
- Configuration format has changed for [Proximity]
|
||||
- The [Arduino] platform are now covered by the configuration check. Please check the documentation to see how.
|
||||
- The Z-Wave entity ID change mentioned above
|
||||
|
||||
## <a class='title-link' name='if-you-need-help' href='#if-you-need-help'></a> If you need help...
|
||||
## {% linkable_title If you need help... %}
|
||||
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). The release notes have comments enabled but it's preferred if you the former communication channels. Thanks.
|
||||
|
||||
## <a class='title-link' name='until-next-time' href='#until-next-time'></a> Until next time
|
||||
## {% linkable_title Until next time %}
|
||||
|
||||
Thanks for reading all of the above, especially since this week was a pretty long post. We should be back with a new post around November 5th announcing the arrival of 0.32.
|
||||
|
||||
|
@ -836,27 +836,27 @@ A large amount of resources of the development are still focusing on the effort
|
|||
|
||||
To reduce the run-time of your tests, [@balloob] did a lot of tweaking. For now the RFXtrx tests are excluded which cut the needed time for running on your Pull Request in half.
|
||||
|
||||
### <a class='title-link' name='documentation' href='#documentation'></a> Documentation
|
||||
### {% linkable_title Documentation %}
|
||||
|
||||
All configuration sample entries are now minimized. This should help to avoid problem for starters and newbies as they only get what's needed and not a full sample with all optional entries. If there is an issue with an entry in your `configuration.yaml` file the error message will provide you an URL that point to the documentation.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/config-validation-url.png' />
|
||||
<img src='{{site_root}}/images/screenshots/config-validation-url.png' />
|
||||
</p>
|
||||
|
||||
As soon as the [Hacktoberfest] started there were a lot of incoming Pull Requests for the documentation. A huge "Thank you" to all participants. Especially, we would like to give a cookie to [@hillaryfraley]. She created around a dozen Pull Requests so far and didn't only fix typos but complete sections. The [Hacktoberfest] is still on-going and we are looking forward to get more Pull Requests.
|
||||
|
||||
### <a class='title-link' name='statistics' href='#statistics'></a> Statistics
|
||||
### {% linkable_title Statistics %}
|
||||
|
||||
With the [statistics sensor][stats-sensor] we would like to introduce a new sensor that is similar to the [template sensor][template-sensor] or the [trend sensor][trend-sensor]. This sensor is consuming values from another sensor and is doing some statistical analysis of the data. Over a group of samples is the average/mean, the min/max, the total, the standard deviation, and the variance calculated which can be used in your automation rules. If the source is a binary sensor then the state changes are counted.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/stats-sensor.png' />
|
||||
<img src='{{site_root}}/images/screenshots/stats-sensor.png' />
|
||||
</p>
|
||||
|
||||
As the results are processed on-the-fly you still need to use the data from your database for a in-depth analysis of your stored information. Check the latest [notebook] for doing statistics with your Home Assistant database.
|
||||
|
||||
### <a class='title-link' name='rest-we-dont' href='#rest-we-dont'></a> REST! We don't...
|
||||
### {% linkable_title REST! We don't... %}
|
||||
|
||||
There was a lot of work done on our implementation which are working with RESTful APIs. [@w1ll1am23] extended the [aREST] platforms to display if an aREST unit is available or not. The aREST implementations are now covered by the configuration check as well. Please check the Breaking changes section for more details.
|
||||
|
||||
|
@ -869,20 +869,20 @@ sensor
|
|||
username: YOUR_GITHUB_USERNAME
|
||||
password: YOUR_GITHUB_ACCESS_TOKEN
|
||||
authentication: basic
|
||||
value_template: '{{ value_json.tag_name }}'
|
||||
value_template: '{% raw %}{{ value_json.tag_name }}{% endraw %}'
|
||||
headers:
|
||||
Accept: application/vnd.github.v3+json
|
||||
Content-Type: application/json
|
||||
User-Agent: Home Assistant REST sensor
|
||||
```
|
||||
|
||||
### <a class='title-link' name='misc' href='#misc'></a> Misc
|
||||
### {% linkable_title Misc %}
|
||||
|
||||
- GitHub released with a recent update a review feature. This will give you more control over your comments while you review an open Pull Request.
|
||||
- Thanks to [@robbiet480] we are now running [mention-bot]. It will help you when you create a new Pull Request to identify potential reviewers.
|
||||
- The [Home Assistant Community Forum][forum] has now an additional section called "Installation".
|
||||
|
||||
### <a class='title-link' name='all-changes' href='#all-changes'></a> All changes
|
||||
### {% linkable_title All changes %}
|
||||
|
||||
<img src='https://home-assistant.io/images/supported_brands/digital_ocean.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/volvo.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/dark_sky.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' /><img src='https://home-assistant.io/images/supported_brands/vasttrafik.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='100' />
|
||||
|
||||
|
@ -915,13 +915,13 @@ sensor
|
|||
- Device Tracker: The `known_device.yaml` file is now validated ([@kellerza])
|
||||
- Minor features and bug fixes by [@tchellomello], [@pavoni], [@fabaff], [@pvizeli], [@lwis], [@turbokongen], [@Danielhiversen], [@persandstrom], [@balloob], [@robbiet480], [@sam-io], [@bbangert], and you if you are missing here.
|
||||
|
||||
### <a class='title-link' name='release-0301---october-8' href='#release-0301---october-8'></a> Release 0.30.1 - October 8
|
||||
### {% linkable_title Release 0.30.1 - October 8 %}
|
||||
|
||||
- Device Tracker `known_devices.yaml` validation is now more accepting ([@kellerza])
|
||||
- Handle X10 light numbers greater than 9 ([@mtl010957])
|
||||
- Fix command line covers without a template ([@roidayan])
|
||||
|
||||
### <a class='title-link' name='release-0302---october-12' href='#release-0302---october-12'></a> Release 0.30.2 - October 12
|
||||
### {% linkable_title Release 0.30.2 - October 12 %}
|
||||
|
||||
- Handle Volvo's with dashes in their name ([@molobrakos])
|
||||
- Fix some html5 push notification configuration options were discarded after first use ([@T3m3z])
|
||||
|
@ -931,7 +931,7 @@ sensor
|
|||
- Fix for Slack targets ([@fabaff])
|
||||
- Fix for Pushover targets ([@Nixon506E])
|
||||
|
||||
### <a class='title-link' name='breaking-changes' href='#breaking-changes'></a> Breaking changes
|
||||
### {% linkable_title Breaking changes %}
|
||||
|
||||
- All deprecated condition options from `automation` have been removed (deprecated since May and have printed warnings to your console):
|
||||
- `use_trigger_values` is gone. You have to copy your triggers to conditions and adjust for the correct config.
|
||||
|
@ -940,7 +940,7 @@ sensor
|
|||
- The [Forecast.io][forecast] was renamed to [Dark Sky][darksky]. Replace your `- platform: forecast` with `- platform: darksky`.
|
||||
- The [aREST][arest] configuration between the [sensor][arest-sensor] and the [switch][arest-switch] platform was aligned.
|
||||
|
||||
### <a class='title-link' name='if-you-need-help' href='#if-you-need-help'></a> If you need help...
|
||||
### {% linkable_title If you need help... %}
|
||||
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). The release notes have comments enabled but it's preferred if you the former communication channels. Thanks.
|
||||
|
||||
[@balloob]: https://github.com/balloob
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Survey | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/survey/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Talks | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/talks/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Technology | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/technology/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -28,7 +28,7 @@ To get started, check out the installation instructions in [the getting started
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/iIz6XqDwHEk" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
### <a class='title-link' name='under-the-hood' href='#under-the-hood'></a> Under the hood
|
||||
### {% linkable_title Under the hood %}
|
||||
|
||||
It's based on Raspbian Lite and generated with a fork of the same [script](https://github.com/home-assistant/pi-gen) that builds the [official Raspbian images](https://raspberrypi.org/downloads/raspbian/). For installation of HASS it follows the same install instructions as the [Manual installation](/getting-started/installation-raspberry-pi/). Please note that this project has no association with the Raspberry Pi foundation or their projects.
|
||||
|
||||
|
@ -81,11 +81,11 @@ Although the app takes 6500 milliseconds to load on my phone, it would perform w
|
|||
|
||||
<!--more-->
|
||||
|
||||
## <a class='title-link' name='technology' href='#technology'></a> Technology
|
||||
## {% linkable_title Technology %}
|
||||
|
||||
The Home Assistant front end consists of two parts. There is [Home Assistant JS][hajs], which controls all data and interaction between JavaScript and the server. It is a Flux architecture using [NuclearJS] and [ImmutableJS]. The UI is implemented by [Home Assistant Polymer][hap] using [Polymer] and web components.
|
||||
|
||||
# <a class='title-link' name='dont-hack-the-framework' href='#dont-hack-the-framework'></a> Don’t hack the framework
|
||||
# {% linkable_title Don’t hack the framework %}
|
||||
|
||||
I thought to be smart. I split out the JavaScript part of all web components and bundled them separately using Webpack so that I could use ES2015 via BabelJS ([architecture][es2015-arch]). This is not how Polymer components are written and it meant that I was unable to use any of the tooling that is available in the community or easily split up the bundle (more on this later).
|
||||
|
||||
|
@ -101,7 +101,7 @@ As you can see in the timelines, we were able to get rid of most of the blocking
|
|||
alt='Timeline of loading the front end before and after the optimization' />
|
||||
</p>
|
||||
|
||||
# <a class='title-link' name='separate-responsibilities' href='#separate-responsibilities'></a> Separate responsibilities
|
||||
# {% linkable_title Separate responsibilities %}
|
||||
|
||||
Whenever you learn a new technology, you feel like you’ve learned a new superpower. Wow, I can do all this with only 2 lines?! I had the same with bundling.
|
||||
|
||||
|
@ -119,11 +119,11 @@ To accomplish this I extracted the application core out of the main bundle. In t
|
|||
|
||||
When the data does come back before the UI is done loading, we can process it before we start rendering the UI because of all the web components being processed individually. This means that we don't have to show a loading screen the first time our components render – we can just render the components with the data they require.
|
||||
|
||||
# <a class='title-link' name='ship-less' href='#ship-less'></a> Ship less
|
||||
# {% linkable_title Ship less %}
|
||||
|
||||
The theory behind this one is simple: if we manage to ship less code, the browser has to process less code and it will start faster.
|
||||
|
||||
## <a class='title-link' name='only-include-the-components-for-the-page-that-you-will-show' href='#only-include-the-components-for-the-page-that-you-will-show'></a> Only include the components for the page that you will show
|
||||
## {% linkable_title Only include the components for the page that you will show %}
|
||||
|
||||
The Home Assistant mobile web application has 10 different panels (pages). Besides that, it also has a dialog for each type of device to show more info. That’s a lot of components and screens of which only a very small set is needed at the start. That means that we are shipping a lot of unnecessary data that the browser has to process before our initial render!
|
||||
|
||||
|
@ -145,22 +145,22 @@ Because the browser tracks your web components, creating standalone bundles for
|
|||
|
||||
The [build script][build-html] that bundles and minifies the main bundle and panel bundles is <100 lines.
|
||||
|
||||
## <a class='title-link' name='change-the-javascript-bundler-to-rollup' href='#change-the-javascript-bundler-to-rollup'></a> Change the JavaScript bundler to Rollup
|
||||
## {% linkable_title Change the JavaScript bundler to Rollup %}
|
||||
|
||||
Core.js is still pure JavaScript and requires bundling. In my journey to get a smaller bundle, I went from [Webpack] to Webpack 2 to [Rollup]. At each step the bundle got smaller. Rollup is the big winner here because it doesn’t wrap all your modules in function calls but instead concatenates all files with minimal changes to make it work. This not only reduces the file size but also the loading speed. This is because the JavaScript engine will no longer have to invoke a function to resolve each import, it’s doing less work. This might not mean much for a computer but on a phone, everything counts.
|
||||
|
||||
## <a class='title-link' name='scrutinize-dependencies' href='#scrutinize-dependencies'></a> Scrutinize dependencies
|
||||
## {% linkable_title Scrutinize dependencies %}
|
||||
|
||||
If the goal is to ship less, it’s time to take a good look at dependencies. It’s so often that we decide to fall back to yet another NPM package that makes our life a little easier but comes at the cost of size – size usually taken up by functionality that you might never need.
|
||||
|
||||
### <a class='title-link' name='remove-lodash' href='#remove-lodash'></a> Remove Lodash
|
||||
### {% linkable_title Remove Lodash %}
|
||||
I realized that I only used a few methods of lodash. Lodash (and previously underscore) used to be one of the dependencies that would always be one of the first things that I would add to any project I start. But I could no longer justify it in the case of Home Assistant. Even with dead tree shaking it was not worth including it. Yes, they support a lot of edge cases but those were not relevant to my use case. And standalone lodash packages are [still huge][lodash.range]. The only thing that I couldn’t replace with a few lines of my own code was debounce. However I found [a 40 line replacement][debounce].
|
||||
|
||||
### <a class='title-link' name='replace-momentjs-with-fecha' href='#replace-momentjs-with-fecha'></a> Replace moment.js with Fecha
|
||||
### {% linkable_title Replace moment.js with Fecha %}
|
||||
|
||||
Moment.js is one of those power libraries. It is able to handle any date problem that you can throw at it. But this obviously comes at the cost of size. [Fecha] is a date formatting library at ~8% the size of moment.js (only 4.7kb pre-gzip). The only thing that it does not contain is date manipulation, which was something that was not being used.
|
||||
|
||||
# <a class='title-link' name='use-service-worker-to-instantly-load-the-app' href='#use-service-worker-to-instantly-load-the-app'></a> Use Service worker to instantly load the app
|
||||
# {% linkable_title Use Service worker to instantly load the app %}
|
||||
|
||||
Using a service worker we’re able to store all app components and core javascript in the browser. This means that after their first visit, the browser will only have to go to the network to fetch the latest data from the server.
|
||||
|
||||
|
@ -170,7 +170,7 @@ When a browser does not support service workers, Home Assistant will serve finge
|
|||
|
||||
Using fingerprinting with sw-precache required jumping through a few hoops. [The final build script can be found here.][build-sw]
|
||||
|
||||
# <a class='title-link' name='make-it-feel-fast' href='#make-it-feel-fast'></a> Make it feel fast
|
||||
# {% linkable_title Make it feel fast %}
|
||||
|
||||
This one is more psychological: no one likes staring at a white screen because white screens are ambiguous: are we loading something, is there a crappy connection or maybe even a script error? That’s why it is very important to render something on the screen to show that the rest is being loaded, and as quickly as possible.
|
||||
|
||||
|
@ -178,7 +178,7 @@ The Home Assistant landing page contains just enough CSS and HTML to render the
|
|||
|
||||
Now that the app is fast enough, I might swap out moving from a lite loading screen to drawing an empty toolbar. This makes it look like the UI is almost there.
|
||||
|
||||
# <a class='title-link' name='using-a-framework-build-on-web-standards' href='#using-a-framework-build-on-web-standards'></a> Using a framework build on web standards
|
||||
# {% linkable_title Using a framework build on web standards %}
|
||||
|
||||
_I left this to the end of the list, mainly because I had no influence on this. Polymer just happened to ship an update while I was optimizing the application which gave a big boost to the loading time._
|
||||
|
||||
|
@ -186,7 +186,7 @@ By using Polymer we have the ability to use tomorrow’s web standards today. Th
|
|||
|
||||
Polymer 1.6 was introduced at the end of June and allowed the app to take advantage of native [CSS variables][css-vars] in Chrome and Firefox. It also introduced lazy registration. Both greatly sped up our loading times.
|
||||
|
||||
# <a class='title-link' name='future-optimizations' href='#future-optimizations'></a> Future optimizations
|
||||
# {% linkable_title Future optimizations %}
|
||||
|
||||
A lot of optimizations have been applied but this journey will never be over. There are still a lot of opportunities to make things even faster. Some ideas that are on my list to explore:
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: User-Stories | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/user-stories/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Video | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/video/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
@ -68,11 +68,11 @@ I've had a really great time at PyCon. It was awesome to meet everyone in person
|
|||
<id>https://home-assistant.io/blog/2016/06/01/community-highlights</id>
|
||||
<content type="html"><![CDATA[Our community is amazingly helpful and creative. If you haven't been there yet, make sure to stop by our [chat room] and come hang out with us. In this blog post I want to highlight a few recent awesome projects and videos from the community.
|
||||
|
||||
### <a class='title-link' name='scenegen---cli-for-making-scenes' href='#scenegen---cli-for-making-scenes'></a> SceneGen - cli for making scenes
|
||||
### {% linkable_title SceneGen - cli for making scenes %}
|
||||
|
||||
[SceneGen] is a new command line utility developed by [Andrew Cockburn] that helps with creating scene configurations for Home Assistant. To use it, you put your house in the preferred state, run SceneGen and it will print the scene configuration for your current states.
|
||||
|
||||
### <a class='title-link' name='videos' href='#videos'></a> Videos
|
||||
### {% linkable_title Videos %}
|
||||
|
||||
[Nick Touran] has been working on integrating IR remotes with Home Assistant. He made it into a component which should be available in the next release which should arrive in a couple of days. In the meanwhile, he wrote up [a blog post] and has put out a video showing the new integration, very cool!
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title><![CDATA[Category: Website | Home Assistant]]></title>
|
||||
<link href="https://home-assistant.io/blog/categories/website/atom.xml" rel="self"/>
|
||||
<link href="https://home-assistant.io/"/>
|
||||
<updated>2016-12-06T07:45:55+00:00</updated>
|
||||
<updated>2016-12-06T08:09:11+00:00</updated>
|
||||
<id>https://home-assistant.io/</id>
|
||||
<author>
|
||||
<name><![CDATA[Home Assistant]]></name>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue