diff --git a/source/_components/device_tracker.bluetooth_tracker.markdown b/source/_components/device_tracker.bluetooth_tracker.markdown new file mode 100644 index 00000000000..141466e17e1 --- /dev/null +++ b/source/_components/device_tracker.bluetooth_tracker.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Bluetooth Tracker" +description: "Instructions how to integrate bluetooth tracking within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: bluetooth.png +ha_category: Presence Detection +ha_iot_class: "Local Poll" +--- + +This tracker discovers new devices on boot and tracks bluetooth devices periodically based on interval_seconds value. Devices discovered are stored with 'bt_' as the prefix for device mac in `known_devices.yaml`. + +

+Requires PyBluez +

+ +To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +device_tracker: + platform: bluetooth_tracker +``` + +For additional configuration variables check the [Device tracker page](/components/device_tracker/). diff --git a/source/_components/feedreader.markdown b/source/_components/feedreader.markdown new file mode 100644 index 00000000000..878a38208c3 --- /dev/null +++ b/source/_components/feedreader.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: Feedreader +description: "Instructions how to integrate RSS feeds into Home Assistant." +date: 2016-04-18 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rss.gif +ha_category: Thermostat +--- + +Add an RSS/Atom feed reader that polls feeds every hour and sends new entries into the event bus. + +To use RSS feeds in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +feedreader: + urls: + - https://home-assistant.io/atom.xml + - https://github.com/blog.atom +``` + +Configuration variables: + +- **urls** (*Required*): List of URLS for your feeds. 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" +``` + diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown new file mode 100644 index 00000000000..bf3aa6dc861 --- /dev/null +++ b/source/_components/media_player.webostv.markdown @@ -0,0 +1,34 @@ +--- +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: webos.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` diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 21c23469150..7a67203847e 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -22,12 +22,15 @@ Integrate your Serial MySensors Gateway by adding the following to your `configu # Example configuration.yaml entry mysensors: gateways: - - port: '/dev/ttyUSB0' + - device: '/dev/ttyUSB0' persistence_file: 'path/mysensors.json' baud_rate: 38400 - - port: '/dev/ttyACM1' + - device: '/dev/ttyACM0' persistence_file: 'path/mysensors2.json' baud_rate: 115200 + - device: '192.168.1.18' + persistence_file: 'path/mysensors3.json' + tcp_port: 5003 debug: true persistence: true version: '1.5' diff --git a/source/_components/notify.webostv.markdown b/source/_components/notify.webostv.markdown new file mode 100644 index 00000000000..d5d4c190d8d --- /dev/null +++ b/source/_components/notify.webostv.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "LG WebOS TV notifications" +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: webos.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)" +``` diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown index 533215c7f40..df3e1d6c45f 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loop_energy.markdown @@ -14,18 +14,19 @@ ha_category: Sensor Integrate your [Loop Energy](https://www.your-loop.com/) meter information into Home Assistant. -To use this sensor you need the the client serial number and secret keys for your devices. +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. +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 -```` + +```yaml client_ip: "127.0.0.1" gas_secret: "GAS_SECRET" gas_serial: "GAS_SERIAL" @@ -33,7 +34,7 @@ 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. @@ -47,14 +48,18 @@ sensor: electricity_secret: ELECTRICAL_SECRET gas_serial: GAS_SERIAL gas_secret: GAS_SECRET + gas_type: metric + gas_calorific: 39.11 ``` Configuration variables: - **electricity_serial** (*Required*): Serial number of your electricity sensor -- **electricity_secret** (*Required*): Secret key for your electricity sensor -- **gas_serial** (*Required*): Serial number for your gas sensor. -- **gas_secret** (*Required*): Secret key for your gas 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. diff --git a/source/_components/sensor.thinkingcleaner.markdown b/source/_components/sensor.thinkingcleaner.markdown new file mode 100644 index 00000000000..564fcbda43e --- /dev/null +++ b/source/_components/sensor.thinkingcleaner.markdown @@ -0,0 +1,25 @@ +--- +layout: page +title: "Thinking Cleaner sensors" +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. diff --git a/source/_components/switch.thinkingcleaner.markdown b/source/_components/switch.thinkingcleaner.markdown new file mode 100644 index 00000000000..15c6d553d55 --- /dev/null +++ b/source/_components/switch.thinkingcleaner.markdown @@ -0,0 +1,25 @@ +--- +layout: page +title: "Thinking Cleaner switches" +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 allows you to control 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/_components/thermostat.eq3btsmart.markdown b/source/_components/thermostat.eq3btsmart.markdown new file mode 100644 index 00000000000..645ed3c49d9 --- /dev/null +++ b/source/_components/thermostat.eq3btsmart.markdown @@ -0,0 +1,63 @@ +--- +layout: page +title: "EQ3 Bluetooth Smart Thermostats" +description: "Instructions how to integrate EQ3 Bluetooth Smart Thermostats into Home Assistant." +date: 2016-04-18 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: eq3.gif +ha_category: Thermostat +ha_iot_class: "Local Poll" +--- + +This platform allows you to integrate EQ3 Bluetooth Smart Thermostats. + +The only functionality is to set the temperature, there doesn't seem to be any way to query the temperature sensor or battery level ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)). + +Setup is a bit more cumbersome than for most other thermostats. It has to be paired first: + +```bash +bluetoothctl +scan on + +scan off + +pair +trust +disconnect +exit +``` + +Then check with gatttool if the connection works as expected: + +```bash +gatttool -b 00:11:22:33:44:55 -I +[00:11:22:33:44:55][LE]> connect +Attempting to connect to 00:11:22:33:44:55 +Connection successful +[00:11:22:33:44:55][LE]> char-write-req 0x0411 03 +Characteristic value was written successfully +Notification handle = 0x0421 value: 02 01 09 14 04 2d +[00:11:22:33:44:55][LE]> disconnect +[00:11:22:33:44:55][LE]> exit +``` + +Important: For gatttool or homeassistant to work, the thermostat needs to be disconnected from bluetoothd, so I found it best to modify the hass-daemon startscript by adding: + +```bash +/usr/bin/bt-device -d CC-RT-BLE +``` + +to the start function of /etc/init.d/hass-daemon. + + +```yaml +# Example configuration.yaml entry +thermostat: + platform: eq3btsmart + devices: + room1: + mac: '00:11:22:33:44:55' +``` 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. 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. diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 14efbecc46f..607851ec90c 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -26,7 +26,7 @@ Make sure you have the correct dependencies installed before running the script: $ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools ``` -Make sure you have at least version 0.23 of cython. +Make sure you have at least version 0.23 of cython. ```bash $ sudo pip3 install --upgrade cython @@ -103,7 +103,7 @@ automation: trigger: platform: event event_type: zwave.scene_activated - event_data: + event_data: entity_id: zwaveme_zme_wallcs_secure_wall_controller_8 scene_id: 11 ``` diff --git a/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown new file mode 100644 index 00000000000..3d5daf9d9fd --- /dev/null +++ b/source/_posts/2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown @@ -0,0 +1,83 @@ +--- +layout: post +title: "0.18: Bluetooth, LG WebOS TVs and Roombas." +description: "Home Assistant 0.18 has arrived." +date: 2016-04-19 23:10:00 -0700 +date_formatted: "April 21, 2016" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +--- + +It's time for 0.18. This release cycle is 2 days shorter than usual as I'll be travelling to Europe. This also means that it can take some more time before you get feedback on PRs. + +Since the last release we have moved all Home Assistant source code etc into it's own [organisation on GitHub](https://github.com/home-assistant). We're growing up! This sadly did cause us to have to move all Docker images. Check the breaking changes section for more info. + + + + + +- Media Player: redesign in the UI! ([@DesignFirst], [@balloob]) +- New component: [Zeroconf] for Home Assistant discovery ([@robbiet480]) +- Garage door: [MQTT] now supported ([@joelash]) +- Thermostat: [Homematic platform] now supports Max! devices ([@bimbar]) +- New component Thinkingcleaner ([switch][switch.thinkingcleaner]/[sensor][sensor.thinkingcleaner]) to integrate your Roomba into Home Assistant ([@TheRealLink]) +- New component: [upnp] to automatically open a upnp port on your router for Home Assistant ([@robbiet480]) +- Thermostat: [EQ3 Bluetooth Smart Thermostats] now supported ([@bimbar]) +- New component [Feedreader] will track RSS feeds ([@shaftoe]) +- Device Tracker: [Bluetooth tracking platform] added ([@vmulpuru]) +- Media Player: [LG WebOS TVs][media_player.lg] now supported ([@TheRealLink]) +- Notify: [LG WebOS TVs][notify.lg] now supported ([@TheRealLink]) +- HTTP: Use constant time comparison for auth ([@JshWright]) +- Config and service validations ([@jaharkes], [@Danielhiversen]) +- MySensors: Entity IDs will more clearly differentiate between node ID and child ID ([@oeysteinhansen]) +- MySensors: Add support for [ethernet gateway][mysensors] ([@MartinHjelmare]) +- Media player: [Plex] will now monitor the server and add clients as they pop up ([@infamy]) +- Core: We now use iso8601 for datetimes ([@balloob]). +- Media Player: [MPD] now supports service to play playlists ([@Cinntax]) +- Z-Wave should be a little bit more stable ([@Turbokongen]) +- Media Player: [Sonos] will now only add visible devices ([@jpmossin]) +- Light: [Wink] will now allow controlling the colors ([@bradsk88]) + +[@balloob]: https://github.com/balloob/ +[@bimbar]: https://github.com/bimbar/ +[@bradsk88]: https://github.com/bradsk88/ +[@Cinntax]: https://github.com/Cinntax/ +[@Danielhiversen]: https://github.com/Danielhiversen/ +[@DesignFirst]: https://github.com/DesignFirst/ +[@infamy]: https://github.com/infamy/ +[@jaharkes]: https://github.com/jaharkes/ +[@joelash]: https://github.com/joelash/ +[@jpmossin]: https://github.com/jpmossin/ +[@JshWright]: https://github.com/JshWright/ +[@MartinHjelmare]: https://github.com/MartinHjelmare/ +[@oeysteinhansen]: https://github.com/oeysteinhansen/ +[@robbiet480]: https://github.com/robbiet480/ +[@shaftoe]: https://github.com/shaftoe/ +[@TheRealLink]: https://github.com/TheRealLink/ +[@Turbokongen]: https://github.com/Turbokongen/ +[@vmulpuru]: https://github.com/vmulpuru/ +[Bluetooth tracking platform]: /components/device_tracker.bluetooth_tracker/ +[EQ3 Bluetooth Smart Thermostats]: /components/thermostat.eq3btsmart/ +[mysensors]: /components/mysensors/ +[Feedreader]: /components/feedreader/ +[Homematic platform]: /components/thermostat.homematic/ +[media_player.lg]: /components/media_player.webostv/ +[notify.lg]: /components/notify.webostv/ +[MPD]: /components/media_player.mpd/ +[MQTT]: /components/garage_door.mqtt/ +[Plex]: /components/media_player.plex/ +[Sonos]: /components/media_player.sonos/ +[sensor.Thinkingcleaner]: /components/sensor.thinkingcleaner/ +[switch.Thinkingcleaner]: /components/switch.thinkingcleaner/ +[upnp]: /components/upnp/ +[Wink]: /components/light.wink/ +[Zeroconf]: /components/zeroconf/ + +### Breaking changes +- We have migrated our datetime format to be iso8601. This will only impact you if you are consuming the date times from the API directly. You can ignore this if you are just using Home Assistant via configuration and the frontend. +- The location of the Docker image has changed. There was no possibility for us to keep maintaining the old image (as it was bound to the GitHub repo under my name) or to make a redirect. So if you are using the Home Assistant Docker image, change it to run `homeassistant/home-assistant:latest` for the latest release and `homeassistant/home-assistant:dev` for the latest dev version. +- MySensors received two big changes that will cause you to update your configs. See [component page][mysensors] for new example config. + 1. All MySensors entity IDs are different! There was an error in the naming that caused MySensors to append node ID and child ID instead of separating them with an underscore. This has been fixed but will cause all your MySensors entity IDs to change. This is a one time breaking change. + 2. The second change is that we now support the TCP ethernet gateway. This is causing a slight change to the config format: you have to change `port:` under `gateways` to `device:`. diff --git a/source/demo/frontend.html b/source/demo/frontend.html index 918f027e716..55cf2ff7728 100644 --- a/source/demo/frontend.html +++ b/source/demo/frontend.html @@ -2966,7 +2966,10 @@ font-style: italic; padding-left: var(--paper-toggle-button-label-spacing, 8px); pointer-events: none; color: var(--paper-toggle-button-label-color, --primary-text-color); - }