From ac316f99075676e19307e8df6824fc3c0a5bb7a0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Mar 2017 10:29:32 +0200 Subject: [PATCH 01/22] Update output --- source/_components/zeroconf.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index 822d53f4d94..bb2dfd320f7 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -28,7 +28,7 @@ $ avahi-browse -alr + eth0 IPv4 Home _home-assistant._tcp local = eth0 IPv4 Home _home-assistant._tcp local hostname = [Home._home-assistant._tcp.local] - address = [192.168.0.5] + address = [192.168.0.70] port = [8123] - txt = ["version=0.27.0.dev0" "base_url=http://192.168.0.5:8123" "requires_api_password=true"] + txt = ["base_url=http://192.168.0.70:8123" "requires_api_password=true" "version=0.41.0"] ``` From 64c8c0e3d3c775484b3031d1d496d9100d8236aa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Mar 2017 10:40:46 +0200 Subject: [PATCH 02/22] Add additional example --- source/_components/zeroconf.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index bb2dfd320f7..d4b89f527ac 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -21,7 +21,7 @@ To integrate this into Home Assistant, add the following section to your `config zeroconf: ``` -The registration will include metadata about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. +The registration will include metadata about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. The examples below show two ways to retrieve the details for testing. ```bash $ avahi-browse -alr @@ -32,3 +32,13 @@ $ avahi-browse -alr port = [8123] txt = ["base_url=http://192.168.0.70:8123" "requires_api_password=true" "version=0.41.0"] ``` + +```bash +$ avahi-discover +Browsing domain 'local' on -1.-1 ... +Browsing for services of type '_home-assistant._tcp' in domain 'local' on 4.0 ... +Found service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0. +Service data for service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0: + Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data: +['requires_api_password=true', 'base_url=http://192.168.0.70:8123', 'version=0.41.0'] +``` From ec99ee80ae595e6980e7ed8b41cff623d6de5880 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Mar 2017 12:14:30 +0200 Subject: [PATCH 03/22] Add breaking change and update Android IP webcam docs --- source/_components/android_ip_webcam.markdown | 11 ----------- .../_posts/2017-03-25-todo-volumio-workday.markdown | 7 ++++--- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index 89631c4cf77..d95d9f64ba4 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -21,17 +21,7 @@ To set it up, download [the IP Webcam app][app] and add the following informatio ```yaml # Example configuration.yaml entry android_ip_webcam: -<<<<<<< HEAD -<<<<<<< HEAD - host: 192.168.1.10 -======= - # This should be the ip of your phone -======= - # This should be the IP Address of the phone ->>>>>>> origin/current - - host: 192.168.1.10 - name: Entrance ->>>>>>> current ``` Configuration variables: @@ -42,7 +32,6 @@ Configuration variables: - **username** (*Optional*): The username to access the phone. - **password** (*Optional*): The password to access the phone. - **scan_interval** (*Optional*): Default is 10 seconds. Defines the update interval of the phone. -- **auto_discovery** (*Optional*): Default is True. Auto detect which sensors and settings are available for setup. - **sensors** array (*Optional*): Conditions to display sensor in the frontend. See list of supported sensors. - **switches** array (*Optional*): Conditions to display settings in the frontend. See list of supported settings. - **motion_sensor** (*Optional*): Activate motion sensor if auto_discovery is disabled. diff --git a/source/_posts/2017-03-25-todo-volumio-workday.markdown b/source/_posts/2017-03-25-todo-volumio-workday.markdown index 3b10ea18e22..8f87641bdfb 100644 --- a/source/_posts/2017-03-25-todo-volumio-workday.markdown +++ b/source/_posts/2017-03-25-todo-volumio-workday.markdown @@ -36,6 +36,7 @@ The new format of the changelog which was introduced with 0.40 will provide a li - The [Emby mediaplayer][emby] platform was changed to avoid name clashes ([#6664]). - In a lot of places were the power and energy units update. This change mostly affects the `switch` platforms ([#6212]). - If set to `auto` then the [MQTT][mqtt] implementation will use the bundled certificates automatically ([#6707]). +- Autodiscovery of [Android IP Webcam][android] was removed ([#6528]) ## If you need help... ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -102,12 +103,11 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add "Refactor zwave discovery to entity schema" ([@balloob] - [#6565]) - Tests for ZWave climate ([@armills] - [#6629]) - Correctly flag Kodi media types ([@armills] - [#6628]) -- since knx_2_float can't handle 0, bypass converting 0 value from knx to float ([@goofz] - [#6626]) - Use sqlite's WAL mode to avoid `database is locked` errors ([@n8henrie] - [#6519]) - Remove event decorators ([@balloob] - [#6634]) (Breaking Change) - Deprecate event forwarding ([@balloob]) - Upgrade aiohttp to 1.3.4 ([@pvizeli] - [#6643]) -- media_player.kodi extra attributes for tvshow and music media ([@mvillarejo] - [#6622]) +- Kodi extra attributes for tvshow and music media ([@mvillarejo] - [#6622]) - Add ZWave cover tests ([@armills] - [#6648]) - Kodi: Fix episode media type classification ([@armills] - [#6645]) - Move LIFX to aiolifx for driving the bulbs ([@amelchio] - [#6584]) @@ -121,7 +121,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix hydroquebec ([@titilambert] - [#6574]) - Update pyecobee version to 0.0.7 ([@dale3h] - [#6593]) - Update SMA solar sensor to work with the new add_devices callback ([@kellerza] - [#6602]) -- since knx_2_float can't handle 0, bypass converting 0 value from knx to float ([@goofz] - [#6626]) +- Since knx_2_float can't handle 0, bypass converting 0 value from knx to float ([@goofz] - [#6626]) - Bugfix RFLINK remove group ([@pvizeli] - [#6580]) - Added workday sensor ([@BastianPoe] - [#6599]) - Add test for Z-wave switch ([@turbokongen] - [#6619]) @@ -341,6 +341,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [tado]: https://home-assistant.io/components/climate.tado/ [volumio]: https://home-assistant.io//components/media_player.volumio/ [workday]: https://home-assistant.io/components/binary_sensor.workday/ +[android]: https://home-assistant.io/components/android_ip_webcam/ [forum]: https://community.home-assistant.io/ [gitter]: https://gitter.im/home-assistant/home-assistant From 6da94882d27226230ef9d1ad3afd0d7988cf147c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Mar 2017 12:49:31 +0200 Subject: [PATCH 04/22] Fix previous merge --- source/_components/android_ip_webcam.markdown | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index d95d9f64ba4..ebe90640545 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -12,11 +12,11 @@ ha_category: Hub ha_release: "0.40" --- -The Android IP webcam component turns an Android phone into a network camera with multiple viewing options. +The `android_ip_webcam` component turns an Android phone into a network camera with multiple viewing options. It's setup as a mjpeg camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. -To set it up, download [the IP Webcam app][app] and add the following information to your `configuration.yaml` file: +To set it up, download [the IP Webcam app][app], and add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -59,8 +59,5 @@ Settings: - torch - whitebalance_lock - video_recording -<<<<<<< HEAD -======= [app]: https://play.google.com/store/apps/details?id=com.pas.webcam ->>>>>>> current From 56652f979a90138e04706d664ceb0c282a6bf700 Mon Sep 17 00:00:00 2001 From: Nelis Willers Date: Mon, 27 Mar 2017 03:56:27 -0200 Subject: [PATCH 05/22] SSH required to install Home Assistant (#2341) Added a note on the All-in-one doc page --- source/_docs/installation/raspberry-pi-all-in-one.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_docs/installation/raspberry-pi-all-in-one.markdown b/source/_docs/installation/raspberry-pi-all-in-one.markdown index 686297e48a5..28ee892b59d 100644 --- a/source/_docs/installation/raspberry-pi-all-in-one.markdown +++ b/source/_docs/installation/raspberry-pi-all-in-one.markdown @@ -16,6 +16,8 @@ The only requirement is that you have a Raspberry Pi with a fresh installation o Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian images. Adding an empty file called `ssh` to `/boot/` or the FAT32 partition will enable it. More information is on the Raspberry Pi Foundation [Blog](https://www.raspberrypi.org/blog/page/2/?fish#a-security-update-for-raspbian-pixel)

