diff --git a/atom.xml b/atom.xml index 32830a1a42..d9291177a8 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ @@ -13,6 +13,79 @@ Octopress + + <![CDATA[IoT Data Exploration with Jupyter Notebooks]]> + + 2016-07-23T18:00:00+00:00 + https://home-assistant.io/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks + This is the first blog post by Anton Kireyeu. A new contributor to Home Assistant who will focus on exploring and visualizing Home Assistant data.

+ +

As we learned in the recent blog post by Fabian, all operational data of your Home Assistant application is stored locally and is available for exploration. Our first steps were querying data with the DB Browser for SQLite, exporting the data extract as a CSV file and graphing in LibreOffice. But what else can be done with this data and what tools are there available?

+ +

This post will help you get set up using a few popular data scientist tools to allow you to locally process your data:

+ +
    +
  •  Pandas: an open source tool for data analysis for Python
  • +
  •  matplotlib: a Python plotting library
  • +
  •  Jupyter notebook: application for creation and sharing of documents containing live code, visualizations and explanatory text
  • +
+ +

+ +One of the graphs created with this tutorial. +

+ +

TL; DR: Use this Jupyter Notebook to visualize of your data

+ + + +

Dependencies

+ +

In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:

+ +
    +
  • Pandas
  • +
  • NumPy
  • +
  • Matplotlib
  • +
  • SQLAlchemy
  • +
  • Jupyter
  • +
+ +

As a Windows user myself, I find the easiest, quickest and most hassle-free way of installing all of these dependencies is to use WinPython. This free open-source portable distribution includes all of the dependencies required for this notebook, as well as a few other essential Python libraries you may require for data exploration in the future.

+ +

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!

+ +

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:

+ +
    +
  • download the tutorial Jupyter Notebook (leads to preview page, from there click download top-right)
  • +
  • launch the Jupyter Notebook App
  • +
  • Click the ‘upload’ button to add the downloaded notebook to Jupyter
  • +
  • Adjust the DB_URL at the beginning of the notebook to point at your Home Assistant database
  • +
  • Select in top menu: Cell -> Run All
  • +
+ +

That’s it! The included code will walk you through importing the required libraries, show running raw SQL against your local database, plotting basic data from the states table, and in the end output a few plots of changes for every entity in your system as well as the mean daily value for the past 20 days.

+ +

After just those few steps, you will be greeted with beautiful formatted data like this:

+ +

+ +One of the graphs created with this tutorial. +

+ +

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!

+ +

While you learn and explore your IoT data, we will be working on providing more ready-to-use Jupyter Notebooks. Feel free to ask questions or provide suggestions. Would you like to see a specific visualization? Is there a particular facet of data you’re interested in? Let’s talk about it, let’s dive into the world of data together!

+]]>
+
+ <![CDATA[Visualize your IoT data]]> @@ -1279,23 +1352,6 @@ For example, my wife works next door - and I couldn’t detect whether she’s a

Paulus

-]]> -
- - - <![CDATA[Updated documentation]]> - - 2016-04-17T06:09:00+00:00 - https://home-assistant.io/blog/2016/04/17/updated-documentation - One of the main complaints that we receive is something along the lines “I read that X is possible yet I am unable to find it on the website.”. This post is to announce that we have taken the first steps to improve it by revamping the getting started and developers sections. It’s still a work in progress but we now have a solid foundation to build on for the future 👍.

- -

Our documentation has been going through various phases. Initially it was just the README in our GitHub repository. I discovered Jekyll and GitHub pages in December 2014 and created home-assistant.io. I more or less broke the README in 5 pages and called it a website. Back then we had a whopping 11 components.

- -

As Home Assistant grew, so did our documentation. Fabian Affolter does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that’s quite a feat given our frequent releases! But despite all the efforts, the documentation outgrew our existing documentation organisation.

- -

Today it has been almost 1.5 years since we started the website. We now have 264 components and platforms under our belt and have been honored with 1.5 million page views ✨. And hopefully we now also have documentation that our community deserves.

- -

