diff --git a/atom.xml b/atom.xml index eb2f2bef9e..a18aedab94 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ @@ -13,6 +13,232 @@ Octopress + + <![CDATA[Laundry Automation: insight and notifications]]> + + 2015-08-26T08:12:00-07:00 + https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant + This is a guest post by Home Assistant user and contributor Nolan Gilley.

+ +

In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.

+ +

As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a Moteino, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don’t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the MQTT component to my Raspberry Pi.

+ +

After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn’t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It’s easy to see when the washing machine is in operation here. I used the same technique for the dryer’s accelerometer.

+ +

+ + + + Graph showing the accelerometer data +

+ + + + + + + +

Next it was just a matter of integrating everything with Home Assistant. I was able to use the MQTT component to read the washer and dryer states from the Moteino and display it in Home Assistant.

+ +

+ + Status of the dryer and washer in Home Assistant +

+ + +

Next I wrote scripts that are run whenever the washer or dryer completes a load. This is triggered by the automation component. When the laundry is complete I have the lights in the house turn red and notify me via PushBullet. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.

+ +

+ + + + Top left: reed switch. Bottom left: moteino. Right: Accelerometer. +

+ + +

Materials used:

+ + + + +

Sketch for the Moteino is available here.

+ +

Home Assistant Configuration:

+ +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+
mqtt:
+  broker: 192.168.1.100
+  port: 1883
+  keepalive: 60
+  qos: 0
+
+sensor:
+  platform: mqtt
+  name: "Dryer Status"
+  state_topic: "sensor/dryer"
+  unit_of_measurement: ""
+
+sensor 2:
+  platform: mqtt
+  name: "Washer Status"
+  state_topic: "sensor/washer"
+  unit_of_measurement: ""
+
+automation:
+  alias: Dryer complete
+
+  platform: state
+  state_entity_id: sensor.dryer_status
+  state_from: 'Running'
+  state_to: 'Complete'
+
+  execute_service: script.turn_on
+  service_entity_id: script.dryer_complete
+
+automation 2:
+  alias: Dryer emptied
+
+  platform: state
+  state_entity_id: sensor.dryer_status
+  state_from: 'Complete'
+  state_to: 'Empty'
+
+  execute_service: script.turn_on
+  service_entity_id: script.dryer_cleared
+
+script:
+  dryer_complete:
+    alias: Dryer Complete Script
+    sequence:
+      - alias: Pushbullet Notification
+        execute_service: notify.notify
+        service_data:
+          message: "The dryer has finished its cycle, please empty it!"
+      - alias: Living Room Lights Red
+        execute_service: scene.turn_on
+        service_data:
+          entity_id: scene.red
+      - delay:
+          seconds: 1
+      - alias: Living Room Lights Off
+        execute_service: light.turn_off
+        service_data:
+          entity_id: group.living_room
+      - delay:
+          seconds: 1
+      - alias: Living Room Lights Red
+        execute_service: scene.turn_on
+        service_data:
+          entity_id: scene.red
+
+  dryer_cleared:
+    alias: Dryer Cleared Script
+    sequence:
+      - alias: Living Room Lights Off
+        execute_service: light.turn_off
+        service_data:
+          entity_id: group.living_room
+      - delay:
+          seconds: 1
+      - alias: Living Room Lights Normal
+        execute_service: scene.turn_on
+        service_data:
+          entity_id: scene.normal
+ + +

Resources used:

+ + + +]]>
+
+ <![CDATA[Verisure devices and modern TP-Link routers now supported]]> diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index 046a7f9438..b485ed7c1e 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -213,6 +213,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 ebdceda52d..9cef3f37eb 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 @@ -275,6 +275,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 db3c03de8e..49fefabcca 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 @@ -257,6 +257,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 ef4f3a0ee8..ccf2377200 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 @@ -225,6 +225,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 96cf04b8e6..61a8665d4e 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -232,6 +232,12 @@ diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index e31a774508..2c7abd3d2d 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -237,6 +237,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 f2560b2a1f..20608e44da 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -255,6 +255,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 d613c4eb63..02f8d4ff82 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -233,6 +233,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 6ff54182fd..755c73c580 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 @@ -220,6 +220,12 @@ YAML allows the use of lists, which should make the configuration file a bit mor diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index 7a563a83b1..f18850ce61 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -221,6 +221,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 7b97f6984f..96b46ea2cd 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -267,6 +267,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 2519a68202..08d00413b7 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -340,6 +340,12 @@ James Cole has also contributed support for the diff --git a/blog/2015/04/25/release-notes/index.html b/blog/2015/04/25/release-notes/index.html index cc30150349..e37c5cd80f 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -356,6 +356,12 @@ James has also contributed support for integrating Transmission into Home Assist 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 3a76a7d7eb..1d106f2219 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -245,6 +245,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index b069107422..2fc96ec8ac 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -382,6 +382,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 f9fa1f9982..7a2baafbfb 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -461,6 +461,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 f28c1858ab..0962c7c64e 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 @@ -405,6 +405,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 ed40b25961..81fb1a2c20 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 @@ -368,6 +368,12 @@ Support for Temper temperature sensors has been contributed by +
  • + Laundry Automation: insight and notifications +
  • + + +
  • Verisure devices and modern TP-Link routers now supported
  • @@ -387,12 +393,6 @@ Support for Temper temperature sensors has been contributed by - Release notes for May 14, 2015 - - - 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 73a1c7a416..7e8648c0af 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 @@ -246,6 +246,12 @@ Home Assistant support to integrate your Ver 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 new file mode 100644 index 0000000000..b3c007b5b1 --- /dev/null +++ b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html @@ -0,0 +1,525 @@ + + + + + + + + + + + + Laundry Automation: insight and notifications - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    + +

    Laundry Automation: insight and notifications

    + + + +
    + + + + + + + + + + + + + + + + + + + five minutes reading time + + + + + + + + + Comments + +
    + +
    + + + + +

    This is a guest post by Home Assistant user and contributor Nolan Gilley.

    + +

    In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.

    + +

    As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a Moteino, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don’t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the MQTT component to my Raspberry Pi.

    + +

    After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn’t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It’s easy to see when the washing machine is in operation here. I used the same technique for the dryer’s accelerometer.

    + +

    + + + + Graph showing the accelerometer data +

    + + + + + + + +

    Next it was just a matter of integrating everything with Home Assistant. I was able to use the MQTT component to read the washer and dryer states from the Moteino and display it in Home Assistant.

    + +

    + + Status of the dryer and washer in Home Assistant +

    + + +

    Next I wrote scripts that are run whenever the washer or dryer completes a load. This is triggered by the automation component. When the laundry is complete I have the lights in the house turn red and notify me via PushBullet. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.

    + +

    + + + + Top left: reed switch. Bottom left: moteino. Right: Accelerometer. +

    + + +

    Materials used:

    + + + + +

    Sketch for the Moteino is available here.

    + +

    Home Assistant Configuration:

    + +
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +
    mqtt:
    +  broker: 192.168.1.100
    +  port: 1883
    +  keepalive: 60
    +  qos: 0
    +
    +sensor:
    +  platform: mqtt
    +  name: "Dryer Status"
    +  state_topic: "sensor/dryer"
    +  unit_of_measurement: ""
    +
    +sensor 2:
    +  platform: mqtt
    +  name: "Washer Status"
    +  state_topic: "sensor/washer"
    +  unit_of_measurement: ""
    +
    +automation:
    +  alias: Dryer complete
    +
    +  platform: state
    +  state_entity_id: sensor.dryer_status
    +  state_from: 'Running'
    +  state_to: 'Complete'
    +
    +  execute_service: script.turn_on
    +  service_entity_id: script.dryer_complete
    +
    +automation 2:
    +  alias: Dryer emptied
    +
    +  platform: state
    +  state_entity_id: sensor.dryer_status
    +  state_from: 'Complete'
    +  state_to: 'Empty'
    +
    +  execute_service: script.turn_on
    +  service_entity_id: script.dryer_cleared
    +
    +script:
    +  dryer_complete:
    +    alias: Dryer Complete Script
    +    sequence:
    +      - alias: Pushbullet Notification
    +        execute_service: notify.notify
    +        service_data:
    +          message: "The dryer has finished its cycle, please empty it!"
    +      - alias: Living Room Lights Red
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.red
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Off
    +        execute_service: light.turn_off
    +        service_data:
    +          entity_id: group.living_room
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Red
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.red
    +
    +  dryer_cleared:
    +    alias: Dryer Cleared Script
    +    sequence:
    +      - alias: Living Room Lights Off
    +        execute_service: light.turn_off
    +        service_data:
    +          entity_id: group.living_room
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Normal
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.normal
    + + +

    Resources used:

    + + + + + +
    + + +
    +

    Comments

    +
    +
    +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index a25d66ac63..b0431c366a 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -22,7 +22,7 @@ - + @@ -115,6 +115,43 @@ + + + +
    + +
    @@ -878,6 +915,12 @@ diff --git a/blog/categories/architecture/atom.xml b/blog/categories/architecture/atom.xml index fc82bdff4e..a7431b1e70 100644 --- a/blog/categories/architecture/atom.xml +++ b/blog/categories/architecture/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: architecture | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/architecture/index.html b/blog/categories/architecture/index.html index c78bae04a7..bc873b8059 100644 --- a/blog/categories/architecture/index.html +++ b/blog/categories/architecture/index.html @@ -207,6 +207,12 @@ diff --git a/blog/categories/branding/atom.xml b/blog/categories/branding/atom.xml index cd65d038ab..65ef731c80 100644 --- a/blog/categories/branding/atom.xml +++ b/blog/categories/branding/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: branding | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/branding/index.html b/blog/categories/branding/index.html index 1dd3f2e494..2e79656e56 100644 --- a/blog/categories/branding/index.html +++ b/blog/categories/branding/index.html @@ -207,6 +207,12 @@ diff --git a/blog/categories/component/atom.xml b/blog/categories/component/atom.xml index 7a4fe93575..48633dda7f 100644 --- a/blog/categories/component/atom.xml +++ b/blog/categories/component/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: component | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/component/index.html b/blog/categories/component/index.html index a3f8e66340..768f49a3f5 100644 --- a/blog/categories/component/index.html +++ b/blog/categories/component/index.html @@ -320,6 +320,12 @@ diff --git a/blog/categories/core/atom.xml b/blog/categories/core/atom.xml index 42f7d5e90d..e933993cbd 100644 --- a/blog/categories/core/atom.xml +++ b/blog/categories/core/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: core | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/core/index.html b/blog/categories/core/index.html index 3b3c7f1162..434a923859 100644 --- a/blog/categories/core/index.html +++ b/blog/categories/core/index.html @@ -244,6 +244,12 @@ diff --git a/blog/categories/frontend/atom.xml b/blog/categories/frontend/atom.xml index c44458e98c..8d9fdbfc7c 100644 --- a/blog/categories/frontend/atom.xml +++ b/blog/categories/frontend/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: frontend | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/frontend/index.html b/blog/categories/frontend/index.html index 8a1481eb2a..de4d81f176 100644 --- a/blog/categories/frontend/index.html +++ b/blog/categories/frontend/index.html @@ -246,6 +246,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index 79969d6bda..0922087fab 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]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index d22b3e7f31..61387d4e82 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -503,6 +503,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml new file mode 100644 index 0000000000..8a8ce8f6e1 --- /dev/null +++ b/blog/categories/user-stories/atom.xml @@ -0,0 +1,164 @@ + + + + <![CDATA[Category: user-stories | Home Assistant]]> + + + 2015-08-27T00:09:51-07:00 + https://home-assistant.io/ + + + + + Octopress + + + + <![CDATA[Laundry Automation: insight and notifications]]> + + 2015-08-26T08:12:00-07:00 + https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant + This is a guest post by Home Assistant user and contributor Nolan Gilley.

    + +

    In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.

    + +

    As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a Moteino, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don’t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the MQTT component to my Raspberry Pi.

    + +

    After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn’t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It’s easy to see when the washing machine is in operation here. I used the same technique for the dryer’s accelerometer.

    + +

    + + + + Graph showing the accelerometer data +

    + + + + + + + +

    Next it was just a matter of integrating everything with Home Assistant. I was able to use the MQTT component to read the washer and dryer states from the Moteino and display it in Home Assistant.

    + +

    + + Status of the dryer and washer in Home Assistant +

    + + +

    Next I wrote scripts that are run whenever the washer or dryer completes a load. This is triggered by the automation component. When the laundry is complete I have the lights in the house turn red and notify me via PushBullet. Once the laundry is taken care of another script runs that sets the lights back to normal. So far it has been very helpful and very reliable.

    + +

    + + + + Top left: reed switch. Bottom left: moteino. Right: Accelerometer. +

    + + +

    Materials used:

    + + + + +

    Sketch for the Moteino is available here.

    + +

    Home Assistant Configuration:

    + +
    mqtt:
    +  broker: 192.168.1.100
    +  port: 1883
    +  keepalive: 60
    +  qos: 0
    +
    +sensor:
    +  platform: mqtt
    +  name: "Dryer Status"
    +  state_topic: "sensor/dryer"
    +  unit_of_measurement: ""
    +
    +sensor 2:
    +  platform: mqtt
    +  name: "Washer Status"
    +  state_topic: "sensor/washer"
    +  unit_of_measurement: ""
    +
    +automation:
    +  alias: Dryer complete
    +
    +  platform: state
    +  state_entity_id: sensor.dryer_status
    +  state_from: 'Running'
    +  state_to: 'Complete'
    +
    +  execute_service: script.turn_on
    +  service_entity_id: script.dryer_complete
    +
    +automation 2:
    +  alias: Dryer emptied
    +
    +  platform: state
    +  state_entity_id: sensor.dryer_status
    +  state_from: 'Complete'
    +  state_to: 'Empty'
    +
    +  execute_service: script.turn_on
    +  service_entity_id: script.dryer_cleared
    +
    +script:
    +  dryer_complete:
    +    alias: Dryer Complete Script
    +    sequence:
    +      - alias: Pushbullet Notification
    +        execute_service: notify.notify
    +        service_data:
    +          message: "The dryer has finished its cycle, please empty it!"
    +      - alias: Living Room Lights Red
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.red
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Off
    +        execute_service: light.turn_off
    +        service_data:
    +          entity_id: group.living_room
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Red
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.red
    +
    +  dryer_cleared:
    +    alias: Dryer Cleared Script
    +    sequence:
    +      - alias: Living Room Lights Off
    +        execute_service: light.turn_off
    +        service_data:
    +          entity_id: group.living_room
    +      - delay:
    +          seconds: 1
    +      - alias: Living Room Lights Normal
    +        execute_service: scene.turn_on
    +        service_data:
    +          entity_id: scene.normal
    +
    + +

    Resources used:

    + + + +]]>
    +
    + +
    diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html new file mode 100644 index 0000000000..83420ea5f4 --- /dev/null +++ b/blog/categories/user-stories/index.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Category: user-stories - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + + + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index 19e3ddca64..165d1a4376 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: website | Home Assistant]]> - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index 3b6c614418..2ebcfe1613 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -207,6 +207,12 @@ diff --git a/blog/index.html b/blog/index.html index 0b6d9c7c60..b401c00898 100644 --- a/blog/index.html +++ b/blog/index.html @@ -22,7 +22,7 @@ - + @@ -97,6 +97,87 @@ +
    +
    + +

    + Laundry Automation: insight and notifications +

    + + + +
    + + + + + + + + + + + + + + + + + + + five minutes reading time + + + + + + + + + Comments + +
    + +
    + + + + +
    +

    This is a guest post by Home Assistant user and contributor Nolan Gilley.

    + +

    In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.

    + +

    As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a Moteino, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don’t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the MQTT component to my Raspberry Pi.

    + +

    After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn’t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It’s easy to see when the washing machine is in operation here. I used the same technique for the dryer’s accelerometer.

    + +

    + + + + Graph showing the accelerometer data +

    + + + + + + Read on → +
    + +
    +
    + +
    @@ -952,75 +1033,6 @@ An initial version of voice control for Home Assistant has landed. The current i -
    -
    - - -
    -
    - -

    - New logo for Home Assistant -

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

    It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

    - -

    The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

    - -

    - -The old logo, the new detailed logo and the new simple logo. -

    - - -

    diff --git a/blog/posts/2/index.html b/blog/posts/2/index.html index 97b4a600c9..3f17f9b31e 100644 --- a/blog/posts/2/index.html +++ b/blog/posts/2/index.html @@ -22,8 +22,7 @@ - + @@ -98,6 +97,75 @@ YAML allows the use …"> +
    +
    + +

    + New logo for Home Assistant +

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

    It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

    + +

    The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

    + +

    + +The old logo, the new detailed logo and the new simple logo. +

    + + + +
    +
    + +
    diff --git a/components/automation.html b/components/automation.html index 9e94b98161..a33cd5dc8a 100644 --- a/components/automation.html +++ b/components/automation.html @@ -133,7 +133,7 @@ state_to: 'below_horizon' # Action to be done when trigger activated - execute_service: notify.notify + execute_service: notify.NOTIFIER_NAME service_data: {"message":"The sun has set"}
    @@ -262,7 +262,7 @@ service_data: {"rgb_color": [255, 0, 0]} # Notify the user - execute_service: notify.notify + execute_service: notify.NOTIFIER_NAME service_data: {"message":"YAY"}
    @@ -309,7 +309,7 @@ state_from: 'above_horizon' state_to: 'below_horizon' - execute_service: notify.notify + execute_service: notify.NOTIFIER_NAME service_data: {"message":"The sun has set"} automation 2: @@ -337,7 +337,7 @@

    -All configuration entries have to be sequential. If you have automation:, automation 2: and automation 4: then the last one will not be processed. +All configuration entries have to be sequential. If you have automation:, automation 2: and automation 4: then the last one will not be processed.

    diff --git a/components/media_player.cast.html b/components/media_player.cast.html index 9d826a8e07..7a0b75d654 100644 --- a/components/media_player.cast.html +++ b/components/media_player.cast.html @@ -106,26 +106,21 @@

    -Google Cast devices will be automatically discovered if you enable the discovery component.

    +Google Cast devices will be automatically discovered if you enable the discovery component. There is a issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.

    -

    Can also be forced to load by adding the following lines to your configuration.yaml:

    +

    Chromecast platform can also be forced to load by adding the following lines to your configuration.yaml:

    1
     2
    +3
    +4
     
    media_player:
    -  platform: chromecast
    +
    platform: chromecast + # Optional. Will scan for devices if left out + host: 192.168.1.9 - -

    -Chromecasts have recently received a new API which is not yet supported by Home Assistant. Therefore we currently can only detect them and do not know what they are up to. -

    - - -

    - -
    diff --git a/components/notify.file.html b/components/notify.file.html index 081eaa5282..0f42abd810 100644 --- a/components/notify.file.html +++ b/components/notify.file.html @@ -115,14 +115,20 @@ The file platform allows you to store notifications from Home Assistant as a fil 3 4 5 +6
    # Example configuration.yaml entry
     notify:
    +  name: NOTIFIER_NAME
       platform: file
       filename: FILENAME
       timestamp: 1 or 0
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    Setting timestamp to 1 adds a timestamp to every entry.

    To use notifications, please see the getting started with automation page.

    diff --git a/components/notify.html b/components/notify.html index 3e50832762..5b620477c0 100644 --- a/components/notify.html +++ b/components/notify.html @@ -110,13 +110,15 @@

    Home Assistant currently supports a wide range of services for notifications:

    @@ -142,7 +144,7 @@ state_from: above_horizon state_to: below_horizon - execute_service: notify.notify + execute_service: notify.NOTIFIER_NAME service_data: {"message":"YAY"} diff --git a/components/notify.instapush.html b/components/notify.instapush.html index b91cb2d5c3..d4194f7ada 100644 --- a/components/notify.instapush.html +++ b/components/notify.instapush.html @@ -118,8 +118,10 @@ The instapush platform uses Instapush to deli 6 7 8 +9
    # Example configuration.yaml entry
     notify:
    +    name: NOTIFIER_NAME
         platform: instapush
         # Get those by creating a new application, event, and tracker on https://instapush.im
         api_key: ABCDEFGHJKLMNOPQRSTUVXYZ
    @@ -129,6 +131,10 @@ The instapush platform uses Instapush to deli
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    To retrieve those values for existing settings, log into your account at https://instapush.im and go to your Dashboard. Then click APPS tab, choose an app, and check the Basic Info section. The Application ID is the api_key and app_secret is the Application Secret.

    It’s easy to test your Instapush setup outside of Home Assistant. Assuming you have an event notification and a tracker home-assistant, just fire a request and check the Instapush dashboard for a new entry.

    diff --git a/components/notify.nma.html b/components/notify.nma.html index 870013c2da..372c82cc20 100644 --- a/components/notify.nma.html +++ b/components/notify.nma.html @@ -115,14 +115,20 @@ The nma platform uses Notify My Androi 3 4 5 +6
    # Example configuration.yaml entry
     notify:
    +    name: NOTIFIER_NAME
         platform: nma
         # Get this by registering a new application on http://www.notifymyandroid.com/
         api_key: ABCDEFGHJKLMNOPQRSTUVXYZ
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    To use notifications, please see the getting started with automation page.

    diff --git a/components/notify.pushbullet.html b/components/notify.pushbullet.html index f0c8eb962d..31629644d7 100644 --- a/components/notify.pushbullet.html +++ b/components/notify.pushbullet.html @@ -110,14 +110,21 @@ Home Assistant currently supports the awesome
    1
    +
    1
     2
     3
    -
    notify:
    -  platform: pushbullet
    -  api_key: YOUR_API_KEY
    +4 +
    notify:
    +  name: NOTIFIER_NAME
    +  platform: pushbullet
    +  api_key: YOUR_API_KEY
    +
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    For more automation examples, see the getting started with automation page.

    diff --git a/components/notify.pushover.html b/components/notify.pushover.html index 5606844a69..2aa67b46b0 100644 --- a/components/notify.pushover.html +++ b/components/notify.pushover.html @@ -117,8 +117,10 @@ The PushOver service is a platform for the n 5 6 7 +8
    # Example configuration.yaml entry
     notify:
    +    name: NOTIFIER_NAME
         platform: pushover
         # Get this by registering a new application on https://pushover.net
         api_key: ABCDEFGHJKLMNOPQRSTUVXYZ
    @@ -127,6 +129,10 @@ The PushOver service is a platform for the n
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    Automation example

    Notifications are great to be used within Home Automation. Below is a an example configuration that you can add to your configuration.yaml to be notified when the sun sets.

    @@ -149,7 +155,7 @@ The PushOver service is a platform for the n state_from: above_horizon state_to: below_horizon - execute_service: notify.notify + execute_service: notify.NOTIFIER_NAME service_data: {"message":"YAY"} diff --git a/components/notify.slack.html b/components/notify.slack.html index 814fe7c072..fdcf72cbc1 100644 --- a/components/notify.slack.html +++ b/components/notify.slack.html @@ -117,15 +117,19 @@ The slack platform allows you to deliver notifications from Home Assistant to 3 4 5 +6
    # Example configuration.yaml entry
     notify:
    +  name: NOTIFIER_NAME
       platform: slack
       api_key: ABCDEFGHJKLMNOPQRSTUVXYZ
       default_channel: '#general'
     
    - +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    diff --git a/components/notify.smtp.html b/components/notify.smtp.html index c8439f4f2a..4bd0837c08 100644 --- a/components/notify.smtp.html +++ b/components/notify.smtp.html @@ -120,8 +120,10 @@ The smtp platform allows you to deliver notifications from Home Assistant to an 8 9 10 +11
    # Example configuration.yaml entry
     notify:
    +  name: NOTIFIER_NAME
       platform: mail
       server: MAIL_SERVER
       port: YOUR_SMTP_PORT
    @@ -133,6 +135,10 @@ The smtp platform allows you to deliver notifications from Home Assistant to an
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    This platform is fragile and not able to catch all exceptions in a smart way because of the large number of possible configuration combinations.

    A combination that will work properly is port 587 and STARTTLS. It’s recommanded to enable STARTTLS, if possible.

    diff --git a/components/notify.syslog.html b/components/notify.syslog.html index 3f71ca23d6..58dc257cc0 100644 --- a/components/notify.syslog.html +++ b/components/notify.syslog.html @@ -116,8 +116,10 @@ The syslog platform allows you to deliver notifications from Home Assistant to t 4 5 6 +7
    # Example configuration.yaml entry
     notify:
    +  name: NOTIFIER_NAME
       platform: syslog
       facility: SYSLOG_FACILITY
       option: SYSLOG_LOG_OPTION
    @@ -125,6 +127,10 @@ The syslog platform allows you to deliver notifications from Home Assistant to t
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    The table contains values to use in your configuration.yaml file.

    diff --git a/components/notify.xmpp.html b/components/notify.xmpp.html index 60006f45cf..cb036720a4 100644 --- a/components/notify.xmpp.html +++ b/components/notify.xmpp.html @@ -114,8 +114,10 @@ The xmpp platform allows you to deliver notifications from Home Assistant to a < 456 +7
    # Example configuration.yaml entry
     notify:
    +    name: NOTIFIER_NAME
         platform: xmpp
         sender: YOUR_JID
         password: YOUR_JABBER_ACCOUNT_PASSWORD
    @@ -123,6 +125,10 @@ The xmpp platform allows you to deliver notifications from Home Assistant to a <
     
    +

    Setting the optional parameter name allows multiple notifiers to be created. +The default value is notify. The notifier will bind to the service +notify.NOTIFIER_NAME.

    +

    All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender.

    To use notifications, please see the getting started with automation page.

    diff --git a/components/verisure.html b/components/verisure.html index f6c8a2e33f..e2d4752922 100644 --- a/components/verisure.html +++ b/components/verisure.html @@ -107,7 +107,16 @@

    -

    Home Assistant has support to integrate your Verisure devices. We support hygrometers, smartplugs and thermometers.

    +

    Home Assistant has support to integrate your Verisure devices.

    + +

    We support:

    + + +

    Username and password are required. Other variables are optional and allow you to disable certain devices.

    diff --git a/images/blog/2015-08-laundry-automation/data-graph.png b/images/blog/2015-08-laundry-automation/data-graph.png new file mode 100644 index 0000000000..8ebbfed17c Binary files /dev/null and b/images/blog/2015-08-laundry-automation/data-graph.png differ diff --git a/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg b/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg new file mode 100644 index 0000000000..79ec794303 Binary files /dev/null and b/images/blog/2015-08-laundry-automation/moteino-and-sensors.jpg differ diff --git a/images/blog/2015-08-laundry-automation/moteino.jpg b/images/blog/2015-08-laundry-automation/moteino.jpg new file mode 100644 index 0000000000..6d23cc1665 Binary files /dev/null and b/images/blog/2015-08-laundry-automation/moteino.jpg differ diff --git a/images/blog/2015-08-laundry-automation/moteino2.jpg b/images/blog/2015-08-laundry-automation/moteino2.jpg new file mode 100644 index 0000000000..6c4e6aa3df Binary files /dev/null and b/images/blog/2015-08-laundry-automation/moteino2.jpg differ diff --git a/images/blog/2015-08-laundry-automation/reed-switch.jpg b/images/blog/2015-08-laundry-automation/reed-switch.jpg new file mode 100644 index 0000000000..8ded6f9f0e Binary files /dev/null and b/images/blog/2015-08-laundry-automation/reed-switch.jpg differ diff --git a/images/blog/2015-08-laundry-automation/screenshot-ha.PNG b/images/blog/2015-08-laundry-automation/screenshot-ha.PNG new file mode 100644 index 0000000000..984edec5ff Binary files /dev/null and b/images/blog/2015-08-laundry-automation/screenshot-ha.PNG differ diff --git a/sitemap.xml b/sitemap.xml index 8b852e3f36..b0579b98ac 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,5 +1,10 @@ + + https://home-assistant.io/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/ + 2015-08-26T08:12:00-07:00 + 0.8 + https://home-assistant.io/blog/2015/08/17/verisure-and-modern-tp-link-router-support/ 2015-08-17T20:00:00-07:00 @@ -97,559 +102,559 @@ https://home-assistant.io/developers/add_new_platform.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/getting-started/android.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/api.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/architecture.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/arduino.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/automation.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/browser.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/camera.generic.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/getting-started/configuration.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/configurator.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/conversation.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/creating_components.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/credits.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_sun_light_trigger.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.asuswrt.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.ddwrt.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.luci.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.netgear.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.nmap_scanner.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.tomato.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/device_tracker.tplink.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/discovery.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/downloader.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/frontend.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/group.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/history.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/blog/archives/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 1.0 https://home-assistant.io/blog/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/help/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/getting-started/ - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/isy994.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/keyboard.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/light.hue.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/light.limitlessled.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/light.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/logbook.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/media_player.cast.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/media_player.kodi.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/media_player.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/media_player.mpd.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/media_player.squeezebox.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/modbus.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/mqtt.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.file.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.instapush.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.nma.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.pushbullet.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.pushover.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.slack.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.smtp.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.syslog.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/notify.xmpp.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/python_api.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/rest_api.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/scene.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/scheduler.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/script.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.bitcoin.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.efergy.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.forecast.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.mysensors.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.openweathermap.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.rfxtrx.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.sabnzbd.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.swiss_public_transport.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.systemmonitor.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.temper.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.time_date.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sensor.transmission.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/simple_alarm.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/sun.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.command_switch.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.edimax.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.hikvision.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.rpi_gpio.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.transmission.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/switch.wemo.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/tellstick.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/thermostat.heat_control.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/thermostat.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/thermostat.nest.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/getting-started/troubleshooting.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/vera.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/verisure.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/developers/website.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/wink.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7 https://home-assistant.io/components/zwave.html - 2015-08-17T21:09:41-07:00 + 2015-08-27T00:09:51-07:00 weekly 0.7