diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown index 663e63031b2..0c9a91d5402 100644 --- a/source/_components/binary_sensor.apcupsd.markdown +++ b/source/_components/binary_sensor.apcupsd.markdown @@ -14,7 +14,7 @@ ha_release: 0.13 In addition to the [APCUPSd Sensor](/components/sensor.apcupsd/) devices, you may also create a device which is simply "on" when the UPS status is online and "off" at all other times. -To enable this sensor, add the following lines to your `configuration.yaml` file: +To enable this sensor, you first have to set up [apcupsd](/components/apcupsd/), and add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/_components/binary_sensor.zigbee.markdown b/source/_components/binary_sensor.zigbee.markdown index e6fb6a1ddb2..48302659e51 100644 --- a/source/_components/binary_sensor.zigbee.markdown +++ b/source/_components/binary_sensor.zigbee.markdown @@ -9,11 +9,13 @@ sharing: true footer: true logo: zigbee.png ha_category: Binary Sensor +ha_release: 0.12 +ha_iot_class: "Local Polling" --- -A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to 'on' or 'off'. By default, a binary sensor is considered 'on' when the ZigBee device's digital input pin is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A `zigbee` binary sha_release: 0.13ensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to `on` or `off`. By default, a binary sensor is considered `on` when the ZigBee device's digital input pin is held 'high' and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. -To enable the ZigBee binary sensors in your installation, add the following lines to your `configuration.yaml`: +To enable a digital input pin as binary sensor in your installation, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry @@ -27,9 +29,8 @@ binary_sensor: Configuration variables: -- **name** (*Required*): The name you'd like to give the binary sensor in Home Assistant. -- **platform** (*Required*): Set to `zigbee`. +- **name** (*Required*): The name you wouldd like to give the binary sensor in Home Assistant. - **pin** (*Required*): The number identifying which pin to use. - **address**: The long 64bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. -- **on_state**: Either `high` (default) or `low`, depicting whether the binary sensor is considered 'on' when the pin is 'high' or 'low'. +- **on_state**: Either `high` (default) or `low`, depicting whether the binary sensor is considered `on` when the pin is `high` or `low`. diff --git a/source/_components/camera.ffmpeg.markdown b/source/_components/camera.ffmpeg.markdown index f6a41895cc6..71c14c789b5 100644 --- a/source/_components/camera.ffmpeg.markdown +++ b/source/_components/camera.ffmpeg.markdown @@ -55,5 +55,5 @@ $ ffmpeg -i INPUT -an -f null - Now you can see what going wrong. Following list could be help to solve your trouble: - `[rtsp @ ...] UDP timeout, retrying with TCP`: You need to set RTSP transport in the configuration with: `input: -rtsp_transport tcp -i INPUT` -- `[rtsp @ ...] Could not find codec parameters for stream 0 (Video: ..., none): unspecified size`: FFmpeg need more data or time for autodetect. You can set the `analyzeduration` and/or `probesize` option, play with this value. If you know the needed value you can set it with: `input: -analyzeduration xy -probesize xy tcp -i INPUT`. More information about that can be found on [FFmpeg](https://www.ffmpeg.org/ffmpeg-formats.html#Description). +- `[rtsp @ ...] Could not find codec parameters for stream 0 (Video: ..., none): unspecified size`: FFmpeg need more data or time for autodetect. You can set the `analyzeduration` and/or `probesize` option, play with this value. If you know the needed value you can set it with: `input: -analyzeduration xy -probesize xy -i INPUT`. More information about that can be found on [FFmpeg](https://www.ffmpeg.org/ffmpeg-formats.html#Description). diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown index 8e1952b55a7..662159d6a36 100644 --- a/source/_components/camera.netatmo.markdown +++ b/source/_components/camera.netatmo.markdown @@ -15,7 +15,7 @@ ha_release: 0.22 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`: +To enable the Netatmo camera, you first have to set up [netatmo](/components/netatmo/), and add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry diff --git a/source/_components/envisalink.markdown b/source/_components/envisalink.markdown index 037907a6e01..e24c333754c 100644 --- a/source/_components/envisalink.markdown +++ b/source/_components/envisalink.markdown @@ -10,10 +10,10 @@ footer: true logo: eyezon.png ha_category: Alarm ha_release: 0.23 +ha_iot_class: "Local Push" --- -This component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and it's sensors to provide Home Assistant with rich information about their homes. -Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4. +The `envisalink` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and it's sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this component is built. Currently, the Envisalink version 4 is the latest model. This component supports both the evl3 and the evl4. Please visit the [eyezon website](http://www.eyezon.com/) for further information about the evl3 and evl4 boards. @@ -23,54 +23,45 @@ There is currently support for the following device types within Home Assistant: - [Sensor](/components/sensor.envisalink/): Emulates an alpha-numeric keypad attached to the alarm panel - [Alarm Control Panel](/components/alarm_control_panel.envisalink/): Reports on partition status, and can be used to arm/disarm the system -This is a fully event-based component- any event sent by the Envisalink device will be immediately reflected within Home Assistant. - -## Configuration +This is a fully event-based component. Any event sent by the Envisalink device will be immediately reflected within Home Assistant. An `envisalink` section must be present in the `configuration.yaml` file and contain the following options as required: -### Required Parameters -- **host**: The IP address of the Envisalink device on your home network. -- **panel_type**: `HONEYWELL` or `DSC`, depending upon which alarm system you have. -- **user_name**: Which username to authenticate with when connecting to the device. On a Honeywell alarm panel, the username/password are the same. -- **password**: Which password to authenticate with when connecting to the device. -- **code**: Your alarm panel's code, for authenticating user input during arm/disarm. - -### Optional Parameters -- **port**: Which network port to connect with. Default: `4025` -- **evl_version**: 3 for evl3, or 4 for evl4. Default: `3` -- **keepalive_interval**: This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. Default: `60` seconds -- **zonedump_interval**: This is an interval (measured in seconds) where the evl will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. Default: `30` -- **zones**: Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. *Note- if no zones are specified, Home Assistant will not load any binary_sensor components.* -- **partitions**: Again, Envisalink boards do not tell us what is in use, and what is not, so each partition must be configured with a partition name. If no partition parameter is specified, then no alarm_panel or sensor components are loaded. - -#### Example - ```yaml +# Example configuration.yaml entry envisalink: -#optional + host: + panel_type: HONEYWELL or DSC + user_name: YOUR_USERNAME + password: YOUR_PASSWORD + code: '1234' port: 4025 evl_version: 3 keepalive_interval: 60 zonedump_interval: 30 - -#required - host: - panel_type: HONEYWELL or DSC - user_name: - password: - code: '1234' - zones: 11: name: 'Back Door' type: 'opening' - 21: name: 'First Floor Motion' type: 'motion' - partitions: 1: name: 'Home Alarm' ``` + +Configuration variables: + +- **host** (*Required*): The IP address of the Envisalink device on your home network. +- **panel_type** (*Required*): `HONEYWELL` or `DSC`, depending upon which alarm system you have. +- **user_name** (*Required*): Which username to authenticate with when connecting to the device. On a Honeywell alarm panel, the username/password are the same. +- **password** (*Required*): Which password to authenticate with when connecting to the device. EVL3 only works with max. 6 characters. +- **code** (*Required*): Your alarm panel's code, for authenticating user input during arm/disarm. +- **port** (*Optional*): Which network port to connect with. Default: `4025` +- **evl_version** (*Optional*): 3 for evl3, or 4 for evl4. Default: `3` +- **keepalive_interval** (*Optional*): This is a periodic heartbeat signal (measured in seconds) sent to your Envisalink board to keep it from restarting. This is required for DSC and Honeywell systems. Defaults to `60` seconds. +- **zonedump_interval** (*Optional*): This is an interval (measured in seconds) where the evl will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this. Default: `30` +- **zones** (*Optional*): Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. *Note: if no zones are specified, Home Assistant will not load any binary_sensor components.* +- **partitions** (*Optional*): Again, Envisalink boards do not tell us what is in use and what is not, so each partition must be configured with a partition name. If no partition parameter is specified, then no alarm_panel or sensor components are loaded. + diff --git a/source/_components/http.markdown b/source/_components/http.markdown index 3341d121ace..781600e7c42 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -49,3 +49,5 @@ The `http` platforms are not real platforms within the meaning of the terminolog To use those kind of [sensors](/components/sensor.http/) or [binary sensors](components/binary_sensor.http/) in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. The entity will be created after the first message has arrived. All [requests](/developers/rest_api/#post-apistatesltentity_id) need to be sent to the endpoint of the device and must be **POST**. + +If you want to use Home Assistant to host or serve static files then create a directory called `www` under the `.homeassistant` configuration path. The static files in `.homeassistant/www/` can be accessed by the following URL `http://your.domain:8123/local/`. diff --git a/source/_components/light.zigbee.markdown b/source/_components/light.zigbee.markdown index 25832fedbd1..a50568b0dd2 100644 --- a/source/_components/light.zigbee.markdown +++ b/source/_components/light.zigbee.markdown @@ -9,19 +9,13 @@ sharing: true footer: true logo: zigbee.png ha_category: Light +ha_release: 0.12 +ha_iot_class: "Local Polling" --- -A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. -To configure a digital output pin as a light, use the following variables: - -- **name** (*Required*): The name you'd like to give the light in Home Assistant. -- **platform** (*Required*): Set to `zigbee`. -- **pin** (*Required*): The number identifying which pin to use. -- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. -- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the light is turned on. - -#### Example +To configure a digital output pin as light, add the following to your `configuration.yaml` file: ```yaml light: @@ -31,3 +25,10 @@ light: address: 0013A20040791FA2 on_state: low ``` + +Configuration variables: + +- **name** (*Required*): The name you' would like to give the light in Home Assistant. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64 bit address of the remote ZigBee device whose digital output pin you wouldd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled `high` or `low` when the light is turned on. diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown index 8eceb7a2660..4e1310357b3 100644 --- a/source/_components/media_player.panasonic_viera.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -18,6 +18,7 @@ The `panasonic_viera` platform allows you to control a Panasonic Viera TV. Currently known supported models: - TX-P42STW50 +- TC-P65VT30 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/home-assistant/home-assistant.io). @@ -37,4 +38,3 @@ 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. - diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index f081899c9f2..b3af87aa698 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -71,7 +71,7 @@ Chrome supports notification actions, which are configurable buttons that arrive "actions": [ { "action": "open", - "icon": "/static/icons/favicon-192x192.png" + "icon": "/static/icons/favicon-192x192.png", "title": "Open Home Assistant" }, { @@ -85,7 +85,7 @@ Chrome supports notification actions, which are configurable buttons that arrive #### {% linkable_title Data %} -Any parameters that you pass in the notify payload that aren't valid for use in the HTML5 notification (`actions`, `badge`, `body`, `dir`, `icon`, `lang`, `renotify`, `requireInteraction`, `tag`, `timestamp`, `vibrate`) will be sent back to you in the [callback events](http://localhost:4000/components/notify.html5/#automating-notification-events). +Any parameters that you pass in the notify payload that aren't valid for use in the HTML5 notification (`actions`, `badge`, `body`, `dir`, `icon`, `lang`, `renotify`, `requireInteraction`, `tag`, `timestamp`, `vibrate`) will be sent back to you in the [callback events](#automating-notification-events). ```json { diff --git a/source/_components/notify.nma.markdown b/source/_components/notify.nma.markdown index 1108d3f2b87..1d42cd28b2f 100644 --- a/source/_components/notify.nma.markdown +++ b/source/_components/notify.nma.markdown @@ -30,8 +30,8 @@ notify: Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. -- **api_key** (*Required*): Enter the API key for NMA. +- **api_key** (*Required*): The API key for NMA. -Details for the (API)[https://www.notifymyandroid.com/api.jsp]. +Details for the [API](https://www.notifymyandroid.com/api.jsp). To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/pilight.markdown b/source/_components/pilight.markdown index a3fdbf8e4ce..e2eeddc8fc7 100644 --- a/source/_components/pilight.markdown +++ b/source/_components/pilight.markdown @@ -24,14 +24,14 @@ To integrate pilight into Home Assistant, add the following section to your `con ```yaml # Example configuration.yaml entry pilight: - - host: 127.0.0.1 - port: 5000 - whitelist: # optional - protocol: - - daycom - - intertechno - id: - - 42 + host: 127.0.0.1 + port: 5000 + whitelist: # optional + protocol: + - daycom + - intertechno + id: + - 42 ``` Configuration variables: diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown index eec87c03dae..d7e6ae6ae36 100644 --- a/source/_components/sensor.apcupsd.markdown +++ b/source/_components/sensor.apcupsd.markdown @@ -13,7 +13,7 @@ ha_category: Sensor The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command. -To use this sensor platform, you first have to set up [apcupsd](https://home-assistant.io/components/apcupsd/) and add the following to your `configuration.yaml` file: +To use this sensor platform, you first have to set up [apcupsd](/components/apcupsd/), and add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown index 8034f8a2d12..87ec4e8854b 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -14,7 +14,9 @@ ha_category: Weather The `netatmo` sensor platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) device. -To enable the Netatmo sensor, add the following lines to your `configuration.yaml`: + + +To enable the Netatmo sensor, you first have to set up [netatmo](/components/netatmo/), and add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry @@ -53,7 +55,7 @@ sensor: Configuration variables: -- **station** (*Optionnal*): The name of the weather station. Needed if several stations are associated with the account. +- **station** (*Optional*): 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. @@ -76,8 +78,7 @@ Configuration variables: ### {% 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) -You have to provide these name in your Home Assistant configuration file. +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. You have to provide these name in your Home Assistant `configuration.yaml` file.