Finally, if you see some content that could use more clarifcation or is outdated, don’t hesitate to use the ‘Edit in GitHub’ link that is present on each page.

]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index bdae374ba2..61f2bf3ff2 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -179,6 +179,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 52eb6241ba..57b00b547d 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 @@ -234,6 +234,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 04256d5176..2f44e4ae01 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 @@ -218,6 +218,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ 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 b06fe89263..532b0c05c2 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 @@ -193,6 +193,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 bc9fddc8fd..859717fafc 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -196,6 +196,12 @@ password=YOUR_PASSWORD diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index 3d88ab7f2b..5683d8e55d 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -202,6 +202,12 @@ Home Assistant now supports --open-ui and --demo-mode 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 091352b16f..4a6ea426bc 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -210,6 +210,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 1fc4aa42ba..99e85a2ec3 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -195,6 +195,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 96b4f8b4a9..e12e330d4d 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 @@ -185,6 +185,12 @@ diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index 21d4cbdfef..d79bb69564 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -186,6 +186,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 350c9d4bce..217aec2318 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -225,6 +225,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 98dc882a14..d4b0994a8b 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -262,6 +262,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 f5e2d8c10d..3ba2fc71f3 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -273,6 +273,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 634cac8b9b..be87074570 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -208,6 +208,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 0bcf62546d..0986039c19 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -300,6 +300,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 af839cfd5d..51a3226491 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -353,6 +353,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 c29e0c1fdf..3978afc124 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 @@ -305,6 +305,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 b680331ef6..72693a2aa9 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 @@ -294,6 +294,12 @@ Support for Temper temperature sensors has been contributed by +
  • + IoT Data Exploration with Jupyter Notebooks +
  • + + +
  • Visualize your IoT data
  • @@ -317,12 +323,6 @@ Support for Temper temperature sensors has been contributed by - Using USB webcams with Home Assistant - - - 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 d0bf41a61a..8b019ef49e 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 @@ -204,6 +204,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 0940897430..f20d9062ef 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 @@ -317,6 +317,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 ddb46baa2e..02f4b67aec 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 @@ -291,6 +291,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 0fbd1a646b..d55156baf9 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 @@ -494,6 +494,12 @@ PubSubClient client(ethClient); 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 6edbe8a4af..dfe7e62b7f 100644 --- a/blog/2015/09/13/home-assistant-meets-ifttt/index.html +++ b/blog/2015/09/13/home-assistant-meets-ifttt/index.html @@ -353,6 +353,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 e2b1a76f20..51a19b57cc 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 @@ -254,6 +254,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 c8750d3641..3616732ef7 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 @@ -233,6 +233,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 ab06a03e6d..01077fa906 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 @@ -209,6 +209,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 065cf694d7..d16b0d53ea 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 @@ -553,6 +553,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000(); 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 aacf69c932..6811d3f0e6 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 @@ -198,6 +198,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 3e471095d1..c5ff4ade3f 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 @@ -220,6 +220,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 0b6c1b4eb3..ec38ea4cc7 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 @@ -216,6 +216,12 @@ diff --git a/blog/2015/11/22/survey-november-2015/index.html b/blog/2015/11/22/survey-november-2015/index.html index 6ff32f0561..5ee2623a12 100644 --- a/blog/2015/11/22/survey-november-2015/index.html +++ b/blog/2015/11/22/survey-november-2015/index.html @@ -256,6 +256,12 @@ diff --git a/blog/2015/12/05/community-highlights/index.html b/blog/2015/12/05/community-highlights/index.html index bc9ebb2b72..17c56412bf 100644 --- a/blog/2015/12/05/community-highlights/index.html +++ b/blog/2015/12/05/community-highlights/index.html @@ -191,6 +191,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 8b4925398f..3bc297fa04 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 @@ -198,6 +198,12 @@ diff --git a/blog/2015/12/07/influxdb-and-grafana/index.html b/blog/2015/12/07/influxdb-and-grafana/index.html index 00180afbc6..ecd7483fd4 100644 --- a/blog/2015/12/07/influxdb-and-grafana/index.html +++ b/blog/2015/12/07/influxdb-and-grafana/index.html @@ -289,6 +289,12 @@ $ sudo systemctl status grafana-server 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 cb48156811..d4e1bcc4f9 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 @@ -239,6 +239,12 @@ requests.get(' +
  • + IoT Data Exploration with Jupyter Notebooks +
  • + + +
  • Visualize your IoT data
  • @@ -262,12 +268,6 @@ requests.get(' - Using USB webcams with Home Assistant - - - 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 bb05c60773..917a75e2f1 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 @@ -211,6 +211,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 de7e46dff8..7e85edd4e5 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 @@ -278,6 +278,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 2ff8882750..d5b2f6231e 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 @@ -232,6 +232,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 44813df932..3da6046650 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 @@ -212,6 +212,12 @@ diff --git a/blog/2016/01/19/perfect-home-automation/index.html b/blog/2016/01/19/perfect-home-automation/index.html index 404c6df1cc..cdd048736c 100644 --- a/blog/2016/01/19/perfect-home-automation/index.html +++ b/blog/2016/01/19/perfect-home-automation/index.html @@ -216,6 +216,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 108cfa4e21..4ce9274f76 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 @@ -218,6 +218,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 e11950ae78..d9ed7a7d02 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 @@ -405,6 +405,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 d57461e428..652a732336 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 @@ -355,6 +355,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 9d245205d6..e2eef2fd22 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 @@ -221,6 +221,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 2afd30a58b..9d83a98659 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 @@ -323,6 +323,12 @@ output = audioresample ! audio/x-raw,rate=48000,channels=2,format=S16LE ! audioc diff --git a/blog/2016/02/20/community-highlights/index.html b/blog/2016/02/20/community-highlights/index.html index d2806a2733..0b9c07999f 100644 --- a/blog/2016/02/20/community-highlights/index.html +++ b/blog/2016/02/20/community-highlights/index.html @@ -231,6 +231,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 48377a3e63..f170b2e8be 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 @@ -220,6 +220,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 5cb473aab7..d49f9f7cb7 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 @@ -226,6 +226,12 @@ player state attributes. This change affects automations, scripts and scenes. +
  • + IoT Data Exploration with Jupyter Notebooks +
  • + + +
  • Visualize your IoT data
  • @@ -249,12 +255,6 @@ player state attributes. This change affects automations, scripts and scenes. - -
  • - Using USB webcams with Home Assistant -
  • - - 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 e8339c0822..657632d8ae 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 @@ -237,6 +237,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 3a7417d2c5..dfd1656a77 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 @@ -189,6 +189,12 @@ diff --git a/blog/2016/04/07/static-website/index.html b/blog/2016/04/07/static-website/index.html index 40e8596186..c42e9e6e5d 100644 --- a/blog/2016/04/07/static-website/index.html +++ b/blog/2016/04/07/static-website/index.html @@ -195,6 +195,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 dd0ceef686..140d74d3f4 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 @@ -203,6 +203,12 @@ diff --git a/blog/2016/04/17/updated-documentation/index.html b/blog/2016/04/17/updated-documentation/index.html index 99819b7400..2eedb27344 100644 --- a/blog/2016/04/17/updated-documentation/index.html +++ b/blog/2016/04/17/updated-documentation/index.html @@ -187,6 +187,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 bf94b12a9b..7d334b0fa3 100644 --- a/blog/2016/04/19/to-infinity-and-beyond/index.html +++ b/blog/2016/04/19/to-infinity-and-beyond/index.html @@ -204,6 +204,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 d0c2b4b489..cf8023f5bf 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 @@ -222,6 +222,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 459c7731d9..dde0c5c4ce 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 @@ -313,6 +313,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 3f6ffca5e6..224248c6d1 100644 --- a/blog/2016/05/06/open-iot-summit-talk/index.html +++ b/blog/2016/05/06/open-iot-summit-talk/index.html @@ -185,6 +185,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 a063cf1fb3..a8729a1fca 100644 --- a/blog/2016/05/07/empowering-scripts-and-alexa/index.html +++ b/blog/2016/05/07/empowering-scripts-and-alexa/index.html @@ -275,6 +275,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 bf7aa6446f..8f0d8843c4 100644 --- a/blog/2016/05/12/video-configuring-home-assistant/index.html +++ b/blog/2016/05/12/video-configuring-home-assistant/index.html @@ -185,6 +185,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 b63a93bbf7..ed32de13c2 100644 --- a/blog/2016/05/18/why-we-use-polymer/index.html +++ b/blog/2016/05/18/why-we-use-polymer/index.html @@ -199,6 +199,12 @@ diff --git a/blog/2016/05/21/release-020/index.html b/blog/2016/05/21/release-020/index.html index 31765ed3fa..733547e569 100644 --- a/blog/2016/05/21/release-020/index.html +++ b/blog/2016/05/21/release-020/index.html @@ -220,6 +220,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 c08be3be77..db73118ffa 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 @@ -191,6 +191,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 954fd83f2d..737d362e08 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 @@ -329,6 +329,12 @@ diff --git a/blog/2016/06/01/community-highlights/index.html b/blog/2016/06/01/community-highlights/index.html index fb10923b6b..1a0d79ef89 100644 --- a/blog/2016/06/01/community-highlights/index.html +++ b/blog/2016/06/01/community-highlights/index.html @@ -205,6 +205,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 3077167294..ea508d9cad 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 @@ -239,6 +239,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 4647cfec7e..d503f5015f 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 @@ -210,6 +210,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 969368f64b..f4b7224bf1 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 @@ -234,6 +234,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 03f5e1fb4d..a62f53b617 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 @@ -300,6 +300,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 a7626f4a88..7bd14eee70 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 @@ -233,6 +233,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 b74a8c7d41..de2483493f 100644 --- a/blog/2016/07/06/pocketchip-running-home-assistant/index.html +++ b/blog/2016/07/06/pocketchip-running-home-assistant/index.html @@ -236,6 +236,12 @@ $ hass --open-ui 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 4c53475eaa..d5d3e92766 100644 --- a/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html +++ b/blog/2016/07/16/sqlalchemy-knx-join-simplisafe/index.html @@ -230,6 +230,12 @@ $ hass --script db_migrator --config /path/to/config 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 25bbe9fbc8..4fffa62e80 100644 --- a/blog/2016/07/19/visualizing-your-iot-data/index.html +++ b/blog/2016/07/19/visualizing-your-iot-data/index.html @@ -288,6 +288,12 @@ plt.savefig(' +
  • + IoT Data Exploration with Jupyter Notebooks +
  • + + +
  • @@ -307,12 +313,6 @@ plt.savefig(' - Using USB webcams with Home Assistant -
  • - - 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 new file mode 100644 index 0000000000..90493ba4dd --- /dev/null +++ b/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/index.html @@ -0,0 +1,324 @@ + + + + + + + + + + IoT Data Exploration with Jupyter Notebooks - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + +
    +
    + +
    + + +
    + +
    + +

    IoT Data Exploration with Jupyter Notebooks

    + + + +
    + + + three minutes reading time + + + + + + Comments + +
    + +
    + + +

    This is the first blog post by Anton Kireyeu. A new contributor to Home Assistant who will focus on exploring and visualizing Home Assistant data.

    + +

    As we learned in the recent blog post by Fabian, all operational data of your Home Assistant application is stored locally and is available for exploration. Our first steps were querying data with the DB Browser for SQLite, exporting the data extract as a CSV file and graphing in LibreOffice. But what else can be done with this data and what tools are there available?

    + +

    This post will help you get set up using a few popular data scientist tools to allow you to locally process your data:

    + +
      +
    •  Pandas: an open source tool for data analysis for Python
    • +
    •  matplotlib: a Python plotting library
    • +
    •  Jupyter notebook: application for creation and sharing of documents containing live code, visualizations and explanatory text
    • +
    + +

    + +One of the graphs created with this tutorial. +

    + +

    TL; DR: Use this Jupyter Notebook to visualize of your data

    + + + +

    Dependencies

    + +

    In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:

    + +
      +
    • Pandas
    • +
    • NumPy
    • +
    • Matplotlib
    • +
    • SQLAlchemy
    • +
    • Jupyter
    • +
    + +

    As a Windows user myself, I find the easiest, quickest and most hassle-free way of installing all of these dependencies is to use WinPython. This free open-source portable distribution includes all of the dependencies required for this notebook, as well as a few other essential Python libraries you may require for data exploration in the future.

    + +

    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!

    + +

    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:

    + +
      +
    • download the tutorial Jupyter Notebook (leads to preview page, from there click download top-right)
    • +
    • launch the Jupyter Notebook App
    • +
    • Click the ‘upload’ button to add the downloaded notebook to Jupyter
    • +
    • Adjust the DB_URL at the beginning of the notebook to point at your Home Assistant database
    • +
    • Select in top menu: Cell -> Run All
    • +
    + +

    That’s it! The included code will walk you through importing the required libraries, show running raw SQL against your local database, plotting basic data from the states table, and in the end output a few plots of changes for every entity in your system as well as the mean daily value for the past 20 days.

    + +

    After just those few steps, you will be greeted with beautiful formatted data like this:

    + +

    + +One of the graphs created with this tutorial. +

    + +

    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!

    + +

    While you learn and explore your IoT data, we will be working on providing more ready-to-use Jupyter Notebooks. Feel free to ask questions or provide suggestions. Would you like to see a specific visualization? Is there a particular facet of data you’re interested in? Let’s talk about it, let’s dive into the world of data together!

    +
    + + +
    +

    Comments

    +
    +
    + + +
    + + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index 40d6c88c83..c3d4f35375 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -98,6 +98,40 @@

    2016

    + + + +
    @@ -2501,6 +2535,12 @@ diff --git a/blog/categories/community/atom.xml b/blog/categories/community/atom.xml index 97929f3417..55a834a9df 100644 --- a/blog/categories/community/atom.xml +++ b/blog/categories/community/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Community | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/community/index.html b/blog/categories/community/index.html index e0bcbf8179..5107661a7d 100644 --- a/blog/categories/community/index.html +++ b/blog/categories/community/index.html @@ -268,6 +268,12 @@ diff --git a/blog/categories/device-tracking/atom.xml b/blog/categories/device-tracking/atom.xml index 4639e844c9..3670bef601 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/device-tracking/index.html b/blog/categories/device-tracking/index.html index a1573a1ff2..2475784a13 100644 --- a/blog/categories/device-tracking/index.html +++ b/blog/categories/device-tracking/index.html @@ -199,6 +199,12 @@ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index 4f4ec66172..613c3c4c81 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: ESP8266 | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index d646978ddd..cce7d3fef9 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -199,6 +199,12 @@ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 5b63451f3a..7c4f192c10 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ @@ -13,6 +13,79 @@ Octopress + + <![CDATA[IoT Data Exploration with Jupyter Notebooks]]> + + 2016-07-23T18:00:00+00:00 + https://home-assistant.io/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks + This is the first blog post by Anton Kireyeu. A new contributor to Home Assistant who will focus on exploring and visualizing Home Assistant data.

    + +

    As we learned in the recent blog post by Fabian, all operational data of your Home Assistant application is stored locally and is available for exploration. Our first steps were querying data with the DB Browser for SQLite, exporting the data extract as a CSV file and graphing in LibreOffice. But what else can be done with this data and what tools are there available?

    + +

    This post will help you get set up using a few popular data scientist tools to allow you to locally process your data:

    + +
      +
    •  Pandas: an open source tool for data analysis for Python
    • +
    •  matplotlib: a Python plotting library
    • +
    •  Jupyter notebook: application for creation and sharing of documents containing live code, visualizations and explanatory text
    • +
    + +

    + +One of the graphs created with this tutorial. +

    + +

    TL; DR: Use this Jupyter Notebook to visualize of your data

    + + + +

    Dependencies

    + +

    In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:

    + +
      +
    • Pandas
    • +
    • NumPy
    • +
    • Matplotlib
    • +
    • SQLAlchemy
    • +
    • Jupyter
    • +
    + +

    As a Windows user myself, I find the easiest, quickest and most hassle-free way of installing all of these dependencies is to use WinPython. This free open-source portable distribution includes all of the dependencies required for this notebook, as well as a few other essential Python libraries you may require for data exploration in the future.

    + +

    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!

    + +

    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:

    + +
      +
    • download the tutorial Jupyter Notebook (leads to preview page, from there click download top-right)
    • +
    • launch the Jupyter Notebook App
    • +
    • Click the ‘upload’ button to add the downloaded notebook to Jupyter
    • +
    • Adjust the DB_URL at the beginning of the notebook to point at your Home Assistant database
    • +
    • Select in top menu: Cell -> Run All
    • +
    + +

    That’s it! The included code will walk you through importing the required libraries, show running raw SQL against your local database, plotting basic data from the states table, and in the end output a few plots of changes for every entity in your system as well as the mean daily value for the past 20 days.

    + +

    After just those few steps, you will be greeted with beautiful formatted data like this:

    + +

    + +One of the graphs created with this tutorial. +

    + +

    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!

    + +

    While you learn and explore your IoT data, we will be working on providing more ready-to-use Jupyter Notebooks. Feel free to ask questions or provide suggestions. Would you like to see a specific visualization? Is there a particular facet of data you’re interested in? Let’s talk about it, let’s dive into the world of data together!

    +]]>
    +
    + <![CDATA[Visualize your IoT data]]> @@ -351,160 +424,6 @@ target_dir /tmp

    I hope that this little article could give you an idea of extending Home Assistant in an unconventional way.

    -]]> -
    - - - <![CDATA[Multi-room audio with Snapcast, Mopidy, and Home Assistant]]> - - 2016-02-18T05:10:56+00:00 - https://home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast - Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.

    - -

    Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.

    - -

    You’ll need two key software packages, besides Home Assistant. The first is Mopidy, a music server that can play local files, or connect to streaming music services like Spotify. The second is Snapcast, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.

    - -

    Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several Mopidy-only web-based options available. On Android, Remotedy is particularly nice since you can access multiple Mopidy instances in one place.

    - -

    Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the weblink component.

    - -

    - -

    - - - -

    Staging

    - - - -

    Configure Mopidy

    - -

    Mopidy can be run with multiple configuration files, each extending the previous file. This is helpful when we’re running multiple instances with varying functionality.

    - -

    core.conf

    -

    The core configuration is shared between all instances:

    - -
    -
    [mpd]
    -hostname = ::
    -
    -[http]
    -hostname = ::
    -
    -[audio]
    -output = alsasink
    -
    -[spotify]
    -username = <redacted>
    -password = <redacted>
    -
    -
    -
    - -

    local.conf

    -

    Add the local configuration on computers that have local media files:

    - -
    -
    [local]
    -media_dir = <your/music/here>
    -
    -
    -
    - -

    snapcast.conf

    -

    Finally, the Mopidy instance that connects with Snapcast needs special configuration. Run on a different port to avoid conflicts if you have a second Mopidy instance running on your computer. The audio output is sent to a named pipe - Snapcast will read from there. Note that you may have to adjust the audio output attribute depending on your system and audio sources.

    - -
    -
    [mpd]
    -hostname = ::
    -port = 6601
    -
    -[http]
    -hostname = ::
    -port = 6681
    -
    -[audio]
    -output = audioresample ! audio/x-raw,rate=48000,channels=2,format=S16LE ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo
    -
    -
    -
    - -

    Run Mopidy

    - -

    To run a room-specific instance:

    - -
    -
    $ mopidy --config $CONF_DIR/core.conf
    -
    -
    -
    - -

    To run a room-specific instance with local media:

    - -
    -
    $ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf
    -
    -
    -
    - -

    To run the special Snapcast-connected instance (with local media):

    - -
    -
    $ mopidy --config $CONF_DIR/core.conf:$CONF_DIR/local.conf:$CONF_DIR/snapcast.conf
    -
    -
    -
    - -

    Run Snapcast

    - -

    Start the snapserver on the same server running Mopidy with the snapcast configuration.

    - -
    -
    $ snapserver   # or use systemd
    -
    -
    -
    - -

    Start the snapclient on computers that will be playing audio.

    - -
    -
    $ snapclient   # or use systemd, add -h <server host> if necessary
    -
    -
    -
    - -

    Configure Snapcast

    - -

    There are a number of snapcast configuration options, but the one relevant to Home Assistant is the client names. You can set them in the snapserver configuration file, by default located at ~/.config/Snapcast/settings.json. Only edit this file while the snapserver is not running. Modify the name JSON value to your liking - this is how the client will be named in Home Assistant.

    - -

    Configure Home Assistant

    - -

    Use the mpd and snapcast components. Optionally, use weblink to provide easy access to a Mopidy web UI.

    - -
    -
    media_player:
    -- platform: snapcast
    -  host: xxxxx
    -- platform: mpd
    -  server: xxxx
    -  location: Multi-Room Controller
    -- platform: mpd
    -  server: xxx
    -  location: Room 1
    -
    -weblink:
    -  entities:
    -  - name: Multi-Room Player
    -    url: xxxx
    -
    -
    -
    - ]]>
    diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index 9f0ddc7776..c7b7eefe63 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -98,6 +98,40 @@

    2016

    + + + +
    @@ -594,6 +628,12 @@ diff --git a/blog/categories/ibeacons/atom.xml b/blog/categories/ibeacons/atom.xml index 4c90effe0c..5bdcdfb581 100644 --- a/blog/categories/ibeacons/atom.xml +++ b/blog/categories/ibeacons/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: iBeacons | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/ibeacons/index.html b/blog/categories/ibeacons/index.html index e05cfe52f8..b2623c1bb2 100644 --- a/blog/categories/ibeacons/index.html +++ b/blog/categories/ibeacons/index.html @@ -235,6 +235,12 @@ diff --git a/blog/categories/internet-of-things/atom.xml b/blog/categories/internet-of-things/atom.xml index 0616d85547..3742b7feff 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+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 6fe05260d6..5ec661fbde 100644 --- a/blog/categories/internet-of-things/index.html +++ b/blog/categories/internet-of-things/index.html @@ -294,6 +294,12 @@ diff --git a/blog/categories/iot-data/atom.xml b/blog/categories/iot-data/atom.xml index 316f96ca45..575fcea000 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ @@ -13,6 +13,79 @@ Octopress + + <![CDATA[IoT Data Exploration with Jupyter Notebooks]]> + + 2016-07-23T18:00:00+00:00 + https://home-assistant.io/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks + This is the first blog post by Anton Kireyeu. A new contributor to Home Assistant who will focus on exploring and visualizing Home Assistant data.

    + +

    As we learned in the recent blog post by Fabian, all operational data of your Home Assistant application is stored locally and is available for exploration. Our first steps were querying data with the DB Browser for SQLite, exporting the data extract as a CSV file and graphing in LibreOffice. But what else can be done with this data and what tools are there available?

    + +

    This post will help you get set up using a few popular data scientist tools to allow you to locally process your data:

    + +
      +
    •  Pandas: an open source tool for data analysis for Python
    • +
    •  matplotlib: a Python plotting library
    • +
    •  Jupyter notebook: application for creation and sharing of documents containing live code, visualizations and explanatory text
    • +
    + +

    + +One of the graphs created with this tutorial. +

    + +

    TL; DR: Use this Jupyter Notebook to visualize of your data

    + + + +

    Dependencies

    + +

    In order to run the provided Jupyter notebook, please make sure you have the following applications/libraries installed on your computer:

    + +
      +
    • Pandas
    • +
    • NumPy
    • +
    • Matplotlib
    • +
    • SQLAlchemy
    • +
    • Jupyter
    • +
    + +

    As a Windows user myself, I find the easiest, quickest and most hassle-free way of installing all of these dependencies is to use WinPython. This free open-source portable distribution includes all of the dependencies required for this notebook, as well as a few other essential Python libraries you may require for data exploration in the future.

    + +

    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!

    + +

    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:

    + +
      +
    • download the tutorial Jupyter Notebook (leads to preview page, from there click download top-right)
    • +
    • launch the Jupyter Notebook App
    • +
    • Click the ‘upload’ button to add the downloaded notebook to Jupyter
    • +
    • Adjust the DB_URL at the beginning of the notebook to point at your Home Assistant database
    • +
    • Select in top menu: Cell -> Run All
    • +
    + +

    That’s it! The included code will walk you through importing the required libraries, show running raw SQL against your local database, plotting basic data from the states table, and in the end output a few plots of changes for every entity in your system as well as the mean daily value for the past 20 days.

    + +

    After just those few steps, you will be greeted with beautiful formatted data like this:

    + +

    + +One of the graphs created with this tutorial. +

    + +

    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!

    + +

    While you learn and explore your IoT data, we will be working on providing more ready-to-use Jupyter Notebooks. Feel free to ask questions or provide suggestions. Would you like to see a specific visualization? Is there a particular facet of data you’re interested in? Let’s talk about it, let’s dive into the world of data together!

    +]]>
    +
    + <![CDATA[Visualize your IoT data]]> diff --git a/blog/categories/iot-data/index.html b/blog/categories/iot-data/index.html index d08f7bc205..740c3a2d4a 100644 --- a/blog/categories/iot-data/index.html +++ b/blog/categories/iot-data/index.html @@ -98,6 +98,40 @@

    2016

    + + + +
    @@ -197,6 +231,12 @@ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index 9c53b163b2..6e973fe8bd 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: MQTT | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 7ca88259cb..4d6fe2577a 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -270,6 +270,12 @@ diff --git a/blog/categories/organisation/atom.xml b/blog/categories/organisation/atom.xml index a2d7e3e9d2..92cbcab4f6 100644 --- a/blog/categories/organisation/atom.xml +++ b/blog/categories/organisation/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Organisation | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/organisation/index.html b/blog/categories/organisation/index.html index cc9d6f795e..08d10677d1 100644 --- a/blog/categories/organisation/index.html +++ b/blog/categories/organisation/index.html @@ -230,6 +230,12 @@ diff --git a/blog/categories/owntracks/atom.xml b/blog/categories/owntracks/atom.xml index 74bab6ed7d..1d1933cfbd 100644 --- a/blog/categories/owntracks/atom.xml +++ b/blog/categories/owntracks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: OwnTracks | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/owntracks/index.html b/blog/categories/owntracks/index.html index fb7b64f6ca..95641f6fb6 100644 --- a/blog/categories/owntracks/index.html +++ b/blog/categories/owntracks/index.html @@ -235,6 +235,12 @@ diff --git a/blog/categories/presence-detection/atom.xml b/blog/categories/presence-detection/atom.xml index 660ae1fd25..3f0e0c4428 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/presence-detection/index.html b/blog/categories/presence-detection/index.html index 87de310c36..8f9c125b8b 100644 --- a/blog/categories/presence-detection/index.html +++ b/blog/categories/presence-detection/index.html @@ -199,6 +199,12 @@ diff --git a/blog/categories/public-service-announcement/atom.xml b/blog/categories/public-service-announcement/atom.xml index 82ea8a3717..d2518327e3 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+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 fca3f3be90..27882c9fcc 100644 --- a/blog/categories/public-service-announcement/index.html +++ b/blog/categories/public-service-announcement/index.html @@ -195,6 +195,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index eed960e8f3..160090df91 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index c4ba1afc2c..d25a9bf09e 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -1416,6 +1416,12 @@ diff --git a/blog/categories/survey/atom.xml b/blog/categories/survey/atom.xml index 39a9a7747c..cb9d1a01a5 100644 --- a/blog/categories/survey/atom.xml +++ b/blog/categories/survey/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Survey | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/survey/index.html b/blog/categories/survey/index.html index 0ab4d7ec71..6dc7d0ed01 100644 --- a/blog/categories/survey/index.html +++ b/blog/categories/survey/index.html @@ -195,6 +195,12 @@ diff --git a/blog/categories/talks/atom.xml b/blog/categories/talks/atom.xml index b255392b79..8ba5f6d612 100644 --- a/blog/categories/talks/atom.xml +++ b/blog/categories/talks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Talks | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/talks/index.html b/blog/categories/talks/index.html index 23184ed4a1..8956d527bc 100644 --- a/blog/categories/talks/index.html +++ b/blog/categories/talks/index.html @@ -197,6 +197,12 @@ diff --git a/blog/categories/technology/atom.xml b/blog/categories/technology/atom.xml index e9ceb238a4..0c812b930d 100644 --- a/blog/categories/technology/atom.xml +++ b/blog/categories/technology/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Technology | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/technology/index.html b/blog/categories/technology/index.html index b552352644..e20daae78c 100644 --- a/blog/categories/technology/index.html +++ b/blog/categories/technology/index.html @@ -195,6 +195,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index 7894c527c8..bf5c6b55b5 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]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index f557bae227..c6520ccb7b 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -195,6 +195,12 @@ diff --git a/blog/categories/video/atom.xml b/blog/categories/video/atom.xml index 3042c5a2f7..792dd28f48 100644 --- a/blog/categories/video/atom.xml +++ b/blog/categories/video/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Video | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/video/index.html b/blog/categories/video/index.html index 211e84033f..257a47dd36 100644 --- a/blog/categories/video/index.html +++ b/blog/categories/video/index.html @@ -398,6 +398,12 @@ diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index 4e488c3e5c..3c22919ce2 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Website | Home Assistant]]> - 2016-07-23T16:06:39+00:00 + 2016-07-23T19:22:44+00:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index 55b25081ae..67f8b1b4be 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -230,6 +230,12 @@ diff --git a/blog/index.html b/blog/index.html index 0a1aca10e1..ee23c75260 100644 --- a/blog/index.html +++ b/blog/index.html @@ -78,6 +78,69 @@ +
    +
    + +

    + IoT Data Exploration with Jupyter Notebooks +

    + + + +
    + + + three minutes reading time + + + + + + Comments + +
    + +
    + + +
    +

    This is the first blog post by Anton Kireyeu. A new contributor to Home Assistant who will focus on exploring and visualizing Home Assistant data.

    + +

    As we learned in the recent blog post by Fabian, all operational data of your Home Assistant application is stored locally and is available for exploration. Our first steps were querying data with the DB Browser for SQLite, exporting the data extract as a CSV file and graphing in LibreOffice. But what else can be done with this data and what tools are there available?

    + +

    This post will help you get set up using a few popular data scientist tools to allow you to locally process your data:

    + +
      +
    •  Pandas: an open source tool for data analysis for Python
    • +
    •  matplotlib: a Python plotting library
    • +
    •  Jupyter notebook: application for creation and sharing of documents containing live code, visualizations and explanatory text
    • +
    + +

    + +One of the graphs created with this tutorial. +

    + +

    TL; DR: Use this Jupyter Notebook to visualize of your data

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

    - iBeacons: How to track things that can’t track themselves (part II) -

    - - - -
    - - - eight minutes reading time - - - - - - Comments - -
    - -
    - - -
    -

    This post is by Home Assistant contributor Greg Dowling.

    - -

    In Part 1 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.

    - -

    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.

    - -

    Your phone knows roughly where it is located (based on mobile phone masts, Wi-Fi networks or GPS). If your phone sees an I’m here message then it knows the beacon is close.

    - -

    If your phone can remember (or tell a server) where it was when it last saw the iBeacon - then it knows where the beacon was. So the result of this is that you can track where an iBeacon was - even though the iBeacon doesn’t have any tracking technology itself.

    - -

    So if you put an iBeacon on your keys or in your car - then you can track them.

    - -

    - - Here are my keys - with a Estimote Nearable iBeacon stuck to them. Ugly but effective! -

    - - - - Read on → -

    diff --git a/blog/posts/2/index.html b/blog/posts/2/index.html index 62df359668..956b3dd25f 100644 --- a/blog/posts/2/index.html +++ b/blog/posts/2/index.html @@ -78,6 +78,72 @@ +
    +
    + +

    + iBeacons: How to track things that can’t track themselves (part II) +

    + + + +
    + + + eight minutes reading time + + + + + + Comments + +
    + +
    + + +
    +

    This post is by Home Assistant contributor Greg Dowling.

    + +

    In Part 1 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.

    + +

    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.

    + +

    Your phone knows roughly where it is located (based on mobile phone masts, Wi-Fi networks or GPS). If your phone sees an I’m here message then it knows the beacon is close.

    + +

    If your phone can remember (or tell a server) where it was when it last saw the iBeacon - then it knows where the beacon was. So the result of this is that you can track where an iBeacon was - even though the iBeacon doesn’t have any tracking technology itself.

    + +

    So if you put an iBeacon on your keys or in your car - then you can track them.

    + +

    + + Here are my keys - with a Estimote Nearable iBeacon stuck to them. Ugly but effective! +

    + + + + Read on → + +
    +
    +
    +
    @@ -702,55 +768,6 @@ -
    -
    -
    - -
    -
    - -

    - Updated documentation -

    - - - -
    - - - 1 minute reading time - - - - - - Comments - -
    - -
    - - -
    -

    One of the main complaints that we receive is something along the lines “I read that X is possible yet I am unable to find it on the website.”. This post is to announce that we have taken the first steps to improve it by revamping the getting started and developers sections. It’s still a work in progress but we now have a solid foundation to build on for the future 👍.

    - -

    Our documentation has been going through various phases. Initially it was just the README in our GitHub repository. I discovered Jekyll and GitHub pages in December 2014 and created home-assistant.io. I more or less broke the README in 5 pages and called it a website. Back then we had a whopping 11 components.

    - -

    As Home Assistant grew, so did our documentation. Fabian Affolter does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that’s quite a feat given our frequent releases! But despite all the efforts, the documentation outgrew our existing documentation organisation.

    - -

    Today it has been almost 1.5 years since we started the website. We now have 264 components and platforms under our belt and have been honored with 1.5 million page views ✨. And hopefully we now also have documentation that our community deserves.

    - -

    Finally, if you see some content that could use more clarifcation or is outdated, don’t hesitate to use the ‘Edit in GitHub’ link that is present on each page.

    - -

    diff --git a/blog/posts/3/index.html b/blog/posts/3/index.html index 59b6975283..ab60c8ba69 100644 --- a/blog/posts/3/index.html +++ b/blog/posts/3/index.html @@ -78,6 +78,55 @@ +
    +
    + +

    + Updated documentation +

    + + + +
    + + + 1 minute reading time + + + + + + Comments + +
    + +
    + + +
    +

    One of the main complaints that we receive is something along the lines “I read that X is possible yet I am unable to find it on the website.”. This post is to announce that we have taken the first steps to improve it by revamping the getting started and developers sections. It’s still a work in progress but we now have a solid foundation to build on for the future 👍.

    + +

    Our documentation has been going through various phases. Initially it was just the README in our GitHub repository. I discovered Jekyll and GitHub pages in December 2014 and created home-assistant.io. I more or less broke the README in 5 pages and called it a website. Back then we had a whopping 11 components.

    + +

    As Home Assistant grew, so did our documentation. Fabian Affolter does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that’s quite a feat given our frequent releases! But despite all the efforts, the documentation outgrew our existing documentation organisation.

    + +

    Today it has been almost 1.5 years since we started the website. We now have 264 components and platforms under our belt and have been honored with 1.5 million page views ✨. And hopefully we now also have documentation that our community deserves.

    + +

    Finally, if you see some content that could use more clarifcation or is outdated, don’t hesitate to use the ‘Edit in GitHub’ link that is present on each page.

    + + +
    +
    +
    +
    @@ -745,109 +794,6 @@ Hold your NFC tag against the belly of Garfield to unlock the alarm. -
    -
    -
    - -
    -
    - -

    - Classifying the Internet of Things -

    - - - -
    - - - seven minutes reading time - - - - - - Comments - -
    - -
    - - -
    -

    The core of home automation is knowing what’s going on. The faster we know about a state change, the better we can serve the user. If you want to have your lights to turn on when you arrive at home, it doesn’t help if it only knows about it after you’ve already opened the door and manually (!!) turned on the light.

    - -

    Each smart device consists of the ‘normal’ device and the piece that makes it ‘smart’: the connectivity. The connectivity part of a device can consists of either control, state or both.

    - -

    State describes what a device is up to right now. For example, a light can be on with a red color and a medium brightness.

    - -

    Control is about controlling the smart device by sending commands via an API. These commands can vary from configuring how a device works till mimicking how a user would interact with a device. A media player can allow skipping to the next track and a sensor could allow to configure its sensitivity or polling interval.

    - -

    The Home Assistant APIs are setup to be as convenient as possible. However, a network is always as weak as it’s weakest link. In our case these are the integrations. Take for example controlling a light that does not report state. The only state Home Assistant can report on after sending a command is the assumed state: what do we expect the state of the light to be if the command worked.

    - -

    We want our users to get the best home automation experience out there and this starts with making sure they have devices that work well with Home Assistant. That’s why we will start applying the following classifiers to our integrations:

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ClassifierDescription
    Assumed State - We are unable to get the state of the device. Best we can do is to assume the state based on our last command. -
    Cloud Polling - Integration of this device happens via the cloud and requires an active internet connection. Polling the state means that an update might be noticed later. -
    Cloud Push - Integration of this device happens via the cloud and requires an active internet connection. Home Assistant will be notified as soon as a new state is available. -
    Local Polling - Offers direct communication with device. Polling the state means that an update might be noticed later. -
    Local Push - Offers direct communication with device. Home Assistant will be notified as soon as a new state is available. -
    - -

    The background to how we got to these classifiers can be read after the break.

    - - - - Read on → -

    diff --git a/blog/posts/4/index.html b/blog/posts/4/index.html index 6f5a2a37de..150ca734f7 100644 --- a/blog/posts/4/index.html +++ b/blog/posts/4/index.html @@ -78,6 +78,109 @@ +
    +
    + +

    + Classifying the Internet of Things +

    + + + +
    + + + seven minutes reading time + + + + + + Comments + +
    + +
    + + +
    +

    The core of home automation is knowing what’s going on. The faster we know about a state change, the better we can serve the user. If you want to have your lights to turn on when you arrive at home, it doesn’t help if it only knows about it after you’ve already opened the door and manually (!!) turned on the light.

    + +

    Each smart device consists of the ‘normal’ device and the piece that makes it ‘smart’: the connectivity. The connectivity part of a device can consists of either control, state or both.

    + +

    State describes what a device is up to right now. For example, a light can be on with a red color and a medium brightness.

    + +

    Control is about controlling the smart device by sending commands via an API. These commands can vary from configuring how a device works till mimicking how a user would interact with a device. A media player can allow skipping to the next track and a sensor could allow to configure its sensitivity or polling interval.

    + +

    The Home Assistant APIs are setup to be as convenient as possible. However, a network is always as weak as it’s weakest link. In our case these are the integrations. Take for example controlling a light that does not report state. The only state Home Assistant can report on after sending a command is the assumed state: what do we expect the state of the light to be if the command worked.

    + +

    We want our users to get the best home automation experience out there and this starts with making sure they have devices that work well with Home Assistant. That’s why we will start applying the following classifiers to our integrations:

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassifierDescription
    Assumed State + We are unable to get the state of the device. Best we can do is to assume the state based on our last command. +
    Cloud Polling + Integration of this device happens via the cloud and requires an active internet connection. Polling the state means that an update might be noticed later. +
    Cloud Push + Integration of this device happens via the cloud and requires an active internet connection. Home Assistant will be notified as soon as a new state is available. +
    Local Polling + Offers direct communication with device. Polling the state means that an update might be noticed later. +
    Local Push + Offers direct communication with device. Home Assistant will be notified as soon as a new state is available. +
    + +

    The background to how we got to these classifiers can be read after the break.

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

    - 0.9: Rollershutters, locks, binary sensors and InfluxDB -

    - - - -
    - - - less than one minute reading time - - - - - - Comments - -
    - -
    - - -
    -

    It’s been a few weeks but we managed to polish a nice new release of Home Assistant for y’all!

    - -

    - - - -

    To update, run pip3 install --upgrade homeassistant.

    - -

    - -

    - - -

    diff --git a/blog/posts/5/index.html b/blog/posts/5/index.html index 917058fc50..7d90fcadc5 100644 --- a/blog/posts/5/index.html +++ b/blog/posts/5/index.html @@ -78,6 +78,67 @@ +
    +
    + +

    + 0.9: Rollershutters, locks, binary sensors and InfluxDB +

    + + + +
    + + + less than one minute reading time + + + + + + Comments + +
    + +
    + + +
    +

    It’s been a few weeks but we managed to polish a nice new release of Home Assistant for y’all!

    + +

    + + + +

    To update, run pip3 install --upgrade homeassistant.

    + +

    + +

    + + + +
    +
    +
    +
    @@ -625,60 +686,6 @@ Inspried by a -
    - -

    - Home Assistant meets IFTTT -

    - - - -
    - - - two minutes reading time - - - - - - Comments - -
    - -
    - - -
    -

    Today we announce the release of Home Assistant v0.7.2 which includes brand new support by @sfam to integrate with IFTTT. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.

    - -

    It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.

    - -

    - -

    - -

    Head over to the setup instructions to get started with IFTTT. Click the read more button for some example recipes.

    - - - - Read on → - -
    -
    -
    - diff --git a/sitemap.xml b/sitemap.xml index aafc122ef9..4f851ba6dd 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,5 +1,9 @@ + + https://home-assistant.io/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/ + 2016-07-23T18:00:00+00:00 + https://home-assistant.io/blog/2016/07/19/visualizing-your-iot-data/ 2016-07-19T16:00:00+00:00 @@ -1977,36 +1981,39 @@ https://home-assistant.io/blog/2016/07/19/visualizing-your-iot-data/ + + https://home-assistant.io/blog/2016/07/23/internet-of-things-data-exploration-with-jupyter-notebooks/ + https://home-assistant.io/demo/dev-tools.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/demo/frontend.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/demo/index.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/demo/partial-map.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/googlef4f3693c209fe788.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/static/fonts/roboto/DESCRIPTION.en_us.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/static/fonts/robotomono/DESCRIPTION.en_us.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 https://home-assistant.io/static/mdi-demo.html - 2016-07-23T16:05:38+00:00 + 2016-07-23T19:22:06+00:00 diff --git a/topics/platform_options/index.html b/topics/platform_options/index.html index 194d9df798..59249a5bbd 100644 --- a/topics/platform_options/index.html +++ b/topics/platform_options/index.html @@ -184,6 +184,12 @@