From 984edefb843ba4f0130d28a351218c3fa3b10e7e Mon Sep 17 00:00:00 2001 From: icovada Date: Mon, 22 Aug 2016 19:17:36 +0200 Subject: [PATCH 01/77] Update Telegram notify Add documentation for Document file format as per pull request 2937 on main project --- source/_components/notify.telegram.markdown | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 07455bd989d..ff6ae938e5b 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -92,6 +92,31 @@ action: - **username** (*Optional*): Username for an URL which require HTTP basic authentication. - **password** (*Optional*): Username for an URL which require HTTP basic authentication. +### {% linkable_title Document support %} + +```yaml +... +action: + service: notify.NOTIFIER_NAME + data: + title: Send a document + message: That's a example that sends a document. + data: + document: + - url: http://192.168.1.28/bounce.gif + username: admin + password: secrete + - file: /tmp/whatever.odf + caption: Picture Title xy + - url: http://somebla.ie/video.mp4 + caption: I.e. for a Title +``` + +- **url** or **file** (*Required*): For local or remote path to an image. +- **caption** (*Optional*): The title of the image. +- **username** (*Optional*): Username for an URL which require HTTP basic authentication. +- **password** (*Optional*): Username for an URL which require HTTP basic authentication. + ### {% linkable_title Location support %} ```yaml From ef00d7557e982decf4063666cdc7db074be9896d Mon Sep 17 00:00:00 2001 From: icovada Date: Tue, 23 Aug 2016 18:40:58 +0200 Subject: [PATCH 02/77] Fixed documentation due to proposed change --- source/_components/notify.telegram.markdown | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index ff6ae938e5b..e508a9be505 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -103,13 +103,9 @@ action: message: That's a example that sends a document. data: document: - - url: http://192.168.1.28/bounce.gif - username: admin - password: secrete - - file: /tmp/whatever.odf - caption: Picture Title xy - - url: http://somebla.ie/video.mp4 - caption: I.e. for a Title + file: /tmp/whatever.odf + caption: Picture Title xy + ``` - **url** or **file** (*Required*): For local or remote path to an image. From 7b495c239489558bed407e27c16794d123c4e852 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 25 Aug 2016 19:13:53 +0200 Subject: [PATCH 03/77] Introduce the check_config script in 0.27 --- source/getting-started/configuration.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index f9ed323498f..50f2b82f18b 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -23,14 +23,14 @@ If you want to use a different folder for configuration, use the config command Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains which components will be loaded and what their configuration is. Throughout the documentation you will find snippets that you can add to your configuration file to enable that functionality. -If you run into trouble while configuring Home Assistant, have a look at [the configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml). -

- You will have to restart Home Assistant for changes to `configuration.yaml` take effect. + You will have to restart Home Assistant for changes to `configuration.yaml` to take effect.

+If you run into trouble while configuring Home Assistant, have a look at the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml). +

- Install colorlog (`$ pip3 install colorlog`) to make the console output easier to read, hence also easier to catch errors and warnings. + Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant.

