From 1f40fdb09daa7632f90d24e04c7527fe62265b4f Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sat, 18 Jun 2016 13:24:52 -0700
Subject: [PATCH] 0.22 (#570)
* Initial snmp sensor docs (#538)
* Fixed markdown and added logo (#551)
* Added documentation for router operating mode for asuswrt (#545)
* local_file camera component documenatation (#554)
* Documenation for local_file camera component
* Update camera.local_file.markdown
* Added information about voltage sensor
* Instructions for Pandora media player (#552)
* Add release
* Add pub_key
* Add BT Home Hub docs
* Markdown tweaks (#553)
* Add docs about MySensors IR switch (#556)
* Update sensor.mysensors docs, about moving V_IR_SEND type to switch
platform.
* Update switch.mysensors docs. Add section about the new service and
additional example sketch for the IR switch device.
* Update index.html
* plex sensor (#526)
* Add var descriptions
* Adds documentation for the Local File Camera (#482)
* Revert "Adds documentation for the Local File Camera" (#563)
* Minor changes
* Add Wink Rollershutter (#559)
* Added example of using template in shell_command. (#547)
* Add Documentation for Netatmo Welcome (#542)
* Reorganize documentation for Netatmo
As Netatmo is now a Hub component, documentations has been splitted in several
parts betweent the hub, the sensors and the camera
Signed-off-by: Hugo D. (jabesq)
* Add configuration variables for Netatmo Welcome cameras
* Add ha_release information on new documentation pages
* Netatmo Weather Station is a weather sensor
* Add blog post 0.22
---
source/_components/alexa.markdown | 4 +-
source/_components/camera.local_file.markdown | 38 ++++++
source/_components/camera.netatmo.markdown | 37 ++++++
.../device_tracker.asuswrt.markdown | 5 +-
.../device_tracker.bt_home_hub_5.markdown | 33 +++++
.../_components/device_tracker.ddwrt.markdown | 2 +-
source/_components/light.rfxtrx.markdown | 29 ++---
.../_components/media_player.pandora.markdown | 64 ++++++++++
.../_components/media_player.sonos.markdown | 6 +-
source/_components/netatmo.markdown | 58 +++++++++
source/_components/rfxtrx.markdown | 2 +-
.../_components/rollershutter.rfxtrx.markdown | 24 ++--
.../_components/rollershutter.wink.markdown | 20 ++++
source/_components/sensor.bloomsky.markdown | 2 +
source/_components/sensor.mysensors.markdown | 4 +-
source/_components/sensor.netatmo.markdown | 34 +-----
source/_components/sensor.plex.markdown | 41 +++++++
source/_components/sensor.rfxtrx.markdown | 61 +++++-----
source/_components/sensor.snmp.markdown | 54 +++++++++
source/_components/shell_command.markdown | 19 +++
source/_components/switch.mysensors.markdown | 113 +++++++++++++++++-
source/_components/switch.rfxtrx.markdown | 39 +++---
source/_includes/site/head.html | 2 +-
...-home-hub-5-and-local-file-camera.markdown | 74 ++++++++++++
source/images/default-social.png | Bin 0 -> 50385 bytes
source/images/screenshots/pandora_player.png | Bin 0 -> 30050 bytes
source/images/supported_brands/bt.png | Bin 0 -> 9358 bytes
source/images/supported_brands/pandora.png | Bin 0 -> 29272 bytes
source/index.html | 6 +-
29 files changed, 650 insertions(+), 121 deletions(-)
create mode 100644 source/_components/camera.local_file.markdown
create mode 100644 source/_components/camera.netatmo.markdown
create mode 100644 source/_components/device_tracker.bt_home_hub_5.markdown
create mode 100644 source/_components/media_player.pandora.markdown
create mode 100644 source/_components/netatmo.markdown
create mode 100644 source/_components/rollershutter.wink.markdown
create mode 100644 source/_components/sensor.plex.markdown
create mode 100644 source/_components/sensor.snmp.markdown
create mode 100644 source/_posts/2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown
create mode 100644 source/images/default-social.png
create mode 100644 source/images/screenshots/pandora_player.png
create mode 100644 source/images/supported_brands/bt.png
create mode 100644 source/images/supported_brands/pandora.png
diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown
index 027a08a2003..747bef9a8e8 100644
--- a/source/_components/alexa.markdown
+++ b/source/_components/alexa.markdown
@@ -270,8 +270,8 @@ First create a file called `alexa_confirm.yaml` with something like the followin
{% raw %}
>
{{ [
- "OK",
- "Sure",
+ "OK",
+ "Sure",
"If you insist",
"Done",
"No worries",
diff --git a/source/_components/camera.local_file.markdown b/source/_components/camera.local_file.markdown
new file mode 100644
index 00000000000..2cfff50676a
--- /dev/null
+++ b/source/_components/camera.local_file.markdown
@@ -0,0 +1,38 @@
+---
+layout: page
+title: "Local File"
+description: "Instructions how to use Local File as a Camera within Home Assistant."
+date: 2016-06-12 17:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: file.png
+ha_category: Camera
+ha_iot_class: "Local Polling"
+ha_release: 0.22
+---
+
+The `local_file` camera platform allows you to integrate any readable image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated.
+
+This can for example be used with various camera platforms that save a temporary images locally. It can also be used to display a graph that you render periodacally and will then be displayed in Home Assistant.
+
+To enable this camera in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+camera:
+ platform: local_file
+ name: Local File
+ file_path: /tmp/image.jpg
+```
+
+Configuration variables:
+
+ - **name** (*Optional*): Name of the camera
+ - **file_path** (*Required*): File to serve as the camera.
+
+
+The given `file_path` must be an existing file because the camera platform setup make a readable check on it.
+
+
diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown
new file mode 100644
index 00000000000..054e93c2328
--- /dev/null
+++ b/source/_components/camera.netatmo.markdown
@@ -0,0 +1,37 @@
+---
+layout: page
+title: "Netatmo Camera"
+description: "Instructions how to integrate Netatmo camera into Home Assistant."
+date: 2016-06-02 08:10
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: netatmo.png
+ha_category: Camera
+ha_release: "0.2x"
+---
+
+
+The `netatmo` camera platform is consuming the information provided by a [Netatmo Welcome](https://www.netatmo.com) camera. This component allows you to view the current photo created by the Camera.
+
+To enable the Netatmo camera, add the following lines to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+camera:
+ platform: netatmo
+ home: home_name
+ cameras:
+ - camera_name1
+ - camera_name2
+```
+
+Configuration variables:
+
+- **home** (*Optionnal*): Will display the cameras of this home only.
+- **cameras** array (*Optionnal*): Cameras to use. Multiple enties allowed.
+ - **camera_name**: Name of the camera to display.
+
+If **home** and **cameras** is not provided, all cameras will be displayed.
+
diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown
index 0b7edf68dd9..b6631401078 100644
--- a/source/_components/device_tracker.asuswrt.markdown
+++ b/source/_components/device_tracker.asuswrt.markdown
@@ -23,6 +23,7 @@ device_tracker:
platform: asuswrt
host: YOUR_ROUTER_IP
protocol: telnet
+ mode: router
username: YOUR_ADMIN_USERNAME
password: YOUR_ADMIN_PASSWORD
```
@@ -31,8 +32,10 @@ Configuration variables:
- **host** (*Required*): The IP address of your router, eg. 192.168.1.1.
- **protocol** (*Optional*): The protocol (`ssh` or `telnet`) to use. Defaults to `ssh`.
+- **mode** (*Optional*): The operating mode of the router (`router` or `ap`). Defaults to `router`.
- **username** (*Required*: The username of an user with administrative privileges, usually *admin*.
-- **password** (*Required*): The password for your given admin account.
+- **password** (*Optional*): The password for your given admin account (use this if no public key is given).
+- **pub_key** (*Optional*): The public key for your given admin account (instead of password).
You need to enable telnet on your router if you choose to use `protocol: telnet`.
diff --git a/source/_components/device_tracker.bt_home_hub_5.markdown b/source/_components/device_tracker.bt_home_hub_5.markdown
new file mode 100644
index 00000000000..3318cdc65ee
--- /dev/null
+++ b/source/_components/device_tracker.bt_home_hub_5.markdown
@@ -0,0 +1,33 @@
+---
+layout: page
+title: "BT Home Hub 5"
+description: "Instructions how to integrate BT Home Hub 5 router into Home Assistant."
+date: 2016-06-13 13:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: bt.png
+ha_category: Presence Detection
+---
+
+
+This platform offers presence detection by looking at connected devices to a [BT Home Hub 5](https://en.wikipedia.org/wiki/BT_Home_Hub) based router.
+
+To use a BT Home Hub 5 router in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+device_tracker:
+ platform: bt_home_hub_5
+ host: 192.168.1.254
+ interval_seconds: 10
+ consider_home: 180
+ track_new_devices: yes
+```
+
+Configuration variables:
+
+- **host** (*Required*): The IP address of your router, e.g. 192.168.1.254.
+
+See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown
index f98be40bff4..311324a6300 100644
--- a/source/_components/device_tracker.ddwrt.markdown
+++ b/source/_components/device_tracker.ddwrt.markdown
@@ -14,7 +14,7 @@ ha_release: pre 0.7
This platform offers presence detection by looking at connected devices to a [DD-WRT](http://www.dd-wrt.com/site/index) based router.
-To use a DD-WRRT router in your installation, add the following to your `configuration.yaml` file:
+To use a DD-WRT router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_components/light.rfxtrx.markdown b/source/_components/light.rfxtrx.markdown
index 9218c91c971..5d646d0fa0e 100644
--- a/source/_components/light.rfxtrx.markdown
+++ b/source/_components/light.rfxtrx.markdown
@@ -7,19 +7,20 @@ sidebar: true
comments: false
sharing: true
footer: true
+logo: rfxtrx.png
ha_category: Light
ha_release: 0.7.5
---
The `rfxtrx` platform support lights that communicate in the frequency range of 433.92 MHz.
-First you have to set up your [rfxtrx hub.](/components/rfxtrx/)
+First you have to set up your [rfxtrx hub](/components/rfxtrx/).
The easiest way to find your lights is to add this to your `configuration.yaml`:
```yaml
light:
- platform: rfxtrx
- automatic_add: True
+ platform: rfxtrx
+ automatic_add: True
```
Launch your homeassistant and go the website.
@@ -29,15 +30,15 @@ Push your remote and your device should be added:
-Here the name is 0b11000102ef9f210010f70 and you can verify that it works from the frontend.
+Here the name is `0b11000102ef9f210010f70` and you can verify that it works from the frontend.
Then you should update your configuration to:
```yaml
light:
- platform: rfxtrx
- devices:
- 0b11000102ef9f210010f70:
- name: device_name
+ platform: rfxtrx
+ devices:
+ 0b11000102ef9f210010f70:
+ name: device_name
```
Example configuration:
@@ -45,12 +46,12 @@ Example configuration:
```yaml
# Example configuration.yaml entry
light:
- platform: rfxtrx
- devices:
- 0b11000f10e9e5660b010f70:
- name: Light1
- 0b1100100f29e5660c010f70:
- name: Light_TV
+ platform: rfxtrx
+ devices:
+ 0b11000f10e9e5660b010f70:
+ name: Light1
+ 0b1100100f29e5660c010f70:
+ name: Light_TV
```
Configuration variables:
diff --git a/source/_components/media_player.pandora.markdown b/source/_components/media_player.pandora.markdown
new file mode 100644
index 00000000000..6d6e3b2a563
--- /dev/null
+++ b/source/_components/media_player.pandora.markdown
@@ -0,0 +1,64 @@
+---
+layout: page
+title: "Pandora"
+description: "Instructions how to integrate Pandora radio into Home Assistant."
+date: 2016-06-10 19:59
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: pandora.png
+ha_category: Media Player
+featured: false
+ha_release: 0.22
+---
+
+If you have a Pandora account, you can control it from Home Assistant with this media player.
+
+
+### {% linkable_title Installation of Pianobar %}
+
+This media player uses the [Pianobar command-line Pandora client](https://github.com/PromyLOPh/pianobar), which you have to install separately. This can be done on a Raspberry Pi 2 with Raspbian Jesse as follows . _(Note: Other platforms may have different installation processes)_
+
+Install the following dependencies:
+
+```bash
+$ sudo apt-get install git libao-dev libgcrypt11-dev libfaad-dev libmad0-dev libjson0-dev make pkg-config libav-tools libavcodec-extra libavcodec-dev libcurl4-openssl-dev libavfilter-dev libavformat-dev
+```
+
+Now clone the Pianobar repo and build pianobar:
+
+```bash
+$ git clone https://github.com/PromyLOPh/pianobar.git
+$ cd pianobar
+$ make clean && make
+$ sudo make install
+```
+
+Configure Pianobar to auto-login and start playing a station (optional, see `man pianobar`) by creating and editing the `~/.config/pianobar/config` file:
+
+```bash
+password = Password
+user = you@youraccount.com
+```
+
+Test it out by running `pianobar` in the command line. You should be able to listen to your Pandora stations.
+
+### {% linkable_title Configuration in Home Assistant %}
+
+The Pandora player can be loaded by adding the following lines to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+media_player:
+ platform: pandora
+```
+
+That's it! Now you will find a media player. If you click it you will find all your stations listed as different sources. If you switch to one, the station will begin playing.
+
+
+
+
+
+This is a new component and it has some issues.
+
diff --git a/source/_components/media_player.sonos.markdown b/source/_components/media_player.sonos.markdown
index b2db3341a49..8c0cf0d79df 100644
--- a/source/_components/media_player.sonos.markdown
+++ b/source/_components/media_player.sonos.markdown
@@ -13,7 +13,6 @@ featured: true
ha_release: 0.7.3
---
-
The `sonos` platform allows you to control your [Sonos](http://www.sonos.com) HiFi wireless speakers and audio components from Home Assistant.
To add your Sonos components to your installation, add the following to your `configuration.yaml` file. It will perform auto-discovery of your connected speakers.
@@ -33,3 +32,8 @@ media_player:
hosts: IP
```
+### {% linkable_title Service %}
+
+There are two extra services exposed that will allow you to take a snapshot of what is currently playing and restore it afterwards. This is useful if you want to play a doorbell or notification sound and resume playback afterwards.
+
+The services are called `sonos_snapshot` and `snapshot_restore`.
diff --git a/source/_components/netatmo.markdown b/source/_components/netatmo.markdown
new file mode 100644
index 00000000000..d65956ed73b
--- /dev/null
+++ b/source/_components/netatmo.markdown
@@ -0,0 +1,58 @@
+---
+layout: page
+title: "Netatmo"
+description: "Instructions how to integrate Netatmo component into Home Assistant."
+date: 2016-06-02 08:10
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: netatmo.png
+ha_category: Hub
+ha_release: "0.2x"
+---
+
+
+The `netatmo` component platform is the main component to integrate all Netatmo related platforms. Besides this component you will have to setup any connected sensors separately.
+
+To enable the Netatmo component, add the following lines to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+netatmo:
+ api_key: YOUR_API_KEY
+ secret_key: YOUR_SECRET_KEY
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
+```
+
+Configuration variables:
+
+- **api_key** (*Required*): The API key for your netatmo account.
+- **secret_key** (*Required*): Your netatmo secret key
+- **username** (*Required*): Username for the netatmo account.
+- **password** (*Required*): Password for the netatmo account.
+
+### {% linkable_title Get API and Secret Key %}
+
+To get your API credentials, you have to declare a new application in the [NetAtmo Developer Page](https://dev.netatmo.com/). Sign in using your username and password from your regular NetAtmo account.
+Click on 'Create an App' at the top of the page.
+
+
+
+
+You have to fill the form, but only two fields are required : Name and Description. It doesn't really matter what you put into those. Just write something that make sense to you. To submit your new app, click on create at the bottom of the form.
+
+
+
+
+
+That's it. You can copy and paste your new API and secret keys in your Home Assistant configuration file just as said above.
+
+
+
+
+
+
+The Home Assistant NetAtmo platform has only be tested with the classic indoor, outdoor module and rainmeter. There is no support for the windmeter module at this time because developers does not own these modules.
+
diff --git a/source/_components/rfxtrx.markdown b/source/_components/rfxtrx.markdown
index 67e2c7a286c..1c7b4df46c9 100644
--- a/source/_components/rfxtrx.markdown
+++ b/source/_components/rfxtrx.markdown
@@ -7,6 +7,7 @@ sidebar: true
comments: false
sharing: true
footer: true
+logo: rfxtrx.png
ha_category: Hub
ha_release: pre 0.7
---
@@ -23,7 +24,6 @@ rfxtrx:
dummy: False
```
-
Configuration variables:
- **device** (*Required*): The path to your device, e.g. `/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0`
diff --git a/source/_components/rollershutter.rfxtrx.markdown b/source/_components/rollershutter.rfxtrx.markdown
index 831e600d6a4..ffe8f6fd98e 100644
--- a/source/_components/rollershutter.rfxtrx.markdown
+++ b/source/_components/rollershutter.rfxtrx.markdown
@@ -2,34 +2,36 @@
layout: page
title: "RFXtrx Rollershutter"
description: "Instructions how to integrate RFXtrx roller shutters into Home Assistant."
-date: 2016-06-02 22:10
+date: 2016-06-12 12:40
sidebar: true
comments: false
sharing: true
footer: true
+logo: rfxtrx.png
ha_category: Rollershutter
ha_release: 0.21
---
The `rfxtrx` platform supports Siemens/LightwaveRF and RFY roller shutters that communicate in the frequency range of 433.92 MHz.
-First you have to set up your [rfxtrx hub.](/components/rfxtrx/)
+First you have to set up your [rfxtrx hub](/components/rfxtrx/).
### {% linkable_title Configuration %}
-#####Siemens/LightwaveRF
+##### Siemens/LightwaveRF
The easiest way to find your roller shutters is to add this to your `configuration.yaml`:
```yaml
rollershutter:
- platform: rfxtrx
- automatic_add: True
+ platform: rfxtrx
+ automatic_add: True
```
-Launch your homeassistant and go the website.
+Launch your homeassistant and go the website (e.g http://localhost:8123).
Push your remote and your device should be added.
-Once added it will show an id (e.g `0b11000102ef9f210010f70`) and you can verify that it works from the frontend.
+Once added it will show an ID (e.g `0b11000102ef9f210010f70`) and you can verify that it works from the frontend.
Then you should update your configuration to:
+
```yaml
rollershutter:
platform: rfxtrx
@@ -38,11 +40,10 @@ rollershutter:
name: device_name
```
-#####RFY
-The RFXtrx433e is required for RFY support, however it does not support receive for the RFY protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. Eg, if the id was `a` (`0a`) `00` `01`, and the unit code was `1` (`01`) then the fully qualified id would be `071a00000a000101`.
+##### RFY
+The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) is required for RFY support, however it does not support receive for the RFY protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. Eg, if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`.
-
-#####Common
+##### Common
Example configuration:
```yaml
@@ -64,4 +65,3 @@ Configuration variables:
- **automatic_add** (*Optional*): To enable the automatic addition of new roller shutters (Siemens/LightwaveRF only).
- **signal_repetitions** *Optional*: Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the roller shutter to try to send each signal repeatedly.
- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations.
-
diff --git a/source/_components/rollershutter.wink.markdown b/source/_components/rollershutter.wink.markdown
new file mode 100644
index 00000000000..1d338a3dc17
--- /dev/null
+++ b/source/_components/rollershutter.wink.markdown
@@ -0,0 +1,20 @@
+---
+layout: page
+title: "Wink Rollershutter"
+description: "Instructions how to setup the Wink rollershutter (shade) within Home Assistant."
+date: 2016-02-12 07:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: wink.png
+ha_category: Rollershutter
+ha_release: 0.22
+---
+
+The Wink rollershutter platform allows you to control your [Wink](http://www.wink.com/) enabled rollershutters. It supports Wink shades / blinds / rollershutters such as the Bali Somfy or Lutron Serena blinds.
+
+The Wink API currently doesn't provide status for shades.
+
+The requirement is that you have setup your [Wink hub](/components/wink/).
+
diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown
index 08a9852e086..07c28221aa6 100644
--- a/source/_components/sensor.bloomsky.markdown
+++ b/source/_components/sensor.bloomsky.markdown
@@ -28,6 +28,7 @@ sensor:
- UVIndex
- Luminance
- Night
+ - Voltage
```
Configuration variables:
@@ -40,3 +41,4 @@ Configuration variables:
- Rain
- Temperature
- UVIndex
+ - Voltage
diff --git a/source/_components/sensor.mysensors.markdown b/source/_components/sensor.mysensors.markdown
index 9690ece312b..1420e037279 100644
--- a/source/_components/sensor.mysensors.markdown
+++ b/source/_components/sensor.mysensors.markdown
@@ -2,7 +2,7 @@
layout: page
title: "MySensors Sensor"
description: "Instructions how to integrate MySensors sensors into Home Assistant."
-date: 2016-04-13 14:20 +0100
+date: 2016-06-12 15:00 +0200
sidebar: true
comments: false
sharing: true
@@ -30,7 +30,7 @@ S_WEIGHT | V_WEIGHT, V_IMPEDANCE
S_POWER | V_WATT, V_KWH
S_DISTANCE | V_DISTANCE
S_LIGHT_LEVEL | V_LIGHT_LEVEL
-S_IR | V_IR_SEND, V_IR_RECEIVE
+S_IR | V_IR_RECEIVE
S_WATER | V_FLOW, V_VOLUME
S_AIR_QUALITY | V_DUST_LEVEL
S_CUSTOM | V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5
diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown
index e68b3c05b28..81455a136d8 100644
--- a/source/_components/sensor.netatmo.markdown
+++ b/source/_components/sensor.netatmo.markdown
@@ -2,13 +2,13 @@
layout: page
title: "Netatmo Sensor"
description: "Instructions how to integrate Netatmo sensors into Home Assistant."
-date: 2016-01-14 08:10
+date: 2016-06-02 08:10
sidebar: true
comments: false
sharing: true
footer: true
logo: netatmo.png
-ha_category: Sensor
+ha_category: Weather
---
@@ -20,10 +20,6 @@ To enable the Netatmo sensor, add the following lines to your `configuration.yam
# Example configuration.yaml entry
sensor:
platform: netatmo
- api_key: YOUR_API_KEY
- secret_key: YOUR_SECRET_KEY
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
station: STATION_NAME
modules:
module_name1:
@@ -45,11 +41,7 @@ sensor:
Configuration variables:
-- **api_key** (*Required*): The API key for your netatmo account.
-- **secret_key** (*Required*): Your netatmo secret key
-- **username** (*Required*): Username for the netatmo account.
-- **password** (*Required*): Password for the netatmo account.
-- **station**: The name of the weather station. Needed if several stations are associated with the account.
+- **station** (*Optionnal*): The name of the weather station. Needed if several stations are associated with the account.
- **modules** (*Required*): Modules to use. Multiple entries allowed.
- **module_name** array (*Required*): Name of the module.
- **temperature**: Current temperature.
@@ -61,26 +53,6 @@ Configuration variables:
- **sum_rain_1**: Rainfall in the last hour in mm.
- **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm.
-### {% linkable_title Get API and Secret Key %}
-
-To get your API credentials, you have to declare a new application in the [NetAtmo Developer Page](https://dev.netatmo.com/). Sign in using your username and password from your regular NetAtmo account.
-Click on 'Create an App' at the top of the page.
-
-
-
-
-You have to fill the form, but only two fields are required : Name and Description. It doesn't really matter what you put into those. Just write something that make sense to you. To submit your new app, click on create at the bottom of the form.
-
-
-
-
-
-That's it. You can copy and paste your new API and secret keys in your Home Assistant configuration file just as said above.
-
-
-
-
-
### {% linkable_title Find your modules name %}
You can find your modules name in your [online NetAtmo account](https://my.netatmo.com/app/station). These names can be found and changed in parameters (See screenshot)
diff --git a/source/_components/sensor.plex.markdown b/source/_components/sensor.plex.markdown
new file mode 100644
index 00000000000..daf62cad8b7
--- /dev/null
+++ b/source/_components/sensor.plex.markdown
@@ -0,0 +1,41 @@
+---
+layout: page
+title: "Plex Sensor"
+description: "How to add a Plex sensor to Home Assistant."
+date: 2016-06-3 08:19
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: plex.png
+ha_category: Sensor
+ha_release: 0.22
+---
+
+The `plex` sensor platform will monitor activity on a given [Plex Media Server](https://plex.tv/). It will create a sensor that shows the number of currently watching users as the state. If you click the sensor for more details it will show you who is watching what.
+
+If your Plex server is on the same local network as Home Assistant, all you need to provide in the `configuration.yaml` is the host or IP address. If you want to access a remote Plex server, you must provide the Plex username, password, and optionally the server name of the remote Plex server. If no server name is given it will use the first server listed.
+
+If you want to enable the plex sensor, add the following lines to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ platform: plex
+ name: Plex Spy
+ host: 192.168.1.100
+ port: 32400
+ username: plexuser
+ password: plexpw
+ server: MyPlexServer
+```
+
+Configuration variables:
+
+- **host** (*Optional*): The IP address of your Plex server. Defaults to `localhost`.
+- **port** (*Optional*): The port of your Plex Server. Defaults to 32400.
+- **name** (*Optional*): Name of the Plex server. Defaults to Plex.
+- **username** (*Optional*): The username for the remote Plex server.
+- **password** (*Optional*): The password for your given account on the remote Plex server.
+- **server** (*Optional*): The name of your remote Plex server.
+
diff --git a/source/_components/sensor.rfxtrx.markdown b/source/_components/sensor.rfxtrx.markdown
index 8fa51cac38d..d48a5c98a54 100644
--- a/source/_components/sensor.rfxtrx.markdown
+++ b/source/_components/sensor.rfxtrx.markdown
@@ -7,18 +7,19 @@ sidebar: true
comments: false
sharing: true
footer: true
+logo: rfxtrx.png
ha_category: Sensor
---
The `rfxtrx` platform support sensors that communicate in the frequency range of 433.92 MHz.
-First you have to set up your [rfxtrx hub.](/components/rfxtrx/)
+First you have to set up your [rfxtrx hub](/components/rfxtrx/).
The easiest way to find your sensors is to add this to your `configuration.yaml`:
```yaml
-sensor:
- platform: rfxtrx
- automatic_add: True
+sensor:
+ platform: rfxtrx
+ automatic_add: True
```
Then when the sensor emits a signal it will be automatically added:
@@ -27,47 +28,45 @@ Then when the sensor emits a signal it will be automatically added:
-Here the name is 0a52080000301004d240259 and you can verify that it works from the frontend.
+Here the name is `0a52080000301004d240259` and you can verify that it works from the frontend.
Then you should update your configuration to:
```yaml
sensor:
- platform: rfxtrx
- devices:
- 0a52080000301004d240259:
- name: device_name
+ platform: rfxtrx
+ devices:
+ 0a52080000301004d240259:
+ name: device_name
```
If you want to display several data types from one sensor:
```yaml
-sensor:
- platform: rfxtrx
- devices:
- 0a520802060100ff0e0269:
- name: Bath
- data_type:
- - Humidity
- - Temperature
+sensor:
+ platform: rfxtrx
+ devices:
+ 0a520802060100ff0e0269:
+ name: Bath
+ data_type:
+ - Humidity
+ - Temperature
```
-
-
Example configuration:
```yaml
# Example configuration.yaml entry
-sensor:
- platform: rfxtrx
- automatic_add: True
- devices:
- 0a52080705020095220269:
- name: Lving
- 0a520802060100ff0e0269:
- name: Bath
- data_type:
- - Humidity
- - Temperature
+sensor:
+ platform: rfxtrx
+ automatic_add: True
+ devices:
+ 0a52080705020095220269:
+ name: Lving
+ 0a520802060100ff0e0269:
+ name: Bath
+ data_type:
+ - Humidity
+ - Temperature
```
Configuration variables:
@@ -75,4 +74,4 @@ Configuration variables:
- **devices** (*Optional*): A list of devices with their name to use in the frontend.
- **automatic_add** (*Optional*): To enable the automatic addition of new lights.
- **data_type** (*Optional*): Which data type the sensor should show
-
+- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations.
diff --git a/source/_components/sensor.snmp.markdown b/source/_components/sensor.snmp.markdown
new file mode 100644
index 00000000000..c59c7c5c63b
--- /dev/null
+++ b/source/_components/sensor.snmp.markdown
@@ -0,0 +1,54 @@
+---
+layout: page
+title: "SNMP"
+description: "Instructions how to integrate SNMP sensors within Home Assistant."
+date: 2016-06-05 20:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: network-snmp.png
+ha_category: Sensor
+ha_iot_class: "Local Polling"
+ha_release: "0.21"
+---
+
+
+The `snmp` sensor platform simple displays the information which are available through the [Simple Network Management Protocol (SNMP)](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol). SNMP uses a tree-like hierarchy where each node is an object.
+
+To enable this sensor in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ platform: snmp
+ name: Load
+ host: 192.168.1.32
+ port: 161
+ community: public
+ baseoid: 1.3.6.1.4.1.2021.10.1.3.1
+ unit_of_measurement: "%"
+```
+
+Configuration variables:
+
+- **host** (*Required*): The IP address of your host, eg. 192.168.1.32.
+- **port** (*Option*): The SNMP port of your host. Defaults to 161.
+- **name** (*Optional*): Name of the SNMP sensor.
+- **community** (*Optional*): The SNMP community which is set for the device. Most devices have a default community set to to `public` with read-only permission (which is sufficient).
+- **baseoid** (*Required*): The OID where the information is located. It's advised to use the numerical notation.
+- **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any.
+
+The OIDs may vary on different system because they are vendor-specific. Beside the device's manual is the [OID Repository](http://www.oid-info.com/) a good place to start if you are looking for OIDs. The following OIDs are for the load of a Linux systems.
+
+- 1 minute Load: 1.3.6.1.4.1.2021.10.1.3.1
+- 5 minute Load: 1.3.6.1.4.1.2021.10.1.3.2
+- 15 minute Load: 1.3.6.1.4.1.2021.10.1.3.3
+
+There is a large amount of tools available to work with SNMP. `snmpwalk` let you easily retrieve the value of a OID.
+
+```bash
+$ snmpwalk -Os -c public -v 2c 192.168.1.32 1.3.6.1.4.1.2021.10.1.3.1
+laLoad.1 = STRING: 0.19
+```
+
diff --git a/source/_components/shell_command.markdown b/source/_components/shell_command.markdown
index 00551f9b65c..b77b1101da2 100644
--- a/source/_components/shell_command.markdown
+++ b/source/_components/shell_command.markdown
@@ -26,3 +26,22 @@ Configuration variables:
- Alias for the command
- Command itself.
+
+The commands can be dynamic, using templates to insert values of other entities. When using templates you are limited to only template the arguments. You are also no longer allowed to use pipe symbols when using templates.
+
+Any service data passed into the service call to activate the shell command will be available as a variable within the template.
+
+```yaml
+# Apply value of a GUI slider to the shell_command
+input_slider:
+ ac_temperature:
+ name: A/C Setting
+ initial: 24
+ min: 18
+ max: 32
+ step: 1
+{% raw %}
+shell_command:
+ set_ac_to_slider: 'irsend SEND_ONCE DELONGHI AC_{{ states.input_slider.ac_temperature.state}}_AUTO'
+{% endraw %}
+```
diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown
index 77944cce9cc..1e9b9a11dd0 100644
--- a/source/_components/switch.mysensors.markdown
+++ b/source/_components/switch.mysensors.markdown
@@ -2,7 +2,7 @@
layout: page
title: "MySensors Switch"
description: "Instructions how to integrate MySensors switches into Home Assistant."
-date: 2016-04-21 13:30 +0100
+date: 2016-06-12 15:00 +0200
sidebar: true
comments: false
sharing: true
@@ -25,6 +25,7 @@ S_MOTION | V_ARMED
S_SMOKE | V_ARMED
S_LIGHT | V_LIGHT
S_LOCK | V_LOCK_STATUS
+S_IR | V_IR_SEND, V_LIGHT
##### MySensors version 1.5 and higher
@@ -38,10 +39,47 @@ S_SOUND | V_ARMED
S_VIBRATION | V_ARMED
S_MOISTURE | V_ARMED
+All V_TYPES for each S_TYPE above are required to activate the actuator for the platform. Use either V_LIGHT or V_STATUS depending on library version for cases where that V_TYPE is required.
+
For more information, visit the [serial api] of MySensors.
-### {% linkable_title Example sketch %}
+### {% linkable_title Services %}
+The MySensors switch platform exposes a service to change an IR code attribute for an IR switch device and turn the switch on. The IR switch will automatically be turned off after being turned on, if `optimistic` is set to `true` in the [config](/components/mysensors/#configuration) for the MySensors component. This will simulate a push button on a remote. If `optimistic` is `false`, the MySensors device will have to report its updated state to reset the switch. See the [example sketch](#ir-switch-sketch) for the IR switch below.
+
+| Service | Description |
+| ------- | ----------- |
+| mysensors_send_ir_code | Set an IR code as a state attribute for a MySensors IR device switch and turn the switch on.|
+
+The service can be used as part of an automation script. For example:
+
+```yaml
+# Example configuration.yaml automation entry
+automation:
+ - alias: turn hvac on
+ trigger:
+ platform: time
+ after: '5:30:00'
+ action:
+ service: switch.mysensors_send_ir_code
+ entity_id: switch.hvac_1_1
+ data:
+ V_IR_SEND: '0xC284' # the IR code to send
+
+ - alias: turn hvac off
+ trigger:
+ platform: time
+ after: '0:30:00'
+ action:
+ service: switch.mysensors_send_ir_code
+ entity_id: switch.hvac_1_1
+ data:
+ V_IR_SEND: '0xC288' # the IR code to send
+```
+
+### {% linkable_title Example sketches %}
+
+#### {% linkable_title Switch sketch %}
```cpp
/*
* Documentation: http://www.mysensors.org
@@ -86,5 +124,76 @@ void incomingMessage(const MyMessage &message)
}
```
+#### {% linkable_title IR switch sketch %}
+```cpp
+/*
+ * Documentation: http://www.mysensors.org
+ * Support Forum: http://forum.mysensors.org
+ *
+ * http://www.mysensors.org/build/ir
+ */
+
+#include
+#include
+#include
+
+#define SN "IR Sensor"
+#define SV "1.0"
+#define CHILD_ID 1
+
+MySensor gw;
+
+char code[10] = "abcd01234";
+char oldCode[10] = "abcd01234";
+MyMessage msgCodeRec(CHILD_ID, V_IR_RECEIVE);
+MyMessage msgCode(CHILD_ID, V_IR_SEND);
+MyMessage msgSendCode(CHILD_ID, V_LIGHT);
+
+void setup()
+{
+ gw.begin(incomingMessage);
+ gw.sendSketchInfo(SN, SV);
+ gw.present(CHILD_ID, S_IR);
+ // Send initial values.
+ gw.send(msgCodeRec.set(code));
+ gw.send(msgCode.set(code));
+ gw.send(msgSendCode.set(0));
+}
+
+void loop()
+{
+ gw.process();
+ // IR receiver not implemented, just a dummy report of code when it changes
+ if (String(code) != String(oldCode)) {
+ Serial.print("Code received ");
+ Serial.println(code);
+ gw.send(msgCodeRec.set(code));
+ strcpy(oldCode, code);
+ }
+}
+
+void incomingMessage(const MyMessage &message) {
+ if (message.type==V_LIGHT) {
+ // IR sender not implemented, just a dummy print.
+ if (message.getBool()) {
+ Serial.print("Sending code ");
+ Serial.println(code);
+ }
+ gw.send(msgSendCode.set(message.getBool() ? 1 : 0));
+ // Always turn off device
+ gw.wait(100);
+ gw.send(msgSendCode.set(0));
+ }
+ if (message.type == V_IR_SEND) {
+ // Retrieve the IR code value from the incoming message.
+ String codestring = message.getString();
+ codestring.toCharArray(code, sizeof(code));
+ Serial.print("Changing code to ");
+ Serial.println(code);
+ gw.send(msgCode.set(code));
+ }
+}
+```
+
[main component]: /components/mysensors/
[serial api]: https://www.mysensors.org/download/serial_api_15
diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown
index f86f1b24f1b..365e0c64893 100644
--- a/source/_components/switch.rfxtrx.markdown
+++ b/source/_components/switch.rfxtrx.markdown
@@ -7,19 +7,20 @@ sidebar: true
comments: false
sharing: true
footer: true
+logo: rfxtrx.png
ha_category: Switch
ha_release: 0.7.5
---
The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz.
-First you have to set up your [rfxtrx hub.](/components/rfxtrx/)
+First you have to set up your [rfxtrx hub](/components/rfxtrx/).
The easiest way to find your switches is to add this to your `configuration.yaml`:
```yaml
switch:
- platform: rfxtrx
- automatic_add: True
+ platform: rfxtrx
+ automatic_add: True
```
Launch your homeassistant and go the website.
@@ -29,32 +30,32 @@ Push your remote and your device should be added:
-Here the name is 0b11000102ef9f210010f70 and you can verify that it works from the frontend.
+Here the name is `0b11000102ef9f210010f70` and you can verify that it works from the frontend.
Then you should update your configuration to:
```yaml
switch:
- platform: rfxtrx
- devices:
- 0b11000102ef9f210010f70:
- name: device_name
+ platform: rfxtrx
+ devices:
+ 0b11000102ef9f210010f70:
+ name: device_name
```
Example configuration:
```yaml
# Example configuration.yaml entry
-switch:
- platform: rfxtrx
- automatic_add: False
- signal_repetitions: 2
- devices:
- 0b1100ce3213c7f210010f70:
- name: Movment1
- 0b11000a02ef2gf210010f50:
- name: Movment2
- 0b1111e003af16aa10000060:
- name: Door
+switch:
+ platform: rfxtrx
+ automatic_add: False
+ signal_repetitions: 2
+ devices:
+ 0b1100ce3213c7f210010f70:
+ name: Movment1
+ 0b11000a02ef2gf210010f50:
+ name: Movment2
+ 0b1111e003af16aa10000060:
+ name: Door
```
Configuration variables:
diff --git a/source/_includes/site/head.html b/source/_includes/site/head.html
index abe099c7272..5371a1bbbfa 100644
--- a/source/_includes/site/head.html
+++ b/source/_includes/site/head.html
@@ -1,6 +1,6 @@
{% capture fb_description %}{% if page.description %}{{ page.description }}{% endif %}{% endcapture %}
{% capture description %}{% if page.description %}{{ page.description }}{% else site.description %}{{ site.description }}{% endif %}{% endcapture %}
-{% capture social_image %}{% if page.og_image %}{{ page.og_image | prepend: site.url }}{% else %}https://home-assistant.io/images/home-assistant-logo-2164x2164.png{% endif %}{% endcapture %}
+{% capture social_image %}{% if page.og_image %}{{ page.og_image | prepend: site.url }}{% else %}https://home-assistant.io/images/default-social.png{% endif %}{% endcapture %}
diff --git a/source/_posts/2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown b/source/_posts/2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown
new file mode 100644
index 00000000000..e2ace3e1c20
--- /dev/null
+++ b/source/_posts/2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown
@@ -0,0 +1,74 @@
+---
+layout: post
+title: "0.22: Pandora, BT Home Hub 5 and local file camera."
+description: "This new release of Home Assistant has been mainly about stabilizing our last release which included a lot of core improvements. We're all stable now and set for a bright future."
+date: 2016-06-18 18:06:00 +0000
+date_formatted: "June 18, 2016"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+---
+
+It's time for the 0.22 release. This was a pretty rough release cycle and we had to issue two hot fixes for our core improvements. But it seems now that all is good and a lot of people have reported that their installs are faster than ever and the occasional quirks no longer occur.
+
+We are aware that our new web stack has caused issues installing Home Assistant on ARM-based platforms. This sadly includes the Raspberry Pi and Synology NAS systems. We're working on getting to a better solution. For Raspberry Pi, the [All-in-One installer] will take care of everything for you. We're working on updating our [standalone Raspberry Pi installation guide].
+
+There are two cool things that I want to highlight in this release. The first is Pandora support. This is based on the CLI player called pianobar. This means that your machine running Home Assistant can be connected to the speakers and provide your house with tunes.
+
+
+
+
+
+Another cool addition is the local file camera. This seems very basic at first but will allow you to generate a graph with your favorite 3rd party graphing tool and display it on your Home Assistant dashboard. We're looking forward to see what you can do with this!
+
+
+
+- Media Player: [Pandora] media player now supported ([@partofthething])
+- Device Tracker: [BT Home Hub 5] now supported ([@lwis])
+- Camera: New [local file] platform shows any image as camera ([@Landrash])
+- Add [Sonos] snapshot and restore services ([@dansullivan86])
+- Device Tracker: [AsusWRT] in Access Point mode now supported ([@linjef])
+- Device Tracker: [AsusWRT] login using public key now supported ([@mtreinish])
+- Device Tracker: [AsusWRT] protocol to use is now auto detected ([@persandstrom])
+- Camera: [Netatmo] now supported ([@jabesq])
+- API documentation added in [Swagger.yaml format] ([@wind-rider])
+- Media Player: [Cast] devices can now be stopped ([@michaelarnauts])
+- MySensors: [IR switch device] and service now supported ([@MartinHjelmare])
+- Bloomsky: [Voltage sensor] now supported ([@arsaboo])
+- Sensor: New [Plex sensor] monitors friends streaming from your Plex server ([@nkgilley])
+- Component [shell command] can now use templates to render arguments ([@partofthething])
+- Rollershutter: [Wink] is now supported ([@philk])
+- Alexa: Updated [documentation][alexa] to show how to call scripts and scenes (@acockburn)
+
+[@acockburn]: https://github.com/acockburn/
+[@arsaboo]: https://github.com/arsaboo/
+[@dansullivan86]: https://github.com/dansullivan86/
+[@jabesq]: https://github.com/jabesq/
+[@Landrash]: https://github.com/Landrash/
+[@linjef]: https://github.com/linjef/
+[@lwis]: https://github.com/lwis/
+[@MartinHjelmare]: https://github.com/MartinHjelmare/
+[@michaelarnauts]: https://github.com/michaelarnauts/
+[@mtreinish]: https://github.com/mtreinish/
+[@nkgilley]: https://github.com/nkgilley/
+[@partofthething]: https://github.com/partofthething/
+[@persandstrom]: https://github.com/persandstrom/
+[@philk]: https://github.com/philk/
+[@wind-rider]: https://github.com/wind/
+[AsusWRT]: /components/device_tracker.asuswrt/
+[BT Home Hub 5]: /components/device_tracker.bt_home_hub_5/
+[Cast]: /components/media_player.cast/
+[IR switch device]: /components/mysensors/
+[local file]: /components/camera.local_file/
+[Netatmo]: /components/netatmo/
+[Pandora]: /components/media_player.pandora/
+[shell command]: /components/shell_command/
+[Sonos]: /components/media_player.sonos/
+[Wink]: /components/rollershutter.wink/
+[alexa]: /components/alexa/#working-with-scenes
+[Plex sensor]: /components/sensor.plex/
+[Swagger.yaml format]: https://github.com/home-assistant/home-assistant/blob/dev/docs/swagger.yaml
+[All-in-One installer]: /getting-started/installation-raspberry-pi-all-in-one/
+[standalone Raspberry Pi installation guide]: /getting-started/installation-raspberry-pi/
+[Voltage sensor]: /components/sensor.bloomsky/
diff --git a/source/images/default-social.png b/source/images/default-social.png
new file mode 100644
index 0000000000000000000000000000000000000000..377a667d157b00f8d4a87c4ff961738e4c6ea921
GIT binary patch
literal 50385
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