diff --git a/source/_components/sensor.torque.markdown b/source/_components/sensor.torque.markdown index a86ea0bacc4..e1f96a42bda 100644 --- a/source/_components/sensor.torque.markdown +++ b/source/_components/sensor.torque.markdown @@ -47,5 +47,5 @@ sensor: Configuration variables: -- **name** (*Required*): Vehicle name (your choice). -- **email**: Email address configured in Torque application. +- **name** (*Optional*): Vehicle name (your choice). +- **email** (*Required*): Email address configured in Torque application. diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown index 58d436ccd27..96f66fc0d45 100644 --- a/source/_components/sensor.zigbee.markdown +++ b/source/_components/sensor.zigbee.markdown @@ -9,6 +9,8 @@ sharing: true footer: true logo: zigbee.png ha_category: Sensor +ha_release: 0.12 +ha_iot_class: "Local Polling" --- There are two types of [ZigBee](http://www.zigbee.org/) sensor available to Home Assistant: diff --git a/source/_components/switch.netio.markdown b/source/_components/switch.netio.markdown index b30efab2212..14b87570284 100644 --- a/source/_components/switch.netio.markdown +++ b/source/_components/switch.netio.markdown @@ -18,7 +18,7 @@ The `netio` switch platform allows you to control your [Netio](http://www.netio- To use Netio devices in your installation, add the following to your `configuration.yaml` file: -``` +```yaml # Example configuration.yaml entry switch: - platform: netio diff --git a/source/_components/switch.pulseaudio_loopback.markdown b/source/_components/switch.pulseaudio_loopback.markdown index eb7c3aaea8a..33ff6c87927 100644 --- a/source/_components/switch.pulseaudio_loopback.markdown +++ b/source/_components/switch.pulseaudio_loopback.markdown @@ -14,25 +14,25 @@ ha_iot_class: "Local Polling" --- -The goal behind this switch is to allow a very flexible whole home audio system based upon PulseAudio. +The goal behind this switch is to allow a very flexible whole home audio system based upon [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/). -For example, for a system with a 7.1 surround sound card, and 3 instances of mpd running, it is possible to quickly route the output of any mpd instance to any of the 8 possible (4 stereo) channels on the sound card, by loading/unloading a loopback module. This loading/unloading functionality is provided by this component. When the switch is 'on', the loopback module is loaded. When the switch is 'off', the module is not loaded. +For example, for a system with a 7.1 surround sound card, and 3 instances of [MPD](https://www.musicpd.org/) running, it is possible to quickly route the output of any MPD instance to any of the 8 possible (4 stereo) channels on the sound card, by loading/unloading a loopback module. This loading/unloading functionality is provided by this component. When the switch is `on`, the loopback module is loaded. When the switch is `off`, the module is not loaded. -The benefit of this approach is that this audio routing can occur without modifying the design-time configuration of mpd or PulseAudio. +The benefit of this approach is that this audio routing can occur without modifying the design-time configuration of MPD or PulseAudio. -This component uses a TCP connection to control a local or remote PulseAudio server- so there are no local dependencies. +This component uses a TCP connection to control a local or remote PulseAudio server. So there are no local dependencies. To enable this switch, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry switch: - platform: pulseaudio_loopback - name: mpd1 -> bedroom - host: 127.0.0.1 - port: 4712 - source_name: mpd1.monitor - sink_name: bedroom + - platform: pulseaudio_loopback + name: mpd1 -> bedroom + host: 127.0.0.1 + port: 4712 + source_name: mpd1.monitor + sink_name: bedroom ``` Configuration variables: @@ -46,7 +46,6 @@ Configuration variables: - **tcp_timeout** (*Optional*): How long to wait for a response from Pulseaudio before giving up. Default is 3 seconds.

-This component relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with -this component, module-cli-protocol must be loaded on the PulseAudio server. +This component relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-cli-protocol` must be loaded on the PulseAudio server.

diff --git a/source/_components/switch.zigbee.markdown b/source/_components/switch.zigbee.markdown index 41097f32e68..58bb428b79e 100644 --- a/source/_components/switch.zigbee.markdown +++ b/source/_components/switch.zigbee.markdown @@ -9,19 +9,13 @@ sharing: true footer: true logo: zigbee.png ha_category: Switch +ha_release: 0.12 +ha_iot_class: "Local Polling" --- -A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. +A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered `on` when the ZigBee device's digital output is held `high` and considered `off` when it is held `low`. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. -To configure a digital output pin as a switch, use the following variables: - -- **name** (*Required*): The name you'd like to give the switch in Home Assistant. -- **platform** (*Required*): Set to `zigbee`. -- **pin** (*Required*): The number identifying which pin to use. -- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. -- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the switch is turned on. - -#### Example +To configure a digital output pin as switch, add the following to your `configuration.yaml` file: ```yaml switch: @@ -31,3 +25,10 @@ switch: address: 0013A20040791FA2 on_state: low ``` + +Configuration variables: + +- **name** (*Required*): The name you would like to give the switch in Home Assistant. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 6 4bit address of the remote ZigBee device whose digital output pin you would like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled `high` or `low` when the switch is turned on. diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index 0d973649f90..8b29e11237a 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -10,6 +10,7 @@ footer: true logo: zigbee.png ha_category: DIY ha_release: 0.12 +ha_iot_class: "Local Polling" --- [ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilise modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected over a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index a911c747132..7c51ebc2315 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -11,8 +11,8 @@ footer: true This is an advanced feature of Home Assistant. You'll need a basic understanding of the following things: - - [Home Assistant architecture], especially states. - - [State object] +- [Home Assistant architecture], especially states. +- [State object] [Home Assistant architecture]: /developers/architecture/ @@ -20,8 +20,8 @@ This is an advanced feature of Home Assistant. You'll need a basic understanding Templating is a powerful feature in Home Assistant that allows the user control over information that is going into and out of the system. It is used for: - - Formatting outgoing messages in, for example, the [notify] and [alexa] components. - - Process incoming data from sources that provide raw data, like [MQTT], [REST sensor], or the [command line sensor]. +- Formatting outgoing messages in, for example, the [notify] and [alexa] components. +- Process incoming data from sources that provide raw data, like [MQTT], [REST sensor], or the [command line sensor]. [notify]: /components/notify/ [alexa]: /components/alexa/ @@ -201,4 +201,7 @@ It depends per component or platform but it is common to be able to define a tem {% raw %}{{ value_json.tst | timestamp_local }}{% endraw %} {% raw %}{{ value_json.tst | timestamp_utc }}{% endraw %} {% raw %}{{ value_json.tst | timestamp_custom('%Y' True) }}{% endraw %} + +# Square bracket notation +{% raw %}{{ value_json["001"] }}{% endraw %} ``` diff --git a/source/developers/development_environment.markdown b/source/developers/development_environment.markdown index 3dd791883ff..eb567b48ffd 100644 --- a/source/developers/development_environment.markdown +++ b/source/developers/development_environment.markdown @@ -24,3 +24,5 @@ On Windows you can use `python setup.py develop` instead of the setup script. After following these steps, running `hass` will invoke your local installation. +If you are using Windows as a development platform ensure you have the correct Microsoft Visual C++ build tools installed. Please check [the Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details. Validation using `tox` will fail if this is not done correctly. + diff --git a/source/developers/platform_example_light.markdown b/source/developers/platform_example_light.markdown index 759e9a379c2..9e530f65221 100644 --- a/source/developers/platform_example_light.markdown +++ b/source/developers/platform_example_light.markdown @@ -11,7 +11,7 @@ footer: true This example is for adding support for the imaginary Awesome Lights. It shows the different best practices for developing a platform. -Similar to Example Sensor Platform, Copy the code below and create it as a file in `/custom_components/light/awesomelights.py`. +Similar to Example Sensor Platform, copy the code below, and create it as a file in `/custom_components/light/awesomelights.py`. Add the following to your configuration.yaml: @@ -28,34 +28,40 @@ Note the `platform` name matches the filename for the source code. ```python import logging +import voluptuous as vol + # Import the device class from the component that you want to support -from homeassistant.components.light import ATTR_BRIGHTNESS, Light +from homeassistant.components.light import ATTR_BRIGHTNESS, Light, PLATFORM_SCHEMA from homeassistant.const import CONF_HOST, CONF_USERNAME, CONF_PASSWORD +import homeassistant.helpers.config_validation as cv # Home Assistant depends on 3rd party packages for API specific code. REQUIREMENTS = ['awesome_lights==1.2.3'] _LOGGER = logging.getLogger(__name__) +# Validation of the user's configuration +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_HOST): cv.string, + vol.Optional(CONF_USERNAME, default='admin'): cv.string, + vol.Optional(CONF_PASSWORD): cv.string, +}) + def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the Awesome Light platform.""" import awesomelights - # Validate passed in config + # Assign configuration variables. The configuration check takes care they are + # present. host = config.get(CONF_HOST) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) - if host is None or username is None or password is None: - _LOGGER.error('Invalid config. Expected %s, %s and %s', - CONF_HOST, CONF_USERNAME, CONF_PASSWORD) - return False - # Setup connection with devices/cloud hub = awesomelights.Hub(host, username, password) - # Verify that passed in config works + # Verify that passed in configuration works if not hub.is_valid_login(): _LOGGER.error('Could not connect to AwesomeLight hub') return False diff --git a/source/developers/website.markdown b/source/developers/website.markdown index 857151af3b9..d06bf0e4ec2 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -The website you're reading now is the home of Home Assistant: [https://home-assistant.io](https://home-assistant.io). This is the place where we provide documentation and additional details about Home Assistant for end users and developers. +The website you are reading now is the home of Home Assistant: [https://home-assistant.io](https://home-assistant.io). This is the place where we provide documentation and additional details about Home Assistant for end users and developers. home-assistant.io is built using [Jekyll](http://github.com/mojombo/jekyll) and [those available dependencies](https://pages.github.com/versions/). The pages are written in [markdown](http://daringfireball.net/projects/markdown/); to add a page you don't need to know about HTML or the like. @@ -31,6 +31,9 @@ Then you can work on the documentation: - Create a Pull Request (PR) against the **next** branch of home-assistant.github.io if your documentation is for a new feature, platform, or component. - Create a Pull Request (PR) against the **current** branch of home-assistant.github.io if you fix stuff, create Cookbook entries, or expand existing documentation. +

+It could be necessary that you run `rake generate` prior to `rake preview` for the very first preview. +

### {% linkable_title Create a page %}