+Irrespective of whether you use SSH to connect to the Pi from another computer or not, you need SSH to install Home Assistant. So go ahead and enable SSH. + * Login to Raspberry Pi. For example with `ssh pi@your_raspberry_pi_ip` * Run the following command From 3bb7bfacb4f99ffa1e9f43fd52a710c65deff930 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 27 Mar 2017 08:33:41 +0200 Subject: [PATCH 06/22] Add optional name to let show the service up in dev tools --- source/_components/notify.matrix.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_components/notify.matrix.markdown b/source/_components/notify.matrix.markdown index 2185ac94cf6..fe5d7fc3a40 100644 --- a/source/_components/notify.matrix.markdown +++ b/source/_components/notify.matrix.markdown @@ -20,7 +20,8 @@ To enable Matrix notifications in your installation, add the following to your ` ```yaml # Example configuration.yaml entry notify: - - platform: matrix + - name: NOTIFIER_NAME + platform: matrix homeserver: HOMESERVER username: USERNAME password: PASSWORD From 38553354b5985e0cba873e177153a02e633a355f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 27 Mar 2017 09:38:02 +0200 Subject: [PATCH 07/22] Add Shodow DOM --- source/_posts/2017-03-25-todo-volumio-workday.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_posts/2017-03-25-todo-volumio-workday.markdown b/source/_posts/2017-03-25-todo-volumio-workday.markdown index 8f87641bdfb..c51718f97b9 100644 --- a/source/_posts/2017-03-25-todo-volumio-workday.markdown +++ b/source/_posts/2017-03-25-todo-volumio-workday.markdown @@ -19,7 +19,7 @@ Welcome to 0.41. There was a lot going on in the last two weeks. Not only from t ## Component overview The [Components][components] overview is now powered by search/filtering feature. This will make it faster to get the component/platform you are looking for more quickly. Thanks again, [@bdurrer] for this. - ## Changelog +## Changelog The new format of the changelog which was introduced with 0.40 will provide a link to the related pull request. We are not covering everything in our release notes but we think that this addition will make it easier to find details about the change. ## New platforms/components @@ -36,7 +36,8 @@ The new format of the changelog which was introduced with 0.40 will provide a li - The [Emby mediaplayer][emby] platform was changed to avoid name clashes ([#6664]). - In a lot of places were the power and energy units update. This change mostly affects the `switch` platforms ([#6212]). - If set to `auto` then the [MQTT][mqtt] implementation will use the bundled certificates automatically ([#6707]). -- Autodiscovery of [Android IP Webcam][android] was removed ([#6528]) +- Autodiscovery of [Android IP Webcam][android] was removed ([#6528]). +- The frontend is now using [Shadow DOM][shadow] and this could break your custom panels ([#228](https://github.com/home-assistant/home-assistant-polymer/issues/228)). ## If you need help... ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -342,6 +343,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [volumio]: https://home-assistant.io//components/media_player.volumio/ [workday]: https://home-assistant.io/components/binary_sensor.workday/ [android]: https://home-assistant.io/components/android_ip_webcam/ +[shadow]: (https://www.w3.org/TR/shadow-dom/) [forum]: https://community.home-assistant.io/ [gitter]: https://gitter.im/home-assistant/home-assistant From 3d004e640472f255fb2d8b6d6fbc2923b5e3bdca Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 27 Mar 2017 16:11:26 +0200 Subject: [PATCH 08/22] Fix link --- source/_posts/2017-03-25-todo-volumio-workday.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2017-03-25-todo-volumio-workday.markdown b/source/_posts/2017-03-25-todo-volumio-workday.markdown index c51718f97b9..ee84aa9f129 100644 --- a/source/_posts/2017-03-25-todo-volumio-workday.markdown +++ b/source/_posts/2017-03-25-todo-volumio-workday.markdown @@ -343,7 +343,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [volumio]: https://home-assistant.io//components/media_player.volumio/ [workday]: https://home-assistant.io/components/binary_sensor.workday/ [android]: https://home-assistant.io/components/android_ip_webcam/ -[shadow]: (https://www.w3.org/TR/shadow-dom/) +[shadow]: https://www.w3.org/TR/shadow-dom/ [forum]: https://community.home-assistant.io/ [gitter]: https://gitter.im/home-assistant/home-assistant From 9b475c11f299c8974efec6be71f7b3d7919ee10a Mon Sep 17 00:00:00 2001 From: Kip Date: Mon, 27 Mar 2017 14:41:46 -0400 Subject: [PATCH 09/22] Corrected example, condition state on (#2342) Sensor in 'on' for workday, 'off' for non-workday. Corrected automation example to reflect that. --- source/_components/binary_sensor.workday.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/binary_sensor.workday.markdown b/source/_components/binary_sensor.workday.markdown index e7d729b88b6..16b28e28fba 100644 --- a/source/_components/binary_sensor.workday.markdown +++ b/source/_components/binary_sensor.workday.markdown @@ -43,7 +43,7 @@ automation: condition: condition: state entity_id: 'binary_sensor.workday_sensor' - state: 'off' + state: 'on' action: service: switch.turn_on entity_id: switch.heater From 682b830bf5e12b97792c9b148654c0cdd2c3ac5c Mon Sep 17 00:00:00 2001 From: Sacha Telgenhof Date: Tue, 28 Mar 2017 15:37:15 +0900 Subject: [PATCH 10/22] Removed duplicate configuration variable 'effect' (#2344) --- source/_components/light.mqtt_json.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index e096b012230..91b3cb12277 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -54,7 +54,6 @@ Configuration variables: - **brightness** (*Optional*): Flag that defines if the light supports brightness. Default is false. - **color_temperature** (*Optional*): Flag that defines if the light supports color temperature. Default is false. - **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. -- **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. - **effect_list** (*Optional*): The list of effects the light supports. - **flash_time_long** (*Optional*): The duration, in seconds, of a "long" flash. Default is 10. - **flash_time_short** (*Optional*): The duration, in seconds, of a "short" flash. Default is 2. From 4e7be2c9f1ecf50563f408df34ad6a2ee51e41ca Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Tue, 28 Mar 2017 08:38:24 +0200 Subject: [PATCH 11/22] LIFX is currently not supported on Windows. (#2343) See #6820 for discussion. --- source/_components/light.lifx.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown index e50d445296c..ec2e8c068bb 100644 --- a/source/_components/light.lifx.markdown +++ b/source/_components/light.lifx.markdown @@ -15,6 +15,8 @@ ha_release: 0.12 The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. +_Please note, LIFX is currently not supported on Windows._ + ```yaml # Example configuration.yaml entry light: From e4890f7e898852d036ec4a95911724d511877a2b Mon Sep 17 00:00:00 2001 From: petkov Date: Mon, 27 Mar 2017 23:49:37 -0700 Subject: [PATCH 12/22] HTTP to MQTT bridge blogpost (#2338) * HTTP to MQTT bridge blogpost * Update and rename 2017-03-26-http-to-mqtt-bridge.markdown to 2017-03-28-http-to-mqtt-bridge.markdown --- .../2017-03-28-http-to-mqtt-bridge.markdown | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 source/_posts/2017-03-28-http-to-mqtt-bridge.markdown diff --git a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown new file mode 100644 index 00000000000..e2b41bab218 --- /dev/null +++ b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown @@ -0,0 +1,69 @@ +--- +layout: post +title: "HTTP to MQTT bridge" +description: "How to integrate IFTTT with HA using MQTT" +date: 2017-03-28 06:00:00 +0000 +date_formatted: "March 28, 2017" +author: petkov +comments: true +categories: How-To +--- + +The idea of creating [HTTP to MQTT bridge](https://github.com/petkov/http_to_mqtt) appeared when I was trying to integrate Google Assistant with my Home Assistant after watching [BRUH Automation](https://youtu.be/087tQ7Ly7f4?t=265) video. Right now there is no MQTT service available in [IFTTT](https://ifttt.com/about). Existing integration solution uses [Maker Webhooks](https://ifttt.com/maker_webhooks) which requires that your Home Assistant instance is publically accessible, which I think brings some security concerns or simply not always possible to set up. + +The HTTP to MQTT bridge should fill that gap. The idea is to receive messages using HTTP requests and transfer them to your MQTT broker, which can be contacted by Home Assistant. The HTTP to MQTT bridge is written using Node.js with [Express](https://expressjs.com/) for the server part and [MQTT.js](https://www.npmjs.com/package/mqtt) for the client. + + + +The app could be hosted on any Node.js hosting. I prefer [Heroku: Cloud Application Platform](https://www.heroku.com/home) for its simplicity. + +### {% linkable_title Bringing pieces together %} + +1. Configure the Home Assistant [MQTT trigger](https://home-assistant.io/docs/automation/trigger/#mqtt-trigger). +1. Configure [CloudMQTT](https://www.cloudmqtt.com/). Check this [video tutorial](https://www.youtube.com/watch?v=VaWdvVVYU3A) for details. +1. [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/petkov/http_to_mqtt) HTTP to MQTT bridge app. +1. Add the (Configuration Variables)(https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application) to your Heroku app mentioned here. + * AUTH_KEY: Can be any string, eg. `912ec803b2ce49e4a541068d495ab570`. + * MQTT_HOST: The host of your MQTT broker, eg. mqtts://k99.cloudmqtt.com:21234. + * MQTT_USER: MQTT username + * MQTT_PASS: MQTT password +1. Create an IFTTT applet the same way as described in [BRUH Automation](https://youtu.be/087tQ7Ly7f4?t=265) video. +1. Configure [Maker Webhooks](https://ifttt.com/maker_webhooks) service with below parameters. + * URL: `https://.herokuapp.com/post/` + * Method: `POST` + * Content Type: `application/json` + * Body: `{"topic":"","message":"","key":""}` + +### {% linkable_title Subscribe to latest version %} + +Additionally you can make Heroku to update the HTTP to MQTT bridge app to the latest available version from the GitHub repository automatically. To do this follow the instruction on the [Heroku help page](https://devcenter.heroku.com/articles/github-integration#automatic-deploys). + +### {% linkable_title Improve response time %} + +After 30 minutes of inactivity Heroku will put your app into sleep mode. This will result in ~10 seconds response time. To prevent Heroku from putting your app into sleep mode, ping it every 10 minutes. You can do that by sending regular HTTP GET request to http://your_app/keep_alive/. But be careful. Heroku free quota is 550 hours per month. Without sleeping your app will be allowed to run only 22 days a month. Additionally the `keep_alive` method will send a simple MQTT message to prevent the broker from sleeping as well. The topic and message can be configured using Heroku environment variables `KEEP_ALIVE_TOPIC` and `KEEP_ALIVE_MESSAGE` and both are set to "keep_alive" by default. + +You can even configure Home Assistant to ping HTTP to MQTT bridge every 10 minutes during daytime. Below is an example of how to do that: + +```yaml +rest_command: + http_to_mqtt_keep_alive: + url: https:///keep_alive/ + method: get + +automation: + alias: HTTP to MQTT keep alive + trigger: + platform: time + minutes: '/10' + seconds: 00 + condition: + condition: time + after: '7:30:00' + before: '23:59:59' + action: + service: rest_command.http_to_mqtt_keep_alive +``` + +### {% linkable_title Thanks %} + +Special thanks to Ben from [BRUH Automation](https://www.youtube.com/channel/UCLecVrux63S6aYiErxdiy4w/featured) for awesome tutorials which inspired me to do this project. From 1065820cae3d5da859d54ed2aeed3b20b5d552c9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 28 Mar 2017 09:17:35 +0200 Subject: [PATCH 13/22] Add social image for blog post --- source/images/blog/2017-03-bridge/social.png | Bin 0 -> 101052 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 source/images/blog/2017-03-bridge/social.png diff --git a/source/images/blog/2017-03-bridge/social.png b/source/images/blog/2017-03-bridge/social.png new file mode 100644 index 0000000000000000000000000000000000000000..f13527bdbb89b187d5e47b4eab8e7cb9ae016bad GIT binary patch literal 101052 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%0Anu_xs~5q?cDwOitzD588{|^n60W_t&BVZC@HE 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 Date: Tue, 28 Mar 2017 09:19:02 +0200 Subject: [PATCH 14/22] Add social image --- source/_posts/2017-03-28-http-to-mqtt-bridge.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown index e2b41bab218..8c2f705d398 100644 --- a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown +++ b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown @@ -7,6 +7,7 @@ date_formatted: "March 28, 2017" author: petkov comments: true categories: How-To +og_image: /images/blog/2017-03-bridge/social.png --- The idea of creating [HTTP to MQTT bridge](https://github.com/petkov/http_to_mqtt) appeared when I was trying to integrate Google Assistant with my Home Assistant after watching [BRUH Automation](https://youtu.be/087tQ7Ly7f4?t=265) video. Right now there is no MQTT service available in [IFTTT](https://ifttt.com/about). Existing integration solution uses [Maker Webhooks](https://ifttt.com/maker_webhooks) which requires that your Home Assistant instance is publically accessible, which I think brings some security concerns or simply not always possible to set up. @@ -15,7 +16,7 @@ The HTTP to MQTT bridge should fill that gap. The idea is to receive messages us -The app could be hosted on any Node.js hosting. I prefer [Heroku: Cloud Application Platform](https://www.heroku.com/home) for its simplicity. +The app could be hosted on any Node.js hosting. I prefer [Heroku: Cloud Application Platform](https://www.heroku.com/home) for its simplicity. ### {% linkable_title Bringing pieces together %} From f41d42be4e2383937198dd8342952e354d020c3f Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Tue, 28 Mar 2017 21:56:18 +0200 Subject: [PATCH 15/22] Fix Link for MQTT to HTTP blogpost Fix formatting of link. --- source/_posts/2017-03-28-http-to-mqtt-bridge.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown index 8c2f705d398..ea0c4496e2c 100644 --- a/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown +++ b/source/_posts/2017-03-28-http-to-mqtt-bridge.markdown @@ -23,7 +23,7 @@ The app could be hosted on any Node.js hosting. I prefer [Heroku: Cloud Applicat 1. Configure the Home Assistant [MQTT trigger](https://home-assistant.io/docs/automation/trigger/#mqtt-trigger). 1. Configure [CloudMQTT](https://www.cloudmqtt.com/). Check this [video tutorial](https://www.youtube.com/watch?v=VaWdvVVYU3A) for details. 1. [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/petkov/http_to_mqtt) HTTP to MQTT bridge app. -1. Add the (Configuration Variables)(https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application) to your Heroku app mentioned here. +1. Add the [Configuration Variables](https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application) to your Heroku app mentioned here. * AUTH_KEY: Can be any string, eg. `912ec803b2ce49e4a541068d495ab570`. * MQTT_HOST: The host of your MQTT broker, eg. mqtts://k99.cloudmqtt.com:21234. * MQTT_USER: MQTT username From 2d727eb8f597c7b38f7d4cef6eb6e0f5967618b0 Mon Sep 17 00:00:00 2001 From: Daniel Perna Date: Thu, 30 Mar 2017 09:10:56 +0200 Subject: [PATCH 16/22] Update documentation, add link to menu (#2349) --- source/_docs/ecosystem/hass-configurator.markdown | 13 +++++++------ source/_includes/asides/docs_navigation.html | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown index a97552a5460..6ec4d11b8e0 100644 --- a/source/_docs/ecosystem/hass-configurator.markdown +++ b/source/_docs/ecosystem/hass-configurator.markdown @@ -24,7 +24,8 @@ Essentially this is a browser-based alternative to modifying your configuration - Check valid configuration and restart Home Assistant directly with the click of a button - SSL support - Optional authentication and IP filtering for additional security -- Direct links to Home Assistant documentation +- Direct links to Home Assistant documentation and icons +- Execute shell commands - Runs on pretty much any machine Home Assistant can run on

