diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index 64bb0963997..19981212ae4 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -14,17 +14,18 @@ ha_release: 0.13 The `nx584` platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through [pynx584](http://github.com/kk7ds/pynx584) which is required for this to work. - To enable this, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry alarm_control_panel: platform: nx584 - host: ADDRESS + host: IP_ADDRESS + port: 5007 ``` Configuration variables: -- **host** (*Optional*): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be `localhost:5007`, which will work if the server process is running on the same system as home-assistant. +- **host** (*Optional*): The host where the nx584 server process is running. Defaults to localhost. +- **port** (*Optional*): The port where the Alarm panel ist listening. Defaults to 5007. diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index d15152753e2..0464d81f912 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -16,17 +16,19 @@ Knowing that there are only two states allows Home Assistant to represent the se Most binary sensors support the `SENSOR_CLASSES` which let you specify the type of your sensor. The following types are supported: - **None**: Generic on/off -- **opening**: Door, window, etc -- **motion**: Motion sensor +- **cold**: On means cold (or too cold) +- **connectivity**: On means connection present, Off means no connection - **gas**: CO, CO2, etc -- **smoke**: Smoke detector -- **moisture**: Specifically a wetness sensor +- **heat**: On means hot (or too hot) - **light**: Lightness threshold +- **moisture**: Specifically a wetness sensor +- **motion**: Motion sensor +- **moving**: On means moving, Off means stopped +- **occupancy**: On means occupied, Off means not occupied +- **opening**: Door, window, etc - **power**: Power, over-current, etc - **safety**: On means unsafe, Off means safe -- **heat**: On means hot (or too hot) -- **cold**: On means cold (or too cold) -- **moving**: On means moving, Off means stopped +- **smoke**: Smoke detector - **sound**: On means sound detected, Off means no sound - **vibration**: On means vibration detected, Off means no vibration diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown index 7a05254c5e4..309685014d9 100644 --- a/source/_components/binary_sensor.octoprint.markdown +++ b/source/_components/binary_sensor.octoprint.markdown @@ -13,13 +13,18 @@ ha_release: 0.19 --- -The `OctoPrint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. +The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. + +

+You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. +

To set it up, add the following information to your `configuration.yaml` file: ```yaml binary_sensor: platform: octoprint + name: OctoPrint monitored_conditions: - Printing - Printing Error @@ -27,8 +32,8 @@ binary_sensor: Configuration variables: +- **name** (*Optional*): The name of the sensor. Default is 'OctoPrint'. - **monitored_conditions** array (*Required*): States to monitor. - - Printing - - Printing Error + - **Printing**: State of the printer. + - **Printing Error**: Error while printing. -

You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.

diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index 7ef84e74f77..1be2b677cf1 100644 --- a/source/_components/binary_sensor.rest.markdown +++ b/source/_components/binary_sensor.rest.markdown @@ -37,6 +37,7 @@ binary_sensor: name: REST GET binary sensor sensor_class: opening value_template: '{% raw %}{{ value_json.state }}{% endraw %}' + verify_ssl: False ``` or for a POST request: @@ -61,6 +62,7 @@ Configuration variables: - **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. - **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. +- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to True.

Make sure that the URL matches exactly your endpoint or resource. diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown index 235a9198189..d5fe8ddb50c 100644 --- a/source/_components/binary_sensor.rpi_gpio.markdown +++ b/source/_components/binary_sensor.rpi_gpio.markdown @@ -12,7 +12,6 @@ ha_category: Binary Sensor ha_release: pre 0.7 --- - The `rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: @@ -39,10 +38,3 @@ Configuration variables: For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi. -

-If you are not running Raspbian Jessie, you will need to run Home Assistant as root. -

- -

-To avoid having to run Home Assistant as root when using this component, run a Raspbian version released at or after September 29, 2015. -

diff --git a/source/_components/binary_sensor.trend.markdown b/source/_components/binary_sensor.trend.markdown new file mode 100644 index 00000000000..404c6a949ef --- /dev/null +++ b/source/_components/binary_sensor.trend.markdown @@ -0,0 +1,70 @@ +--- +layout: page +title: "Trend Binary Sensor" +description: "Instructions how to integrate Trend binary sensors into Home Assistant." +date: 2016-09-05 10:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Binary Sensor +logo: home-assistant.png +ha_release: 0.28 +ha_iot_class: "Local Push" +--- + +The `trend` platform allows you to create sensors which show the trend of numeric `state` or`state_attributes` from other entities. This sensor requires two updates of the underlying sensor to establish a trend - so it can take some time to show an accurate state. It can be useful as part of automations, where you want to base an action on a trend. + +To enable Trend binary sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: trend + sensors: + solar_angle: + friendly_name: 'Sun rising' + entity_id: sun.sun + sensor_class: light + attribute: elevation +``` + +Configuration variables: + +- **sensors** array (*Required*): List of your sensors. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + - **entity_id** (*Required*): The entity that this sensor tracks. + - **attribute** (*Optional*): The attribute of the entity that this sensor tracks. If no attribute is specified - the sensor will track the state. + - **invert** (*Optional*): Invert the result (so `true` means decending rather than ascending) + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title Temperature trend %} + +This example indicates true if the temperture is rising: + +```yaml +binary_sensor: + - platform: trend + sensors: + temperature_up: + friendly_name: 'Temp increasing' + entity_id: sensor.skylight_temperature + sensor_class: heat +``` + +And this one indicates true if the temperture is falling: + +```yaml +binary_sensor: + - platform: trend + sensors: + temperature_down: + friendly_name: 'Temp decreasing' + entity_id: sensor.skylight_temperature + sensor_class: cold + invert: Yes +``` diff --git a/source/_components/camera.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown index 1a5428afdbc..56aacbc0775 100644 --- a/source/_components/camera.rpi_camera.markdown +++ b/source/_components/camera.rpi_camera.markdown @@ -14,7 +14,7 @@ ha_release: 0.17 --- -The `rpi` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera. +The `rpi_camera` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera. To enable this camera in your installation, add the following to your `configuration.yaml` file: @@ -47,9 +47,3 @@ Configuration variables: The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. -Ensure that the user who is running Home Assistant is in the video group. Eg. for the user `hass`: - -```bash -$ sudo usermod -a -G video hass -``` - diff --git a/source/_components/climate.homematic.markdown b/source/_components/climate.homematic.markdown index 61b3d6bd4af..ac5458d592b 100644 --- a/source/_components/climate.homematic.markdown +++ b/source/_components/climate.homematic.markdown @@ -14,6 +14,6 @@ ha_iot_class: "Local Push" --- -The `homematic` cliamte platform lets you control [Homematic](http://www.homematic.com/) thermostats through Home Assistant. +The `homematic` climate platform lets you control [Homematic](http://www.homematic.com/) thermostats through Home Assistant. Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. diff --git a/source/_components/climate.honeywell.markdown b/source/_components/climate.honeywell.markdown index 67bf292f3d5..923f8a229ec 100644 --- a/source/_components/climate.honeywell.markdown +++ b/source/_components/climate.honeywell.markdown @@ -12,7 +12,7 @@ ha_category: Climate --- -The `honeywell` cliamte platform let you control [Honeywell Connected](http://getconnected.honeywell.com/en/) thermostats from Home Assistant. +The `honeywell` climate platform let you control [Honeywell Connected](http://getconnected.honeywell.com/en/) thermostats from Home Assistant. To set it up, add the following information to your `configuration.yaml` file: diff --git a/source/_components/cover.command_line.markdown b/source/_components/cover.command_line.markdown index 5c5826abe12..b3bcd690d60 100644 --- a/source/_components/cover.command_line.markdown +++ b/source/_components/cover.command_line.markdown @@ -22,11 +22,11 @@ To enable a command line cover in your installation, add the following to your ` cover: - platform: command_line covers: - Garage door: - opencmd: move_command up kitchen - closecmd: move_command down kitchen - stopcmd: move_command stop kitchen - statecmd: state_command kitchen + garage_door: + command_open: move_command up garage + command_close: move_command down garage + command_stop: move_command stop garage + command_state: state_command garage value_template: {% raw %}> {% if value == 'open' %} 100 @@ -39,9 +39,10 @@ cover: Configuration variables: - **covers** (*Required*): The array that contains all command line covers. - - **entry** (*Required*): Name of the command line cover. Multiple entries are possible. - - **opencmd** (*Required*): The command to open the cover. - - **closecmd** (*Required*): The action to close the cover. - - **stopcmd** (*Required*): The action to stop the cover. - - **statecmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open. - - **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `statecmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `statecmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`. + - **identifier** (*Required*): Name of the command line cover as slug. Multiple entries are possible. + - **command_open** (*Required*): The command to open the cover. + - **command_close** (*Required*): The action to close the cover. + - **command_stop** (*Required*): The action to stop the cover. + - **command_state** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open. + - **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `command_state` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `command_state` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`. + - **friendly_name** (*Optional*): The name used to display the cover in the frontend. diff --git a/source/_components/device_tracker.automatic.markdown b/source/_components/device_tracker.automatic.markdown new file mode 100644 index 00000000000..9d38582459d --- /dev/null +++ b/source/_components/device_tracker.automatic.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: "Automatic" +description: "Instructions for how to integrate Automatic ODB readers into Home Assistant." +date: 2015-08-28 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: automatic.png +ha_category: Presence Detection +ha_release: 0.28 +--- + + +The `automatic` platform offers presence detection by retrieving your car's information from the [Automatic](http://automatic.com/) cloud service. + +To use an Automatic ODB reader in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + platform: automatic + client_id: 1234567 + secret: 0987654321 + username: your@email.com + password: your_password + devices: + - 2007 Honda Element + - 2004 Subaru Impreza +``` + +Configuration variables: + +- **client_id** (*Required*): The OAuth client id (get from https://developer.automatic.com/). +- **secret** (*Require*): The OAuth client secret (get from https://developer.automatic.com/). +- **username** (*Required*): The username associated with your ODB reader. +- **password** (*Required*): The password for your given ODB reader account. +- **devices** (*Optional*): The list of vehicle display names you wish to track. If not provided, all vehicles will be tracked. + +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.bluetooth_tracker.markdown b/source/_components/device_tracker.bluetooth_tracker.markdown index 7fb68509c21..ff4e0e67e6e 100644 --- a/source/_components/device_tracker.bluetooth_tracker.markdown +++ b/source/_components/device_tracker.bluetooth_tracker.markdown @@ -16,10 +16,6 @@ ha_release: 0.18 This tracker discovers new devices on boot and tracks bluetooth devices periodically based on interval_seconds value. It is not required to pair the devices with each other! Devices discovered are stored with 'bt_' as the prefix for device mac addresses in `known_devices.yaml`. -

-Requires PyBluez. If you are on Raspbian, make sure you first install `bluetooth` and `libbluetooth-dev` by running `sudo apt install bluetooth libbluetooth-dev` -

- To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 3b15ac8eeac..b63c97d8dbf 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -25,11 +25,17 @@ To integrate Owntracks in Home Assistant, add the following section to your `con device_tracker: platform: owntracks max_gps_accuracy: 200 + waypoints: True + waypoint_whitelist: + - jon + - ram ``` Configuration variables: - **max_gps_accuracy** (*Optional*): Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account. +- **waypoints** (*Optional*): Owntracks users can define [waypoints](http://owntracks.org/booklet/features/waypoints/) (a.k.a regions) which are similar in spirit to Home Assistant zones. If this configuration variable is `True`, the Owntracks users who are in `waypoint_whitelist` can export waypoints from the device and Home Assistant will import them as zone definitions. Defaults to `True`. +- **waypoint_whitelist** (*Optional*): A list of user names (as defined for [Owntracks](https://home-assistant.io/components/device_tracker.owntracks/)) who can export their waypoints from Owntracks to Home Assistant. Defaults to all users who are connected to Home Assistant via Owntracks. ### {% linkable_title Using Owntracks with other device trackers %} Owntracks can also be used with other device trackers, such as [Nmap](/components/device_tracker.nmap_scanner/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the Owntracks entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. The naming convention for known device list is `_` and could be set in app configuration. More details about this config can found in [device tracker](/components/device_tracker/). @@ -64,3 +70,8 @@ This allows you to write zone automations for devices that can't track themselve ### {% linkable_title Using mobile and fixed iBeacons together %} You can use iBeacons of both types together, so if you have a Zone `drive` with an iBeacon region called `-drive` and you arrive home with a mobile iBeacon called `-car`, then `device_tracker.beacon_car` will be set to a state of `drive`. +### {% linkable_title Importing Owntracks waypoints as zones %} +By default, any Owntracks user connected to Home Assistant can export their waypoint definitions (from the `Export - Export to Endpoint` menu item) which will then be translated to zone definitions in Home Assistant. The zones will be named `- - `. This functionality can be controlled in 2 ways: + +1. The configuration variable `waypoints` can be set to `False` which will disable importing waypoints for all users. +2. The configuration variable `waypoint_whitelist` can contain a list of users who are allowed to import waypoints. diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index cab5d3c72ab..30c624d9f9a 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -27,6 +27,7 @@ However, only a few devices have been confirmed to work. These are: - Eltako FUD61 dimmer - Eltako FT55 battery-less wall switch +- Jung ENOA590WW battery-less wall switch - Permundo PSC234 (switch and power monitor) Other devices will most likely need some changes in the Home Assistant code in order to work. Support for teaching of devices is also missing at this time. @@ -42,4 +43,3 @@ enocean: Configuration variables: - **device** (*Required*): The port where your device is connected to your Home Assistant host. - diff --git a/source/_components/light.flux_led.markdown b/source/_components/light.flux_led.markdown index 32ab0808cff..7fce612f3a5 100644 --- a/source/_components/light.flux_led.markdown +++ b/source/_components/light.flux_led.markdown @@ -54,7 +54,7 @@ light: automatic_add: True ``` -Will add two lights with given name: +Will add two lights with given name and create an automation rule to randomly set color each 45 seconds: ```yaml light: @@ -65,5 +65,15 @@ light: name: flux_lamppost 192.168.0.109: name: flux_living_room_lamp -``` +automation: + random_flux_living_room_lamp: + trigger: + platform: time + seconds: '/45' + action: + service: light.turn_on + data: + entity_id: light.flux_living_room_lamp + effect: random +``` diff --git a/source/_components/media_player.directv.markdown b/source/_components/media_player.directv.markdown index e33834f248a..68ceaf4329a 100644 --- a/source/_components/media_player.directv.markdown +++ b/source/_components/media_player.directv.markdown @@ -9,7 +9,8 @@ sharing: true footer: true logo: directv.png ha_category: Media Player -ha_release: "0.25" +ha_release: 0.25 +ha_iot_class: "Local Polling" --- The [DirecTV](http://www.directv.com/) receivers will be automatically discovered if you enable the [discovery component](/components/discovery/). @@ -21,10 +22,13 @@ The `directv` media player platform can also be forced to load by adding the fol media_player: platform: directv host: 192.168.1.10 + port: 8080 name: DirecTV Living Room ``` Configuration variables: -- **host** *Optional*: Use only if you don't want to scan for devices. -- **name** *Optional*: Use to give a specific name to the device. +- **host** (*Optional*): Use only if you don't want to scan for devices. +- **port** (*Optional*): The port your receiver is using. Defaults to `8080`. +- **name** (*Optional*): Use to give a specific name to the device. + diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index bb1a9ae3d59..f5b9de02247 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -1,7 +1,7 @@ --- layout: page title: "FireTV" -description: "Instructions how to integrate Music Player Daemon into Home Assistant." +description: "Instructions how to integrate FIre-TV into Home Assistant." date: 2015-10-23 18:00 sidebar: true comments: false @@ -10,6 +10,7 @@ footer: true logo: firetv.png ha_category: Media Player ha_release: 0.7.6 +ha_iot_class: "Local Polling" --- @@ -38,19 +39,21 @@ To add FireTV to your installation, add the following to your `configuration.yam # Example configuration.yaml entry media_player: platform: firetv - host: localhost:5556 + host: localhost + port: 5556 device: livingroom-firetv name: My Amazon Fire TV ``` Configuration variables: -- **host** (*Optional*): Where `firetv-server` is running. Default is *localhost:5556*. -- **device** (*Optional*): The device ID, default is *default*. +- **host** (*Optional*): The host where `firetv-server` is running. Default is localhost. +- **port** (*Optional*): The port where `firetv-server` is running. Default is 5556. +- **device** (*Optional*): The device ID. Defaults to `default`. - **name** (*Optional*): The friendly name of the device, default is 'Amazon Fire TV'.

-Note that python-firetv has support for multiple Amazon Fire TV devices. If you have more than one configured, be sure to specify the device id used. Run `firetv-server -h` and/or view the source for complete capabilities. +Note that python-firetv has support for multiple Amazon Fire TV devices. If you have more than one configured, be sure to specify the device ID in `device`. Run `firetv-server -h` and/or view the source for complete capabilities.

diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index fd7d5ccf387..849b3cd9c0f 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -33,7 +33,7 @@ media_player: Configuration variables: - **host** (*Required*): The host name or address of the device that is running XBMC/Kodi -- **port** (*Required*): The port number, default 8080 +- **port** (*Optional*): The port number. Defaults to 8080. - **name** (*Optional*): The name of the device used in the frontend. - **username** (*Optional*): The XBMC/Kodi HTTP username. - **password** (*Optional*): The XBMC/Kodi HTTP password. diff --git a/source/_components/media_player.mpchc.markdown b/source/_components/media_player.mpchc.markdown index c03a58c18a1..5b761b2ac3f 100644 --- a/source/_components/media_player.mpchc.markdown +++ b/source/_components/media_player.mpchc.markdown @@ -10,7 +10,7 @@ footer: true logo: mpchc.png ha_category: Media Player featured: false -ha_release: 0.25.0 +ha_release: 0.25 --- @@ -41,6 +41,6 @@ media_player: Configuration variables: -- **host** (*Required*): The host name or address of the device that is running MPC-HC -- **port** (*Required*): The port number, default 13579 +- **host** (*Required*): The host name or address of the device that is running MPC-HC. +- **port** (*Optional*): The port number. Defaults to 13579. - **name** (*Optional*): The name of the device used in the frontend. diff --git a/source/_components/media_player.mpd.markdown b/source/_components/media_player.mpd.markdown index b5d10aee92d..af2d60a87b1 100644 --- a/source/_components/media_player.mpd.markdown +++ b/source/_components/media_player.mpd.markdown @@ -21,7 +21,7 @@ To add MPD to your installation, add the following to your `configuration.yaml` # Example configuration.yaml entry media_player: platform: mpd - server: IP_ADDRESS + host: IP_ADDRESS port: 6600 location: bedroom password: PASSWORD @@ -29,9 +29,9 @@ media_player: Configuration variables: -- **server** (*Required*): IP address of the Music Player Daemon, eg. 192.168.1.32 -- **port** (*Optional*): Port of the Music Player Daemon, defaults to 6600. -- **location** (*Optional*): Location of your Music Player Daemon. +- **host** (*Required*): IP address of the Host where Music Player Daemon is running. +- **port** (*Optional*): Port of the Music Player Daemon. Defaults to 6600. +- **location** (*Optional*): Location of your Music Player Daemon. Defaults to "MPD". - **password** (*Optional*): Password for your Music Player Daemon. This platform works with [Music Player Daemon](http://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://docs.mopidy.com/en/latest/ext/mpd/) as used by [Pi MusicBox](http://www.pimusicbox.com/). diff --git a/source/_components/media_player.pandora.markdown b/source/_components/media_player.pandora.markdown index 6d6e3b2a563..efa8c2bc614 100644 --- a/source/_components/media_player.pandora.markdown +++ b/source/_components/media_player.pandora.markdown @@ -60,5 +60,3 @@ That's it! Now you will find a media player. If you click it you will find all y

-

This is a new component and it has some issues.

- diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 8b4f5ec3d62..da430989421 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -24,13 +24,17 @@ To add a TV to your installation, add the following to your `configuration.yaml` media_player: platform: samsungtv host: 192.168.0.10 + port: 55000 name: Living Room TV + timeout: 2 ``` Configuration variables: - **host** (*Required*): The IP of the Samsung Smart TV, eg. 192.168.0.10 +- **port** (*Optional*): The port of the Samsung Smart TV. Defaults to 55000. - **name** (*Optional*): The name you would like to give to the Samsung Smart TV. +- **timeout** (*Optional*): The time-out for the communication with the TV. Defaults to 0. Currently known supported models: diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index 9f206276fc7..53b1e9d6339 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -57,6 +57,14 @@ Configuration variables: - **bytesize** (*Required*): The bytesize for the serial connection. - **parity** (*Required*): The parity for the serial connection. +### {% linkable_title Services %} + + +| Service | Description | +| ------- | ----------- | +| write_register | Write register. Requires `unit`, `address` and `value` fields. `value` can be either single value or an array | + + ## {% linkable_title Building on top of Modbus %} - [Modbus Sensor](/components/sensor.modbus/) diff --git a/source/_components/notify.file.markdown b/source/_components/notify.file.markdown index 4084f2bbed2..531d0fa4a1b 100644 --- a/source/_components/notify.file.markdown +++ b/source/_components/notify.file.markdown @@ -23,13 +23,13 @@ notify: name: NOTIFIER_NAME platform: file filename: FILENAME - timestamp: 1 or 0 + timestamp: true or false ``` 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`. - **filename** (*Required*): Name of the file to use. The file will be created if it doesn't exist and saved in your `config/` folder. -- **timestamp** (*Optional*): Setting `timestamp` to 1 adds a timestamp to every entry. +- **timestamp** (*Optional*): Setting `timestamp` to True adds a timestamp to every entry. To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index 9346e110916..378e3e75945 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -36,7 +36,7 @@ Once loaded, the `notify` platform will expose a service that can be called to s | `target` | yes | Some platforms will allow specifying a recipient that will receive the notification. See your platform page if it is supported. | `data` | yes | On platforms who have extended functionality. See your platform page if it is supported. -The notification component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. +The notification component supports specifying [templates](/topics/templating/) with `data_template`. This will allow you to use the current state of Home Assistant in your notifications. In an [action](https://home-assistant.io/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this with a customized subject. diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index 308044ad2e1..d47604532ee 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -25,7 +25,7 @@ notify: server: MAIL_SERVER port: YOUR_SMTP_PORT sender: SENDER_EMAIL_ADDRESS - starttls: 1 or 0 + starttls: true or false username: YOUR_SMTP_USERNAME password: YOUR_SMTP_PASSWORD recipient: YOUR_RECIPIENT @@ -40,7 +40,8 @@ Configuration variables: - **username** (*Optional*): Username for the SMTP account. - **password** (*Optional*): Password for the SMTP server that belongs to the given username. If the password contains a colon it need to be wrapped in apostrophes. - **recipient** (*Required*): Recipient of the notification. -- **starttls** (*Optional*): Enables STARTTLS, eg. 1 or 0. Defaults to 0. +- **starttls** (*Optional*): Enables STARTTLS, eg. True or False. Defaults to False. +- **debug** (*Optional*): Enables Debug, eg. True or False. Defaults to False. To use the SMTP notification, refer to it in an automation or script like in this example: diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown index 9642fb40701..9103ad5e9c5 100644 --- a/source/_components/octoprint.markdown +++ b/source/_components/octoprint.markdown @@ -15,18 +15,19 @@ ha_release: 0.19 [OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors, you will have to setup sensors and binary sensors separately. -To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your configuration.yaml. +To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. ```yaml octoprint: - host: http://YOUR_OCTOPRINT_HOST + host: YOUR_OCTOPRINT_HOST api_key: YOUR_API_KEY ``` Configuration variables: -- **api_key** (*Required*): The retrieved api key. - **host** (*Required*): The octoprint host. +- **api_key** (*Required*): The retrieved api key. + **NOTE** If your 3D printer isn't connected to the OctoPrint server during the startup of Home Assistant this component will fail to load. diff --git a/source/_components/sensor.coinmarketcap.markdown b/source/_components/sensor.coinmarketcap.markdown new file mode 100644 index 00000000000..32c521a62d8 --- /dev/null +++ b/source/_components/sensor.coinmarketcap.markdown @@ -0,0 +1,30 @@ +--- +layout: page +title: "CoinMarketCap" +description: "Instructions how to integrate CoinMarketCap data within Home Assistant." +date: 2016-08-31 08:15 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Finance +ha_release: 0.28 +ha_iot_class: "Cloud Polling" +--- + + +The `coinmarketcap` sensor platform displays various details about a crypto currency provided by [CoinMarketCap](http://coinmarketcap.com/). + +To add the CoinMarketCap sensor to your installation, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: coinmarketcap + currency: bitcoin +``` + +Configuration variables: + +- **currency** (*Optional*): The currency to display, eg. `bitcoin`, `litecoin`, `steem`, etc. Default is `bitcoin`. + diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown index 18a0aa5d916..d474d12b0f2 100644 --- a/source/_components/sensor.gtfs.markdown +++ b/source/_components/sensor.gtfs.markdown @@ -52,3 +52,5 @@ Configuration variables: - **origin** (*Required*): The stop ID of your origin station. - **destination** (*Required*): The stop ID of your destination station. - **data** (*Required*): The name of the ZIP file or folder containing the GTFS data. It must be located inside the `gtfs` folder of your configuration directory. +- **name** (*Optional*): Name to use in the frontend. + diff --git a/source/_components/sensor.imap.markdown b/source/_components/sensor.imap.markdown index 69ab3bbe64e..b091483a012 100644 --- a/source/_components/sensor.imap.markdown +++ b/source/_components/sensor.imap.markdown @@ -23,7 +23,7 @@ sensor: server: imap.gmail.com port: 993 name: Emails - user: USERNAME + username: USERNAME password: PASSWORD ``` @@ -32,6 +32,6 @@ Configuration variables: - **server** (*Required*): The IP address or hostname of the IMAP server. - **port** (*Required*): The port where the server is accessible. - **name** (*Optional*): Name of the IMAP sensor. -- **user** (*Required*): Username for the IMAP server. +- **username** (*Required*): Username for the IMAP server. - **password** (*Required*): Password for the IMAP server. diff --git a/source/_components/sensor.linux_battery.markdown b/source/_components/sensor.linux_battery.markdown new file mode 100644 index 00000000000..f0ab5a44008 --- /dev/null +++ b/source/_components/sensor.linux_battery.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "Linux Battery" +description: "Instructions how to integrate Linux Battery information into Home Assistant." +date: 2016-09-06 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: System Monitor +ha_release: 0.28 +ha_iot_class: "Local Polling" +--- + +The `linux_battery` sensor platform is using the information stored in `/sys/class/power_supply/` on your local Linux system to display details about the current state of your battery. + +To setup a battery sensor to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: linux_battery + name: Laptop + battery: 1 +``` + +Configuration variables: + +- **name** (*Optional*): Friendly name to use for the frontend. Default to "Battery". +- **battery** (*Optional*): Number of the battery. Default to `1`. + diff --git a/source/_components/sensor.mfi.markdown b/source/_components/sensor.mfi.markdown index 58b25e26ea6..4909c6225b5 100644 --- a/source/_components/sensor.mfi.markdown +++ b/source/_components/sensor.mfi.markdown @@ -24,8 +24,8 @@ sensor: port: PORT username: USERNAME password: PASSWORD - use_tls: true - verify_tls: true + ssl: true + verify_ssl: true ``` Configuration variables: @@ -34,6 +34,6 @@ Configuration variables: - **port** (*Optional*): The port of your mFi controller. Defaults to 6443 for TLS, otherwise 6080. - **username** (*Required*): The mFi admin username. - **password** (*Required*): The mFi admin user's password. -- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true. -- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true. +- **ssl** (*Optional*): If `True`, use SSL/TLS to contact the mFi controller. Defaults to `True`. +- **verify_ssl** (*Optional*): Set this to `False` if your mFi controller has a self-signed certificate. Defaults to `True`. diff --git a/source/_components/sensor.octoprint.markdown b/source/_components/sensor.octoprint.markdown index 58aaacb01b8..0cdc090fd68 100644 --- a/source/_components/sensor.octoprint.markdown +++ b/source/_components/sensor.octoprint.markdown @@ -13,13 +13,18 @@ ha_release: 0.19 --- -The `OctoPrint` sensor platform let you monitor various states of your 3D printer and its print jobs. +The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs. + +

+You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. +

To set it up, add the following information to your `configuration.yaml` file: ```yaml sensor: platform: octoprint + name: OctoPrint monitored_conditions: - Current State - Temperatures @@ -28,9 +33,9 @@ sensor: Configuration variables: +- **name** (*Optional*): The name of the sensor. Default is 'OctoPrint'. - **monitored_conditions** array (*Required*): States to monitor. - - Current State (Text of current state) - - Temperatures (Temperatures of all available tools)(print head, print bed, ...) These will be displayed as tool0, tool1, ... please refer to your OctoPrint frontend to associate tool number with actual device. - - Job Percentage + - **Current State**: Text of current state) + - **Temperatures**: Temperatures of all available tools, eg. `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device. + - **Job Percentage**: -

You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.

diff --git a/source/_components/sensor.pi_hole.markdown b/source/_components/sensor.pi_hole.markdown new file mode 100644 index 00000000000..a0b475fd04e --- /dev/null +++ b/source/_components/sensor.pi_hole.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "Pi-Hole Sensor" +description: "Instructions how to integrate REST sensors into Home Assistant." +date: 2016-09-03 16:30 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: System Monitor +ha_iot_class: "Local Polling" +logo: pi_hole.png +ha_release: 0.28 +--- + + +The `pi_hole` sensor platform is displaying the statistical summary of a [Pi-Hole](https://pi-hole.net/) system. + +To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: pi_hole + host: 192.168.1.2 +``` + +Configuration variables: + +- **host** (*Optional*): The IP address of the Pi-Hole system. Defaults to `localhost`. + diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index aae1513a326..1d919c161a4 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -39,6 +39,7 @@ sensor: payload: '{ "device" : "heater" }' name: REST POST sensor unit_of_measurement: "°C" + verify_ssl: False ``` Configuration variables: @@ -49,6 +50,7 @@ Configuration variables: - **payload** (*Optional*): The payload to send with a POST request. Depends on the service, but usually formed as JSON. - **name** (*Optional*): Name of the REST sensor. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. +- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to True.

Make sure that the URL matches exactly your endpoint or resource. diff --git a/source/_components/sensor.sabnzbd.markdown b/source/_components/sensor.sabnzbd.markdown index 1be51e231a2..1a8c9fe258d 100644 --- a/source/_components/sensor.sabnzbd.markdown +++ b/source/_components/sensor.sabnzbd.markdown @@ -26,6 +26,7 @@ sensor: api_key: YOUR_API_KEY host: YOUR_SABNZBD_HOST port: 8080 + ssl: True monitored_variables: - 'current_status' - 'speed' @@ -41,6 +42,7 @@ Configuration variables: - **port** (*Optional*): The port to use whith SABnzbd instance. Defaults to `8080`. - **api_key** (*Required*): Name that will be used in the frontend for the pin. - **name** (*Optional*): The name to use when displaying this SABnzbd instance. +- **ssl** (*Optional*): Use `https` instead of `http` to connect. Defaults to False. - **monitored_variables** array (*Required*): List of the monitored variables. - **current_status**: current status of the SABnzbd instance - **speed**: Current speed diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown index 3036a0a54f6..d7257c9a12f 100644 --- a/source/_components/sensor.speedtest.markdown +++ b/source/_components/sensor.speedtest.markdown @@ -15,7 +15,7 @@ ha_release: 0.13 The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance. -By default, it will run every hour. The user can change the update frequency in the config by defining the minute, hour, and day for a speedtest to run. +By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speedtest to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php). To add a Speedtest.net sensor to your installation, add the following to your `configuration.yaml` file: @@ -24,6 +24,7 @@ Once per hour, on the hour (default): ```yaml sensor: platform: speedtest + server_id: 1234 monitored_conditions: - ping - download @@ -69,6 +70,7 @@ Configuration variables: - **ping**: Reaction time in ms of your connection, (how fast you get a response after you've sent out a request). - **download**: Download speed in Mbps. - **upload**: Upload speed in Mbps. +- **server_id** (*Optional*): Specify the speedtest server to perform test against. - **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0. - **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None. - **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None. diff --git a/source/_components/sensor.temper.markdown b/source/_components/sensor.temper.markdown index d204cf7fd4a..2c03ee62102 100644 --- a/source/_components/sensor.temper.markdown +++ b/source/_components/sensor.temper.markdown @@ -18,4 +18,18 @@ To use your TEMPer sensor in your installation, add the following to your `confi # Example configuration.yaml entry sensor: platform: temper + name: 'My TEMPer' + scale: 1 + offset: 0 ``` + +Since some of these sensors consistently show higher temperatures the scale and offset values can be used to fine-tune your sensor. +The calculation follows the formula `scale * sensor value + offset`. + +The TEMPer sensors can only be accessed as root by default. To fix the USB permissions on your system create the file `/etc/udev/rules.d/99-tempsensor.rules` and add the following line to it: + +``` +SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="7401", MODE="666" +``` + +After that re-plug the device and restart Home Assistant. diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index fc084aaaa7a..00780d77a46 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -14,10 +14,10 @@ ha_iot_class: "Cloud Polling" --- -The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as an source for current weather information. +The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as a source for current weather information.

-Obtain WUnderground API [here](https://www.wunderground.com/weather/api). Free account allows 500 requests per day or 10 per minute. +Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). A free account allows 500 requests per day or 10 per minute.

To add Wunderground to your installation, add the following to your `configuration.yaml` file: @@ -61,20 +61,20 @@ sensor: Configuration variables: - **api_key** (Required): See above -- **pws_id** (Optional): You can enter your PWS id. Current list of Wunderground PWS stations is available [here](https://www.wunderground.com/weatherstation/ListStations.asp). If you do not enter the PWS ID, the current location information (latitude and longitude) from your `configuration.yaml` will be used to display weather conditions. +- **pws_id** (Optional): You can enter a Personal Weather Station id. The current list of Wunderground PWS stations is available [here](https://www.wunderground.com/weatherstation/ListStations.asp). If you do not enter a PWS ID, the current location information (latitude and longitude) from your `configuration.yaml` will be used to display weather conditions. - **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. - **weather**: A human-readable text summary with picture from Wunderground. - **temp_f**: Current temperature in Fahrenheit - **temp_c**: Current temperature in Celsius - **station_id**: Your personal weather station (PWS) ID - - **feelslike_c**: Feels like (or apparent) temperature in celsius + - **feelslike_c**: Feels like (or apparent) temperature in Celsius - **feelslike_f**: Feels like (or apparent) temperature in Fahrenheit - - **feelslike_string**: Text summary of how the current teperature feels like + - **feelslike_string**: Text summary of how the current temperature feels like - **heat_index_c**: Heat index (combined effects of the temperature and humidity of the air) in Celsius - **heat_index_f**: Heat index (combined effects of the temperature and humidity of the air) in Fahrenheit - **heat_index_string**: Text summary of current heat index - - **dewpoint_c**: Temperature in celsius below which water droplets begin to condense and dew can form - - **dewpoint_f**: Temperature in fahrenheit below which water droplets begin to condense and dew can form + - **dewpoint_c**: Temperature in Celsius below which water droplets begin to condense and dew can form + - **dewpoint_f**: Temperature in Fahrenheit below which water droplets begin to condense and dew can form - **dewpoint_string**: Text summary of dew point - **wind_kph**: Current wind speed in kph - **wind_mph**: Current wind speed in mph @@ -83,7 +83,7 @@ Configuration variables: - **pressure_mb**: Atmospheric air pressure in millibars - **wind_dir**: Wind direction - **wind_string**: Text summary of current wind conditions - - **relative_humidity**: Reltive humidity + - **relative_humidity**: Relative humidity - **visibility_mi**: Average visibility in miles - **visibility_km**: Average visibility in km - **precip_today_in**: Total precipitation in inches diff --git a/source/_components/sensor.xbox_live.markdown b/source/_components/sensor.xbox_live.markdown new file mode 100644 index 00000000000..8884e4e41be --- /dev/null +++ b/source/_components/sensor.xbox_live.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Xbox Live" +description: "Instructions on how to set up Xbox Live sensors in Home Assistant." +date: 2016-08-28 02:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: xbox-live.png +ha_category: Social +ha_iot_class: "Cloud Polling" +ha_release: 0.28 +--- + +The Xbox Live component is able to track [Xbox](http://xbox.com/) profiles. + +To use this sensor you need a free API key from [XboxAPI.com](http://xboxapi.com). +Please also make sure to connect your Xbox account on that site. + +The configuration requires you to specify XUIDs which are the unique identifiers for profiles. +These can be determined on [XboxAPI.com](http://xboxapi.com) by either looking at your own profile page or using their interactive documentation to search for gamertags. + +To use the Xbox Live sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: xbox_live + api_key: YOUR_API_KEY + xuid: + - account1 + - account2 +``` + +Configuration variables: + +- **api_key** (*Required*): Your API key from [XboxAPI.com](http://xboxapi.com). +- **xuid** (*Required*): Array of profile XUIDs to be tracked. diff --git a/source/_components/switch.command_line.markdown b/source/_components/switch.command_line.markdown index 44994d84f14..197343e2110 100644 --- a/source/_components/switch.command_line.markdown +++ b/source/_components/switch.command_line.markdown @@ -24,20 +24,22 @@ switch: platform: command_line switches: kitchen_light: - oncmd: switch_command on kitchen - offcmd: switch_command off kitchen - statecmd: query_command kitchen + command_on: switch_command on kitchen + command_off: switch_command off kitchen + command_state: query_command kitchen value_template: '{% raw %}{{ value == "online" }}{% endraw %}' + friendly_name: Kitchen switch ``` Configuration variables: - **switches** (*Required*): The array that contains all command switches. - - **entry** (*Required*): Name of the command switch. Multiple entries are possible. - - **oncmd** (*Required*): The action to take for on. - - **offcmd** (*Required*): The action to take for off. - - **statecmd** (*Optional*): If given, this command will be run. Returning a result code `0` will indicate that the switch is on. - - **value_template** (*Optional*): If specified, statecmd will ignore the result code of the command but the template evaluating to `true` will indicate the switch is on. + - **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible. + - **command_on** (*Required*): The action to take for on. + - **command_off** (*Required*): The action to take for off. + - **command_state** (*Optional*): If given, this command will be run. Returning a result code `0` will indicate that the switch is on. + - **value_template** (*Optional*): If specified, `command_state` will ignore the result code of the command but the template evaluating to `true` will indicate the switch is on. + - **friendly_name** (*Optional*): The name used to display the switch in the frontend. ## {% linkable_title Examples %} @@ -53,8 +55,8 @@ switch: platform: command_line switches: arest_pin4: - oncmd: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1" - offcmd: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0" + command_on: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1" + command_off: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0" ``` ### {% linkable_title Shutdown your local host %} @@ -72,7 +74,7 @@ switch: platform: command_line switches: Home Assistant system shutdown: - offcmd: "/usr/sbin/poweroff" + command_off: "/usr/sbin/poweroff" ``` ### {% linkable_title Control your VLC player %} @@ -86,8 +88,8 @@ switch: platform: command_line switches: VLC: - oncmd: "cvlc 1.mp3 vlc://quit &" - offcmd: "pkill vlc" + command_on: "cvlc 1.mp3 vlc://quit &" + command_off: "pkill vlc" ``` ### {% linkable_title Control Foscam Motion Sensor %} @@ -100,9 +102,9 @@ switch: platform: command_line switches: foscam_motion: - oncmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' - offcmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' - statecmd: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"' + command_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' + command_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' + command_state: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"' value_template: {% raw %}'{{ value == "1" }}'{% endraw %} ``` diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown index 8f2379408b9..a0b8424f234 100644 --- a/source/_components/switch.dlink.markdown +++ b/source/_components/switch.dlink.markdown @@ -31,6 +31,7 @@ switch: name: D-Link plug username: YOUR_USERNAME password: YOUR_PASSWORD + use_legacy_protocol: False ``` Configuration variables: @@ -39,4 +40,5 @@ Configuration variables: - **name** (*Optional*): The name to use when displaying this switch. - **username** (*Required*): The username for your plug. Defaults to `admin`. - **password** (*Required*): The password for your plug. Default password is the `PIN` inlcuded on the configuration card. +- **use_legacy_protocol** (*Optional*): Enable limited support for legacy firmware protocols (Tested with v1.24). diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown index 8f6164d32b6..b3e51d1c33e 100644 --- a/source/_components/switch.edimax.markdown +++ b/source/_components/switch.edimax.markdown @@ -30,7 +30,7 @@ switch: Configuration variables: - **host** (*Required*): The IP address of your Edimax switch, eg. 192.168.1.32 -- **username** (*Required*): Your username for the Edimax switch. -- **password** (*Required*): Your password for the Edimax switch. +- **username** (*Optional*): Your username for the Edimax switch. Defaults to "admin". +- **password** (*Optional*): Your password for the Edimax switch. Defaults to "1234". - **name** (*Optional*): The name to use when displaying this switch. diff --git a/source/_components/switch.hikvision.markdown b/source/_components/switch.hikvision.markdown index 6434dcc5f46..6fa0aedba40 100644 --- a/source/_components/switch.hikvision.markdown +++ b/source/_components/switch.hikvision.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Hikvision Camera Switch" -description: "Instructions how to integrate Hikvision camera's into Home Assistant." +description: "Instructions how to integrate Hikvision camera switches into Home Assistant." date: 2015-06-10 22:54 sidebar: true comments: false @@ -34,8 +34,8 @@ switch: Configuration variables: -- **host** *Required*: The IP address of your Hikvision camera, eg. 192.168.1.32 -- **port** *Optional*: The port to connec to your Hikvision camera (default is 80). -- **name** *Optional*: This parameter allows you to override the name of your camera. -- **username** *Required*: The username for accessing your Hikvision camera. -- **password** *Required*: The password to access your Hikvision camera. +- **host** (*Required*): The IP address of your Hikvision camera, eg. 192.168.1.32 +- **port** (*Optional*): The port to connec to your Hikvision camera. Defaults to 80. +- **name** (*Optional*): This parameter allows you to override the name of your camera. +- **username** (*Optional*): The username for accessing your Hikvision camera. Defaults to "admin". +- **password** (*Optional*): The password to access your Hikvision camera. Defaults to "12345". diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown index 7c0bd1c582b..5e7f850a7f3 100644 --- a/source/_components/switch.mfi.markdown +++ b/source/_components/switch.mfi.markdown @@ -24,8 +24,8 @@ sensor: port: PORT username: USERNAME password: PASSWORD - use_tls: true - verify_tls: true + ssl: true + verify_ssl: true ``` Configuration variables: @@ -34,5 +34,5 @@ Configuration variables: - **port** (*Optional*): The port of your mFi controller. Defaults to 6443. - **username** (*Required*): The mFi admin username. - **password** (*Required*): The mFi admin user's password. -- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true. -- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true. +- **ssl** (*Optional*): If `True`, use SSL/TLS to contact the mFi controller. Defaults to `True`. +- **verify_ssl** (*Optional*): Set this to `False` if your mFi controller has a self-signed certificate. Defaults to `True`. diff --git a/source/_components/switch.orvibo.markdown b/source/_components/switch.orvibo.markdown index a68cf2761e3..5f8efc3892d 100644 --- a/source/_components/switch.orvibo.markdown +++ b/source/_components/switch.orvibo.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Orvibo Switch" -description: "Instructions how to integrate Orvibo switches within Home Assistant." +description: "Instructions how to integrate Orvibo sockets within Home Assistant." date: 2015-11-15 18:15 sidebar: true comments: false @@ -11,20 +11,32 @@ logo: orvibo.png ha_category: Switch --- -The `orvibo` switch platform allows you to toggle your Orvibo S20 Wifi Smart Switch. +The `orvibo` switch platform allows you to toggle your Orvibo S20 Wifi Smart Sockets. -To use your Orvibo switch in your installation, add the following to your `configuration.yaml` file: +To automatically discover Orvibo sockets on your network: ```yaml -# Example configuration.yaml entry switch: platform: orvibo - host: IP_ADDRESS - mac: MA:CA:DD:RE:SS:00 +``` + +To specify Orvibo sockets and skip discovery: + +```yaml +switch: + platform: orvibo + discovery: false + switches: + - host: IP_ADDRESS + mac: MA:CA:DD:RE:SS:00 + name: "My Socket" ``` Configuration variables: -- **host** (*Required*): IP address of your switch, eg. 192.168.1.10. -- **mac** (*Optional*): MAC address of the switch, eg "AA:BB:CC:DD:EE:FF". This is required if the switch is connected to a different subnet to the machine running Home Assistant +- **discovery** (*Optional*): Whether to discover sockets (default true). +- **switches** (*Optional*): + - **host** (*Required*): IP address of your socket, eg. 192.168.1.10. + - **mac** (*Optional*): MAC address of the socket, eg "AA:BB:CC:DD:EE:FF". This is required if the socket is connected to a different subnet to the machine running Home Assistant + - **name** (*Optional*): Your name for the socket. diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown index 81e09670203..2cff44f0ed0 100644 --- a/source/_components/switch.rpi_gpio.markdown +++ b/source/_components/switch.rpi_gpio.markdown @@ -35,6 +35,3 @@ Configuration variables: For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi. -

-If you are not running Raspbian Jessie, you will need to run Home Assistant as root. -

diff --git a/source/_cookbook/automation_enocean_phue.markdown b/source/_cookbook/automation_enocean_phue.markdown new file mode 100644 index 00000000000..be5c78b4828 --- /dev/null +++ b/source/_cookbook/automation_enocean_phue.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Switch Philips Hue with enocean" +description: "Automation to switch a Philips Hue lamp with an enocean switch." +date: 2016-09-02 22:35 +0800 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +Assume that you have an enocean wall switch and some Philips Hue lamps. The enocean wall swtich will fire the event button_pressed and pass along several parameters which is used to turn on/off the lamps. + +event_data: + +* which +* pushed +* onoff +* id +* devname + +```yaml +enocean: + device: /dev/ttyUSB0 + +binary_sensor: + - platform: enocean + id: [0x00,0x01,0x02,0x03] + name: living_room_switch + +automation: + - alias: Turn on living room light + trigger: + platform: event + event_type: button_pressed + event_data: + onoff: 1 + devname: living_room_switch + action: + service: light.turn_on + entity_id: light.hue_color_lamp_3 + + - alias: Turn off living room light + trigger: + platform: event + event_type: button_pressed + event_data: + onoff: 0 + devname: living_room_switch + action: + service: light.turn_off + entity_id: light.hue_color_lamp_3 +``` diff --git a/source/_cookbook/configuration_yaml_by_instagraeme.markdown b/source/_cookbook/configuration_yaml_by_instagraeme.markdown new file mode 100644 index 00000000000..d6ddee0fa44 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_instagraeme.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Configuration.yaml by InstaGraeme" +description: "" +date: 2016-09-08 21:30 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/Instagraeme/Home-Assistant-Configuration +--- diff --git a/source/_cookbook/notify_if_over_threshold.markdown b/source/_cookbook/notify_if_over_threshold.markdown index a7651eb534f..c7dbc72ea1c 100644 --- a/source/_cookbook/notify_if_over_threshold.markdown +++ b/source/_cookbook/notify_if_over_threshold.markdown @@ -27,7 +27,7 @@ automation: above: 2 action: service: notify.mypushbullet - data: + data_template: title: "Furnace fan is running" message: "Fan running because current is {% raw %}{{ states.sensor.furnace.state }}{% endraw %} amps" ``` @@ -42,7 +42,7 @@ If you also want a notification when it drops back down below that limit, you co below: 2 action: service: notify.mypushbullet - data: + data_template: title: "Furnace fan is stopped" message: "Fan stopped because current is {% raw %}{{ states.sensor.furnace.state }}{% endraw %} amps" ``` diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index c5c8089f310..240deeafee8 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -54,6 +54,7 @@
  • API
      +
    • {% active_link https://dev-docs.home-assistant.io/en/dev/ Home Assistant API %}
    • {% active_link /developers/rest_api/ RESTful API %}
    • {% active_link /developers/python_api/ Python API %}
    • {% active_link /developers/server_sent_events/ Server-sent events %}
    • diff --git a/source/_posts/2016-09-10-notify-group-reload-api-pihole.markdown b/source/_posts/2016-09-10-notify-group-reload-api-pihole.markdown new file mode 100644 index 00000000000..6ee3da75b91 --- /dev/null +++ b/source/_posts/2016-09-10-notify-group-reload-api-pihole.markdown @@ -0,0 +1,157 @@ +--- +layout: post +title: "0.28: Reload automation and groups, API documentation, car tracking, Pi-Hole stats" +description: "No Home Assistant restart for reloading automations and groups, Automatic car tracking, Pi-Hole and battery details, and bugfixes for climate and cover" +date: 2016-09-10 08:00:00 +0200 +date_formatted: "September 10, 2016" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: Release-Notes +--- + +It's already time for 0.28 thanks to our super short release cycles. Now, it' official...we hit 4000 stars on Github. That's amazing. Sorry, not as amazing as all the stuff that was going on for 0.27 but still pretty awesome. + +### {% linkable_title Reload automation rules %} + +This release brings you a huge improvement of the [automation] and [group] handling. Both can be reloaded without a Home Assistant restart. The automations can be controlled directly from the frontend. + +

      + +

      + +### {% linkable_title Raspberry Pi installation guide %} +Singleboard computers are very popular to run Home Assistant. To support this fact, the [installation documentation][rpi] for the Raspberry Pi devices was re-written to get users started as quickly as possible. [@Landrash] took the lead with on this tasks with help from [@kellerza] and [@MartinHjelmare]. + +### {% linkable_title Climate and cover %} +There are countless bugfixes included in this release which will make your experience with the `climate` and the `cover` platforms better. Two week ago was the biggest merger of implementations released that ever happened in the history of Home Assistant. Thanks to [@turbokongen], [@pvizeli], [@djbanks], [@danielperna84], and others the improvements on the code and the frontend side is continuing... + +### {% linkable_title API documentation %} +The [Home Assistant API Documentation](https://dev-docs.home-assistant.io/en/dev/) is a great addition to the already exisiting user documentation. The focus is not end-users but developers who whant to get details about the code without actually browsing the code on Github. + +### {% linkable_title Configuration validation %} +The validation of the configuration is still on-going. Approximatly 80 % is done. This means that we will propably talk about this topic in the next release notes again. To align the configuration of components and platforms we needed to break some. Please refer to the Breaking changes section to check if you need to update your configuration or simple check your log for configuration validation errors. Thanks to [@kellerza], [@fabaff], [@Teagan42], and [@pvizeli] for your effort! + +### {% linkable_title Templating %} +`data_template` needs to be present in all notify templates for the future. + +```yaml +action: + service: notify.telegram + data_template: + message: "Test from your Home" + data: + location: + latitude: "{{ state.device_tracker.phone.attributes.latitude }}" + longitude: "{{ state.device_tracker.phone.attributes.longitude }}" +``` + +Stay tuned for more details. + +### {% linkable_title All changes %} + + + +- Light: Added bitfield to Flux LED since we are supporting effects ([@tchellomello]) +- Device tracker: [Owntracks] waypoint import ([@pavoni]) +- Climate: A lot of bugfix ([@turbokongen], [@pvizeli], [@djbanks]) +- Notify: Improvement of the title handling ([@lwis]) +- RFXtrx: Sensor cleanup ([@turbokongen]) +- Device tracker: Fix for BLE device tracker ([@open-homeautomation]) +- Device tracker: Allow 'None' MAC addresses to be loaded from `known_devices` file ([@kellerza]) +- Cover: Bugfixes ([@turbokongen], [@danielperna84]) +- Sensor: Support for displaying details about [crypto currencies][Coinmarketcap] ([@fabaff]) +- Device tracker: Support for [automatic] to track your vehicles ([@Teagan42]) +- Devie tracker: Add exclude option to [Nmap] device tracker ([@danieljkemp]) +- Device tracker: Improved login errors for Asus device tracker ([@kellerza]) +- Sensor: Support for displaying the status of [Xbox] Live accounts ([@mKerix]) +- Notify: Adding `link_names` for sending Slack message ([@salt-lick]) +- Binary sensor: Add the occupancy sensor class ([@robbiet480]) +- Fan: Add supoort for [MQTT fans][mqtt-fan] ([@robbiet480]) +- Docs: Add Sphinx API doc generation ([@bbangert]) +- Core: Allow reloading automation without restart ([@balloob]) +- Sensor: Added scale and offset to the [Temper] sensor ([@mKerix]) +- Sensor: New support for [Trend] sensor ([@pavoni]) +- Device tracker: Keep looking for new BLE devices ([@Bart274]) +- Switch: Added device state attributes and support for legacy firmware for D-Link switches ([@LinuxChristian]) +- Sensor: Improve 1-Wire device family detection ([@Ardetus]) +- Modbus: Update to be thread safe ([@persandstrom]) +- Camera: FFMpeg is abale to get the images ([@pvizeli]) +- Core: Reload groups without restart ([@balloob]) +- Core: Fix remove listener ([@balloob]) +- Sensor: Support for monitoring your [battery] on a Linux host ([@fabaff]) +- Core: Add support for complex template structures to `data_template` ([@pvizeli]) +- `check_config`: Improve yaml fault tolerance and handle border cases ([@kellerza]) +- Core: Add additional [template] for custom date formats ([@lwis]) +- Sensor: Support for getting stats from Pi-Hole systems ([@fabaff]) +- Modbus: New `write_registers` [Modbus] service ([@persandstrom]) +- Device tracker: Fix TP-Link Archer C7 long passwords ([@snikch]) + +### {% linkable_title Breaking changes %} + +- [OpenweatherMap] entity IDs are now like `sensor.owm_temperature`. Previously they were like `sensor.weather_temperature`. Apologies for this change, but we needed to make OpenWeatherMap more generic now that we have many weather platforms. +- Updates of configuration variables due to configuration check or alignment with other platforms. Please update your configuration entries according to the documentation: + - [OctoPrint] component + - mFi platform ([switch][mfi-switch] and [sensor][mfi-sensor]) + - NX584 Alarm Control Panel + - Mediaplayer platforms [FireTV] and [MPD] + - [switch][command-line-switch] and the [cover][command-line-cover] `command_line` platforms +- Custom components extending `BaseNotificationService` need to be aware that `kwargs.get(ATTR_TITLE)` will now return `None` if a title has not been set, and will need to specify `kwargs.get(ATTR_TITLE, ATTR_TITLE_DEFAULT)` if they always require a title. + +### {% linkable_title If you need help... %} +...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). + + +[@Ardetus]: https://github.com/Ardetus +[@arsaboo]: https://github.com/arsaboo +[@auchter]: https://github.com/auchter +[@balloob]: https://github.com/balloob +[@Bart274]: https://github.com/Bart274 +[@bbangert]: https://github.com/bbangert +[@danieljkemp]: https://github.com/danieljkemp +[@danielperna84]: https://github.com/danielperna84 +[@djbanks]: https://github.com/djbanks +[@fabaff]: https://github.com/fabaff +[@infamy]: https://github.com/infamy +[@jnewland]: https://github.com/jnewland +[@kellerza]: https://github.com/kellerza +[@Landrash]: https://github.com/Landrash +[@LinuxChristian]: https://github.com/LinuxChristian +[@lwis]: https://github.com/lwis +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@mKerix]: https://github.com/mKerix +[@nkgilley]: https://github.com/nkgilley +[@open-homeautomation]: https://github.com/open-homeautomation +[@pavoni]: https://github.com/pavoni +[@persandstrom]: https://github.com/persandstrom +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@salt-lick]: https://github.com/salt-lick +[@tchellomello]: https://github.com/tchellomello +[@Teagan42]: https://github.com/Teagan42 +[@technicalpickles]: https://github.com/technicalpickles +[@turbokongen]: https://github.com/turbokongen +[@w1ll1am23]: https://github.com/w1ll1am23 +[@snikch]: https://github.com/snikch + +[modbus]: /components/modbus/ +[rpi]: /getting-started/installation-raspberry-pi/ +[MPD]: /components/media_player.mpd/ +[Coinmarketcap]: /components/sensor.coinmarketcap +[template]: /topics/templating/ +[battery]: /components/sensor.linux_battery +[group]: /components/group/ +[automation]: /components/automation/ +[Temper]: /components/sensor.temper/ +[mqtt-fan]: /components/fan.mqtt/ +[Xbox]: /components/sensor.xbox_live/ +[Nmap]: /components/device_tracker.nmap_scanner/ +[automatic]: /components/device_tracker.automatic/ +[Owntracks]: /components/device_tracker.owntracks/ +[OpenweatherMap]: /components/sensor.openweathermap/ +[OctoPrint]: /components/octoprint/ +[mfi-switch]: /components/switch.mfi/ +[mfi-sensor]: /components/sensor.mfi/ +[FireTV]: /components/media_player.firetv/ +[command-line-switch]: /components/switch.command_line/ +[command-line-cover]: /components/cover.command_line/ diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index ef26bc874c6..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/ @@ -44,7 +44,7 @@ script: msg_who_is_home: sequence: - service: notify.notify - data: + data_template: message: > {% raw %}{% if is_state('device_tracker.paulus', 'home') %} Ha, Paulus is home! @@ -80,6 +80,7 @@ Home Assistant adds extensions to allow templates to access all of the current s - Filter `round(x)` will convert the input to a number and round it to `x` decimals. - Filter `timestamp_local` will convert an UNIX timestamp to local time/data. - Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data. +- Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime). ## {% linkable_title Examples %} @@ -199,6 +200,7 @@ It depends per component or platform but it is common to be able to define a tem # Timestamps {% 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/add_new_platform.markdown b/source/developers/add_new_platform.markdown index b915eae4e08..ee56e4fb2a3 100644 --- a/source/developers/add_new_platform.markdown +++ b/source/developers/add_new_platform.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Components that interact with devices are called "Entity Components". They are structured in core- and platform logic. This allows the same logic to handle a light to be used by different brands. +Components that interact with devices are called "[Entity Components](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity_component.py)". They are structured in core- and platform logic. This allows the same logic to handle a light to be used by different brands. For example, the built-in `switch` component consists of various platforms in [`homeassistant/components/switch/`](https://github.com/home-assistant/home-assistant/tree/master/homeassistant/components/switch). The file `__init__.py` contains the core logic of all platform and the `vendor_name.py` files only the relevant platform code. @@ -22,11 +22,11 @@ If you are planning to add support for a new type of device to an existing compo One of the rules for Home Assistant is that platform logic should never interface directly with devices but use a third-party Python 3 library to do so. This way Home Assistant is able to share code with the Python community and we can keep the project maintainable. -To integrate the third-party library you create an Entity class for your device. Entities are Home Assistant's representation of lights, switches, sensors, etc. and are derived from the [Entity Abstract Class](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/helpers/entity.py). This abstract class contains logic for integrating most standard features into your entities, such as visibility, entity IDs, updates, and much more. +To integrate the third-party library you create an [Entity class](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) for your device. Entities are Home Assistant's representation of lights, switches, sensors, etc. and are derived from the [Entity Abstract Class](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/helpers/entity.py). This abstract class contains logic for integrating most standard features into your entities, such as visibility, entity IDs, updates, and much more. ### {% linkable_title Requirements and dependencies %} -Platforms can specify dependencies and requirements the same way as a component does. +Platforms can specify dependencies and requirements [the same way as a component does](/developers/component_deps_and_reqs): ```python REQUIREMENTS = ['some-package==2.0.0', 'some-other-package==2.5.0'] diff --git a/source/developers/architecture_components.markdown b/source/developers/architecture_components.markdown index ae8b36320df..c6612fb2964 100644 --- a/source/developers/architecture_components.markdown +++ b/source/developers/architecture_components.markdown @@ -22,7 +22,7 @@ We can differentiate between two different types of components within Home Assis These components will track devices within a specific domain and consist of a core part and platform-specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices. -For example, one of the built-in components is the `switch` component. This component is responsible for interaction with different types of switches. +For example, one of the built-in components is the [`switch` component](/components/switch/). This component is responsible for interaction with different types of switches. A platform provides support for a particular kind/brand of device. For example, a switch could use a WeMo or Orvibo platform, and a light component might interact with the Hue or LiFX platform. diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index af317b0011a..d6d2630cd34 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -39,6 +39,7 @@ This page contains a list of people who have contributed in one way or another t - [Austin](https://github.com/trainman419) - [Azelphur](https://github.com/Azelphur) - [Bart274](https://github.com/Bart274) +- [Ben Bangert](https://github.com/bbangert) - [blackdog70](https://github.com/blackdog70) - [Brad Buran](https://github.com/bburan) - [Brad Johnson](https://github.com/bradsk88) @@ -62,6 +63,7 @@ This page contains a list of people who have contributed in one way or another t - [Dan Smith](https://github.com/kk7ds) - [Dan Sullivan](https://github.com/dansullivan86/) - [Daren Lord](https://github.com/Xorso) +- [Dave Banks](https://github.com/djbanks) - [David-Leon Pohl](https://github.com/DavidLP) - [David Straub](https://github.com/DavidMStraub) - [Dean Camera](https://github.com/abcminiuser) @@ -136,6 +138,7 @@ This page contains a list of people who have contributed in one way or another t - [Luca Soldi](https://github.com/LucaSoldi) - [Lukas Hetzenecker](https://github.com/lukas-hetzenecker) - [Magnus Knutas](https://github.com/MagnusKnutas) +- [Mal Curtis](https://github.com/snikch) - [Malte Deiseroth](https://github.com/deisi) - [Manoj](https://github.com/vmulpuru) - [Marcelo Moreira de Mello](https://github.com/tchellomello) @@ -186,6 +189,7 @@ This page contains a list of people who have contributed in one way or another t - [Sean Dague](https://github.com/sdague) - [sfam](https://github.com/sfam) - [Stefan Jonasson](https://github.com/stefan-jonasson) +- [Steven Barnes](https://github.com/salt-lick) - [St. John Johnson](https://github.com/stjohnjohnson) - [TangoAlpha](https://github.com/TangoAlpha) - [Teagan Glenn](https://github.com/Teagan42) diff --git a/source/developers/releasing.markdown b/source/developers/releasing.markdown index 17843777b13..d1d53f65e97 100644 --- a/source/developers/releasing.markdown +++ b/source/developers/releasing.markdown @@ -26,7 +26,7 @@ This page describes the steps for publishing a new Home Assistant release. 2. Create missing documentation as stumbs in `next`. 3. Update the link on the frontpage (`source/index.html`) to link to the new release blog post and version number. 4. Create a pull request from `next` to `current` with the upcoming release number as title. -5. Merge `current` into `next` (`$ git checkout next && git merge master`) to make the PR mergable. +5. Merge `current` into `next` (`$ git checkout next && git merge current`) to make the PR mergable. 6. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`. ### {% linkable_title Python Package Index %} diff --git a/source/getting-started/installation-raspberry-pi.markdown b/source/getting-started/installation-raspberry-pi.markdown index f9fc2400bbc..67e4be1656d 100644 --- a/source/getting-started/installation-raspberry-pi.markdown +++ b/source/getting-started/installation-raspberry-pi.markdown @@ -1,29 +1,152 @@ --- layout: page -title: "Installation on a Raspberry Pi" -description: "Instructions to install Home Assistant on a Raspberry Pi." -date: 2016-04-16 11:36 +title: "Raspbian Lite on a Raspberry Pi" +description: "Instructions to install Home Assistant on a Raspberry Pi runnning Raspbian Lite." +date: 2016-09-05 16:00 sidebar: true comments: false sharing: true footer: true --- -Home Assistant requires the Raspberry Pi to run [Raspbian Jessie](https://www.raspberrypi.org/downloads/raspbian/). This version was released on September 24, 2015 and comes by default with Python 3.4 which is required for Home Assistant. +### {% linkable_title Installation %} -Execute the following code in a console: +This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). +The installation will be installed in a [Virtual Environment](/getting-started/installation-virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite. +Connect to the Raspberry Pi over ssh. Default password is `raspberry`. ```bash -$ sudo pip3 install homeassistant -$ hass +$ ssh pi@ipadress ``` -Running these commands will: +Changing the default password is encouraged. +```bash +$ passwd +``` - - Install Home Assistant - - Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123) +Update the system. +```bash +$ sudo apt-get update +$ sudo apt-get upgrade -y +``` -There is also a [video tutorial](https://www.youtube.com/watch?v=GjzOXkPb7XE) created by [brusc](https://github.com/brusc). +Install the dependencies. +```bash +$ sudo apt-get install python3 python3-venv python3-pip +``` + +Add an account for Home Assistant called `homeassistant`. +Since this account is only for running Home Assistant the extra arguments of `-rm` is added to create a system account and create a home directory. +```bash +$ sudo useradd -rm homeassistant +``` + +Next we will create a directory for the installation of Home Assistant and change the owner to the `homeassistant` account. +```bash +$ cd /srv +$ sudo mkdir homeassistant +$ sudo chown homeassistant:homeassistant homeassistant +``` + +Next up is to create and change to a virtual environment for Home Assistant. This will be done as the `homeassistant` account. +```bash +$ sudo su -s /bin/bash homeassistant +$ cd /srv/homeassistant +$ python3 -m venv homeassistant_venv +$ source /srv/homeassistant/homeassistant_venv/bin/activate +``` +Once you have activated the virtual environment you will notice the prompt change and then you can install Home Assistant. +```bash +(homeassistant_venv) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant +``` + +Start Home Assistant for the first time. This will complete the installation, create the `.homeasssistant` configuration directory in the `/home/homeassistant` directory and install any basic dependencies. +```bash +(homeassistant_venv) $ hass +``` + +You can now reach your installation on your raspberry pi over the web interface on [http://ipaddress:8123](http://ipaddress:8123). +For instruction on how to configure Home Assistant continue on with [Configuring Home Assistant](/getting-started/configuration/). + +### {% linkable_title Raspberry Pi Hardware Specific Components %} + +Some components that are specific for the Raspberry Pi can require some further configuration outside of Home Assistant. All commands below are assumed to be executed with the `pi` account. For full documentation of these components refer to the [components](/components) page. + +### {% linkable_title Bluetooth Tracker %} +The Bluetooth tracker will work on a Raspberry Pi 3 with the built-in Bluetooth module or with a USB Bluetooth device on any of the other Raspberry Pi's. + +Install the following external dependencies. +```bash +$ sudo apt-get install bluetooth libbluetooth-dev +``` +After this follow the [Bluetooth Tracker component](/components/device_tracker.bluetooth_tracker/) and [Device Tracker page](/components/device_tracker/) pages. + + +### {% linkable_title Raspberry Pi Camera %} +The Raspberry Pi Camera is a specific camera for the Raspberry Pi boards. For more information about the camera I suggest reading the [documentation](https://www.raspberrypi.org/documentation/usage/camera/) from the Raspberry Pi foundation. + +To use the camera it needs to be enabled with the `raspi-config` utility. +```bash +$ sudo raspi-config +``` +Select `Enable camera` choose `` and hit `Enter`, then go to `Finish` and you'll be prompted to reboot. +After reboot add your `homeassistant` account to the `video` group. +```bash +$ sudo adduser homeassistant video +``` +After this follow the [Raspberry Pi Camera component](/components/camera.rpi_camera/) page. + +### {% linkable_title Raspberry Pi GPIO %} +Each of the following devices are connected to the GPIO pins on the Raspberry Pi. +For more details about the GPIO layout, visit the [documentation](https://www.raspberrypi.org/documentation/usage/gpio/) from the Raspberry +Pi foundation. +Since these are not normally used some extra permission will need to be added. +In general the permission that is needed is granted by adding the `homeassistant` account to the `gpio` group. + + +#### {% linkable_title Raspberry Pi Cover %} +Add your `homeassistant` account to the `gpio` group +```bash +$ sudo adduser homeassistant gpio +``` +After this follow the [Raspberry Pi Cover component](/components/cover.rpi_gpio/) page. + +#### {% linkable_title DHT Sensor %} +Add your `homeassistant` account to the `gpio` group +```bash +$ sudo adduser homeassistant gpio +``` +After this follow the [DHT Sensor component](/components/sensor.dht/) page. + + +#### {% linkable_title Raspberry PI GPIO Binary Sensor %} +Add your `homeassistant` account to the `gpio` group +```bash +$ sudo adduser homeassistant gpio +``` +After this follow the [Raspberry PI GPIO Binary Sensor component](/components/binary_sensor.rpi_gpio/) page. + +#### {% linkable_title Raspberry PI GPIO Switch %} +Add your `homeassistant` account to the `gpio` group. +```bash +$ sudo adduser homeassistant gpio +``` +After this follow the [Raspberry PI GPIO Switch component](/components/switch.rpi_gpio/) page. + +#### {% linkable_title Raspberry Pi RF Switch %} +Add your `homeassistant` account to the `gpio` group +```bash +$ sudo adduser homeassistant gpio +``` +After this follow the [Raspberry Pi RF Switch component](/components/switch.rpi_rf/) page. + +#### {% linkable_title One wire Sensor %} +The One wire sensor requires that support for it is enabled on the Raspberry Pi and that the One Wire device is connected to GPIO pin 4. +To enable One Wire support add the following line to the end of `/boot/config.txt` +```yaml +dtoverlay=w1-gpio +``` +After this follow the [One Wire Sensor component](/components/sensor.onewire/) page. ### {% linkable_title Troubleshooting %} diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index b83b986428d..57e8dc4c9c7 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -86,6 +86,12 @@ Or, on some other systems (such as Raspberry Pi), use: $ ls /dev/ttyACM* ``` +Or, on macOS, use: + +```bash +$ ls /dev/cu.usbmodem* +``` +

      Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/).

      diff --git a/source/images/screenshots/automation-switches.png b/source/images/screenshots/automation-switches.png new file mode 100644 index 00000000000..7f43b85660e Binary files /dev/null and b/source/images/screenshots/automation-switches.png differ diff --git a/source/images/supported_brands/automatic.png b/source/images/supported_brands/automatic.png new file mode 100644 index 00000000000..6f7382bc6e4 Binary files /dev/null and b/source/images/supported_brands/automatic.png differ diff --git a/source/images/supported_brands/pi_hole.png b/source/images/supported_brands/pi_hole.png new file mode 100644 index 00000000000..7d2c70b3c1b Binary files /dev/null and b/source/images/supported_brands/pi_hole.png differ diff --git a/source/images/supported_brands/xbox-live.png b/source/images/supported_brands/xbox-live.png new file mode 100644 index 00000000000..f606acd9824 Binary files /dev/null and b/source/images/supported_brands/xbox-live.png differ diff --git a/source/index.html b/source/index.html index 79d75e71d21..782e1f602d9 100644 --- a/source/index.html +++ b/source/index.html @@ -15,11 +15,11 @@ hide_github_edit: true