diff --git a/atom.xml b/atom.xml index c03d4b2047..742f69833a 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ @@ -13,6 +13,29 @@ Octopress + + <![CDATA[Numbers]]> + + 2017-01-18T08:04:05+00:00 + https://home-assistant.io/blog/2017/01/18/numbers + It’s week 3 of 2017 and great things did already happen. This is just a little recap.

+ +
    +
  • In the OSS Metrics leaderboard we are on place 30. Within three months we moved from our starting place which was 66 in September 2016 up to the current one.
  • +
  • We were listed on Github Trending. Also, was @balloob mentioned as trending developer.
  • +
  • @balloob’s talk at the OpenIoT Summit 2016 was rated as one of the Top 5 videos of the conference.
  • +
  • We now ship over 500 components and platforms.
  • +
  • We processed over 3500 Pull requests on the main repository so far.
  • +
+ +

You may ask yourself why this is amazing. It’s amazing because we are a community-only project driven by volunteers there is no financial support, no company in the background, and no paid developers who are working on Home Assistant. Here is another “Thank you” because you are the driving force behind Home Assistant.

+ +

What more numbers? Checkout the Trivia page

+ +

– Fabian

+]]>
+
+ <![CDATA[0.36: ISS, USPS, Image processing, Insteon]]> @@ -2009,157 +2032,6 @@ Heatmap -]]> - - - - <![CDATA[Optimizing the Home Assistant mobile web app]]> - - 2016-08-07T19:36:00+00:00 - https://home-assistant.io/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app - This blog post will go into detail about the recent performance optimizations that went into the Home Assistant front end. For people not familiar with the app, check out the demo and the source.

- -

TL; DR: Don’t hack the framework, separate responsibilities, ship less, use service workers, use (future) web standards.

- -

This year at Google I/O I saw Monica from the Polymer team talk about web components and performance. In her talk she mentions a mantra that they use in the Polymer team to make things fast: Do less and be lazy.

- -

Do less and be lazy. It sounds so obvious and it took a while before it started to dawn on me. I think most of the code I write is pretty fast, but I don’t often stop to take a harder look at how and when it runs in practice. When do we need the result, can it be postponed?

- -

And thus started my journey to take a critical look at how the Home Assistant app was working and how to make things faster. Below is the list of the different things that I did to make it fast.

- -

I hope this list can be useful to other people, as a guide for optimizing their own apps or for avoiding pitfalls when building a new one.

- -

The first thing to do is to measure. The Home Assistant front end is a mobile web app, so we shouldn’t measure this on a machine with 8 cores and gigabytes of ram but instead measure on devices you expect a mobile web app to run: phones. Below are two timelines recorded with Home Assistant 0.18.2 (pre-optimizations) and Google Chrome 53. On my Mac the app starts in 1400 miliseconds and on my Nexus 5x in ~6500 miliseconds (~4.5 times slower!).

- -

- Timeline of loading the front end in Home Assistant 0.18.2 -

- -

Although the app takes 6500 milliseconds to load on my phone, it would perform well afterwards. Still, that initial load is unacceptable. You expect to open an app on your phone and be able to use it, quickly. After I applied all the changes described below, I managed to reduce startup time to 900 miliseconds (-35%) on my Mac and 2400 miliseconds (-63%) on my Nexus 5x. Check out the demo here.

- -

- diagram showing old and new loading times next to one another - Timeline of loading the front end in Home Assistant 0.26 -

- - - -

Technology

- -

The Home Assistant front end consists of two parts. There is Home Assistant JS, 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 using Polymer and web components.

- -

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). 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).

- -

So I went ahead and backported all my web components back from shiny beautiful ES6 to ES5. And you know what? It’s not that bad. Yes, not being able to use the concise object notation and arrow functions make your code more verbose. But in the end it is the same code that is running in browsers.

- -

Another benefit of having each web component contain their own script tag is that the browser will process them one by one, allowing the browser to render our loading spinner animation in between.

- -

As you can see in the timelines, we were able to get rid of most of the blocking component loading.

- -

- Timeline of loading the front end before and after the optimization -

- -

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.

- -

I was initially very focused on shipping just a single file with everything that my app needed. The entry point would be my main component which would require all of its Flux and UI dependencies. Then, just before it all would be rendered, it would check if there is authentication and start the data fetching.

- -

This is a very bad pattern. This means that you will not start any data fetching until your UI is ready to render. Instead, you want your data to be fetched as soon as possible, and while the request is out to the server you want the page to load all your UI components.

- -

To accomplish this I extracted the application core out of the main bundle. In the current optimized version it’s 31.1kb gzip’d. It is loaded before any other scripts so that it can start fetching data as soon as possible.

- -

- Timeline of loading the front end before and after the optimization -

- -

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.

- -

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.

- -

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!

- -

I broke up each panel of the app into a separate bundle that will be loaded on demand. This saved 250 kilobytes (pre-gzip) on just the embedded map alone! This change, however, required some significant changes to our build process.

- -

Breaking up an app in JavaScript is complex because each module explicitly imports their dependencies. This has to continue to work in your browser after breaking it up in multiple files. Web components do not have this problem as it’s part of the platform and thus your browser is the registry! An unregistered web component will be rendered as an empty span element until the element gets registered. Loading order is not important.

- -
// Example of the flexibility of web components.
-var spinner = document.createElement('paper-spinner');
-spinner.active = true;
-document.body.appendChild(spinner);
-
-
- -

Because the browser tracks your web components, creating standalone bundles for parts of the app is easy:

- -
    -
  • Find all dependencies included in the main bundle (using hydrolysis)
  • -
  • Create individual bundles of each panel (page) but filter out the dependencies included in main bundle.
  • -
- -

The build script that bundles and minifies the main bundle and panel bundles is <100 lines.

- -

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.

- -

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.

- -

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. 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.

- -

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.

- -

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.

- -

Creating a service worker is easy using sw-precache, a service worker generation tool.

- -

When a browser does not support service workers, Home Assistant will serve fingerprinted assets that are aggressively cached. Only when the content changes will the client redownload the asset.

- -

Using fingerprinting with sw-precache required jumping through a few hoops. The final build script can be found here.

- -

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.

- -

The Home Assistant landing page contains just enough CSS and HTML to render the loading screen minus the animations.

- -

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.

- -

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.

- -

By using Polymer we have the ability to use tomorrow’s web standards today. This is powered by polyfills. A polyfill will use JavaScript to simulate the behavior that the web standard would have taken care of. As browsers progress, more work can move from the polyfills back to the browsers. This is great because browsers will be able to optimize the work better and thus be faster.

- -

Polymer 1.6 was introduced at the end of June and allowed the app to take advantage of native CSS variables in Chrome and Firefox. It also introduced lazy registration. Both greatly sped up our loading times.

- -

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:

- -
    -
  • Use shadow DOM instead of shady DOM polyfill.
  • -
  • Use closure compiler to optimize the JavaScript.
  • -
  • Reduce the number of icons that are loaded.
  • -
  • Embed initial API response in served page if not using a service worker.
  • -
  • Reduce size of initial bundle by moving out all things that are not visible for initial paint. For example the dialogs that show more info about entities.
  • -
  • Prefetch the other pages using <link rel="preload" …>
  • -
- ]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index ee7ff2b0be..f2f6f9dfbb 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -170,6 +170,12 @@ diff --git a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html index 497a279cc1..bd1578eb7e 100644 --- a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html +++ b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html @@ -225,6 +225,12 @@ This article will try to explain how they all relate.