@@ -33,7 +34,7 @@ Consider running the configurator as a user with limited privileges to limit pos ### {% linkable_title Installation (Linux, OS X) %} There are no dependencies on Python modules that are not part of the standard library. And all the fancy JavaScript libraries are loaded from CDN (which means this doesn't work when you're offline). -- Copy [configurator.py](https://github.com/danielperna84/hass-poc-configurator/blob/master/configurator.py) to your Home Assistant configuration directory (e.g /home/homeassistant/.homeassistant) +- Copy [configurator.py](https://github.com/danielperna84/hass-configurator/blob/master/configurator.py) to your Home Assistant configuration directory (e.g /home/homeassistant/.homeassistant) - Make it executable: `sudo chmod 755 configurator.py` - (Optional) Set the `GIT` variable in configurator.py to `True` if [GitPython](https://gitpython.readthedocs.io/) is installed on your system. This is required if you want to make use of the Git integration. - Execute it: `sudo ./configurator.py` @@ -41,7 +42,7 @@ There are no dependencies on Python modules that are not part of the standard li ### {% linkable_title Configuration %} Near the top of the configurator.py-file you will find some global variables you can change to customize the configurator. If you are unfamiliar with Python: when setting variables of the type _string_, you have to write that within quotation marks. The default settings are fine for just checking out the configurator quickly. With more customized setups you should change some settings though. -To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-poc-configurator/blob/master/settings.conf) whereever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`. +To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-configurator/blob/master/settings.conf) whereever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`. #### LISTENIP (string) The IP the service is listening on. By default it is binding to `0.0.0.0`, which is every interface on the system. @@ -99,11 +100,11 @@ Since the configurator script on its own is no service, you will have to take so 1. Fork the process into the background with the command: `nohup sudo ./configurator.py &` -2. If your system is using systemd (that's usually what you'll find on a Raspberry PI), there's a [template file](https://github.com/danielperna84/hass-poc-configurator/blob/master/hass-poc-configurator.systemd) you can use and then apply the same process to integrate it as mentioned in the [Home Assistant documentation](https://home-assistant.io/docs/autostart/systemd/). If you use this method you have to set the `BASEPATH` variable according to your environment. -3. If you have [supervisor](http://supervisord.org/) running on your system, [hass-poc-configurator.supervisor](https://github.com/danielperna84/hass-poc-configurator/blob/master/hass-poc-configurator.supervisor) would be an example configuration you could use to control the configurator. +2. If your system is using systemd (that's usually what you'll find on a Raspberry PI), there's a [template file](https://github.com/danielperna84/hass-configurator/blob/master/hass-poc-configurator.systemd) you can use and then apply the same process to integrate it as mentioned in the [Home Assistant documentation](https://home-assistant.io/docs/autostart/systemd/). If you use this method you have to set the `BASEPATH` variable according to your environment. +3. If you have [supervisor](http://supervisord.org/) running on your system, [hass-poc-configurator.supervisor](https://github.com/danielperna84/hass-configurator/blob/master/hass-poc-configurator.supervisor) would be an example configuration you could use to control the configurator. 4. A tool called [tmux](https://tmux.github.io/), which should be pre-installed with [HASSbian](https://home-assistant.io/docs/hassbian/). 5. A tool called [screen](http://ss64.com/bash/screen.html) (alternative to tmux). If it's not already installed on your system, you can do `sudo apt-get install screen` or `sudo yum install screen` to get it. When it's installed, start a screen session by executing `screen`. Then navigate to your Home Assistant directory and start the configurator like described above. Put the screen session into the background by pressing `CTRL+A` and then `CTRL+D`. It is now safe to disconnect from your SSH session. To resume the screen session, log in to your machine and execute `screen -r`. ### {% linkable_title Troubleshooting, Issues etc. %} -If you encounter difficulties setting up the configurator or stumble upon a possible bug, head over to the [Issues](https://github.com/danielperna84/hass-poc-configurator/issues) section of the configurator repository. Additionally there is a thread at the [Home Assistant Community](https://community.home-assistant.io/t/simplistic-configuration-ui/10175) where common problems may have been discussed already. And if not, there are always friendly people around to help finding solutions. +If you encounter difficulties setting up the configurator or stumble upon a possible bug, head over to the [Issues](https://github.com/danielperna84/hass-configurator/issues) section of the configurator repository. Additionally there is a thread at the [Home Assistant Community](https://community.home-assistant.io/t/simplistic-configuration-ui/10175) where common problems may have been discussed already. And if not, there are always friendly people around to help finding solutions. diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 4bbcd23b184..08f26f379f0 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -195,6 +195,7 @@

  • {% active_link /docs/ecosystem/scenegen/ scenegen %}
  • {% active_link /docs/ecosystem/synology/ Synology %}
  • {% active_link /docs/ecosystem/backup/backup_github/ Backup to GitHub %}
  • +
  • {% active_link /docs/ecosystem/hass-configurator/ HASS Configurator %}
  • From ebc2b9907fc730cb37915b5ae681530c585e8950 Mon Sep 17 00:00:00 2001 From: Beat Date: Fri, 31 Mar 2017 19:26:30 +0200 Subject: [PATCH 17/22] removed reference to home-assistant-js (#2356) according to the repository readme, this is old stuff and not used anymore. --- source/developers/development.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/developers/development.markdown b/source/developers/development.markdown index 771709054e1..f2f79b70c40 100644 --- a/source/developers/development.markdown +++ b/source/developers/development.markdown @@ -14,7 +14,6 @@ Home Assistant is built from the ground up to be easily extensible using compone Home Assistant is open-source and MIT-licensed. Here are links to the source: - [home-assistant](https://github.com/home-assistant/home-assistant): Python server backend. - - [home-assistant-js](https://github.com/home-assistant/home-assistant-js): JavaScript backend that powers the client. - [home-assistant-polymer](https://github.com/home-assistant/home-assistant-polymer): Polymer UI. For those new to contributing to open source software, make sure you are familiar with all of the tools and concepts used in Home Assistant before you start. From bcd9802ac76586cc662848ac86aa15389e00534b Mon Sep 17 00:00:00 2001 From: 15goudreau <15goudreau@gmail.com> Date: Fri, 31 Mar 2017 13:30:38 -0400 Subject: [PATCH 18/22] Fixed Formatting issue in Mixed Conditions Section (#2345) --- source/_docs/scripts/conditions.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 85837d5372e..ac33901d7ee 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -58,12 +58,12 @@ condition: state: 'home' - condition: or conditions: - - condition: state - entity_id: sensor.weather_precip - state: 'rain' - - condition: numeric_state - entity_id: 'sensor.temperature' - below: '20' + - condition: state + entity_id: sensor.weather_precip + state: 'rain' + - condition: numeric_state + entity_id: 'sensor.temperature' + below: '20' ``` ### {% linkable_title Numeric state condition %} From d6e1214f353ce445711903db74e13985f0753716 Mon Sep 17 00:00:00 2001 From: Sacha Telgenhof Date: Sat, 1 Apr 2017 02:31:41 +0900 Subject: [PATCH 19/22] Corrected configuration variable for color temp (#2346) The documented configuration variable for color temperature is in fact named "color_temp" (not "color_temperature" as described). It took me some time to figure out this in my home assistant configuration :) --- source/_components/light.mqtt_json.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 91b3cb12277..d707abccb04 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -52,7 +52,7 @@ Configuration variables: - **command_topic** (*Required*): The MQTT topic to publish commands to change the light's state. - **brightness** (*Optional*): Flag that defines if the light supports brightness. Default is false. -- **color_temperature** (*Optional*): Flag that defines if the light supports color temperature. Default is false. +- **color_temp** (*Optional*): Flag that defines if the light supports color temperature. Default is false. - **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. - **effect_list** (*Optional*): The list of effects the light supports. - **flash_time_long** (*Optional*): The duration, in seconds, of a "long" flash. Default is 10. From 258348b77c5b14bd003d7fe3bee214e81a7e20cc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 31 Mar 2017 19:41:46 +0200 Subject: [PATCH 20/22] Update apache.markdown (#2348) Added a note regarding a workaround for HTTP 504 Gateway Timeout error messages. --- source/_docs/ecosystem/apache.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/_docs/ecosystem/apache.markdown b/source/_docs/ecosystem/apache.markdown index e526cc3f79e..94d0a1cf20b 100644 --- a/source/_docs/ecosystem/apache.markdown +++ b/source/_docs/ecosystem/apache.markdown @@ -53,6 +53,20 @@ Include conf/extra/hass.conf If you don't want HTTPS, you can change `` to `` or better consider redirecting all HTTP to HTTPS. +

    +In case you are getting occasional HTTP 504 error messages ("Gateway Timeout") when accessing the Web UI through your proxy, try adding disablereuse=on to both ProxyPass directives: + +```text + + [...] + ProxyPass /api/websocket ws://localhost:8123/api/websocket disablereuse=on + [...] + ProxyPass / http://localhost:8123/ disablereuse=on + [...] + +``` +

    + #### {% linkable_title Multiple Instance %} You already have Home Assistant running on http://localhost:8123 and available at home.example.org as describe before. The configuration file for this Home Assistant is available in `/home/alice/.homeassistant/configuration.yaml` From c7a5df6ecbe42b6a2c0d80bf17b9fc0c109ca98f Mon Sep 17 00:00:00 2001 From: radinsky Date: Fri, 31 Mar 2017 22:23:27 +0300 Subject: [PATCH 21/22] Update example script usage for logbook (#1926) * Update example script usage for logbook Changed from event to service * Remove extra whitespace --- source/_components/logbook.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/logbook.markdown b/source/_components/logbook.markdown index 609e9f5bbe4..74e493fc9bf 100644 --- a/source/_components/logbook.markdown +++ b/source/_components/logbook.markdown @@ -88,8 +88,8 @@ script: add_logbook_entry: alias: Add Logbook sequence: - - event: LOGBOOK_ENTRY - event_data: + - service: logbook.log + data_template: name: Kitchen message: is being used # Optional From f45864d3fc6bffd9f604a79b22359931a193362e Mon Sep 17 00:00:00 2001 From: miniconfig Date: Fri, 31 Mar 2017 15:24:30 -0400 Subject: [PATCH 22/22] Update efergy documentation for current_values (#2266) Updated efergy documentation to include support for multiple devices per account, introduced in home-assistant/home-assistant#6630 --- source/_components/sensor.efergy.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/sensor.efergy.markdown b/source/_components/sensor.efergy.markdown index 5fa8a9f7a25..b1bde92188d 100644 --- a/source/_components/sensor.efergy.markdown +++ b/source/_components/sensor.efergy.markdown @@ -38,6 +38,7 @@ sensor: currency: $ - type: amount period: day + - type: current_values ``` Configuration variables: @@ -51,6 +52,7 @@ negative number of minutes your timezone is ahead/behind UTC time. - **budget**: Monthly budget. - **cost**: The cost for energy consumption (with the tariff that has been set in Efergy) over a given period. - **amount**: The amount of energy consumed over a given period. + - **current_values**: This returns the current energy usage of each device on your account, as efergy_\. If you only have one device in your account, this is effectively the same as instant_readings. - **period** (*Optional*): Some variables take a period argument. Valid options are "day", "week", "month", and "year". - **currency** (*Optional*): This is used to display the cost/period as the unit when monitoring the cost. It should correspond to the actual currency used in your dashboard.