### [Next step: Get familiar with YAML »](/getting-started/yaml/) From 2ab03078d0ab660277e966d37dfc4affd4b26b33 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 25 Aug 2016 19:56:33 +0200 Subject: [PATCH 04/77] Update troubleshooting-configuration.markdown --- .../troubleshooting-configuration.markdown | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/source/getting-started/troubleshooting-configuration.markdown b/source/getting-started/troubleshooting-configuration.markdown index 00a1651d11b..95d67816c6f 100644 --- a/source/getting-started/troubleshooting-configuration.markdown +++ b/source/getting-started/troubleshooting-configuration.markdown @@ -19,26 +19,27 @@ Whenever a component or configuration option results in a warning, it will be st When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up. +If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`. + #### {% linkable_title Problems with the configuration %} One of the most common problems with Home Assistant is an invalid `configuration.yaml` file. - - - You can test your configuration using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/). + + - You can test your configuration using the command line with: `hass --script check_config` + - You can verify your configuration's yaml structure using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/). - To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well). -`configuration.yaml` does not allow multiple sections to have the same name. If you want a specific platform to be loaded twice, append a [number or string](/getting-started/devices/#style-2) to the name or nest them using [this style](/getting-started/devices/#style-1). +`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiplte platforms for one component, you can append a [number or string](/getting-started/devices/#style-2-list-each-device-separately) to the name or nest them using [this style](/getting-started/devices/#style-1-collect-every-entity-under-the-parent): ```yaml sensor: - platform: forecast - ... - -sensor 2: - platform: bitcoin - ... + - platform: forecast + ... + - platform: bitcoin + ... ``` -Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the component page](/components/) for instructions on how to setup the components. +Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the various component pages](/components/) for instructions on how to setup the components. If you find any errors or want to expand the documentation, please [let us know](https://github.com/home-assistant/home-assistant.io/issues). From 425ed38599f14e1c9f928c123c5f0ddb788bec92 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 25 Aug 2016 20:33:50 +0200 Subject: [PATCH 05/77] Update secrets.markdown --- source/_topics/secrets.markdown | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/source/_topics/secrets.markdown b/source/_topics/secrets.markdown index 3b344efa0ad..60129c98ab5 100644 --- a/source/_topics/secrets.markdown +++ b/source/_topics/secrets.markdown @@ -9,11 +9,11 @@ sharing: true footer: true --- -The `configuration.yaml` file a plain-text file thus it is readable for everyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. This separation can also help you to keep easier track of your passwords and API keys (as they are all stored at one place and no longer spread across the `configuration.yaml` file) if you don't want to [split up your configuration](/topics/splitting_configuration/). +The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secrets` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/topics/splitting_configuration/). ### {% linkable_title Using secrets.yaml %} -The workflow for the outsourcing in the `secrets.yaml` is very similar to the [splitting of the configuration](/topics/splitting_configuration/). Create a `secrets.yaml` file in your Home assistant configuration directory (The location of the folder differs between operating systems: on OS X and Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`). +The workflow for moving private information to `secrets.yaml` is very similar to the [splitting of the configuration](/topics/splitting_configuration/). Create a `secrets.yaml` file in your Home assistant configuration directory (The location of the folder differs between operating systems: on OS X and Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`). The entries for password and API keys in the `configuration.yaml` file usually looks like the example below. @@ -32,10 +32,30 @@ http: The `secrets.yaml` file contains the corresponding password assigned to the identifier. ```yaml -logger: debug http_password: YOUR_PASSWORD ``` +### {% linkable_title Debugging secrets %} + +When you start splitting your configuration into multiple files, you might end up with configuration in sub folders. Secrets will be resolved in this order: +- A `secrets.yaml` located in the same folder as the yaml file referencing the secret, +- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`, +- lastly, `keyring` will be queried for the secret (more info below) + +To see where secrets are being loaded from you can either add an option to your `secrets.yaml` file or use the `check_config` script. + +*Option 1*: Print where secrets are retrieved from to the Home Assistant log by adding the following to `secrets.yaml`: +```yaml +logger: debug +``` +This will not print the actual secret's value to the log. + +*Option 2*: View where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the `check_config` script from the command line: +```bash +hass --script check_config --secrets +``` +This will print all your secrets + ### {% linkable_title Storing passwords in a keyring managed by your OS %} Using [Keyring](http://pythonhosted.org/keyring/) is an alternative way to `secrets.yaml`. They can be managed from the command line via the keyring script. @@ -57,7 +77,7 @@ Create an entry in your keyring. $ hass --script keyring set http_password ``` -If you launch home Assistant now, you will be prompted for the keyring password to unlock your keyring. +If you launch Home Assistant now, you will be prompted for the keyring password to unlock your keyring. ```bash $ hass From 56c83e6b9976fc209ddfa50a710f939a5178eb82 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 25 Aug 2016 21:12:24 +0200 Subject: [PATCH 06/77] Update splitting_configuration.markdown --- .../_topics/splitting_configuration.markdown | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/source/_topics/splitting_configuration.markdown b/source/_topics/splitting_configuration.markdown index 1f3712f81e2..28899b27148 100644 --- a/source/_topics/splitting_configuration.markdown +++ b/source/_topics/splitting_configuration.markdown @@ -15,7 +15,7 @@ First off, several community members have sanitized (read: without api keys/pass As commenting code doesn't always happen, please read on for the details. -Now despite the logical assumption that the `configuration.yaml` will be replaced by this process it will in fact remain all be it in a much less cluttered form. +Now despite the logical assumption that the `configuration.yaml` will be replaced by this process it will in fact remain, albeit in a much less cluttered form. In this lighter version we will still need what could be called the core snippet: @@ -179,17 +179,23 @@ That about wraps it up. If you have issues checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to the [Gitter Chatroom](https://gitter.im/balloob/home-assistant) and ask away. +### {% linkable_title Debugging multiple configuration files %} + +If you have many configuration files, the `check_config` script allows you to see how Home Assistant interprets them: +- Listing all loaded files: `hass --script --check_config --files` +- Viewing a component's config: `hass --script --check_config --info light` +- Or all components' config: `hass --script check_config --info all` + +You can get help from the command line using: `hass --script check_config --help` + ### {% linkable_title Advanced Usage %} We offer four advanced options to include whole directories at once. +- `!include_dir_list` will return the content of a directory as a list with each file content being an entry in the list. +- `!include_dir_named` will return the content of a directory as a dictionary which maps filename => content of file. +- `!include_dir_merge_list` will return the content of a directory as a list by merging all files (which should contain a list) into 1 big list. +- `!include_dir_merge_named` will return the content of a directory as a dictionary by loading each file and merging it into 1 big dictionary. -`!include_dir_list` will return content of a directory as a list with each file content being an entry in the list. - -`!include_dir_named` will return content of a directory as a dictionary which maps filename => content of file. - -`!include_dir_merge_list` will return content of a directory as a list by merging all files (which should contain a list) into 1 big list. - -`!include_dir_merge_named` will return content of a directory as a dictionary by loading each file and merging it into 1 big dictionary. #### {% linkable_title Example: `!include_dir_list` %} From 102e1ed70001e04b594a06a6c228a861e798ea0f Mon Sep 17 00:00:00 2001 From: icovada Date: Sat, 27 Aug 2016 13:43:19 +0200 Subject: [PATCH 07/77] Fixed open parenthesis As suggested by @Landrash --- source/_components/notify.telegram.markdown | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index e508a9be505..4044f9ff3f1 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -25,17 +25,8 @@ The quickest way to retrieve your `chat_id` is visiting [https://api.telegram.or The result set will include your chat ID as `id` in the `from` section: ```json -{ - "ok":true, - "result":[ - { - "update_id":254199982, - "message":{ - "message_id":201, - "from":{ - "id":123456789, - "first_name":"Your first name", -... +{"ok":true,"result":[{"update_id":254199982, +"message":{"message_id":27,"from":{"id":123456789,"first_name":"YOUR_FIRST_NAME YOUR_NICK_NAME","last_name":"YOUR_LAST_NAME","username":"YOUR_NICK_NAME"},"chat":{"id":123456789,"first_name":"YOUR_FIRST_NAME YOUR_NICK_NAME","last_name":"YOUR_LAST_NAME","username":"YOUR_NICK_NAME","type":"private"},"date":1678292650,"text":"test"}}]} ``` Another way to get your chat ID directly is described below: From e5255ecd7c3f95f4d8c7d321cccd20998541afb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20Laur=C3=A9n?= Date: Sat, 27 Aug 2016 23:14:10 +0300 Subject: [PATCH 08/77] Add Added info on how to install python, pip3 and python3-libyaml on a Debian system. --- source/getting-started/troubleshooting.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/getting-started/troubleshooting.markdown b/source/getting-started/troubleshooting.markdown index c2d94b9b00f..420f4ed0d9a 100644 --- a/source/getting-started/troubleshooting.markdown +++ b/source/getting-started/troubleshooting.markdown @@ -21,6 +21,8 @@ If you are able to successfully run `python3 --version` but not `pip3`, install $ python3 -m pip install homeassistant ``` +On a Debian system, you can also install python3 by `sudo apt-get install python3`, and pip3 by `sudo apt-get install python3-pip`. + #### {% linkable_title No module named pip %} [Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is omitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and running it with Python 3: @@ -28,6 +30,10 @@ $ python3 -m pip install homeassistant $ python3 get-pip.py ``` +#### {% linkable_title libyaml is not found or a compiler error %} + +On a Debian system, install the Python 3 YAML library by `sudo apt-get install python3-yaml`. + #### {% linkable_title distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both %} This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. From 6826408566dcd6280981da65a02b12792383adf3 Mon Sep 17 00:00:00 2001 From: ThinkPadNL Date: Sun, 28 Aug 2016 12:41:24 +0200 Subject: [PATCH 09/77] Update sensor.mhz19.markdown CO2 level outside isn't 250 - 350pmm, but assumed to be 400ppm. It has risen over the years, due to global warming :-( Most sensors that do automatic calibration assume 400ppm as lowest. See also https://www.co2.earth/ for actual CO2 level on the earth. --- source/_components/sensor.mhz19.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.mhz19.markdown b/source/_components/sensor.mhz19.markdown index 027ada3ee2b..31ca4073856 100644 --- a/source/_components/sensor.mhz19.markdown +++ b/source/_components/sensor.mhz19.markdown @@ -11,7 +11,7 @@ ha_category: sensor ha_release: 0.27 --- -The MH-Z19 is a small nondispersive infrared sensor that can measure CO2 sensors. High CO2 levels can lead to drowsiness, poor concentration, loss of attention or increased heart rate. Outside CO2 levels are usually between 250 and 350ppm, but inside levels can reach between 1000 and 5000 ppm. High CO2 levels indicate that you should increase ventilation. +The MH-Z19 is a small nondispersive infrared sensor that can measure CO2 sensors. High CO2 levels can lead to drowsiness, poor concentration, loss of attention or increased heart rate. The CO2 level outside is around 400ppm, but inside levels can reach between 1000 and 5000 ppm. High CO2 levels indicate that you should increase ventilation. Check out the [Open Home Automation web site](https://www.open-homeautomation.com/2016/08/24/monitor-co2-levels-in-your-house/) for a quick guide how to connect the sensor to your PC or Raspberry Pi. From fe4e5da0cc2dd14a42f2cc33b917ef8dec3804ae Mon Sep 17 00:00:00 2001 From: Brendan Berg Date: Sun, 28 Aug 2016 09:30:52 -0600 Subject: [PATCH 10/77] fix grammatical error for "climate" --- source/_components/climate.nest.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/climate.nest.markdown b/source/_components/climate.nest.markdown index 78123905739..69dbc90fdb0 100644 --- a/source/_components/climate.nest.markdown +++ b/source/_components/climate.nest.markdown @@ -17,7 +17,7 @@ The `nest` climate platform let you control a thermostat from [Nest](https://nes To set it up, add the following information to your `configuration.yaml` file: ```yaml -cliamte: +climate: platform: nest ``` From e73712f6410e7b385c0df8131e87de1f73ae37ea Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 28 Aug 2016 10:18:42 -0700 Subject: [PATCH 11/77] Update 2016-08-27-notifications-hue-fake-unification.markdown Grammar, add forgotten things to breaking changes, add some links --- ...016-08-27-notifications-hue-fake-unification.markdown | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown b/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown index aec1949f7a7..ad96944b81a 100644 --- a/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown +++ b/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown @@ -46,7 +46,7 @@ Now that we have that great news out of the way, onto this week's release which ## {% linkable_title 0.27 %} -While this release is **#Amazing**, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the Breaking Changes section below. +While this release is **#Amazing**, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the [Breaking Changes](#breaking-changes) section below. ### {% linkable_title Hue Bridge Emulation %} Thanks to [@mgbowen] we now have the functionality previously provided by [@blocke]'s [ha-local-echo](https://github.com/blocke/ha-local-echo) [built right into Home Assistant](/components/emulated_hue/)! This means that for those of you with devices that either lack or have a subpar integration with Home Assistant (looking at you Amazon Echo) you can now have a better experience by having your Home Assistant pretend to be a Hue Bridge. Personally, I have used [@auchter]'s [Haaska](https://github.com/auchter/haaska) previously but found that it was slow to respond and sometimes failed entirely. With the new [`emulated_hue`](/components/emulated_hue/) component, you can have local control of entities through Amazon Echo. @@ -55,7 +55,7 @@ Thanks to [@mgbowen] we now have the functionality previously provided by [@bloc We have some excellent upgrades to the notification system coming to you in 0.27, courtesy of me, [@robbiet480]. #### {% linkable_title HTML5 Push Notifications %} -This release adds support for [HTML5] push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even your Home Assistant is not in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone's lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me ([@robbiet480]) and Paulus ([@balloob]) for all the hard work on this! +This release adds support for [HTML5] push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even when your Home Assistant is not open in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone's lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me ([@robbiet480]) and Paulus ([@balloob]) for all the hard work on this!

