From f4323285456eb8f412be29c8621a6831c89112ad Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Mon, 28 Mar 2016 10:52:52 -0700 Subject: [PATCH 01/25] Add GTFS sensor docs --- source/_components/sensor.gtfs.markdown | 53 ++++++++++++++++++++++++ source/images/supported_brands/gtfs.png | Bin 0 -> 982 bytes 2 files changed, 53 insertions(+) create mode 100644 source/_components/sensor.gtfs.markdown create mode 100644 source/images/supported_brands/gtfs.png diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown new file mode 100644 index 00000000000..97ebcd31a28 --- /dev/null +++ b/source/_components/sensor.gtfs.markdown @@ -0,0 +1,53 @@ +--- +layout: page +title: "Public Transit (GTFS)" +description: "Instructions how to use public transit open data inHome Assistant." +date: 2016-03-28 10:19 +sidebar: true +comments: false +sharing: true +footer: true +logo: 'gtfs.png' +ha_category: Sensor +ha_iot_class: "Local Polling" +--- + + +The `gtfs` sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from your chosen public transit authority and is formatted as [General Transit Feed Specification](https://developers.google.com/transit/gtfs/) data, commonly known as GTFS. + +You need to find a valid GTFS data set, which you can usually find just by searching the internet. Most public transit authorities have GTFS available somewhere, as Google requires public transit authorities to provide the data if they wish to appear on Google Maps. + +Here are some examples: + +- [Bay Area Rapid Transit (BART)](http://www.bart.gov/schedules/developers/gtfs) - The light rail system for the San Francisco Bay Area. +- [Metropolitan Transit Authority of New York City (MTA)](http://www.bart.gov/schedules/developers/gtfs) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region. +- [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in the Britain. + +You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder. + +The data will be converted into a queryable format and saved as a SQLite3 database alongside the source data. The sensor will check for the existence of this SQLite3 data at every startup and will re-import the ZIP/Folder if none is found. + +To update the data, delete the SQLite3 file and restart Home Assistant. + +To find your stop ID, open the `stops.txt` file inside the ZIP file/unzipped folder. The format of the ID is different for every transit agency but will be the first "column" (meaning the string before the first comma) in a row. + +The sensor attributes will contain all related information for the specific trip, such as agency information, origin and destination stop information, origin and destination stop time and the route information. + +Your mileage may vary depending on the transit agency used. Most agencies respect the GTFS format but some will do weird things like adding extra columns or using different data formatting. If you have any data specific issues, please report them to the [PyGTFS](https://github.com/jarondl/pygtfs) project, which is what the GTFS sensor uses to parse data. + +**Please note**: This is a _static_ data source. Currently, there is no GTFS Realtime support in this sensor due to issues surrounding parsing the protocol buffer format in Python 3. Once those issues have been fixed Realtime support will be added. Once added, the sensor will check for any delays and advisories and report them in sensor as needed. + +```yaml +# Example configuration.yaml entry +sensor: + platform: gtfs + origin: STOP_ID + destination: STOP_ID + data: DATA_SOURCE +``` + +Configuration variables: + +- **origin** (*Required*): The stop ID of your origin station. +- **destination** (*Required*): The stop ID of your destination station. +- **data** (*Required*): The name of the ZIP file or folder containing the GTFS data. It must be located inside the `gtfs` folder of your configuration directory. diff --git a/source/images/supported_brands/gtfs.png b/source/images/supported_brands/gtfs.png new file mode 100644 index 0000000000000000000000000000000000000000..45f39d707fca73ad85fdc92bd96e7d198d651df4 GIT binary patch literal 982 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE(}8pX7+2iB`GtXjInmR_F{I+w+qu5pA&C-g`o0T2xbJ$nIPT(# zmE79#qM0X#wducuhnL3x#vLESr(B4CA%EqNt7G>?5Amyul!83oFv~7kcC=Dec+*VF z_m%IypRp0QIkVvNN4xK(=k`3G^HJttq0I5jaH}iK47(bO4^$>_NHF|r+*fd${|l4t z!;RH*Sga2JjX!X0-~G2t_Z#yMOb?j-@SE`mwhG=o-2GD%br(qQV2NSYo78G|;{L&? zP277_Cx2wB;IeVoQ8k-;z~aM<9L+VVakCTGJpL1T*vnJAfIY%n;YwPz?w1Qo`8Efx zW0=aq)Dt@OLa^oz|8J73_;kzOw%wbQrr5ZkYaMIpiT_DjjRkA6ykx&Q`c2MlU){WM z)!GZiMmlN&U8TCmIP{M7MaX{;v=B>nP)(YhqkH4bXC=cj6Sa)}A2@COpVUs2VA5MX zSzyxc??A?iUeF1@z-7SQGa=S_h5DWOtZ^&Zmmhew=Z@?Hy>@+* zxd(UxOl79abgQjS5wBb|-O!n{NN3iZyrh`#F%EN9UAPld$`auh>maH2usucmY4()) z2b8})(AB8ols;#;EwTCI(?gF;uI`zmu=`Jn@fW6eZn^pMmqn$WQh2cD#ZI*&0vFyK zci!9cwBp^`rsH8H?@I%}lsZm7X{ITCG|9L`H^0L0S_8je++zc`j6C-oE1T^eUGMhl zJ=dW5}25-)mq)=~_3dL253AT*|UF*JH$ewiPz_;5PuUECnO@3yz zVWLCC#%$#;VO(sPYb_Hszl3O6o!BOF>Yu)knr6YFt+P(LH{L!F`aq&&r*{)bL!+C#+{2I$rjj$yWb+ Date: Mon, 28 Mar 2016 11:02:05 -0700 Subject: [PATCH 02/25] Typo fixes --- source/_components/sensor.gtfs.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown index 97ebcd31a28..8ad6a0cbb95 100644 --- a/source/_components/sensor.gtfs.markdown +++ b/source/_components/sensor.gtfs.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Public Transit (GTFS)" -description: "Instructions how to use public transit open data inHome Assistant." +description: "Instructions on how to use public transit open data in Home Assistant." date: 2016-03-28 10:19 sidebar: true comments: false @@ -21,7 +21,7 @@ Here are some examples: - [Bay Area Rapid Transit (BART)](http://www.bart.gov/schedules/developers/gtfs) - The light rail system for the San Francisco Bay Area. - [Metropolitan Transit Authority of New York City (MTA)](http://www.bart.gov/schedules/developers/gtfs) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region. -- [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in the Britain. +- [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in Britain. You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder. @@ -35,7 +35,7 @@ The sensor attributes will contain all related information for the specific trip Your mileage may vary depending on the transit agency used. Most agencies respect the GTFS format but some will do weird things like adding extra columns or using different data formatting. If you have any data specific issues, please report them to the [PyGTFS](https://github.com/jarondl/pygtfs) project, which is what the GTFS sensor uses to parse data. -**Please note**: This is a _static_ data source. Currently, there is no GTFS Realtime support in this sensor due to issues surrounding parsing the protocol buffer format in Python 3. Once those issues have been fixed Realtime support will be added. Once added, the sensor will check for any delays and advisories and report them in sensor as needed. +**Please note**: This is a _static_ data source. Currently, there is no GTFS Realtime support in this sensor due to issues surrounding parsing the protocol buffer format in Python 3. Once those issues have been fixed Realtime support will be added. Once added, the sensor will check for any delays and advisories and report them in the sensor as needed. ```yaml # Example configuration.yaml entry From 1e545f59b6b2c0bdc863085532a8f70aca0d4407 Mon Sep 17 00:00:00 2001 From: Marc Plano-Lesay Date: Tue, 29 Mar 2016 14:17:56 +0200 Subject: [PATCH 03/25] Fix typos in Transmission sensor documentation --- source/_components/sensor.transmission.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown index e484da70f1e..7bc10962605 100644 --- a/source/_components/sensor.transmission.markdown +++ b/source/_components/sensor.transmission.markdown @@ -12,7 +12,7 @@ ha_category: Sensor --- -The `trnasmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. +The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. ```yaml # Example configuration.yaml entry @@ -36,13 +36,13 @@ Configuration variables: - **name** (*Optional*): The name to use when displaying this Transmission instance. - **username** (*Optional*): Your Transmission username, if you use authentication. - **password** (*Optional*): Your Transmission password, if you use authentication. -- **display_variables** array: Conditions to display in the frontend. +- **monitored_variables** array: Conditions to display in the frontend. - **current_status**: The status of your Transmission daemon. - **download_speed**: The current download speed. - **upload_speed**: The current upload speed. -To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Perferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. +To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed.

From db7661227802a13cdbffa8988994b78fd570774b Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Tue, 29 Mar 2016 14:11:26 -0700 Subject: [PATCH 04/25] Add links to GTFS Data Exchange and TransitFeeds --- source/_components/sensor.gtfs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown index 8ad6a0cbb95..dce5fb4dd33 100644 --- a/source/_components/sensor.gtfs.markdown +++ b/source/_components/sensor.gtfs.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Polling" The `gtfs` sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from your chosen public transit authority and is formatted as [General Transit Feed Specification](https://developers.google.com/transit/gtfs/) data, commonly known as GTFS. -You need to find a valid GTFS data set, which you can usually find just by searching the internet. Most public transit authorities have GTFS available somewhere, as Google requires public transit authorities to provide the data if they wish to appear on Google Maps. +You need to find a valid GTFS data set, which you can usually find just by searching the internet. Most public transit authorities have GTFS available somewhere, as Google requires public transit authorities to provide the data if they wish to appear on Google Maps. You may also be able to find data at either [TransitFeeds](http://transitfeeds.com/feeds) or [GTFS Data Exchange](http://www.gtfs-data-exchange.com/). Here are some examples: From cc117811a19422462f755f130c306835cfa009be Mon Sep 17 00:00:00 2001 From: Florian Holzapfel Date: Thu, 17 Mar 2016 13:08:52 +0100 Subject: [PATCH 05/25] add vieratv documentation --- .../_components/media_player.vieratv.markdown | 38 ++++++++++++++++++ source/images/supported_brands/panasonic.png | Bin 0 -> 2576 bytes 2 files changed, 38 insertions(+) create mode 100644 source/_components/media_player.vieratv.markdown create mode 100644 source/images/supported_brands/panasonic.png diff --git a/source/_components/media_player.vieratv.markdown b/source/_components/media_player.vieratv.markdown new file mode 100644 index 00000000000..12fe1a64eb1 --- /dev/null +++ b/source/_components/media_player.vieratv.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Panasonic Viera TV" +description: "Instructions on how to integrate a Panasonic Viera TV into Home Assistant." +date: 2016-03-17 13:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: Panasonic.png +ha_category: Media Player +featured: false +--- + +The `vieratv` platform allows you to control a Panasonic Viera TV. + +To add a TV to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: vieratv + host: 192.168.0.10 + port: 55000 + name: Living Room TV +``` + +Configuration variables: + +- **host** *Required*: The IP of the Panasonic Viera TV, e.g. `192.168.0.10` +- **port** *Optional*: The port of your Panasonic Viera TV. Defaults to `55000` +- **name** *Optional*: The name you would like to give to the Panasonic Viera TV. + +Currently known supported models: + +- TX-P42STW50 + +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/balloob/home-assistant.io). diff --git a/source/images/supported_brands/panasonic.png b/source/images/supported_brands/panasonic.png new file mode 100644 index 0000000000000000000000000000000000000000..f74fb674c90c7e5dd40fd3773624dde5b559f03a GIT binary patch literal 2576 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 msJLcU2h0J_sZ|Ran#4b_p~h924}CWP0000 Date: Tue, 29 Mar 2016 23:18:48 +0200 Subject: [PATCH 06/25] rename virtatv to include the brand name --- ...vieratv.markdown => media_player.panasonic_viera.markdown} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename source/_components/{media_player.vieratv.markdown => media_player.panasonic_viera.markdown} (90%) diff --git a/source/_components/media_player.vieratv.markdown b/source/_components/media_player.panasonic_viera.markdown similarity index 90% rename from source/_components/media_player.vieratv.markdown rename to source/_components/media_player.panasonic_viera.markdown index 12fe1a64eb1..5e0256daada 100644 --- a/source/_components/media_player.vieratv.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -12,14 +12,14 @@ ha_category: Media Player featured: false --- -The `vieratv` platform allows you to control a Panasonic Viera TV. +The `panasonic_viera` platform allows you to control a Panasonic Viera TV. To add a TV to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry media_player: - platform: vieratv + platform: panasonic_viera host: 192.168.0.10 port: 55000 name: Living Room TV From 87ad1f69aaaff00aaf74e242a07e26936bb05575 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 30 Mar 2016 10:08:07 +0200 Subject: [PATCH 07/25] Add docs for onkyo receiver --- .../_components/media_player.onkyo.markdown | 24 ++++++++++++++++++ source/images/supported_brands/onkyo.png | Bin 0 -> 3830 bytes 2 files changed, 24 insertions(+) create mode 100644 source/_components/media_player.onkyo.markdown create mode 100644 source/images/supported_brands/onkyo.png diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown new file mode 100644 index 00000000000..fc2b2fc9f7c --- /dev/null +++ b/source/_components/media_player.onkyo.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "Onkyo" +description: "Instructions how to integrate Onkyo receivers into Home Assistant." +date: 2016-03-30 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: onkyo.png +ha_category: Media Player +--- + + +The `onkyo` platform allows you to control a [Onkyo receiver](http://www.onkyo.com/) from Home Assistant. + +To add an Onkyo receiver to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: onkyo +``` + diff --git a/source/images/supported_brands/onkyo.png b/source/images/supported_brands/onkyo.png new file mode 100644 index 0000000000000000000000000000000000000000..eaca37abcf5060df924ec6448b69a81ee659839d GIT binary patch literal 3830 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 literal 0 HcmV?d00001 From 94109e355cfdb485d59f942a3ad523468da97728 Mon Sep 17 00:00:00 2001 From: Charles Spirakis Date: Wed, 30 Mar 2016 15:25:40 -0700 Subject: [PATCH 08/25] Dcoument zwave's test_network for 0.17 Documents the test_network service which is a call through to openzwave's TestNetwork() method. --- source/_components/zwave.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 5e1d15f7b18..83c13ff0325 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -119,3 +119,4 @@ The Z-Wave component exposes two services to help maintain the network. | remove_node | | | heal_network | | | soft_reset | | +| test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead".| From 8338a82251196914e822fc811408950a050e089e Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 1 Apr 2016 00:37:43 -0400 Subject: [PATCH 09/25] Update media_player.onkyo.markdown --- .../_components/media_player.onkyo.markdown | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index fc2b2fc9f7c..04473cb94de 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -22,3 +22,71 @@ media_player: platform: onkyo ``` +A few notes: +- Source selection has no front-end UI, but can be controlled by way of service calls. Select the source string from the following list: + +``` + video1 + video2 + video3 + video4 + video5 + video6 + video7 + dvd + bd-dvd + tape1 + tv-tape + tape2 + phono + cd + tv-cd + fm + am + tuner + dlna + internet-radio + usb + network + universal-port + multi-ch + xm + sirius + ``` +- Sample automation and input select +``` +automation: + alias: Receiver Source + trigger: + platform: state + entity_id: input_select.receiver_source + action: + service: media_player.select_source + data_template: + entity_id: media_player.txnr535_000000000000 + source: > + {% if is_state('input_select.receiver_source', 'HTPC') %} + pc + {% elif is_state('input_select.receiver_source', 'Chromecast') %} + aux1 + {% elif is_state('input_select.receiver_source', 'Wii U') %} + game + {% elif is_state('input_select.receiver_source', 'Bluray') %} + bd + {% elif is_state('input_select.receiver_source', 'Raspberry Pi') %} + tv + {% endif %} + +input_select: + receiver_source: + name: Source + options: + - HTPC + - Chromecast + - Wii U + - Bluray + - Raspberry Pi + initial: None + +``` + From 6b44dc42634c33a1c551e1a60402859bf2cf27ee Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 2 Apr 2016 23:32:04 +0200 Subject: [PATCH 10/25] Add loop energy docs --- .../_components/sensor.loop_energy.markdown | 35 ++++++++++++++++++ source/images/supported_brands/loop.png | Bin 0 -> 7192 bytes 2 files changed, 35 insertions(+) create mode 100644 source/_components/sensor.loop_energy.markdown create mode 100644 source/images/supported_brands/loop.png diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown new file mode 100644 index 00000000000..0d6aa9c0c11 --- /dev/null +++ b/source/_components/sensor.loop_energy.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "Loop Energy" +description: "Instructions how to integrate Loop Energy devices within Home Assistant." +date: 2016-04-02 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: loop.png +ha_category: Sensor +--- + + +Integrate your [Loop Energy](https://www.your-loop.com/) meter information into Home Assistant. + +To enable the Loop Energy sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + platform: loopenergy + electricity_serial: ELECRITCAL_SERIAL + electricity_secret: ELECTRICAL_OFFSET + gas_serial: GAS_SERIAL + gas_secret: GAS_SECRET +``` + +Configuration variables: + +- **electricity_serial** (*Required*): Serial of your electricity sensor +- **electricity_secret** (*Required*): Secret for your electricity Sensor +- **gas_serial** (*Required*): Serial for your gas sensor. +- **gas_secret** (*Required*): Secret for your gas sensor. + diff --git a/source/images/supported_brands/loop.png b/source/images/supported_brands/loop.png new file mode 100644 index 0000000000000000000000000000000000000000..a96a4099f89fb3304a21edd0d18a3e510800305a GIT binary patch literal 7192 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 Date: Sun, 3 Apr 2016 09:54:04 +0200 Subject: [PATCH 11/25] Create thermostat.zwave.markdown Copy paste of the binary sensor instruction --- source/_components/thermostat.zwave.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 source/_components/thermostat.zwave.markdown diff --git a/source/_components/thermostat.zwave.markdown b/source/_components/thermostat.zwave.markdown new file mode 100644 index 00000000000..58bff349616 --- /dev/null +++ b/source/_components/thermostat.zwave.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "Z-Wave Thermostat" +description: "Instructions how to setup the Z-Wave thermostat within Home Assistant." +date: 2016-04-03 9:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: Thermostat +--- + +To get your Z-Wave thermostat working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). From d78aa2163c60ebbd92a0d3b8ad7d5fb2fed8b268 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 6 Apr 2016 09:22:51 +0200 Subject: [PATCH 12/25] Fix image name and size --- .../media_player.panasonic_viera.markdown | 13 +++++++------ source/images/supported_brands/panasonic.png | Bin 2576 -> 4347 bytes 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown index 5e0256daada..6902988957f 100644 --- a/source/_components/media_player.panasonic_viera.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -7,13 +7,19 @@ sidebar: true comments: false sharing: true footer: true -logo: Panasonic.png +logo: panasonic.png ha_category: Media Player featured: false --- The `panasonic_viera` platform allows you to control a Panasonic Viera TV. +Currently known supported models: + +- TX-P42STW50 + +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/balloob/home-assistant.io). + To add a TV to your installation, add the following to your `configuration.yaml` file: ```yaml @@ -31,8 +37,3 @@ Configuration variables: - **port** *Optional*: The port of your Panasonic Viera TV. Defaults to `55000` - **name** *Optional*: The name you would like to give to the Panasonic Viera TV. -Currently known supported models: - -- TX-P42STW50 - -If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/balloob/home-assistant.io). diff --git a/source/images/supported_brands/panasonic.png b/source/images/supported_brands/panasonic.png index f74fb674c90c7e5dd40fd3773624dde5b559f03a..67c008e0dda196ec30f91cadbcb46a8784138c6e 100644 GIT binary patch literal 4347 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 p$Ii}d=L`3bU4C=t&YhX>Irp6JxzpRc z>qPSAlHY4-pRYQQ96Wj|=@|?Sqkr3R@%gk_GIS2_FWsN?ZdzVzyJgmf8CW_F@=}pbdt$5j5@6yZe$|`-kl1Fc?7_3~eK5+7;7Q zCr6H3Y}#N1Z7{TsplQ?QZLt@`U<7S2w2`3CnY1EVv*nn*B!)48sW=Qq&=uP~FKn`x z#9%NO>L%!A>kmiCwQtkWqf$*faQ-ITeQP612x-^9M@zgUVyUXM2+=&u&bvd3arN z*}XrGIOhD@SGxZr+nfIK)@0Gw`*R6&@wb2EE_Er+@xL9|{b%yzTicS0@A_fXSTC8{ zm&|^9N3!pr{v}Kc5I(jL{eDhS{QFQFEMu3C=Iw!wNOE;?|3BOr;$QisM zbBX~RPtV?91YL-r9Tfez7wK$hB+COV((ruKFN#Fa_s!kxJlUd2&aCQ4h`x>(J>!ab zhj{pP^q*%0FqV)`6)9zGHJ~AARva2b8MZ4QSTiD|Q-+|K>nd}LA+zM8p%Vn{mVJtT zc%WJK#zG2Z8)O@La1ue6Z7lcGabEX=)_9J&AM6^@|MTzdtW`-9^ZE#b5JsxnKP2m( zr-B4swy}b$LeMU0UBfuM(_t{QmZ0(eH2pvZb$Ntgd*#F3V@}Ytmlpq)gt6LKjJ8UH zD7~@SzIRCFS+YE*5%$q|>FL<5=C~px9mc)KlAt-4PvR9N=(-IbD?(!vL#qfH0%6&& z^+b4(@t&p72HrKEBym%g<(mFUAT>eIuI~bKH|eRL-Kv3kg4{Ks72?hG@4RUtHtq=U zEQsYw$yyi34wm@Z*ef9gV!xXBG)YRo(ilsErp^C&Pho;)Oxlo&HXcu6(b&W=ZUkM| z=1ERLA$X9ny*nh5c1!dU1kH;Ip%n3!Jo!km=a}xBq^1;3Kqmr4oik@K_xg3CE#^C_~WPiy}!%KgUG~T9cSYI_lLvI3m)$pqUqK=rlpI^mQ+L z&TpnZ7cXXUo|4eNU+!uM8e+z?^+`FBWH&z1ueuITSdzDjIv{o}c%ym8IRY65-nTRs z=8IKE=t*lKB?U1?p(N2mvkHP}nOiMEbI-ygBQift_{d#D0fNT(rzLcGvF&hmBF&fg z<_(6<5i}ZS@8S6Zgmfc}vb_JusD~V)(@4y`K2<}|Vaz%t9*y_r$B045x|Wzmn7@&+ zN&P!R(bH?oL!(0&V&)s$T(S<&FYCU$Rf_VS#h}R}Fi#qS&RR8TjIs|oX$e}B)OC{4 z2%OYXvGOq(Iz`Y(u(VZZyr_6jERpdbizKkT7by{RUPYruYNnDL_RdHN@ow?RiiBO9 z9=La=Xrt=f6OLdE>FbrqCd-I%#InAsB4Xu+BPxQ%U}TL)6KjkSGz17~q3P8YTxb%JS5IGCn~@A-q)v^Z2uWql zlax!K5u?`-bXr;%CZX#lXqQYDz6NBhV3_a(jhD(YILlLo;awTz&PRHFI4LpYW&NSW~w4#N16L@a9H!bTF2O^2l46_r91aHXgSZ zi(rI}Q4F0WXpOWhy_bWBTW%{oz9tCTNvd*wLvk-GIqJ0D3MBy^cV3I_tAR0);^A%u zGYo0>J+Cp2K?=EGEbutnM$j6=nx$u!Dm%4?)nI5PK|B3$Nr{t26Wk<0OVw!Mo*n6U zvgGNy%En#`*ngd)34)%tNLE2GcD!7c%y?H?owu8#VYvO96(1Au30%&lnJ+i?vyc*&W%soX zEJB%x-1iK<(UHbKxDRY{eG_l-B~ifU@?H{5B?FZt`dC(Lcw ze_II}XQAvDaAKq{|vw?umW%+c4n>8jw(tvgvqy#7Mn2DM{N1 z2e4#svecVuLP%FqW^high~Ro8W0T&fi0k5O=0*4Upzs3n3U%0dfKVys&=wPs^vruU z+D_0OtSmJ9Tzfekd4<^bBMpWL1&T{Za6xjABl=!Sgvp+3Nu>=yO@Xn4Y`6x0E&LtZ zQ@QH7m>*OIoP+XY3V`tFyhfS?W0kllMg+wMMv?v?FV4aK8r&aN0eR*8T?Iw~L&!B^ msJLcU2h0J_sZ|Ran#4b_p~h924}CWP0000 Date: Wed, 6 Apr 2016 09:24:43 +0200 Subject: [PATCH 13/25] Fix liquid syntax error --- .../_components/media_player.onkyo.markdown | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index 04473cb94de..c7c0f913c1e 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -23,38 +23,39 @@ media_player: ``` A few notes: -- Source selection has no front-end UI, but can be controlled by way of service calls. Select the source string from the following list: -``` - video1 - video2 - video3 - video4 - video5 - video6 - video7 - dvd - bd-dvd - tape1 - tv-tape - tape2 - phono - cd - tv-cd - fm - am - tuner - dlna - internet-radio - usb - network - universal-port - multi-ch - xm - sirius - ``` -- Sample automation and input select -``` +Source selection has no front-end UI, but can be controlled by way of service calls. Select the source string from the following list: + +- video1 +- video2 +- video3 +- video4 +- video5 +- video6 +- video7 +- dvd +- bd-dvd +- tape1 +- tv-tape +- tape2 +- phono +- cd +- tv-cd +- fm +- am +- tuner +- dlna +- internet-radio +- usb +- network +- universal-port +- multi-ch +- xm +- sirius + +Sample automation and input select + +```yaml automation: alias: Receiver Source trigger: @@ -65,7 +66,7 @@ automation: data_template: entity_id: media_player.txnr535_000000000000 source: > - {% if is_state('input_select.receiver_source', 'HTPC') %} + {% raw %}{% if is_state('input_select.receiver_source', 'HTPC') %} pc {% elif is_state('input_select.receiver_source', 'Chromecast') %} aux1 @@ -75,7 +76,7 @@ automation: bd {% elif is_state('input_select.receiver_source', 'Raspberry Pi') %} tv - {% endif %} + {% endif %}{% endraw %} input_select: receiver_source: @@ -87,6 +88,5 @@ input_select: - Bluray - Raspberry Pi initial: None - ``` From 57f71f763f409f9b163176b30ac13b72e1bbe99f Mon Sep 17 00:00:00 2001 From: William Hughes Date: Thu, 7 Apr 2016 10:02:07 +1200 Subject: [PATCH 14/25] Documentation 'mac' option for Orvibo platform of the switch component Documents changes made in balloob/home-assistant#1730 --- source/_components/switch.orvibo.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/switch.orvibo.markdown b/source/_components/switch.orvibo.markdown index b365802102a..a68cf2761e3 100644 --- a/source/_components/switch.orvibo.markdown +++ b/source/_components/switch.orvibo.markdown @@ -20,9 +20,11 @@ To use your Orvibo switch in your installation, add the following to your `confi switch: platform: orvibo host: IP_ADDRESS + mac: MA:CA:DD:RE:SS:00 ``` Configuration variables: - **host** (*Required*): IP address of your switch, eg. 192.168.1.10. +- **mac** (*Optional*): MAC address of the switch, eg "AA:BB:CC:DD:EE:FF". This is required if the switch is connected to a different subnet to the machine running Home Assistant From 812b5ada5a84bd7ad8e1ea29508a5836898d02e1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 10 Apr 2016 09:30:19 +0200 Subject: [PATCH 15/25] Add initial docs for MQTT garage door --- source/_components/garage_door.mqtt.markdown | 60 ++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 source/_components/garage_door.mqtt.markdown diff --git a/source/_components/garage_door.mqtt.markdown b/source/_components/garage_door.mqtt.markdown new file mode 100644 index 00000000000..9ea3bf710ea --- /dev/null +++ b/source/_components/garage_door.mqtt.markdown @@ -0,0 +1,60 @@ +--- +layout: page +title: "MQTT Garage door" +description: "Instructions how to setup the MQTT controllable garage doors within Home Assistant." +date: 2016-04-10 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Garage Door +--- + + +The `mqtt` garage door platform let you control your MQTT enabled garage door. + +In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with RETAIN flag, the MQTT switch will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/off. + +When a state topic is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from device (message from `state_topic`). + +Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect switch operation. + +To use your MQTT binary sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +binary_sensor: + platform: mqtt + state_topic: "home-assistant/garage-door" + command_topic: "home-assistant/garage-door/set" + name: "MQTT Sensor" + optimistic: false + qos: 0 + retain: true + state_open: "STATE_OPEN" + state_closed: "STATE_CLOSED" + service_open: "SERVICE_OPEN" + service_close: "SERVICE_CLOSE" + value_template: '{% raw %}{{ value.x }}{% endraw %}' +``` + +Configuration variables: + +- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values. +- **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. +- **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: + +```bash +$ mosquitto_pub -h 127.0.0.1 -t home-assistant/garage-door/set -m "OFF" +``` + From caf0a891394bc18ded35e001c643efadf4dc06cb Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 10 Apr 2016 23:34:30 -0700 Subject: [PATCH 16/25] Add UPnP port mapping docs (#387) --- source/_components/upnp.markdown | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 source/_components/upnp.markdown diff --git a/source/_components/upnp.markdown b/source/_components/upnp.markdown new file mode 100644 index 00000000000..1ce37851151 --- /dev/null +++ b/source/_components/upnp.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "UPnP" +description: "Automatically creates port mappings on your router for Home Assistant." +date: 2016-04-10 19:16 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "Other" +--- + +The `upnp` component automatically creates port forwarding mappings on your router for Home Assistant. UPnP or NAT-PMP needs to be enabled on your router for this component to work. + +# Installation +You need to install [miniupnpc](https://github.com/miniupnp/miniupnp/tree/master/miniupnpc) before using the UPnP component: + +```bash +$ git clone https://github.com/miniupnp/miniupnp.git +$ cd miniupnp/miniupnpc +$ make +$ make pythonmodule3 +$ sudo make installpythonmodule3 +``` + +# Configuration + +```yaml +# Example configuration.yaml entry +upnp: +``` + +A port mapping will be created using the IP address and port that Home Assistant is running on. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router. From ac22dacc21925209a04ba15bd0be83e2bbc8e04b Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 10 Apr 2016 23:35:18 -0700 Subject: [PATCH 17/25] Add ZeroConf docs (#386) --- source/_components/zeroconf.markdown | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 source/_components/zeroconf.markdown diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown new file mode 100644 index 00000000000..a8aaf111015 --- /dev/null +++ b/source/_components/zeroconf.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Zeroconf/Avahi/Bonjour" +description: "Exposes Home Assistant using the Zeroconf protocol." +date: 2016-04-10 18:50 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "Other" +--- + +The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous and Avahi. + +```yaml +# Example configuration.yaml entry +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. From 7a9badbf3dca61bec0d5632a6f1611f492a083f2 Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 11:04:08 +0200 Subject: [PATCH 18/25] added thinkingcleaner (#384) * added thinkingcleaner * changed iot class to poll --- .../sensor.thinkingcleaner.markdown | 26 ++++++++++++++++++ .../switch.thinkingcleaner.markdown | 26 ++++++++++++++++++ .../supported_brands/thninkingcleaner.png | Bin 0 -> 3960 bytes 3 files changed, 52 insertions(+) create mode 100644 source/_components/sensor.thinkingcleaner.markdown create mode 100644 source/_components/switch.thinkingcleaner.markdown create mode 100644 source/images/supported_brands/thninkingcleaner.png diff --git a/source/_components/sensor.thinkingcleaner.markdown b/source/_components/sensor.thinkingcleaner.markdown new file mode 100644 index 00000000000..6d885939c2a --- /dev/null +++ b/source/_components/sensor.thinkingcleaner.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "ThinkingCleaner" +description: "Instructions how to integrate a ThinkingCleaner within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: thinkingcleaner.png +ha_category: Sensor +ha_iot_class: "Local Poll" +-------------------------- + + +The `ThinkingCleaner` sensor platform simple displays information about your [ThinkingCleaner](http://www.thinkingcleaner.com) addon. + +To enable this sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: thinkingcleaner +``` + +This will automatically add sensors for each Thinking Cleaner in your network. \ No newline at end of file diff --git a/source/_components/switch.thinkingcleaner.markdown b/source/_components/switch.thinkingcleaner.markdown new file mode 100644 index 00000000000..8c559269e02 --- /dev/null +++ b/source/_components/switch.thinkingcleaner.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "ThinkingCleaner" +description: "Instructions how to integrate a ThinkingCleaner within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: thinkingcleaner.png +ha_category: Switch +ha_iot_class: "Local Poll" +-------------------------- + + +The `ThinkingCleaner` switch platform simple displays information about your [ThinkingCleaner](http://www.thinkingcleaner.com) addon. + +To enable this switch in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: thinkingcleaner +``` + +This will automatically add switches for each Thinking Cleaner in your network. \ No newline at end of file diff --git a/source/images/supported_brands/thninkingcleaner.png b/source/images/supported_brands/thninkingcleaner.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ff527d970dec42b5682f44cecdbcba61f80321 GIT binary patch literal 3960 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 Sq0BP?0000 Date: Mon, 18 Apr 2016 12:34:02 +0100 Subject: [PATCH 19/25] Add new parameters to docs. --- .../_components/sensor.loop_energy.markdown | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown index 0d6aa9c0c11..d7800d4eb0e 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loop_energy.markdown @@ -14,7 +14,31 @@ ha_category: Sensor Integrate your [Loop Energy](https://www.your-loop.com/) meter information into Home Assistant. -To enable the Loop Energy sensor, add the following lines to your `configuration.yaml`: +To use this sensor you need the the client serial number and secret keys for your devices. + +The library used to get the data isn't officially supported and the only way to get the keys is to log into loop energy's website and type a command into your browser console. + +To do this log into [Loop Energy](https://www.your-loop.com/). Once you're logged in you should be able see see your live readings on the webpage. + +You can then open your browser's console window, how you do this varies by browser but in Chrome you click on `More Tools / Developer Tools' and click on the console window. You then type:- + +`Drupal.settings.navetas_realtime.` + +This should show something like + +```javascript +client_ip: "127.0.0.1" +gas_secret: "GAS_SECRET" +gas_serial: "GAS_SERIAL" +host: "www.your-loop.com" +... +secret: "ELECTRICAL_SECRET" +serial: "ELECTRICAL_SERIAL" +``` + +The serial and secret tokens are the ones you need. If you just have an electricity monitor - then you won't see the gas keys. + +Now you have the keys, add the following lines to your `configuration.yaml`, replacing the `SERIAL` and `SECRET` keys with the ones you found in the console: ```yaml # Example configuration.yaml entry @@ -24,12 +48,18 @@ sensor: electricity_secret: ELECTRICAL_OFFSET gas_serial: GAS_SERIAL gas_secret: GAS_SECRET + gas_type: metric + gas_calorific: 39.11 ``` Configuration variables: -- **electricity_serial** (*Required*): Serial of your electricity sensor -- **electricity_secret** (*Required*): Secret for your electricity Sensor -- **gas_serial** (*Required*): Serial for your gas sensor. -- **gas_secret** (*Required*): Secret for your gas sensor. +- **electricity_serial** (*Required*): Serial number of your electricity sensor +- **electricity_secret** (*Required*): Secret key for your electricity sensor +- **gas_serial** (*Optional*): Serial number for your gas sensor. +- **gas_secret** (*Optional*): Secret key for your gas sensor. +- **gas_type** (*Optional*): Type of meter `imperial` or `metric`, defaults to metric. +- **gas_calorific** (*Optional*): Calorific value of your gas supply (usually on your gas bill) - defaults to 39.11. + +The electricity readings are updated every 10 seconds and the gas readings every 15 minutes. From 2b9396a494657a351e14af8c6f67829f0c2806bb Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Wed, 20 Apr 2016 07:05:55 +0200 Subject: [PATCH 20/25] added webostv (#404) * added webostv * replaced icon --- .../_components/media_player.webostv.markdown | 35 +++++++++++++ source/_components/notify.webostv.markdown | 49 ++++++++++++++++++ source/images/supported_brands/webos.png | Bin 0 -> 12247 bytes 3 files changed, 84 insertions(+) create mode 100644 source/_components/media_player.webostv.markdown create mode 100644 source/_components/notify.webostv.markdown create mode 100644 source/images/supported_brands/webos.png diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown new file mode 100644 index 00000000000..0ccb2706dad --- /dev/null +++ b/source/_components/media_player.webostv.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "LG WebOS TV" +description: "Instructions how to integrate a LG WebOS TV within Home Assistant." +date: 2016-04-18 23:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: webostv.png +ha_category: Media Player +ha_iot_class: "Local Poll" +-------------------------- + + +The `webostv` platform allows you to control a LG WebOS Smart TV. + +When the TV is first connected, you will need to accept Home Assistant on the TV to allow communication. + +To add a TV to your installation, add the following to your `configuration.yaml` file and follow the configurator instructions: + +```yaml +# Example configuration.yaml entry +media_player: + platform: webostv + host: 192.168.0.10 + name: Living Room TV +``` + +Configuration variables: + +- **host** *Optional*: The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 +- **name** *Optional*: The name you would like to give to the LG WebOS Smart TV. + +If you do not provide a host name, all LG WebOS Smart TV's within your network will be auto-discovered if your TV network name is set to `[LG] webOS TV` \ No newline at end of file diff --git a/source/_components/notify.webostv.markdown b/source/_components/notify.webostv.markdown new file mode 100644 index 00000000000..8ebb971b068 --- /dev/null +++ b/source/_components/notify.webostv.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "LG WebOS TV" +description: "Instructions how to integrate a LG WebOS TV within Home Assistant." +date: 2016-04-18 23:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: webostv.png +ha_category: Notifications +ha_iot_class: "Local Poll" +-------------------------- + + +The `webostv` platform allows you to send notifications to a LG WebOS Smart TV. + +When the TV is first connected, you will need to accept Home Assistant on the TV to allow communication. + +To add a TV to your installation, add the following to your `configuration.yaml` file and follow the configurator instructions: + +```yaml +# Example configuration.yaml entry +notify: + platform: webostv + host: 192.168.0.112 + name: livingroom_tv +``` + +Configuration variables: + +- **host** *Required*: The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 +- **name** *Required*: The name you would like to give to the LG WebOS Smart TV. + +A possible automation could be: + +```yaml +# Example configuration.yaml entry +automation: + - alias: Open a window + trigger: + platform: numeric_state + entity_id: sensor.netatmo_livingroom_co2 + above: 999 + action: + service: notify.livingroom_tv + data: + message: "You should open a window! (Livingroom Co2: {{ states.sensor.netatmo_livingroom_co2.state }}ppm)" +``` \ No newline at end of file diff --git a/source/images/supported_brands/webos.png b/source/images/supported_brands/webos.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbd9877217144b7dc521e6ac675d899d56d58d5 GIT binary patch literal 12247 zcmY+q1yGzpvo5@gTX2^^2n2U`2m}f4?(Vku;v~4cJA~lw?(XjH&f;?Oopb*4-}_e0 zJ2O4c^fNuxT{RY}ASdw&i4X|@0DO{?6jS<_KmSY22yp-Y+}Y-r|1zMnlEimF#RT#3 zzY3y*q^2_ffQM(G-PFXjqPn24NdHgOc~v69sZ#K0DgDge??nU zkRh47t&N>Cue$*Ge<67PmH#7VA}9MV2*_H1TtilYOw``Vl#GLsospSb5Q&V8jNi$` zj8{oa{C~Rts|k=>fItqsOiXTWZj5ehjP_3EOe{P+JWR~2OsuR7{}2q$9(Eu@cLqD> zum7#&|I;I8>TK*}=>W2{w<|GM)3N6IVjWNG@3`9JyvS@{18`TxlNhlii(Kji<{VE)_E|C0VQRS=1v z>3^q95J{$oN)rHJ#FG*eQE>;JXCh{(%qM-MqNh>7N(%p z+T-?Z{lU)7#YNQx^81^UP`3JIduxW*h4+KoMDyXs!wB0)O1CrxW>#8*&zq-LMOoQh zsB!}7=avnu`@62eJa~EpqEYtsTtV&AXnV!q zzqHE4hbV34PO}edm&g9Tb)Tt`?xH=7fo>}N2hjJ0$$Erdka=}46&01fgyN14!R1o* z%FJdD%CQ27^RB9y{Gmi50ylF)}iOq=w>0 z4zR!zUY-t@>6VQZ$UHuF8>e+Nddo1E@8M&)ZI&r-X&^Ld6nlG9Wyd|vN zI5j_M+c1mi@0VmFJ5Rl+egwydl(D9l=UIhEN190==qRuKv^_1UgKDWOs3Yp)!Jis~ z{R$YU3|0_i(-U5e-o?8;SpV>z$XhHIc6?QgPGvUyZa;b3vGo$mq;yUVql9)5i57>m zw!Cqb&rX6=q7nwWMM>_ox1fH3kbY>~X6@7-pZdr@zFY#~|H7Ji@*2vt7Fk87{H@tA zYvr0L`^n8skat(1-t1=pOOca;gSmZ%skEA23pkFgmlquIURjzfnWX^@(X-yNW&0j zz@1jJND$u!>IoYD;IQAwNX2x@b+xa-?Q!ywD}?wxF96A3TIyzWQ=|cv9Q7D=HCcru zc#|ni_mOEPln%%{|wjZCA=e>85C3Hf_^Dr|aX zZ1?(7VY9D!;xIeoJLVrvy`^fCWB*-r@RcZRb_*5$JVn1wOO1pitbm*Q<|q85m3k2? zNs$kl9IgBL)i?QXluvce@L5U|UA-6uFJn^uq^8f(Pco(pz)` zd~as3{xD+qU$%4Vz#?}>z@^>%(|SEPA8Vwjo|B(D z3q8L$B>EG_CCXOG@;RjCJCVBuZ+td#`%&8Oth=Xa*_hTW=v8D zcL%hf)x_5)GdM^<{QBGP?a0WiqzR5V|ZNIZ&|Ks29fFglw*tw=vqRQP(Q5Pt~P zCN)~I2-ncH|M6RI8sRKDP~C%q-f6Y)h1!5Cp*^6a=k4}j+{+{yQNFT{ZECXFdsPmp z&>YP#E=GLJrc31zs6UwBj^MY+KnoBO>{Hn(Z;<0Lvcj>&yytqf9JT>8kQFAyV$lzi z*cRDSTokw*tgSNVXS+|x5I7e!+nZJpF!^K@MWxjouL*^lI#eGG>t9*MTS&r$g`^Pv zXhhI#d#sbPB&-#O1WEe{^=KVmrjDWHMPn^t83gnme63KWhD$jcyK3fN_FXSFYSMxwF~Nkz@Rn)5{cwEK`rDpub?Gayso5 zRy(wJ%yo=>dAM%-F?G?vlF#FjGhD3K)%HxaWz!~n!Jb>!Jj3@)0kdMGOtO+Z+w>uu zIuw|)A51fDZ}?q(nI+8ciQeV2M86Cvl>e<|ZBuSO_)nIW8itBbAj{^?98s=w=*3{F zboh4OA2XGwyj;FWwk}hmKF@aolr&{gTfH(C8X$i8o1lliL5Av=ttiOb9W{xmsbWQY zJQ0zydacqGy=J$Q*d05LgGiwAgISx9Ff}(q|NSMc@!I%Kj?KwL4$wAD1VP1TRf5Pw<&}x1wT+)-kQv` zEbqdOXvFLa=x54#;W6lNo9kwQolx7mtFhr%AulOKVob?_u z5x*|e6yMZ&eEHPA=fSo=)P2x#Si!2Aa#`>3QmHI_iBj7?!n#ye?7h}>0&O`_0z{Sl z5}Ag{JzR@A?mf`+>vnTG!*eP}WFv_|n{@)K?Cs3^ys4**v37*}z6#T%p#(#@Eg;!>W#D<_UKTacVgNETj+qkzrWX zkiQViu2-!TW(*fm4uF`Q?9($(f(K-pcP*4}*M81&iF+V(!i{f$p3{Ntypg$#NQBxP z2Lj3uMnbcdsL`0K9plcWXAA2qZ7yI6{|oL&aUvnS&;-ch0m;ry>bcFyHK3W@>7eH6 zmSKnvKL$daBs0-f4=pV`_k6L|?3|s!ZaD*M0*1-)C5sm#g!pipPh_~MY6PP4(ki1< zj3g650S$p)w-eNR4w8nO?Q1N09$gXBY_v4DY<`Ho<+NR`!fb^zbu<~RHrNVac+v#z zxq>MP4(Swq9TM&aNZ*!?3=T`B@9vk)v-MhC`(x_)Tp9J+n!2x7)pTz(Ms*SitjCgk zcY*771pj7J?|RvLiexdD;KEXuWN>LDB=j8~qEp~~x~`}%orb6#T!wtI(GU71%YBe# z3)M?AH?)VHHefW^gZ~X0HQ$O77 z!yN23Nlu+q8c-&(0OPk77QP-$#8pBYA1csjp%_`7{=ed7gB=lwXTc(_uTBVOCo^~Xc1o`{! zun9P6Y~XY`B)iJW*Q;mDCsGY2ff7x9;< zl&s8iSw+AkZL*h*d6A4@vyVt&#`1h<-jcGrGb3AFZNX&*cMna?8&=bSvvKp#y~5o( zJylf~CgJx|3wGASoPWN-S)g2_0H@I~alKoNQgms@QUtc2_UrK8K>f2~$!*xvm;E*T za}UEcPYwUicA+An>m##@g0u3z&Ms+DWsAvO8{778vCJ5dXp0atZU0N?CDrhp3aJm| z^5EkemIN=tXCcup9Vy)px!3x;)m{EsEWpRtv-HQ0z3L=cJ6(Q*OSW$svD-IbxR;&Y zu{UklDl6j$fx3RRPhKMcE_Cp)5yr`&~Us%JBg&OzfzT)Sa31f z$=}j(6q7M3=w?6~LJOgw}~C%^CbxMV){RA)7t_wN?9 zz=L;x9wiz0>xVd%2u~u%d>7-xnj}kD7_LIDAXUD7+oKr8tE)To7&#FtX(qu_6W$vw zGufm_8NVCa;|huxIq-9+5;3HMTpIA zg!;LIZuW+=dy}tS1*>{HpS$JiVQwtuk_TRJn3`qi3K@eYoNl~Pb3Pbxr5XJzcP&3q zuZs_<&C`!mQo<&oia@DSG(x#0AAzgukKs=pLE`eB8yTJ1<`+JLgX&wU$JUE!B@Zl5 zuL2!`xsRx>!)v~)bEbcJA8~c;;{VLv!wT7*?VD9U6haBuZ(oFfRuF6(NNtY@pw>CR zl?rD2YvEdW$zLXD*Vdt@z{YS`FPsHy;+I!OKMQ!7DegEO%5^A+5X%Xm(RI6~R3tX$ zk&jnFW_yFte2W=k6gy$RZ292CKjN_Gu;0Qh7A4g;v>Br#_Z?sF4qpD^@j@xtoCQJg zIySudWW7inOg57K+p~asTx#n?QME3!>Kuu(NubMvx^;`_b{hf zP~|7dQZ-qol8R>M%MaG`?9oC0cVWeLiv&4^WI^07TA)5jxysL`P>09tFF?do7}Xm) z#3;NB$H@X&-Wda>M3uHX`vX--X!9gWJNU2W2bq0OxxR6SgIr;=d8V<9v>m2aUUm1} zBjPGWvers7gC8Gl5`mlYo{owZHqBycfj7(;6ydtL;2}`lvNKs#O0ZT3puQ3>U-1D$ z=!8*OTKPki-rmAOXE>aW4s_)+hO~3Wf!n9A1Ex(>dv!`w)I>y@j#Ha%7QWKuT@bgW zFcPQJPkPeJ(ct`;#u~yNH;Kzly3rVX82G!@ui>IaF1pt>yFbz=4bHJs^J(SXU>;o3BBbn# z6txM6163z6%+$5$pm#!f?kvRwFga2srms4?5*D5C|27TS9Zer3!;s-!)m!Bp1NMLR ze@j?FEyNt1|6{9sVSox3$$;491$7tmbF`3=nGado3mM6oUu|%!>-9)}8!a>wGzKlDrVy$HK2RF}EI7k?f(JfS$WKj1n0npH z%3UD*d4XQ1$sv3MNHDfB5m3cd(_KP$7*3<7D z4p~fD-DJ!n`RptZpkULtYpHGTZkFkcM&t`R6=qaeVO}NhF6^6?_5^9((eCAYc=TW@u}tetj`{AdeFZg#**T)@p=lxPF^QFls+KQ#RW ztt?H05r#_r!5`I#OfPG)cqjfrsAOn~-Rv0a_7rvP%hs;r8K+6VWmoL3B#5KQH>~-! zC1w|ddXEDlzyV{IF&EA+GdIT6yaxbt2?{vUob&BQ&*SO-7F0PdiF!mocph+ATXG6} zuu7K@6{8^0z@_n}Z&28bjNRD#`EELCrbt-gF0UIZ8Id!bozj~c@2Vy->_K&Zq5#jm zp0I1{dP$)+fdpiJYqp-c#`Fd0_~IkLJH;37@fP?#f0miu#lL}s49xNn3>Zf;Zs}^j z#vL17ogE4Y{1zhO-)N4$NDjt!Z{ zvwjX~nQi)IJ(3~2!fUBBk=1Zb%Vgjg6W?{JhIZ4ij0ij!GI!$7eN|P(TlL2aEue7F z>s5ZYK_`{L0j+Or6;ailD~^0-bv=W1&CGi4z1~wdKx~iJpJiOOTy^w19U7O{7nBr2 zc~ZZ}r?xfT$Ati$d0X$|(%(dz%~_>h(z%fKnYZByS016-U=nA7(|PQT?}fS?Iku9? zh-A%m`y9DQOS)T#ymGu>^ni3|IJBC~?q6b&PT&4bD;Xe#?2*Q&!<8 zYBv+00N!+&#z=-(qFNmw0vr#BEYF@$P5K6OK-fc(;RUhx(6Gp+zr16ad%Rb zS0+YY3~r_waSzAbQfn<1=GnJV_T31%TIq{QU`a;xvi)J%eGMAuDrMAfJdttd+9o`( zoK8TAE`+L!j5ZrK$s3RPVSAz2QmQHmQbQW?ykpMj*9*|mUDLP*K*@942Mo_+NYN${ ze>O>(*mpj@A&(PVrHBkr2Jc$soj>gJ*>de>L51znSg)-t@MBf-tn$U^rOozz{kE2g z4!B^hKvV(2D@~HC(bCI7W3RgosGK+&W#e5U3OGc)vfpaLQO<7m-qSgNfQLD2o(b3> zba}bF35^=Mg;4F(u|_y`T;u-0tM*8kORwaExYLgD$keArApJp{cX;Xf8Mc8Le|a?Yot%_f6;kPRh|E~;9^eLhgo zR{bo(3jBi8uW}CkO*P%8ptv1Aba%$o^0pvvKRW5Y)0B(gla8=Y)N74LSp9Ckl1sdf zIm0YNW(2;<3WvE9RDd6yP1Y7HEVA&ra)5dQYeveFfvmYUcq|IJ%ac{k%F zXI4zv>(Ap016dI5Fc`^pHC1Ms78@#R9uv9V2E<76m7L$hc?5J7CDTd#-)TXm%69{e~ndnZjg1p*bTT)5& zl98E2A#s=u#-X=SC$PNb%S`jf^qoMilHh#$^4iI`omF7;@Cx>W3oic z7jaOnw`tSR%70}J3=Ooy0zI-P`NCN?jw(ucq(`!+4nBu5^z=P{PNMN|zinW8{Afnl z!p1)tj_j=GNt#!ZAKl%!6D z3|)RsU)V-B87Bq zzf(OCY4f^WQ-95eD=WhS>+j0G4sQq`xovRk!AAxIV6Q3;BFvR3t~>c#j#-}X`1|HJ zZ_6t@v4inUzSV%Z8eNh#?O;!$tLd1g$5W)O<#%C8!$h$<|AF7)%GIn^CvGeu5?F>W zj4~^>#c2+FjI0PBp^XRbdRm&sjAsNa5Vq$OAECh5Lcz2Jx*SWso z8-HZEvYvWz$FD_^b6}5^{Pi5R;Nt{xN-`~=JmI@4;4R^8Io(j!Bph=J@z>6*8};o! z`CB?4cUs4pn%bzya{5H46rSbEnWeWc*WKtEi(9{#UkKALEr8j>`gwez)fSb;F6@ma z)S(U_SAUYFYdV(l(DIfj*_9)F;hsf7vv~EZsE2dbdx=k36PQMW(^Q>U@@eEv?h~Gs zZ9u^&a?4cL5!(&0FzZ^-pR;q+G6eVkT(I!HO|VuO1jT5ZCnr)G&Mn7qFt!OsK%btq z5Onrl^}Ah|3?H+oX%;ICqgcwP( zqw%}r2sZAfgiC)lht@qXPTi0&Z#_wEqkHq-=zC^?)_0!g_UI26UJJ83l9>?(-AeAO zTO@LYTrAmZbOP5Z4O~0NutipuJUh0#c@M7|NV}K#5nM^BRl;A;gExY9DWiGE9$5D3 z{ais%xB7A{8yOTqS{)?rlG^YMu~E_bC~rU0@Vi2xZF=B&r|=ijbr*E_xnI9QJj}?a z4wqgrgAxBsE*9@C`}Rg26%2;|1|cddwGPf(HVvRjsA#2a%5>9~nRI*DtuJGZU+%;| z|K}|s;tA~qKl!r!U-czdZ`L9#jPvR_1h~zMTe&9)YWfHww0Ey-ve^_Gex)%WPNhb; zJDD7JTXmU8)9db*j$X|#3`GO@a?)OmNB97z<)ygJxAdPZ2qb1Rk(Z@=T$j3`$19NT z*If}w5#9+F{e8u(P;}uxA)^%IFsp}-eHA#b4xrY;~ z{e0xQ#y85g`vFYc8+aWMTNblc5-%9upyf>VNugs zj>ivmFx40K)9X2a?E^Y>uDiJGwb30g6mX&Yd}_O}lS>+sFNZqSlUpks4M4w-m5|6$ zy}oyqaTt9~Hct7_vKJGb3|hAp@VqmqFjPvFvHJG0dSzSp44k9v+PfhZiLnrz?93kk zycDpYglJ#6GR^C#2J$yPxmP?Gc6hS-HNyZ|l4?AEsCEq@gW?hwO1iXeG2Nfz*jm@k z@ZAMIi9o0@@E&`c-AY^1l26HfP1d5}b>8X(a21xLZKr<69|ixQMc6uPP}Jpvr}%CF z`^GOWZR-Rg=SSjYRISi(U_b7~I!YITYQAZ8?@ATF+KhsBfSYEsRM*UPEzzmo%7~&4 zP~Q5$Da&_D5b}?4&gmg=!3i{Fl-6kkb`(P<+}IGp6))Y>W)D`%;c$4I?Xl}W4_qwm z($)kt-+F{07h&I@R%L#c$SYPL$ygfnc97qi4RqT$KPX^snWwqzvP&#=7ZamR^l