diff --git a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html index 84342c8fa5..192ccc34a8 100644 --- a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html +++ b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html @@ -205,6 +205,12 @@ diff --git a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html index 53c66bf9fa..8cc54bf9fb 100644 --- a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html +++ b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html @@ -182,6 +182,12 @@ diff --git a/blog/2015/01/13/nest-in-da-house/index.html b/blog/2015/01/13/nest-in-da-house/index.html index be9106f877..30cd1f9446 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -185,6 +185,12 @@ diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index bf96b878c0..86b6cbbfed 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -193,6 +193,12 @@ Home Assistant now supports --open-ui and diff --git a/blog/2015/02/08/looking-at-the-past/index.html b/blog/2015/02/08/looking-at-the-past/index.html index 041c48045d..6f76a903bb 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -201,6 +201,12 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D diff --git a/blog/2015/02/24/streaming-updates/index.html b/blog/2015/02/24/streaming-updates/index.html index 8f20bbb683..0f06033d67 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -186,6 +186,12 @@ diff --git a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html index feac476b6a..3e86bbe12e 100644 --- a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html +++ b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html @@ -176,6 +176,12 @@ diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index ec27857830..47b192b23a 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -177,6 +177,12 @@ The old logo, the new detailed logo and the new simple logo. diff --git a/blog/2015/03/11/release-notes/index.html b/blog/2015/03/11/release-notes/index.html index de25a45b15..4719698384 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -210,6 +210,12 @@ An initial version of voice control for Home Assistant has landed. The current i diff --git a/blog/2015/03/22/release-notes/index.html b/blog/2015/03/22/release-notes/index.html index 02568eae37..657f672639 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -245,6 +245,12 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap diff --git a/blog/2015/04/25/release-notes/index.html b/blog/2015/04/25/release-notes/index.html index f6fb20a634..3ea33e2bb7 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -256,6 +256,12 @@ diff --git a/blog/2015/05/09/utc-time-zone-awareness/index.html b/blog/2015/05/09/utc-time-zone-awareness/index.html index 9c44b0e014..a4b667d7ca 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -197,6 +197,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 9dc9d41d7c..5cf04e06ad 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -277,6 +277,12 @@ Before diving into the newly supported devices and services, I want to highlight diff --git a/blog/2015/06/10/release-notes/index.html b/blog/2015/06/10/release-notes/index.html index f286b1e832..e7a2013570 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -328,6 +328,12 @@ This switch platform allows you to control your motion detection setting on your diff --git a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html index 909511aa5c..ffc801c127 100644 --- a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html +++ b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html @@ -284,6 +284,12 @@ Fabian has added support for Forecast.io to g diff --git a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html index 89355a522e..1a936310f0 100644 --- a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html +++ b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html @@ -269,6 +269,12 @@ Support for Temper temperature sensors has been contributed by +
  • + Numbers +
  • + + +
  • 0.36: ISS, USPS, Image processing, Insteon
  • @@ -292,12 +298,6 @@ Support for Temper temperature sensors has been contributed by - 0.34: New Remote component, Websockets, Sonarr, GPSLogger - - - diff --git a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html index b1ddfd6702..c1ea4ded68 100644 --- a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html +++ b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html @@ -193,6 +193,12 @@ diff --git a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html index 2b224dd543..77cb485e77 100644 --- a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html +++ b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html @@ -306,6 +306,12 @@ The automation and script syntax here is using a deprecated and no longer suppor diff --git a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html index 803862dee9..94de1f69f4 100644 --- a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html +++ b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html @@ -270,6 +270,12 @@ diff --git a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html index 3edbf12eb5..c1911d1e23 100644 --- a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html +++ b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html @@ -361,6 +361,12 @@ diff --git a/blog/2015/09/13/home-assistant-meets-ifttt/index.html b/blog/2015/09/13/home-assistant-meets-ifttt/index.html index 242a985a16..01a6536bb6 100644 --- a/blog/2015/09/13/home-assistant-meets-ifttt/index.html +++ b/blog/2015/09/13/home-assistant-meets-ifttt/index.html @@ -342,6 +342,12 @@ diff --git a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html index a72c74db6d..f71c710e12 100644 --- a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html +++ b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html @@ -235,6 +235,12 @@ Glances web server started on http://0.0.0.0:61208/ diff --git a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html index 3c60d204bf..5c323f3761 100644 --- a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html +++ b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html @@ -220,6 +220,12 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge diff --git a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html index 8813109df8..bf68ae87cb 100644 --- a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html +++ b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html @@ -200,6 +200,12 @@ Map in Home Assistant showing two people and three zones (home, school, work) diff --git a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html index 12a3253d95..9a3be85397 100644 --- a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html +++ b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html @@ -409,6 +409,12 @@ Home Assistant will keep track of historical values and allow you to integrate i diff --git a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html index cd4f6137bf..aeedce9907 100644 --- a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html +++ b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html @@ -189,6 +189,12 @@ diff --git a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html index eef5ac1c0c..e5c665416f 100644 --- a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html +++ b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html @@ -211,6 +211,12 @@ This makes more sense as most people run Home Assistant as a daemon

    diff --git a/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html index 263a565ec6..3a7705f51c 100644 --- a/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html +++ b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html @@ -205,6 +205,12 @@ diff --git a/blog/2015/11/22/survey-november-2015/index.html b/blog/2015/11/22/survey-november-2015/index.html index 90366e5851..977bbf13e3 100644 --- a/blog/2015/11/22/survey-november-2015/index.html +++ b/blog/2015/11/22/survey-november-2015/index.html @@ -247,6 +247,12 @@ diff --git a/blog/2015/12/05/community-highlights/index.html b/blog/2015/12/05/community-highlights/index.html index fa4ee60d1d..80421013d9 100644 --- a/blog/2015/12/05/community-highlights/index.html +++ b/blog/2015/12/05/community-highlights/index.html @@ -182,6 +182,12 @@ diff --git a/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html b/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html index d001186162..41cce304b8 100644 --- a/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html +++ b/blog/2015/12/06/locks-rollershutters-binary-sensors-and-influxdb-support/index.html @@ -189,6 +189,12 @@ diff --git a/blog/2015/12/07/influxdb-and-grafana/index.html b/blog/2015/12/07/influxdb-and-grafana/index.html index 1162c51bc6..670c4ea814 100644 --- a/blog/2015/12/07/influxdb-and-grafana/index.html +++ b/blog/2015/12/07/influxdb-and-grafana/index.html @@ -264,6 +264,12 @@ name: binary_sensor diff --git a/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html b/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html index f6d38c5f73..2b536e7ec4 100644 --- a/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html +++ b/blog/2015/12/10/activating-tasker-tasks-from-home-assistant-using-command-line-switches/index.html @@ -226,6 +226,12 @@ This is where we’ll configure our task, so select the plus icon to select an a diff --git a/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html b/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html index d11ae3fe34..702458fe6b 100644 --- a/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html +++ b/blog/2015/12/12/philips-hue-blocks-3rd-party-bulbs/index.html @@ -202,6 +202,12 @@ Philips Hue FAQ entries regarding 3rd party light bulbs. diff --git a/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html b/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html index dae998be11..15f3ca233e 100644 --- a/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html +++ b/blog/2015/12/13/setup-encryption-using-lets-encrypt/index.html @@ -261,6 +261,12 @@ sudo docker run -it --rm -p 80:80 --name certbot \ diff --git a/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html b/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html index e47d8c185f..6b5db2fe08 100644 --- a/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html +++ b/blog/2015/12/22/amazon-echo-icloud-and-templates/index.html @@ -221,6 +221,12 @@ diff --git a/blog/2016/01/17/extended-support-for-diy-solutions/index.html b/blog/2016/01/17/extended-support-for-diy-solutions/index.html index 299432df53..29aea189a9 100644 --- a/blog/2016/01/17/extended-support-for-diy-solutions/index.html +++ b/blog/2016/01/17/extended-support-for-diy-solutions/index.html @@ -203,6 +203,12 @@ diff --git a/blog/2016/01/19/perfect-home-automation/index.html b/blog/2016/01/19/perfect-home-automation/index.html index 63e885b3f0..0898404ebe 100644 --- a/blog/2016/01/19/perfect-home-automation/index.html +++ b/blog/2016/01/19/perfect-home-automation/index.html @@ -207,6 +207,12 @@ diff --git a/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html b/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html index c63cc953b7..2b9cd4f387 100644 --- a/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html +++ b/blog/2016/01/30/insteon-lifx-twitter-and-zigbee/index.html @@ -209,6 +209,12 @@ Example of the new views in the frontend. Learn mor diff --git a/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/index.html b/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/index.html index de05594953..5ca3b33524 100644 --- a/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/index.html +++ b/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/index.html @@ -380,6 +380,12 @@ Z-Wave light bulb | diff --git a/blog/2016/02/12/classifying-the-internet-of-things/index.html b/blog/2016/02/12/classifying-the-internet-of-things/index.html index 4794bd6f82..8ee618c4e1 100644 --- a/blog/2016/02/12/classifying-the-internet-of-things/index.html +++ b/blog/2016/02/12/classifying-the-internet-of-things/index.html @@ -346,6 +346,12 @@ diff --git a/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html b/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html index f086a942e7..4fd2ff9836 100644 --- a/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html +++ b/blog/2016/02/13/speedtest-bloomsky-splunk-and-garage-doors/index.html @@ -212,6 +212,12 @@ diff --git a/blog/2016/02/18/multi-room-audio-with-snapcast/index.html b/blog/2016/02/18/multi-room-audio-with-snapcast/index.html index cdae66043b..05aac5f127 100644 --- a/blog/2016/02/18/multi-room-audio-with-snapcast/index.html +++ b/blog/2016/02/18/multi-room-audio-with-snapcast/index.html @@ -296,6 +296,12 @@ diff --git a/blog/2016/02/20/community-highlights/index.html b/blog/2016/02/20/community-highlights/index.html index 20357bb18d..96db240a83 100644 --- a/blog/2016/02/20/community-highlights/index.html +++ b/blog/2016/02/20/community-highlights/index.html @@ -220,6 +220,12 @@ Hold your NFC tag against the belly of Garfield to unlock the alarm. diff --git a/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html b/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html index d4312347c4..c488dc2b22 100644 --- a/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html +++ b/blog/2016/02/27/steam-d-link-smart-plugs-and-neurio-energy-sensors/index.html @@ -211,6 +211,12 @@ diff --git a/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html b/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html index dc3c4829ad..18840f94a0 100644 --- a/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html +++ b/blog/2016/03/12/z-wave-pep257-templated-service-calls/index.html @@ -215,6 +215,12 @@ player state attributes. This change affects automations, scripts and scenes. +
  • + Numbers +
  • + + +
  • 0.36: ISS, USPS, Image processing, Insteon
  • @@ -238,12 +244,6 @@ player state attributes. This change affects automations, scripts and scenes. - -
  • - 0.34: New Remote component, Websockets, Sonarr, GPSLogger -
  • - - diff --git a/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html b/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html index 1ec5d67bc3..6f6007cf3a 100644 --- a/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html +++ b/blog/2016/03/26/embedded-mqtt-broker-uber-yamaha-growl/index.html @@ -224,6 +224,12 @@ diff --git a/blog/2016/04/05/your-hub-should-be-local-and-open/index.html b/blog/2016/04/05/your-hub-should-be-local-and-open/index.html index fa79c7fd0e..3c2fb4b6f4 100644 --- a/blog/2016/04/05/your-hub-should-be-local-and-open/index.html +++ b/blog/2016/04/05/your-hub-should-be-local-and-open/index.html @@ -180,6 +180,12 @@ diff --git a/blog/2016/04/07/static-website/index.html b/blog/2016/04/07/static-website/index.html index 02103a9af3..b04755ca26 100644 --- a/blog/2016/04/07/static-website/index.html +++ b/blog/2016/04/07/static-website/index.html @@ -186,6 +186,12 @@ diff --git a/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html b/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html index e6963aa3e7..c1579d7336 100644 --- a/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html +++ b/blog/2016/04/09/onkyo-panasonic-gtfs-and-config-validation/index.html @@ -194,6 +194,12 @@ diff --git a/blog/2016/04/17/updated-documentation/index.html b/blog/2016/04/17/updated-documentation/index.html index 5a4cc3a2dd..4d660ae27c 100644 --- a/blog/2016/04/17/updated-documentation/index.html +++ b/blog/2016/04/17/updated-documentation/index.html @@ -178,6 +178,12 @@ diff --git a/blog/2016/04/19/to-infinity-and-beyond/index.html b/blog/2016/04/19/to-infinity-and-beyond/index.html index 6a5bd5d173..f45bd67533 100644 --- a/blog/2016/04/19/to-infinity-and-beyond/index.html +++ b/blog/2016/04/19/to-infinity-and-beyond/index.html @@ -195,6 +195,12 @@ diff --git a/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html b/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html index f9e833043e..4f897fe7b0 100644 --- a/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html +++ b/blog/2016/04/20/bluetooth-lg-webos-tvs-and-roombas/index.html @@ -213,6 +213,12 @@ diff --git a/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html b/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html index 5f49472468..9771b0892b 100644 --- a/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html +++ b/blog/2016/04/30/ibeacons-part-1-making-presence-detection-work-better/index.html @@ -300,6 +300,12 @@ For example, my wife works next door - and I couldn’t detect whether she’s a diff --git a/blog/2016/05/06/open-iot-summit-talk/index.html b/blog/2016/05/06/open-iot-summit-talk/index.html index 5ce48eb815..80c3ffe134 100644 --- a/blog/2016/05/06/open-iot-summit-talk/index.html +++ b/blog/2016/05/06/open-iot-summit-talk/index.html @@ -176,6 +176,12 @@ diff --git a/blog/2016/05/07/empowering-scripts-and-alexa/index.html b/blog/2016/05/07/empowering-scripts-and-alexa/index.html index 06b1f8826e..ef28b84831 100644 --- a/blog/2016/05/07/empowering-scripts-and-alexa/index.html +++ b/blog/2016/05/07/empowering-scripts-and-alexa/index.html @@ -258,6 +258,12 @@ diff --git a/blog/2016/05/12/video-configuring-home-assistant/index.html b/blog/2016/05/12/video-configuring-home-assistant/index.html index 371b16b73d..122f6335b7 100644 --- a/blog/2016/05/12/video-configuring-home-assistant/index.html +++ b/blog/2016/05/12/video-configuring-home-assistant/index.html @@ -176,6 +176,12 @@ diff --git a/blog/2016/05/18/why-we-use-polymer/index.html b/blog/2016/05/18/why-we-use-polymer/index.html index 0b37485dd2..ca3d36a86b 100644 --- a/blog/2016/05/18/why-we-use-polymer/index.html +++ b/blog/2016/05/18/why-we-use-polymer/index.html @@ -190,6 +190,12 @@ diff --git a/blog/2016/05/21/release-020/index.html b/blog/2016/05/21/release-020/index.html index 3ac8177231..e63a08ee65 100644 --- a/blog/2016/05/21/release-020/index.html +++ b/blog/2016/05/21/release-020/index.html @@ -209,6 +209,12 @@ diff --git a/blog/2016/05/22/get-started-with-all-in-one-installer/index.html b/blog/2016/05/22/get-started-with-all-in-one-installer/index.html index 98e2b088c6..b273890edb 100644 --- a/blog/2016/05/22/get-started-with-all-in-one-installer/index.html +++ b/blog/2016/05/22/get-started-with-all-in-one-installer/index.html @@ -180,6 +180,12 @@ diff --git a/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html b/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html index 74131da401..76b583b321 100644 --- a/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html +++ b/blog/2016/05/26/ibeacons-how-to-track-things-that-cant-track-themselves-part-ii/index.html @@ -316,6 +316,12 @@ diff --git a/blog/2016/06/01/community-highlights/index.html b/blog/2016/06/01/community-highlights/index.html index 5d276d0d7f..72501e0e13 100644 --- a/blog/2016/06/01/community-highlights/index.html +++ b/blog/2016/06/01/community-highlights/index.html @@ -196,6 +196,12 @@ diff --git a/blog/2016/06/08/super-fast-web-enocean-lirc/index.html b/blog/2016/06/08/super-fast-web-enocean-lirc/index.html index 484125c3f5..a7f8012c7a 100644 --- a/blog/2016/06/08/super-fast-web-enocean-lirc/index.html +++ b/blog/2016/06/08/super-fast-web-enocean-lirc/index.html @@ -230,6 +230,12 @@ diff --git a/blog/2016/06/13/home-assistant-at-pycon-2016/index.html b/blog/2016/06/13/home-assistant-at-pycon-2016/index.html index cf48a5bd51..472519f4a2 100644 --- a/blog/2016/06/13/home-assistant-at-pycon-2016/index.html +++ b/blog/2016/06/13/home-assistant-at-pycon-2016/index.html @@ -201,6 +201,12 @@ diff --git a/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html b/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html index 0c8fd1e44b..67bbc2995d 100644 --- a/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html +++ b/blog/2016/06/18/pandora-bt-home-hub-5-and-local-file-camera/index.html @@ -223,6 +223,12 @@ diff --git a/blog/2016/06/23/usb-webcams-and-home-assistant/index.html b/blog/2016/06/23/usb-webcams-and-home-assistant/index.html index fbdab6c8be..c209fd0afe 100644 --- a/blog/2016/06/23/usb-webcams-and-home-assistant/index.html +++ b/blog/2016/06/23/usb-webcams-and-home-assistant/index.html @@ -277,6 +277,12 @@ target_dir /tmp diff --git a/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html b/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html index ff5d4aec8c..94841a16ea 100644 --- a/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html +++ b/blog/2016/07/01/envisalink-homematic-hdmi-cec-and-sony-bravia-tv/index.html @@ -224,6 +224,12 @@ diff --git a/blog/2016/07/06/pocketchip-running-home-assistant/index.html b/blog/2016/07/06/pocketchip-running-home-assistant/index.html index 7462a56cf6..592693e5d9 100644 --- a/blog/2016/07/06/pocketchip-running-home-assistant/index.html +++ b/blog/2016/07/06/pocketchip-running-home-assistant/index.html @@ -219,6 +219,12 @@ Over a year ago I participated in the +
  • + Numbers +
  • + + +
  • 0.36: ISS, USPS, Image processing, Insteon
  • @@ -242,12 +248,6 @@ Over a year ago I participated in the - 0.34: New Remote component, Websockets, Sonarr, GPSLogger - - - diff --git a/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html b/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html index 964cec5ed1..4683411a54 100644 --- a/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html +++ b/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html @@ -219,6 +219,12 @@ diff --git a/blog/2016/07/19/visualizing-your-iot-data/index.html b/blog/2016/07/19/visualizing-your-iot-data/index.html index 815d2bd39e..7ce086af62 100644 --- a/blog/2016/07/19/visualizing-your-iot-data/index.html +++ b/blog/2016/07/19/visualizing-your-iot-data/index.html @@ -271,6 +271,12 @@ SQLite version 3.11.0 2016-02-15 17:29:24 diff --git a/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html b/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html index e5fb79b7a4..39d08c52d7 100644 --- a/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html +++ b/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html @@ -236,6 +236,12 @@ One of the graphs created with this tutorial. diff --git a/blog/2016/07/28/esp8266-and-micropython-part1/index.html b/blog/2016/07/28/esp8266-and-micropython-part1/index.html index 3b62f046d0..19ad7ce371 100644 --- a/blog/2016/07/28/esp8266-and-micropython-part1/index.html +++ b/blog/2016/07/28/esp8266-and-micropython-part1/index.html @@ -323,6 +323,12 @@ If a module is missing then you need to download it from the +
  • + Numbers +
  • + + +
  • 0.36: ISS, USPS, Image processing, Insteon
  • @@ -346,12 +352,6 @@ If a module is missing then you need to download it from the - 0.34: New Remote component, Websockets, Sonarr, GPSLogger - - - diff --git a/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html b/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html index 2cb30b5d9c..25f35c9f64 100644 --- a/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html +++ b/blog/2016/07/30/custom-frontend-panels-jupyter-notebooks-directv/index.html @@ -238,6 +238,12 @@ diff --git a/blog/2016/08/03/laundry-automation-update/index.html b/blog/2016/08/03/laundry-automation-update/index.html index afcc55bcf1..768f4663e0 100644 --- a/blog/2016/08/03/laundry-automation-update/index.html +++ b/blog/2016/08/03/laundry-automation-update/index.html @@ -275,6 +275,12 @@ diff --git a/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html b/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html index 8a2c67c59d..7c3fb88cb1 100644 --- a/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html +++ b/blog/2016/08/07/optimizing-the-home-assistant-mobile-web-app/index.html @@ -311,6 +311,12 @@ diff --git a/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html b/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html index 1180904d0c..5778dc201e 100644 --- a/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html +++ b/blog/2016/08/13/foursquare-fast-com-ffmpeg-gpsd/index.html @@ -237,6 +237,12 @@ diff --git a/blog/2016/08/16/we-have-apps-now/index.html b/blog/2016/08/16/we-have-apps-now/index.html index f6774929b0..0764979e16 100644 --- a/blog/2016/08/16/we-have-apps-now/index.html +++ b/blog/2016/08/16/we-have-apps-now/index.html @@ -291,6 +291,12 @@ diff --git a/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html b/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html index b12d1a0464..b96ddadd4f 100644 --- a/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html +++ b/blog/2016/08/19/github-style-calendar-heatmap-of-device-data/index.html @@ -177,6 +177,12 @@ Heatmap diff --git a/blog/2016/08/28/notifications-hue-fake-unification/index.html b/blog/2016/08/28/notifications-hue-fake-unification/index.html index 428250b755..b74bcb6c08 100644 --- a/blog/2016/08/28/notifications-hue-fake-unification/index.html +++ b/blog/2016/08/28/notifications-hue-fake-unification/index.html @@ -372,6 +372,12 @@ diff --git a/blog/2016/08/31/esp8266-and-micropython-part2/index.html b/blog/2016/08/31/esp8266-and-micropython-part2/index.html index 02677c3763..0bd977fd84 100644 --- a/blog/2016/08/31/esp8266-and-micropython-part2/index.html +++ b/blog/2016/08/31/esp8266-and-micropython-part2/index.html @@ -267,6 +267,12 @@ So, part 1 of ESP8266 diff --git a/blog/2016/09/10/notify-group-reload-api-pihole/index.html b/blog/2016/09/10/notify-group-reload-api-pihole/index.html index 4ab6070c83..d72ee240b3 100644 --- a/blog/2016/09/10/notify-group-reload-api-pihole/index.html +++ b/blog/2016/09/10/notify-group-reload-api-pihole/index.html @@ -270,6 +270,12 @@ diff --git a/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html b/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html index 91fd58ec27..84a98eae34 100644 --- a/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html +++ b/blog/2016/09/29/async-sleepiq-emoncms-stocks/index.html @@ -288,6 +288,12 @@ diff --git a/blog/2016/10/01/we-have-raspberry-image-now/index.html b/blog/2016/10/01/we-have-raspberry-image-now/index.html index 70aee8aa83..dbc7951e1f 100644 --- a/blog/2016/10/01/we-have-raspberry-image-now/index.html +++ b/blog/2016/10/01/we-have-raspberry-image-now/index.html @@ -188,6 +188,12 @@ diff --git a/blog/2016/10/02/hacktoberfest/index.html b/blog/2016/10/02/hacktoberfest/index.html index c297a1baf2..6103e80750 100644 --- a/blog/2016/10/02/hacktoberfest/index.html +++ b/blog/2016/10/02/hacktoberfest/index.html @@ -193,6 +193,12 @@ diff --git a/blog/2016/10/08/hassbian-rest-digital-ocean/index.html b/blog/2016/10/08/hassbian-rest-digital-ocean/index.html index be46ed34ee..b921b26065 100644 --- a/blog/2016/10/08/hassbian-rest-digital-ocean/index.html +++ b/blog/2016/10/08/hassbian-rest-digital-ocean/index.html @@ -296,6 +296,12 @@ diff --git a/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html b/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html index 428d40f911..c32bb16745 100644 --- a/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html +++ b/blog/2016/10/22/flash-briefing-updater-hacktoberfest/index.html @@ -495,6 +495,12 @@ diff --git a/blog/2016/10/25/explaining-the-updater/index.html b/blog/2016/10/25/explaining-the-updater/index.html index e31f853c0f..7a0263d5b0 100644 --- a/blog/2016/10/25/explaining-the-updater/index.html +++ b/blog/2016/10/25/explaining-the-updater/index.html @@ -210,6 +210,12 @@ diff --git a/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html b/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html index 0a76556463..9d5c2b2c11 100644 --- a/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html +++ b/blog/2016/11/05/hacktoberfest-influxdb-weather/index.html @@ -290,6 +290,12 @@ diff --git a/blog/2016/11/20/calendar-wink-thermostats-cisco-ios/index.html b/blog/2016/11/20/calendar-wink-thermostats-cisco-ios/index.html index 509a870aa5..99bf8e49b6 100644 --- a/blog/2016/11/20/calendar-wink-thermostats-cisco-ios/index.html +++ b/blog/2016/11/20/calendar-wink-thermostats-cisco-ios/index.html @@ -242,6 +242,12 @@ diff --git a/blog/2016/12/03/remote-websockets-sonarr/index.html b/blog/2016/12/03/remote-websockets-sonarr/index.html index d8d80bdc1d..b45ce07573 100644 --- a/blog/2016/12/03/remote-websockets-sonarr/index.html +++ b/blog/2016/12/03/remote-websockets-sonarr/index.html @@ -319,6 +319,12 @@ diff --git a/blog/2016/12/17/text-to-speech-aquostv-flic-zamg/index.html b/blog/2016/12/17/text-to-speech-aquostv-flic-zamg/index.html index 0fe47b76ad..5ca37bdfb1 100644 --- a/blog/2016/12/17/text-to-speech-aquostv-flic-zamg/index.html +++ b/blog/2016/12/17/text-to-speech-aquostv-flic-zamg/index.html @@ -259,6 +259,12 @@ diff --git a/blog/2016/12/19/thank-you/index.html b/blog/2016/12/19/thank-you/index.html index d877137bf4..95f296d82e 100644 --- a/blog/2016/12/19/thank-you/index.html +++ b/blog/2016/12/19/thank-you/index.html @@ -186,6 +186,12 @@ diff --git a/blog/2017/01/03/control-my-christmas-tree-stats/index.html b/blog/2017/01/03/control-my-christmas-tree-stats/index.html index 849a9083d0..cb99309fcd 100644 --- a/blog/2017/01/03/control-my-christmas-tree-stats/index.html +++ b/blog/2017/01/03/control-my-christmas-tree-stats/index.html @@ -198,6 +198,12 @@ diff --git a/blog/2017/01/14/iss-usps-images-packages/index.html b/blog/2017/01/14/iss-usps-images-packages/index.html index 293371ab01..0b726314de 100644 --- a/blog/2017/01/14/iss-usps-images-packages/index.html +++ b/blog/2017/01/14/iss-usps-images-packages/index.html @@ -270,6 +270,12 @@ You have to note: diff --git a/blog/2017/01/18/numbers/index.html b/blog/2017/01/18/numbers/index.html new file mode 100644 index 0000000000..ae0767ca23 --- /dev/null +++ b/blog/2017/01/18/numbers/index.html @@ -0,0 +1,265 @@ + + + + + + + + + + Numbers - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + +
    + +

    Numbers

    + + + +
    + + + Less than one minute reading time + + +
      + + +
    • Community
    • + + +
    +
    + + Comments + +
    + +
    + + +

    It’s week 3 of 2017 and great things did already happen. This is just a little recap.

    + +
      +
    • In the OSS Metrics leaderboard we are on place 30. Within three months we moved from our starting place which was 66 in September 2016 up to the current one.
    • +
    • We were listed on Github Trending. Also, was @balloob mentioned as trending developer.
    • +
    • @balloob’s talk at the OpenIoT Summit 2016 was rated as one of the Top 5 videos of the conference.
    • +
    • We now ship over 500 components and platforms.
    • +
    • We processed over 3500 Pull requests on the main repository so far.
    • +
    + +

    You may ask yourself why this is amazing. It’s amazing because we are a community-only project driven by volunteers there is no financial support, no company in the background, and no paid developers who are working on Home Assistant. Here is another “Thank you” because you are the driving force behind Home Assistant.

    + +

    What more numbers? Checkout the Trivia page

    + +

    – Fabian

    +
    + + +
    +

    Comments

    +
    +
    + + +
    + + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index 938e990cc1..f5da6a80be 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -3221,6 +3221,38 @@ + + +
    +
    + +
    + +
    +
    +

    Numbers

    + +
    + + +
      + + +
    • Community
    • + + +
    +
    +
    + +
    +
    + +
    +
    + @@ -3278,6 +3310,12 @@ diff --git a/blog/categories/community/atom.xml b/blog/categories/community/atom.xml index 9ecf2f0887..d6d2cbff87 100644 --- a/blog/categories/community/atom.xml +++ b/blog/categories/community/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: community | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/community/index.html b/blog/categories/community/index.html index 85eead64cf..f856cbd233 100644 --- a/blog/categories/community/index.html +++ b/blog/categories/community/index.html @@ -186,6 +186,12 @@ diff --git a/blog/categories/device-tracking/atom.xml b/blog/categories/device-tracking/atom.xml index 1b0b28508c..31bd7df93c 100644 --- a/blog/categories/device-tracking/atom.xml +++ b/blog/categories/device-tracking/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Device-Tracking | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/device-tracking/index.html b/blog/categories/device-tracking/index.html index ff545db58e..77e971c1c0 100644 --- a/blog/categories/device-tracking/index.html +++ b/blog/categories/device-tracking/index.html @@ -190,6 +190,12 @@ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index c62da96aa7..a1ae7febf3 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: ESP8266 | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index 446e904eb4..e38bd47117 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -267,6 +267,12 @@ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 1668d3ee8e..199b426f5b 100644 --- a/blog/categories/how-to/atom.xml +++ b/blog/categories/how-to/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: How-To | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index b486593ac2..134075a1f8 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -759,6 +759,12 @@ diff --git a/blog/categories/ibeacons/atom.xml b/blog/categories/ibeacons/atom.xml index fe4e32b05e..a58d1839e8 100644 --- a/blog/categories/ibeacons/atom.xml +++ b/blog/categories/ibeacons/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: iBeacons | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/ibeacons/index.html b/blog/categories/ibeacons/index.html index c4ff02b95a..ba3e0f96a2 100644 --- a/blog/categories/ibeacons/index.html +++ b/blog/categories/ibeacons/index.html @@ -226,6 +226,12 @@ diff --git a/blog/categories/internet-of-things/atom.xml b/blog/categories/internet-of-things/atom.xml index 0ba1a865f5..06de8644bb 100644 --- a/blog/categories/internet-of-things/atom.xml +++ b/blog/categories/internet-of-things/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Internet-of-Things | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/internet-of-things/index.html b/blog/categories/internet-of-things/index.html index 76dea21337..8ed796c911 100644 --- a/blog/categories/internet-of-things/index.html +++ b/blog/categories/internet-of-things/index.html @@ -285,6 +285,12 @@ diff --git a/blog/categories/iot-data/atom.xml b/blog/categories/iot-data/atom.xml index a406af957c..0ffb1631cb 100644 --- a/blog/categories/iot-data/atom.xml +++ b/blog/categories/iot-data/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: IoT-Data | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/iot-data/index.html b/blog/categories/iot-data/index.html index 759b178448..05b74e04ed 100644 --- a/blog/categories/iot-data/index.html +++ b/blog/categories/iot-data/index.html @@ -256,6 +256,12 @@ diff --git a/blog/categories/micropython/atom.xml b/blog/categories/micropython/atom.xml index acf406eb0e..9cc7cebfec 100644 --- a/blog/categories/micropython/atom.xml +++ b/blog/categories/micropython/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Micropython | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/micropython/index.html b/blog/categories/micropython/index.html index fdc2e6ebd1..51d63179fd 100644 --- a/blog/categories/micropython/index.html +++ b/blog/categories/micropython/index.html @@ -228,6 +228,12 @@ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index 86e7477421..84da354bfc 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: MQTT | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 04bd6a5e5e..a8a03a1d0e 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -299,6 +299,12 @@ diff --git a/blog/categories/organisation/atom.xml b/blog/categories/organisation/atom.xml index 262bb448a2..8483b94adb 100644 --- a/blog/categories/organisation/atom.xml +++ b/blog/categories/organisation/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Organisation | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/organisation/index.html b/blog/categories/organisation/index.html index 6236245a6a..b5a4325a3d 100644 --- a/blog/categories/organisation/index.html +++ b/blog/categories/organisation/index.html @@ -253,6 +253,12 @@ diff --git a/blog/categories/owntracks/atom.xml b/blog/categories/owntracks/atom.xml index 585271fc5c..ab906f356d 100644 --- a/blog/categories/owntracks/atom.xml +++ b/blog/categories/owntracks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: OwnTracks | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/owntracks/index.html b/blog/categories/owntracks/index.html index 6d7e46040d..1e6cb6ef8a 100644 --- a/blog/categories/owntracks/index.html +++ b/blog/categories/owntracks/index.html @@ -226,6 +226,12 @@ diff --git a/blog/categories/presence-detection/atom.xml b/blog/categories/presence-detection/atom.xml index 2d22740b73..45dd7d4db3 100644 --- a/blog/categories/presence-detection/atom.xml +++ b/blog/categories/presence-detection/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Presence-Detection | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/presence-detection/index.html b/blog/categories/presence-detection/index.html index 6d153186f3..278213fc9a 100644 --- a/blog/categories/presence-detection/index.html +++ b/blog/categories/presence-detection/index.html @@ -190,6 +190,12 @@ diff --git a/blog/categories/public-service-announcement/atom.xml b/blog/categories/public-service-announcement/atom.xml index 67d660e3be..89514513c7 100644 --- a/blog/categories/public-service-announcement/atom.xml +++ b/blog/categories/public-service-announcement/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Public-Service-Announcement | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/public-service-announcement/index.html b/blog/categories/public-service-announcement/index.html index 78dd7b1b8d..d7984c4807 100644 --- a/blog/categories/public-service-announcement/index.html +++ b/blog/categories/public-service-announcement/index.html @@ -186,6 +186,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index 433746dbc6..f94ec54407 100644 --- a/blog/categories/release-notes/atom.xml +++ b/blog/categories/release-notes/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Release-Notes | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index 7124999b68..24c9a6c886 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -1794,6 +1794,12 @@ diff --git a/blog/categories/survey/atom.xml b/blog/categories/survey/atom.xml index fc82f8050f..617783b033 100644 --- a/blog/categories/survey/atom.xml +++ b/blog/categories/survey/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Survey | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/survey/index.html b/blog/categories/survey/index.html index b1a94017bb..72744d0916 100644 --- a/blog/categories/survey/index.html +++ b/blog/categories/survey/index.html @@ -186,6 +186,12 @@ diff --git a/blog/categories/talks/atom.xml b/blog/categories/talks/atom.xml index 0998aa753a..17220b6ba5 100644 --- a/blog/categories/talks/atom.xml +++ b/blog/categories/talks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Talks | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/talks/index.html b/blog/categories/talks/index.html index 7a3b7fce66..53bc2eafc3 100644 --- a/blog/categories/talks/index.html +++ b/blog/categories/talks/index.html @@ -188,6 +188,12 @@ diff --git a/blog/categories/technology/atom.xml b/blog/categories/technology/atom.xml index 5c2993fb4f..e4d08e8731 100644 --- a/blog/categories/technology/atom.xml +++ b/blog/categories/technology/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Technology | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/technology/index.html b/blog/categories/technology/index.html index e10acf3013..1e4af727d4 100644 --- a/blog/categories/technology/index.html +++ b/blog/categories/technology/index.html @@ -250,6 +250,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index 3a69c55a59..8e68a9ed43 100644 --- a/blog/categories/user-stories/atom.xml +++ b/blog/categories/user-stories/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: User-Stories | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index a670aac413..df7c87f49f 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -221,6 +221,12 @@ diff --git a/blog/categories/video/atom.xml b/blog/categories/video/atom.xml index ba103f46e2..9cb66a959c 100644 --- a/blog/categories/video/atom.xml +++ b/blog/categories/video/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Video | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/video/index.html b/blog/categories/video/index.html index 18cc6297db..2ad1bd35f7 100644 --- a/blog/categories/video/index.html +++ b/blog/categories/video/index.html @@ -389,6 +389,12 @@ diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index a87d461054..77c80c52c7 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Website | Home Assistant]]> - 2017-01-18T07:49:39+00:00 + 2017-01-18T17:06:03+00:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index b37a0cbe9e..d06ed7fbbd 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -221,6 +221,12 @@ diff --git a/blog/index.html b/blog/index.html index 1de24d16a4..f5c6bfbb93 100644 --- a/blog/index.html +++ b/blog/index.html @@ -79,6 +79,61 @@ +
    +
    + +

    + Numbers +

    + + + +
    + + + Less than one minute reading time + + +
      + + +
    • Community
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    It’s week 3 of 2017 and great things did already happen. This is just a little recap.

    + +
      +
    • In the OSS Metrics leaderboard we are on place 30. Within three months we moved from our starting place which was 66 in September 2016 up to the current one.
    • +
    • We were listed on Github Trending. Also, was @balloob mentioned as trending developer.
    • +
    • @balloob’s talk at the OpenIoT Summit 2016 was rated as one of the Top 5 videos of the conference.
    • +
    • We now ship over 500 components and platforms.
    • +
    • We processed over 3500 Pull requests on the main repository so far.
    • +
    + +

    You may ask yourself why this is amazing. It’s amazing because we are a community-only project driven by volunteers there is no financial support, no company in the background, and no paid developers who are working on Home Assistant. Here is another “Thank you” because you are the driving force behind Home Assistant.

    + +

    What more numbers? Checkout the Trivia page

    + +

    – Fabian

    + + +
    +
    +
    +
    @@ -1392,174 +1447,6 @@ You have to note: - -
    -
    - -
    -
    - -

    - 0.30: More Async, HASSbian, Digital Ocean, statistics, REST -

    - - - -
    - - - seven minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    Yes, after only nine days comes 0.30. Don’t worry, we will try to keep our usual release cycle and not start to release every day.

    - -

    We guess that you already know: The Raspberry Pi image is available now. For Hassbian, @Landrash has combined the most essential parts for a Home Assistant setup in an easy-to-use image for the Raspberry Pi device family. Hassbian is quite young, thus we are looking forward to recieve feedback, issue report, and suggestions to improve it.

    - -

    A large amount of resources of the development are still focusing on the effort to move Home Assistant further to asynchronous programming. It’s a labor-intensive task, comes with segmentation faults, and unstable instances when certain combinations of sensors are used. The benefit will be more speed in the near future.

    - -

    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.

    - -

    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.

    - -

    - -

    - -

    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.

    - -

    Statistics

    - -

    With the statistics sensor we would like to introduce a new sensor that is similar to the template sensor or the 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.

    - -

    - -

    - -

    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.

    - -

    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.

    - -

    The REST sensor supports now HTTP authentication (basic and digest) and custom headers. This will allow you to access resources which are protected. This sample sensor will access GitHub and retrieve the latest release number while by-passing the rate limit for non-authenticated requests.

    - -
    sensor
    -  - platform: rest
    -    resource: https://api.github.com/repos/home-assistant/home-assistant/releases/latest
    -    username: YOUR_GITHUB_USERNAME
    -    password: YOUR_GITHUB_ACCESS_TOKEN
    -    authentication: basic
    -    value_template: '{{ value_json.tag_name }}'
    -    headers:
    -      Accept: application/vnd.github.v3+json
    -      Content-Type: application/json
    -      User-Agent: Home Assistant REST sensor
    -
    -
    - -

    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 has now an additional section called “Installation”.
    • -
    - -

    All changes

    - -

    - - - -

    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)
    • -
    - -

    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)
    • -
    • Fix Homematic device name with autodiscovery (@pvizeli)
    • -
    • Make ‘pin’ optional for zigbee device config (@flyte)
    • -
    • Fix when sending a notification to a service with target attached (i.e. notify.html5_unnamed_device_2) the target was not submitted to the platform as a list causing iteration over every character in the string. (@robbiet480)
    • -
    • Fix for Slack targets (@fabaff)
    • -
    • Fix for Pushover targets (@Nixon506E)
    • -
    - -

    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.
      • -
      • condition_type is gone. Use condition: or instead.
      • -
      • To specify the type of a condition, use condition: instead of platform:.
      • -
      -
    • -
    • The Forecast.io was renamed to Dark Sky. Replace your - platform: forecast with - platform: darksky.
    • -
    • The aREST configuration between the sensor and the switch platform was aligned.
    • -
    - -

    If you need help…

    -

    …don’t hesitate to use our Forum or join us for a little chat. The release notes have comments enabled but it’s preferred if you the former communication channels. Thanks.

    - - -

    diff --git a/blog/posts/10/index.html b/blog/posts/10/index.html index 522ad893fd..6c56c0c00a 100644 --- a/blog/posts/10/index.html +++ b/blog/posts/10/index.html @@ -79,6 +79,71 @@ +
    +
    + +

    + Looking at the past +

    + + + +
    + + + 1 minute reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:

    + +
      +
    • Recorder component that will record every event to a SQLite database
    • +
    • History component that will query and aggregate the recorded events
    • +
    + +

    By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of todays release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.

    + +

    Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.

    + +

    The history component will be enabled for new users by default. For current users, run scripts/update to upgrade to the latest version and add [history] to your home-assistant.conf file.

    + +

    + + + +

    + +

    +Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transfered to anyone at any time. +

    + + + + Read on → + +
    +
    +
    +
    diff --git a/blog/posts/2/index.html b/blog/posts/2/index.html index 7192726823..b261734672 100644 --- a/blog/posts/2/index.html +++ b/blog/posts/2/index.html @@ -79,6 +79,174 @@ +
    +
    + +

    + 0.30: More Async, HASSbian, Digital Ocean, statistics, REST +

    + + + +
    + + + seven minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    Yes, after only nine days comes 0.30. Don’t worry, we will try to keep our usual release cycle and not start to release every day.

    + +

    We guess that you already know: The Raspberry Pi image is available now. For Hassbian, @Landrash has combined the most essential parts for a Home Assistant setup in an easy-to-use image for the Raspberry Pi device family. Hassbian is quite young, thus we are looking forward to recieve feedback, issue report, and suggestions to improve it.

    + +

    A large amount of resources of the development are still focusing on the effort to move Home Assistant further to asynchronous programming. It’s a labor-intensive task, comes with segmentation faults, and unstable instances when certain combinations of sensors are used. The benefit will be more speed in the near future.

    + +

    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.

    + +

    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.

    + +

    + +

    + +

    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.

    + +

    Statistics

    + +

    With the statistics sensor we would like to introduce a new sensor that is similar to the template sensor or the 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.

    + +

    + +

    + +

    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.

    + +

    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.

    + +

    The REST sensor supports now HTTP authentication (basic and digest) and custom headers. This will allow you to access resources which are protected. This sample sensor will access GitHub and retrieve the latest release number while by-passing the rate limit for non-authenticated requests.

    + +
    sensor
    +  - platform: rest
    +    resource: https://api.github.com/repos/home-assistant/home-assistant/releases/latest
    +    username: YOUR_GITHUB_USERNAME
    +    password: YOUR_GITHUB_ACCESS_TOKEN
    +    authentication: basic
    +    value_template: '{{ value_json.tag_name }}'
    +    headers:
    +      Accept: application/vnd.github.v3+json
    +      Content-Type: application/json
    +      User-Agent: Home Assistant REST sensor
    +
    +
    + +

    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 has now an additional section called “Installation”.
    • +
    + +

    All changes

    + +

    + + + +

    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)
    • +
    + +

    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)
    • +
    • Fix Homematic device name with autodiscovery (@pvizeli)
    • +
    • Make ‘pin’ optional for zigbee device config (@flyte)
    • +
    • Fix when sending a notification to a service with target attached (i.e. notify.html5_unnamed_device_2) the target was not submitted to the platform as a list causing iteration over every character in the string. (@robbiet480)
    • +
    • Fix for Slack targets (@fabaff)
    • +
    • Fix for Pushover targets (@Nixon506E)
    • +
    + +

    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.
      • +
      • condition_type is gone. Use condition: or instead.
      • +
      • To specify the type of a condition, use condition: instead of platform:.
      • +
      +
    • +
    • The Forecast.io was renamed to Dark Sky. Replace your - platform: forecast with - platform: darksky.
    • +
    • The aREST configuration between the sensor and the switch platform was aligned.
    • +
    + +

    If you need help…

    +

    …don’t hesitate to use our Forum or join us for a little chat. The release notes have comments enabled but it’s preferred if you the former communication channels. Thanks.

    + + + +
    +
    +
    +
    @@ -999,73 +1167,6 @@ Heatmap - -
    -
    - -
    -
    - -

    - Optimizing the Home Assistant mobile web app -

    - - - -
    - - - 11 minutes reading time - - -
      - - -
    • Technology
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    This blog post will go into detail about the recent performance optimizations that went into the Home Assistant front end. For people not familiar with the app, check out the demo and the source.

    - -

    TL; DR: Don’t hack the framework, separate responsibilities, ship less, use service workers, use (future) web standards.

    - -

    This year at Google I/O I saw Monica from the Polymer team talk about web components and performance. In her talk she mentions a mantra that they use in the Polymer team to make things fast: Do less and be lazy.

    - -

    Do less and be lazy. It sounds so obvious and it took a while before it started to dawn on me. I think most of the code I write is pretty fast, but I don’t often stop to take a harder look at how and when it runs in practice. When do we need the result, can it be postponed?

    - -

    And thus started my journey to take a critical look at how the Home Assistant app was working and how to make things faster. Below is the list of the different things that I did to make it fast.

    - -

    I hope this list can be useful to other people, as a guide for optimizing their own apps or for avoiding pitfalls when building a new one.

    - -

    The first thing to do is to measure. The Home Assistant front end is a mobile web app, so we shouldn’t measure this on a machine with 8 cores and gigabytes of ram but instead measure on devices you expect a mobile web app to run: phones. Below are two timelines recorded with Home Assistant 0.18.2 (pre-optimizations) and Google Chrome 53. On my Mac the app starts in 1400 miliseconds and on my Nexus 5x in ~6500 miliseconds (~4.5 times slower!).

    - -

    - Timeline of loading the front end in Home Assistant 0.18.2 -

    - -

    Although the app takes 6500 milliseconds to load on my phone, it would perform well afterwards. Still, that initial load is unacceptable. You expect to open an app on your phone and be able to use it, quickly. After I applied all the changes described below, I managed to reduce startup time to 900 miliseconds (-35%) on my Mac and 2400 miliseconds (-63%) on my Nexus 5x. Check out the demo here.

    - -

    - diagram showing old and new loading times next to one another - Timeline of loading the front end in Home Assistant 0.26 -

    - - - - Read on → -

    diff --git a/blog/posts/3/index.html b/blog/posts/3/index.html index 8d881e6021..cf2c6e9410 100644 --- a/blog/posts/3/index.html +++ b/blog/posts/3/index.html @@ -79,6 +79,73 @@ +
    +
    + +

    + Optimizing the Home Assistant mobile web app +

    + + + +
    + + + 11 minutes reading time + + +
      + + +
    • Technology
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    This blog post will go into detail about the recent performance optimizations that went into the Home Assistant front end. For people not familiar with the app, check out the demo and the source.

    + +

    TL; DR: Don’t hack the framework, separate responsibilities, ship less, use service workers, use (future) web standards.

    + +

    This year at Google I/O I saw Monica from the Polymer team talk about web components and performance. In her talk she mentions a mantra that they use in the Polymer team to make things fast: Do less and be lazy.

    + +

    Do less and be lazy. It sounds so obvious and it took a while before it started to dawn on me. I think most of the code I write is pretty fast, but I don’t often stop to take a harder look at how and when it runs in practice. When do we need the result, can it be postponed?

    + +

    And thus started my journey to take a critical look at how the Home Assistant app was working and how to make things faster. Below is the list of the different things that I did to make it fast.

    + +

    I hope this list can be useful to other people, as a guide for optimizing their own apps or for avoiding pitfalls when building a new one.

    + +

    The first thing to do is to measure. The Home Assistant front end is a mobile web app, so we shouldn’t measure this on a machine with 8 cores and gigabytes of ram but instead measure on devices you expect a mobile web app to run: phones. Below are two timelines recorded with Home Assistant 0.18.2 (pre-optimizations) and Google Chrome 53. On my Mac the app starts in 1400 miliseconds and on my Nexus 5x in ~6500 miliseconds (~4.5 times slower!).

    + +

    + Timeline of loading the front end in Home Assistant 0.18.2 +

    + +

    Although the app takes 6500 milliseconds to load on my phone, it would perform well afterwards. Still, that initial load is unacceptable. You expect to open an app on your phone and be able to use it, quickly. After I applied all the changes described below, I managed to reduce startup time to 900 miliseconds (-35%) on my Mac and 2400 miliseconds (-63%) on my Nexus 5x. Check out the demo here.

    + +

    + diagram showing old and new loading times next to one another + Timeline of loading the front end in Home Assistant 0.26 +

    + + + + Read on → + +
    +
    +
    +
    @@ -681,101 +748,6 @@ In the past month I was thinking about ways to integrate USB webcams into Home A Read on → - -
    -
    - -
    -
    - -

    - 0.22: Pandora, BT Home Hub 5 and local file camera. -

    - - - -
    - - - two minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    It’s time for the 0.22 release. This was a pretty rough release cycle and we had to issue two hot fixes for our core improvements. But it seems now that all is good and a lot of people have reported that their installs are faster than ever and the occasional quirks no longer occur.

    - -

    We are aware that our new web stack has caused issues installing Home Assistant on ARM-based platforms. This sadly includes the Raspberry Pi and Synology NAS systems. We’re working on getting to a better solution. For Raspberry Pi, the All-in-One installer will take care of everything for you. We’re working on updating our standalone Raspberry Pi installation guide.

    - -

    There are two cool things that I want to highlight in this release. The first is Pandora support. This is based on the CLI player called pianobar. This means that your machine running Home Assistant can be connected to the speakers and provide your house with tunes.

    - -

    - -

    - -

    Another cool addition is the local file camera. This seems very basic at first but will allow you to generate a graph with your favorite 3rd party graphing tool and display it on your Home Assistant dashboard. We’re looking forward to see what you can do with this!

    - -

    - - - -

    Breaking change

    - -
      -
    • The new Netatmo support caused us to change how Netatmo are configured. It’s now done via it’s own component.
    • -
    - -
    netatmo:
    -    api_key: API_KEY
    -    secret_key: SECRET_KEY
    -    username: username
    -    password: password
    -
    -
    - -

    Hotfix 0.22.1 - June 20

    - -
      -
    • Insteon Hub lights will load again
    • -
    - - -

    diff --git a/blog/posts/4/index.html b/blog/posts/4/index.html index 7472fe2830..25d041ff4e 100644 --- a/blog/posts/4/index.html +++ b/blog/posts/4/index.html @@ -79,6 +79,101 @@ +
    +
    + +

    + 0.22: Pandora, BT Home Hub 5 and local file camera. +

    + + + +
    + + + two minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    It’s time for the 0.22 release. This was a pretty rough release cycle and we had to issue two hot fixes for our core improvements. But it seems now that all is good and a lot of people have reported that their installs are faster than ever and the occasional quirks no longer occur.

    + +

    We are aware that our new web stack has caused issues installing Home Assistant on ARM-based platforms. This sadly includes the Raspberry Pi and Synology NAS systems. We’re working on getting to a better solution. For Raspberry Pi, the All-in-One installer will take care of everything for you. We’re working on updating our standalone Raspberry Pi installation guide.

    + +

    There are two cool things that I want to highlight in this release. The first is Pandora support. This is based on the CLI player called pianobar. This means that your machine running Home Assistant can be connected to the speakers and provide your house with tunes.

    + +

    + +

    + +

    Another cool addition is the local file camera. This seems very basic at first but will allow you to generate a graph with your favorite 3rd party graphing tool and display it on your Home Assistant dashboard. We’re looking forward to see what you can do with this!

    + +

    + + + +

    Breaking change

    + +
      +
    • The new Netatmo support caused us to change how Netatmo are configured. It’s now done via it’s own component.
    • +
    + +
    netatmo:
    +    api_key: API_KEY
    +    secret_key: SECRET_KEY
    +    username: username
    +    password: password
    +
    +
    + +

    Hotfix 0.22.1 - June 20

    + +
      +
    • Insteon Hub lights will load again
    • +
    + + + +
    +
    +
    +
    @@ -727,54 +822,6 @@ - -
    -
    - -
    -
    - -

    - Talk: Automating your home with Home Assistant (OpenIoT Summit) -

    - - - -
    - - - Less than one minute reading time - - -
      - - -
    • Talks
    • - -
    • Video
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    At the beginning of April I gave a talk about Home Assistant at the OpenIoT summit in San Diego. I talk about the Home Assistant architecture and explain how to get started integrating your devices. Big thanks to my employer AppFolio (we’re hiring!) for letting me attend. Slides.

    - -
    - -
    - - -

    diff --git a/blog/posts/5/index.html b/blog/posts/5/index.html index 748c2f0be8..ec608cffbd 100644 --- a/blog/posts/5/index.html +++ b/blog/posts/5/index.html @@ -79,6 +79,54 @@ +
    +
    + +

    + Talk: Automating your home with Home Assistant (OpenIoT Summit) +

    + + + +
    + + + Less than one minute reading time + + +
      + + +
    • Talks
    • + +
    • Video
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    At the beginning of April I gave a talk about Home Assistant at the OpenIoT summit in San Diego. I talk about the Home Assistant architecture and explain how to get started integrating your devices. Big thanks to my employer AppFolio (we’re hiring!) for letting me attend. Slides.

    + +
    + +
    + + + +
    +
    +
    +
    @@ -682,89 +730,6 @@ player state attributes. This change affects automations, scripts and scenes. -
    -
    - -
    -
    - -

    - 0.14: Steam, D-Link smart plugs and Neurio Energy Sensors -

    - - - -
    - - - two minutes reading time - - -
      - - -
    • Release-Notes
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    It’s been another two weeks which means it’s time for release: 0.14!

    - -

    - - - -

    - - Camera feeds are now directly embedded in the frontend. -

    - -

    Backwards incompatible changes

    -
      -
    • Component: Simple Alarm has been removed. Still available in the cookbook.
    • -
    • Script: Turning on a script that is already on is now a no-op instead of skipping current delay.
    • -
    • Wemo switches now have to be set up via the main Wemo component
    • -
    • Command line platforms for switch, sensor and binary_sensor have been renamed to command_line.
    • -
    • The rfxtrx sensors entity ids will incur a one time change to move to a stable format. See the docs for more details.
    • -
    - - -

    diff --git a/blog/posts/6/index.html b/blog/posts/6/index.html index 0833de63a0..2a7055262f 100644 --- a/blog/posts/6/index.html +++ b/blog/posts/6/index.html @@ -79,6 +79,89 @@ +
    +
    + +

    + 0.14: Steam, D-Link smart plugs and Neurio Energy Sensors +

    + + + +
    + + + two minutes reading time + + +
      + + +
    • Release-Notes
    • + + +
    +
    + + Comments + +
    + +
    + + +
    +

    It’s been another two weeks which means it’s time for release: 0.14!

    + +

    + + + +

    + + Camera feeds are now directly embedded in the frontend. +

    + +

    Backwards incompatible changes

    +
      +
    • Component: Simple Alarm has been removed. Still available in the cookbook.
    • +
    • Script: Turning on a script that is already on is now a no-op instead of skipping current delay.
    • +
    • Wemo switches now have to be set up via the main Wemo component
    • +
    • Command line platforms for switch, sensor and binary_sensor have been renamed to command_line.
    • +
    • The rfxtrx sensors entity ids will incur a one time change to move to a stable format. See the docs for more details.
    • +
    + + + +
    +
    +
    +
    @@ -741,56 +824,6 @@ Example of the new views in the frontend. Learn mor

    -
    -
    - -

    - Set up encryption using Let's Encrypt -

    - - - -
    - - - five minutes reading time - - -
      - - -
    • How-To
    • - - -
    -
    - - Comments - -
    - -
    - - -
    -

    Exposing your Home Assistant instance outside of your network always has been tricky. You have to set up port forwarding on your router and most likely add a dynamic DNS service to work around your ISP changing your IP. After this you would be able to use Home Assistant from anywhere but there is one big red flag: no encryption.

    - -

    This tutorial will take you through the steps to setup a dynamic DNS for your IP and allow trusted encrypted connection to it - for free using DuckDNS and Let’s Encrypt.

    - -

    - -

    - - - - Read on → - -
    -
    -
    -