@@ -132,6 +132,8 @@ Along with the new `climate` component, [@Teagan42] and I ([@robbiet480]) decide - Forecast.io entity IDs are now like `sensor.forecastio_temperature`. Previously they were like `sensor.weather_temperature`. Apologies for this change, but we needed to make Forecast.io more generic now that we have many weather platforms. - The [Loop Energy][Loop] sensor configuration format changed slightly, please reformat based on the revised documentation. - The configuration for the [SABnzbd] sensor has slightly changed. The prefix `type:` is no longer required for monitored variables. +- The [IMAP] sensor now uses `username` instead of `user`. +- The [NZBGet] sensor has had so many changes I can't list them all. Please refer to the documentation for more info. ### {% linkable_title Deprecations %} - Using the `thermostat` and `hvac` components has been deprecated. Please migrate to the new `climate` component. (just change the component name, the configurations are compatible) @@ -139,7 +141,7 @@ Along with the new `climate` component, [@Teagan42] and I ([@robbiet480]) decide ## {% linkable_title Finishing up %} -Thanks all for sticking with me to the end. I'll be taking over a lot of Paulus's (@balloob) work while he is gone, but as I said, don't worry because he'll be back well before 0.28.0 comes out. Hopefully you didn't find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I'm a little loopy hahaha 😴. +Thanks all for sticking with me to the end. I'll be taking over a lot of Paulus's ([@balloob]) work while he is gone, but as I said, don't worry because he'll be back well before 0.28.0 comes out. Hopefully you didn't find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I'm a little loopy hahaha 😴. Also, thanks as always to our developer contributors, documentation contributors, but most of all our users! This would've just been a script that Paulus (@balloob) used to control his lights at home if we didn't have your enthusiasm. @@ -221,3 +223,4 @@ Talk to you soon on Gitter and in your pull request comments! [attachments]: /components/notify.slack/ [Hue]: /components/emulated_hue/ [fan]: /components/fan/ +[IMAP]: /components/sensor.imap/ From c9b3fe80c858fa69bbbeecf75685516e1f80d84c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 28 Aug 2016 19:24:36 +0200 Subject: [PATCH 12/77] Alphabetical order --- source/_components/demo.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 8903e3cbfc3..3ed516f9147 100644 --- a/source/_components/demo.markdown +++ b/source/_components/demo.markdown @@ -19,14 +19,14 @@ Available demo platforms: - [Alarm control panel](/components/alarm_control_panel/) (`alarm_control_panel`) - [Binary sensor](/components/binary_sensor/) (`binary_sensor`) - [Camera](/components/camera/) (`camera`) +- [Climate](/components/climate/) (`climate`) +- [Cover](/components/cover/) (`cover`) +- [Fan](/components/fan/) (`fan`) - [Light](/components/light/) (`light`) - [Lock](/components/lock/) (`lock`) - [Notification](/components/notify/) (`notify`) -- [Cover](/components/cover/) (`cover`) - [Sensor](/components/sensor/) (`sensor`) - [Switch](/components/switch/) (`switch`) -- [Climate](/components/climate/) (`climate`) -- [Fan](/components/fan/) (`fan`) To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file: From aaf6e26c05e8ad33a15ea1a6adebe8d484d390b1 Mon Sep 17 00:00:00 2001 From: MartinHjelmare Date: Sun, 28 Aug 2016 20:34:50 +0200 Subject: [PATCH 13/77] Fix heatmiser example config * `tstats` requires a list. --- source/_components/climate.heatmiser.markdown | 6 +++--- source/_components/thermostat.heatmiser.markdown | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_components/climate.heatmiser.markdown b/source/_components/climate.heatmiser.markdown index b74bb1c92e1..cbdebfbafde 100644 --- a/source/_components/climate.heatmiser.markdown +++ b/source/_components/climate.heatmiser.markdown @@ -25,9 +25,9 @@ climate: ipaddress: YOUR_IPADDRESS port: YOUR_PORT tstats: - 1: - id: THERMOSTAT_ID - name: THERMOSTAT_NAME + - 1: + id: THERMOSTAT_ID + name: THERMOSTAT_NAME ``` A single interface can handle up to 32 connected devices. diff --git a/source/_components/thermostat.heatmiser.markdown b/source/_components/thermostat.heatmiser.markdown index 7015e5332fb..8b5fe55835e 100644 --- a/source/_components/thermostat.heatmiser.markdown +++ b/source/_components/thermostat.heatmiser.markdown @@ -28,9 +28,9 @@ thermostat: ipaddress: YOUR_IPADDRESS port: YOUR_PORT tstats: - 1: - id: THERMOSTAT_ID - name: THERMOSTAT_NAME + - 1: + id: THERMOSTAT_ID + name: THERMOSTAT_NAME ``` A single interface can handle up to 32 connected devices. From 653f05354d046205c30127ea85cd4ffffa244394 Mon Sep 17 00:00:00 2001 From: Ben Bangert Date: Sun, 28 Aug 2016 13:18:31 -0700 Subject: [PATCH 14/77] Update component initialization for accurate count --- source/developers/component_initialization.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/component_initialization.markdown b/source/developers/component_initialization.markdown index 1724765d998..6f6a5b31587 100644 --- a/source/developers/component_initialization.markdown +++ b/source/developers/component_initialization.markdown @@ -13,7 +13,7 @@ After loading, the bootstrapper will call `setup(hass, config)` method on the co ### {% linkable_title hass: the Home Assistant instance %} -The Home Assistant instance contains three objects to help you interact with the system. +The Home Assistant instance contains four objects to help you interact with the system. | Object | Description | | ------ | ----------- | From 51acfc556028fca2449fe00f908c06d32b1b40c9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 28 Aug 2016 22:37:00 +0200 Subject: [PATCH 15/77] Add new validations --- source/developers/development_validation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/development_validation.markdown b/source/developers/development_validation.markdown index 4dd5c9bbf3b..50d0a675df4 100644 --- a/source/developers/development_validation.markdown +++ b/source/developers/development_validation.markdown @@ -19,7 +19,7 @@ Beside the [voluptuous](https://pypi.python.org/pypi/voluptuous) default types a - Entity ID: `entity_id` and `entity_ids` - Numbers: `small_float` and `positive_int` - Time: `time`, `time_zone` -- Misc: `template`, `slug`, `temperature_unit`, `latitude`, `longitude`, `isfile`, `sun_event`, `ensure_list`, and `icon` +- Misc: `template`, `slug`, `temperature_unit`, `latitude`, `longitude`, `isfile`, `sun_event`, `ensure_list`, `port`, `url`, and `icon` To validate plaforms using [MQTT](/components/mqtt/) there are `valid_subscribe_topic` and `valid_publish_topic` present. From c85ef82e6172ef3ebb41455614d2e3ab3542dffa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 28 Aug 2016 22:38:40 +0200 Subject: [PATCH 16/77] Add entry for validation --- source/_includes/asides/developers_navigation.html | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index 080320a1141..c5c8089f310 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -19,6 +19,7 @@

  • {% active_link /developers/development_checklist/ Checklist %}
  • {% active_link /developers/development_testing/ Testing %}
  • {% active_link /developers/development_catching_up/ Catching up with Reality %}
  • +
  • {% active_link /developers/development_validation/ Validation %}
  • From 7ac8c005b282c98e528a17cea07f09481631b82d Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Sun, 28 Aug 2016 22:57:24 +0200 Subject: [PATCH 17/77] Update cover.command_line.markdown Wrong config commands --- source/_components/cover.command_line.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/_components/cover.command_line.markdown b/source/_components/cover.command_line.markdown index d7e223ca011..42505959da6 100644 --- a/source/_components/cover.command_line.markdown +++ b/source/_components/cover.command_line.markdown @@ -22,10 +22,10 @@ cover: - platform: command_line covers: Garage door: - open_cmd: move_command up kitchen - close_cmd: move_command down kitchen - stop_cmd: move_command stop kitchen - state_cmd: state_command kitchen + opencmd: move_command up kitchen + closecmd: move_command down kitchen + stopcmd: move_command stop kitchen + statecmd: state_command kitchen value_template: {% raw %}> {% if value == 'open' %} 100 @@ -39,8 +39,8 @@ Configuration variables: - **covers** (*Required*): The array that contains all command line covers. - **entry** (*Required*): Name of the command line cover. Multiple entries are possible. - - **open_cmd** (*Required*): The command to open the cover. - - **close_cmd** (*Required*): The action to close the cover. - - **stop_cmd** (*Required*): The action to stop the cover. - - **state_cmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open. + - **opencmd** (*Required*): The command to open the cover. + - **closecmd** (*Required*): The action to close the cover. + - **stopcmd** (*Required*): The action to stop the cover. + - **statecmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open. - **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `state_cmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `state_cmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`. From 216f5a4d0292fa341c8de4b77d0c25bad2686108 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Mon, 29 Aug 2016 05:08:25 +0200 Subject: [PATCH 18/77] Fix media_player services (#860) * Correct service and attribute names and add missing services. --- source/_components/media_player.markdown | 30 ++++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown index 9bf349acaa3..c6dde16fc29 100644 --- a/source/_components/media_player.markdown +++ b/source/_components/media_player.markdown @@ -14,32 +14,32 @@ Interacts with media players on your network. Please check the sidebar for a ful ## {% linkable_title Services %} ### {% linkable_title Media control services %} -Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_next_track`, `media_previous_track`, `clear_playlist` +Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist` | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Target a specific media player. Defaults to all. -#### {% linkable_title Service `media_player/mute_volume` %} +#### {% linkable_title Service `media_player/volume_mute` %} -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | Target a specific media player. Defaults to all. -| `mute` | no | True/false for mute/unmute +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| `entity_id` | yes | Target a specific media player. Defaults to all. | +| `is_volume_muted` | no | True/false for mute/unmute | -#### {% linkable_title Service `media_player/set_volume_level` %} +#### {% linkable_title Service `media_player/volume_set` %} -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | Target a specific media player. Defaults to all. -| `volume` | no | Integer for volume level +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| `entity_id` | yes | Target a specific media player. Defaults to all. | +| `volume_level` | no | Integer for volume level | #### {% linkable_title Service `media_player/media_seek` %} -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | Target a specific media player. Defaults to all. -| `position` | no | Position to seek to. The format is platform dependent. +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------------| +| `entity_id` | yes | Target a specific media player. Defaults to all. | +| `seek_position` | no | Position to seek to. The format is platform dependent. | #### {% linkable_title Service `media_player/play_media` %} From fad9cfa968f94f7824f20193289ac030bdeae8c5 Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Mon, 29 Aug 2016 07:38:14 +0200 Subject: [PATCH 19/77] Update cover.mqtt.markdown --- source/_components/cover.mqtt.markdown | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index 9b544407af7..9723c560553 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -30,27 +30,31 @@ cover: state_topic: "home-assistant/cover" command_topic: "home-assistant/cover/set" name: "MQTT Sensor" - optimistic: false qos: 0 retain: true + payload_open: "PAYLOAD_OPEN" + payload_close: "PAYLOD__CLOSE" + payload_stop: "PAYLOAD_STOP" state_open: "STATE_OPEN" state_closed: "STATE_CLOSED" - service_open: "SERVICE_OPEN" - service_close: "SERVICE_CLOSE" + optimistic: false + retain: false value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` Configuration variables: - **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values. +- **command_topic** (*Required*): The MQTT topic to publish commands to control the rollershutter. - **name** (*Optional*): The name of the sensor. Default is "MQTT Sensor". -- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN" -- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED" -- **service_open** (*Optional*): The payload that represents open state in service mode. Default is"SERVICE_OPEN" -- **service_close** (*Optional*): The payload that represents closed state in service mode. Default is "SERVICE_CLOSE" -- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is `true` if no state topic defined, else `false`. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. - **retain** (*Optional*): If the published message should have the retain flag on or not. +- **payload_open** (*Optional*): The payload that opens the cover. Default is "UP" +- **payload_close** (*Optional*): The payload that closes the cover. Default is "DOWN" +- **payload_stop** (*Optional*): The payload that stops the rollershutter. default is "STOP" +- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN" +- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED" +- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is `true` if no state topic defined, else `false`. - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. For a quick check you can use the commandline tools shipped with `mosquitto` to send MQTT messages. Set the state of your sensor manually: From 03ad5afd9606bce855a9e7de313aee870263e0b4 Mon Sep 17 00:00:00 2001 From: oa- Date: Mon, 29 Aug 2016 11:46:34 +0200 Subject: [PATCH 20/77] Updated title Changed the title to differentiate it from the non-LE Bluetooth tracker --- source/_components/device_tracker.bluetooth_le_tracker.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.bluetooth_le_tracker.markdown b/source/_components/device_tracker.bluetooth_le_tracker.markdown index c037525ba82..62effa6f6d9 100644 --- a/source/_components/device_tracker.bluetooth_le_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_le_tracker.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Bluetooth Tracker" +title: "Bluetooth LE Tracker" description: "Instructions for integrating bluetooth low-energy tracking within Home Assistant." date: 2016-08-24 00:00 sidebar: true From 3ab278f809c6e5af3b1e191e17cf69155f2cc803 Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Mon, 29 Aug 2016 12:28:41 +0200 Subject: [PATCH 21/77] Update cover.command_line.markdown --- source/_components/cover.command_line.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/cover.command_line.markdown b/source/_components/cover.command_line.markdown index 42505959da6..63452cc16be 100644 --- a/source/_components/cover.command_line.markdown +++ b/source/_components/cover.command_line.markdown @@ -43,4 +43,4 @@ Configuration variables: - **closecmd** (*Required*): The action to close the cover. - **stopcmd** (*Required*): The action to stop the cover. - **statecmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open. - - **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `state_cmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `state_cmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`. + - **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `statecmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `statecmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`. From e0c415b7f3ddc9667804068feb19d7e8c00b9f6b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 29 Aug 2016 19:40:32 +0200 Subject: [PATCH 22/77] Add blog post from #664 --- ...-31-esp8266-and-micropython-part2.markdown | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown diff --git a/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown b/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown new file mode 100644 index 00000000000..0acd2c0205e --- /dev/null +++ b/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown @@ -0,0 +1,106 @@ +--- +layout: post +title: "ESP8266 and MicroPython - Part 2" +description: "Export, process, and visualize data stored by Home Assistant." +date: 2016-08-31 06:17:25 +0200 +date_formatted: "August 31, 2016" +author: Fabian Affolter +comments: true +categories: How-To MQTT ESP8266 Micropython +og_image: /images/blog/2016-07-micropython/social.png +--- + + +So, part 1 of [ESP8266 and MicroPython](/blog/2016/07/28/esp8266-and-micropython-part1/) was pretty lame, right? Instead of getting information out of Home Assistant we are going a step forward and create our own sensor which is sending details about its state to a Home Assistant instance. + + + +Beside [HTTP POST](https://en.wikipedia.org/wiki/POST_(HTTP)) requests, MQTT is the quickest way (from the author's point of view) to publish information with DIY devices. + +You have to make a decision: Do you want to pull or to poll? For slowly changing values like temperature it's perfectly fine to wait a couple of seconds to retrieve the value. If it's a motion detector the state change should be available instantly. This means the sensor must take initiative. + +An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE. + +### {% linkable_title MQTT %} + +You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple). + +The example below is adopted from the work of [@davea](https://github.com/davea) as we don't want to re-invent the wheel. The configuration feature is crafty and simplyfies the code with the usage of a file called `/config.json` which stores the configuration details. The ESP8266 device will send the value of a pin every 5 seconds. + + +```python +import machine +import time +import ubinascii +import webrepl + +from umqtt.simple import MQTTClient + +# These defaults are overwritten with the contents of /config.json by load_config() +CONFIG = { + "broker": "192.168.1.19", + "sensor_pin": 0, + "client_id": b"esp8266_" + ubinascii.hexlify(machine.unique_id()), + "topic": b"home", +} + +client = None +sensor_pin = None + +def setup_pins(): + global sensor_pin + sensor_pin = machine.ADC(CONFIG['sensor_pin']) + +def load_config(): + import ujson as json + try: + with open("/config.json") as f: + config = json.loads(f.read()) + except (OSError, ValueError): + print("Couldn't load /config.json") + save_config() + else: + CONFIG.update(config) + print("Loaded config from /config.json") + +def save_config(): + import ujson as json + try: + with open("/config.json", "w") as f: + f.write(json.dumps(CONFIG)) + except OSError: + print("Couldn't save /config.json") + +def main(): + client = MQTTClient(CONFIG['client_id'], CONFIG['broker']) + client.connect() + print("Connected to {}".format(CONFIG['broker'])) + while True: + data = sensor_pin.read() + client.publish('{}/{}'.format(CONFIG['topic'], + CONFIG['client_id']), + bytes(str(data), 'utf-8')) + print('Sensor state: {}'.format(data)) + time.sleep(5) + +if __name__ == '__main__': + load_config() + setup_pins() + main() +``` + +Subscribe to the topic `home/#` or create a [MQTT sensor](/components/sensor.mqtt/) to check if the sensor values are published. + +```bash +$ mosquitto_sub -h 192.168.1.19 -v -t "home/#" +``` + +```yaml +sensor: + - platform: mqtt + state_topic: "home/esp8266_[last part of the MAC address]" + name: "MicroPython" +``` + +[@davea](https://github.com/davea) created [sonoff-mqtt](https://github.com/davea/sonoff-mqtt). This code will work on ESP8622 based devices too and shows how to use a button to control a relay. + From 83a2c1f561c2d24469ab9d1e7d2ef9cd53b60a33 Mon Sep 17 00:00:00 2001 From: sgauche Date: Mon, 29 Aug 2016 15:19:35 -0400 Subject: [PATCH 23/77] Update device_tracker.locative.markdown --- source/_components/device_tracker.locative.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/device_tracker.locative.markdown index 8c98cdd88d6..9e4f6b7b0af 100644 --- a/source/_components/device_tracker.locative.markdown +++ b/source/_components/device_tracker.locative.markdown @@ -26,7 +26,7 @@ Install on your smartphone: - [Android](https://play.google.com/store/apps/details?id=io.locative.app) - [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) -To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. +To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.

    From 0a14d4cbdc75377d21103b37581fe4cd780fc049 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 29 Aug 2016 21:47:59 +0200 Subject: [PATCH 24/77] Update categories --- source/_posts/2016-07-28-esp8266-and-micropython-part1.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2016-07-28-esp8266-and-micropython-part1.markdown b/source/_posts/2016-07-28-esp8266-and-micropython-part1.markdown index ef91fc3e7b6..dbd69240e14 100644 --- a/source/_posts/2016-07-28-esp8266-and-micropython-part1.markdown +++ b/source/_posts/2016-07-28-esp8266-and-micropython-part1.markdown @@ -6,7 +6,7 @@ date: 2016-07-28 06:00:00 +0200 date_formatted: "July 28, 2016" author: Fabian Affolter comments: true -categories: How-To +categories: How-To ESP8266 Micropython og_image: /images/blog/2016-07-micropython/social.png --- From 0443eceaf203b7dafc79f4ec9c9d8b3d030379ea Mon Sep 17 00:00:00 2001 From: garrettbeachy Date: Mon, 29 Aug 2016 21:22:35 -0500 Subject: [PATCH 25/77] Update climate.honeywell.markdown Fix typo on Honeywell page. --- source/_components/climate.honeywell.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/climate.honeywell.markdown b/source/_components/climate.honeywell.markdown index 28b5fd13e34..67bf292f3d5 100644 --- a/source/_components/climate.honeywell.markdown +++ b/source/_components/climate.honeywell.markdown @@ -17,7 +17,7 @@ The `honeywell` cliamte platform let you control [Honeywell Connected](http://ge To set it up, add the following information to your `configuration.yaml` file: ```yaml -cliamte: +climate: platform: honeywell username: YOUR_USERNAME password: YOUR_PASSWORD From 87c49bcc09ee21ce4aab1f06b75072d21cfe6aba Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 30 Aug 2016 11:48:38 +0200 Subject: [PATCH 26/77] Update description --- source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown b/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown index 0acd2c0205e..8d0b710a69f 100644 --- a/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown +++ b/source/_posts/2016-08-31-esp8266-and-micropython-part2.markdown @@ -1,7 +1,7 @@ --- layout: post title: "ESP8266 and MicroPython - Part 2" -description: "Export, process, and visualize data stored by Home Assistant." +description: "Using MicroPython and MQTT on ESP8266 based devices and Home Assistant." date: 2016-08-31 06:17:25 +0200 date_formatted: "August 31, 2016" author: Fabian Affolter From 5bf47768f2374fec743c55a6cfd53178f31cd0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Tue, 30 Aug 2016 15:19:07 +0200 Subject: [PATCH 27/77] Update sensor.loop_energy.markdown --- source/_components/sensor.loop_energy.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown index f2c12fe4ca0..d7ef5fb3421 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loop_energy.markdown @@ -53,6 +53,7 @@ sensor: gas_secret: 'GAS_SECRET' gas_type: imperial gas_calorific: 38.2 +``` Configuration variables: From 2ddeb7bde35eddd3511291162d6ba82a74360964 Mon Sep 17 00:00:00 2001 From: Thomas Wilson Date: Wed, 31 Aug 2016 03:08:22 +0800 Subject: [PATCH 28/77] Added quotes around states in examples (#870) These examples in the tutorial didn't actually work - adding the quote marks around the state names fixed it. --- source/getting-started/automation-create-first.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/getting-started/automation-create-first.markdown b/source/getting-started/automation-create-first.markdown index 066f03788da..28f4788fdf5 100644 --- a/source/getting-started/automation-create-first.markdown +++ b/source/getting-started/automation-create-first.markdown @@ -37,7 +37,7 @@ automation: condition: condition: state entity_id: group.all_devices - state: home + state: 'home' action: service: light.turn_on ``` @@ -66,7 +66,7 @@ automation: condition: condition: state entity_id: group.all_devices - state: home + state: 'home' action: service: light.turn_on entity_id: group.living_room @@ -93,7 +93,7 @@ automation: condition: condition: state entity_id: group.all_devices - state: home + state: 'home' action: service: homeassistant.turn_on entity_id: group.living_room From 8959fb2178d660d7467d69ebdecd984b86de0eb0 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Tue, 30 Aug 2016 14:31:28 -0700 Subject: [PATCH 29/77] Update 0.27 blog post to add 0.27.1 --- ...otifications-hue-fake-unification.markdown | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown b/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown index ad96944b81a..842230872d5 100644 --- a/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown +++ b/source/_posts/2016-08-27-notifications-hue-fake-unification.markdown @@ -155,11 +155,33 @@ Talk to you soon on Gitter and in your pull request comments! (p.s. To those of you that scrolled directly to the bottom to get your present, just know that you didn't earn it like the others did. 😄) +### {% linkable_title Hotfix 0.27.1 - August 30 %} + +- Migrate APCUPSd to voluptuous ([@fabaff]) +- Ecobee operation mode fix ([@turbokongen]) +- update ha-ffmpeg version to 0.9 ([@pvizeli]) +- Device tracker component & platform validation. No more home_range. ([@kellerza]) +- Added option to use effect:random for Flux Led light bulbs ([@tchellomello]) +- Use voluptuous for smtp ([@pvizeli]) +- Upgrade sendgrid to 3.2.10 ([@fabaff]) +- Upgrade TwitterAPI to 2.4.2 ([@fabaff]) +- Fix bug in wemo discovery caused by voluptuous addition. ([@pavoni]) +- Bug fix for asuswrt device_tracker. ([@Danielhiversen]) +- Remove units for humidity in Wundeground sensor ([@arsaboo]) +- Fix media_player descriptions and select_source ([@MartinHjelmare]) +- Allow user to configure server id to perform speed test against ([@Teagan42]) +- Bug fix for asuswrt device_tracker. ([@Danielhiversen]) +- More Ecobee operation mode fixes ([@turbokongen]) +- Map Modes to setpoint indexes ([@turbokongen]) +- fix voluptuous and cover autodiscovery ([@pvizeli]) +- Fixes wrong statevalue and problem with zwave setpoint ([@turbokongen]) + [@arsaboo]: https://github.com/arsaboo [@auchter]: https://github.com/auchter [@balloob]: https://github.com/balloob [@blocke]: https://github.com/blocke [@BluGeni]: https://github.com/BluGeni +[@Danielhiversen]: https://github.com/Danielhiversen [@danielperna84]: https://github.com/danielperna84 [@DavidMStraub]: https://github.com/DavidMStraub [@dpford]: https://github.com/dpford @@ -168,6 +190,7 @@ Talk to you soon on Gitter and in your pull request comments! [@jnewland]: https://github.com/jnewland [@Juggels]: https://github.com/Juggels [@kellerza]: https://github.com/kellerza +[@MartinHjelmare]: https://github.com/MartinHjelmare [@mcdeck]: https://github.com/mcdeck [@meatz]: https://github.com/meatz [@mgbowen]: https://github.com/mgbowen @@ -181,6 +204,7 @@ Talk to you soon on Gitter and in your pull request comments! [@roidayan]: https://github.com/roidayan [@roidayan]: ttps://github.com/roidayan [@shmuelzon]: https://github.com/shmuelzon +[@tchellomello]: https://github.com/tchellomello [@Teagan42]: https://github.com/Teagan42 [@technicalpickles]: https://github.com/technicalpickles [@tobiebooth]: https://github.com/tobiebooth From 8e3285c4050dee7971c2dc1b13a146bdb0d522c5 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Tue, 30 Aug 2016 14:32:54 -0700 Subject: [PATCH 30/77] Bump version to 0.27.1 --- source/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/index.html b/source/index.html index ff9002a5941..348ec99e227 100644 --- a/source/index.html +++ b/source/index.html @@ -15,7 +15,7 @@ hide_github_edit: true