diff --git a/README.markdown b/README.markdown index 59b10253a03..38c15c62b77 100644 --- a/README.markdown +++ b/README.markdown @@ -13,4 +13,3 @@ In order to make the preview available on [http://127.0.0.1:4000](http://127.0.0 ```bash $ rake preview ``` - diff --git a/_config.yml b/_config.yml index aaff623f774..d3f10fff778 100644 --- a/_config.yml +++ b/_config.yml @@ -129,5 +129,5 @@ social: account: home_assistant current_major_version: 0 -current_minor_version: 31 -current_patch_version: 1 +current_minor_version: 32 +current_patch_version: 0 diff --git a/source/_components/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown index 88b808dee95..23912d79a68 100644 --- a/source/_components/alarm_control_panel.nx584.markdown +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -19,11 +19,11 @@ To enable this, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry alarm_control_panel: - platform: nx584 + - platform: nx584 ``` Configuration variables: -- **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. +- **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.concord232.markdown b/source/_components/binary_sensor.concord232.markdown index 78d6e049dcc..b31d6689c6c 100644 --- a/source/_components/binary_sensor.concord232.markdown +++ b/source/_components/binary_sensor.concord232.markdown @@ -24,6 +24,6 @@ binary_sensor: Configuration variables: -- **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost. +- **host** (*Optional*): The host where the concord232 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/climate.wink.markdown b/source/_components/climate.wink.markdown new file mode 100644 index 00000000000..6b6a22c3b90 --- /dev/null +++ b/source/_components/climate.wink.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Wink Thermostat" +description: "Instructions how to setup the Wink binary sensors within Home Assistant." +date: 2016-11-01 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: Climate +ha_release: 0.32 +ha_iot_class: "Cloud Polling" +--- + + +The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats. + +The requirement is that you have setup your [Wink hub](/components/wink/). + diff --git a/source/_components/cover.garadget.markdown b/source/_components/cover.garadget.markdown new file mode 100644 index 00000000000..9f73d313281 --- /dev/null +++ b/source/_components/cover.garadget.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: "Garadget Cover" +description: "Instructions how to integrate Garadget covers within Home Assistant." +date: 2016-10-24 14:25 +sidebar: true +comments: false +sharing: true +footer: true +logo: garadget_logo.jpg +ha_category: Cover +ha_release: 0.32 +--- + + +The `garadget` cover platform lets you control [Garadget](http://www.garadget.com/) garage door futurizers through Home Assistant. + +To enable Garadget Covers in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cover: + platform: garadget + covers: + 190028001947343412342341: + username: UseYourLogin@garadget.com + password: abc123 + name: Left Garage Door + 4c003f001151353432134214: + access_token: df4cc785ff818f2b01396c44142342fccdef +``` + +Configuration variables: + +- **covers** array (*Required*): List of your doors. + - **device** (*Required*): This is the device id from your Garadget portal. + - Either: + - **username** (*Required*): Your Garadget account username. + - **device** (*Required*): Your Garadget account password. + - Or: + - **access_token** (*Required*): A generated access_token from your garadget account + - **name** (*Optional*): Name to use in the Frontend, will use name configured in Garadget otherwise. + + +If provided, the **access_token** will be used, otherwise the **username** and **password** will be used to automatically generate an access token at start time. diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown index 3ed516f9147..8d2698f4442 100644 --- a/source/_components/demo.markdown +++ b/source/_components/demo.markdown @@ -27,6 +27,7 @@ Available demo platforms: - [Notification](/components/notify/) (`notify`) - [Sensor](/components/sensor/) (`sensor`) - [Switch](/components/switch/) (`switch`) +- [Weather](/components/weather/) (`weather`) To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index 33542218b7f..d325c1d4e92 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -13,6 +13,8 @@ Home Assistant can get information from your wireless router or third party serv There are also trackers available which use different technologies like [MQTT](/components/mqtt/) or [Nmap](/components/device_tracker.nmap_tracker/) to scan the network for devices. +An [event](/getting-started/automation-trigger/#event-trigger) (`device_tracker_new_device`) will be fired when a device is discovered for the first time. + # {% linkable_title Configuring a `device_tracker` platform %} To get started add the following lines to your `configuration.yaml` (example for Netgear): @@ -59,6 +61,7 @@ Here's an example configuration for a single device: devicename: name: Friendly Name mac: EA:AA:55:E7:C6:94 + icon: mdi:face-profile picture: https://home-assistant.io/images/favicon-192x192.png gravatar: test@example.com track: yes @@ -69,6 +72,7 @@ devicename: |----------------|-------------------------------|---------------------------------------------------------------------------------------------------------| | `name` | Host name or "Unnamed Device" | The friendly name of the device | | `mac` | None | The MAC address of the device. Add this if you are using a network device tracker like Nmap or SNMP | +| `icon` | None | A name of an MDI Icon. | | `picture` | None | A picture that you can use to easily identify the person or device. You can also save the image file in a folder "www" in the same location (can be obtained from developer tools) where you have your configuration.yaml file and just use `picture: /local/favicon-192x192.png`. | | `gravatar` | None | An email address for the device's owner. If provided, it will override `picture` | | `track` | False | If `yes`/`on`/`true` then the device will be tracked. Otherwise its location and state will not update | diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index 61111b227a8..8f3532bb674 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -17,17 +17,17 @@ The `mqtt` fan platform let you control your MQTT enabled fans. In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with `RETAIN` flag, the MQTT fan will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the fan will be `false`. -When a `state_topic` is not available, the fan will work in optimistic mode. In this mode, the fan will immediately change state after every command. Otherwise, the fan will wait for state confirmation from device (message from `state_topic`). +When a `state_topic` is not available, the fan will work in optimistic mode. In this mode, the fan will immediately change state after every command. Otherwise, the fan will wait for state confirmation from the device (message from `state_topic`). -Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect fan operation. +Optimistic mode can be forced even if a `state_topic` is available. Try to enable it if you are experiencing incorrect fan operation. To enable MQTT fans in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yml entry fan: - platform: mqtt - command_topic: "home/living-room/fan/set" + - platform: mqtt + command_topic: "bedroom_fan/on/set" ``` Configuration variables: @@ -35,25 +35,59 @@ Configuration variables: - **command_topic** (*Required*): The MQTT topic to publish commands to change the fan state. - **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. - **name** (*Optional*): The name of the fan. Default is 'MQTT Fan'. +- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. - **payload_on** (*Optional*): The payload that represents the running state. Default is "ON". - **payload_off** (*Optional*): The payload that represents the stop state. Default is "OFF". -- **optimistic** (*Optional*): Flag that defines if lock works in optimistic mode. Default is `true` if no state topic defined, else `false`. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. -- **retain** (*Optional*): If the published message should have the retain flag on or not. - **state_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the state. -- **speed_state_topic** (*Optional*): The MQTT topic subscribed to receive speed updates. -- **speed_command_topic** (*Optional*): The MQTT topic to publish commands to change the fan speed. -- **speed_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the speed. -- **oscillation_state_topic** (*Optional*): The MQTT topic subscribed to receive oscillation updates. -- **oscillation_command_topic** (*Optional*): The MQTT topic to publish commands to change the fan oscillation. +- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. +- **optimistic** (*Optional*): Flag that defines if lock works in optimistic mode. Default is `true` if no state topic defined, else `false`. +- **retain** (*Optional*): If the published message should have the retain flag on or not. +- **oscillation_state_topic** (*Optional*): The MQTT topic subscribed to receive oscillation state updates. +- **oscillation_command_topic** (*Optional*): The MQTT topic to publish commands to change the oscillation state. +- **payload_oscillation_on** (*Optional*): The payload that represents the oscillation on state. Default is "oscillate_on". +- **payload_oscillation_off** (*Optional*): The payload that presents the oscillation off state. Default is "oscillate_off". - **oscillation_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the oscillation. -- **payload_oscillation_on** (*Optional*): The payload that represents the oscillation state. Default is "ON". -- **payload_oscillation_off** (*Optional*): The payload that represents the oscillation state. Default is "OFF". -- **payload_low_speed** (*Optional*): The payload that represents the low speed state. Default is "low". -- **payload_medium_speed** (*Optional*): The payload that represents the low speed state. Default is "med". -- **payload_high_speed** (*Optional*): The payload that represents the low speed state. Default is "high". +- **speed_state_topic** (*Optional*): The MQTT topic subscribed to receive speed state updates. +- **speed_command_topic** (*Optional*): The MQTT topic to publish commands to change speed state. +- **payload_low_speed** (*Optional*): The payload that represents the fan's low speed. +- **payload_medium_speed** (*Optional*): The payload that represents the fan's medium speed. +- **payload_high_speed** (*Optional*): The payload that represents the fan's high speed. +- **speed_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the speed payload. - **speeds** array (*Optional*): Valid entries for the list are `off`, `low`, `med`, and `high`.

-Make sure that your topic match exact. `some-topic/` and `some-topic` are different topics. +Make sure that your topic is an exact match. `some-topic/` and `some-topic` are different topics.

+ +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this fan. + +### {% linkable_title Full configuration %} + +The example below shows a full configuration for a MQTT fan. + +```yaml +# Example configuration.yml entry +fan: + - platform: mqtt + name: "Bedroom Fan" + state_topic: "bedroom_fan/on/state" + command_topic: "bedroom_fan/on/set" + oscillation_state_topic: "bedroom_fan/oscillation/state" + oscillation_command_topic: "bedroom_fan/oscillation/set" + speed_state_topic: "bedroom_fan/speed/state" + speed_command_topic: "bedroom_fan/speed/set" + qos: 0 + payload_on: "true" + payload_off: "false" + payload_oscillation_on: "true" + payload_oscillation_off: "false" + payload_low_speed: "low" + payload_medium_speed: "medium" + payload_high_speed: "high" + speeds: + - low + - medium + - high +``` diff --git a/source/_components/garage_door.markdown b/source/_components/garage_door.markdown deleted file mode 100644 index f7111e51e17..00000000000 --- a/source/_components/garage_door.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Garage door" -description: "Instructions how to integrate Garage doors into Home Assistant." -date: 2016-02-12 07:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -

-**This component has been deprecated in favor of the "[cover](/components/cover/)" component and will be removed in the future. Please use cover.** -

- -Home Assistant can give you an interface to control any garage door. diff --git a/source/_components/garage_door.mqtt.markdown b/source/_components/garage_door.mqtt.markdown deleted file mode 100644 index c99033a2671..00000000000 --- a/source/_components/garage_door.mqtt.markdown +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: page -title: "MQTT Garage door" -description: "Instructions how to setup the MQTT controllable garage doors within Home Assistant." -date: 2016-04-10 07:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: mqtt.png -ha_category: Deprecated -ha_release: 0.18 -ha_iot_class: depends ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.mqtt/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `mqtt` garage door platform let you control your MQTT enabled garage door. - -In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with RETAIN flag, the MQTT switch will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/off. - -When a state topic is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from device (message from `state_topic`). - -Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect switch operation. - -To use your MQTT binary sensor in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yml entry -garage_door: - platform: mqtt - state_topic: "home-assistant/garage-door" - command_topic: "home-assistant/garage-door/set" - name: "MQTT Sensor" - optimistic: false - qos: 0 - retain: true - state_open: "STATE_OPEN" - state_closed: "STATE_CLOSED" - service_open: "SERVICE_OPEN" - service_close: "SERVICE_CLOSE" - value_template: '{% raw %}{{ value.x }}{% endraw %}' -``` - -Configuration variables: - -- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values. -- **name** (*Optional*): The name of the sensor. Default is 'MQTT Sensor'. -- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN" -- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED" -- **service_open** (*Optional*): The payload that represents open state in service mode. Default is"SERVICE_OPEN" -- **service_close** (*Optional*): The payload that represents closed state in service mode. Default is "SERVICE_CLOSE" -- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is true if no state topic defined, else false. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. -- **retain** (*Optional*): If the published message should have the retain flag on or not. -- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. - -For a quick check you can use the commandline tools shipped with `mosquitto` to send MQTT messages. Set the state of your sensor manually: - -```bash -$ mosquitto_pub -h 127.0.0.1 -t home-assistant/garage-door/set -m "OFF" -``` - diff --git a/source/_components/garage_door.rpi_gpio.markdown b/source/_components/garage_door.rpi_gpio.markdown deleted file mode 100644 index 24ae200c720..00000000000 --- a/source/_components/garage_door.rpi_gpio.markdown +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: page -title: "Raspberry Pi Garage door" -description: "Instructions how to setup the Raspberry Pi garage doors within Home Assistant." -date: 2016-02-12 07:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: raspberry-pi.png -ha_category: Deprecated -ha_release: 0.23 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.rpi_gpio/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `rpi_gpio` garage door platform allows you to use a Raspberry Pi to control your Garage door. - -It uses two pins on the Raspberry Pi. - -- The `state_pin` will detect if the door is closed, and -- the `relay_pin` will trigger the door to open or close. - -Although you do not need Andrews Hilliday's software controller when you run Home Assistant, he has written clear instructions on how to hook your garage door & sensors up to your Raspberry Pi, which can be found [here](https://github.com/andrewshilliday/garage-door-controller#hardware-setup). - -To enable Raspberry Pi Garage doors in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -garage_door: - platform: rpi_gpio - state_pull_mode: DOWN - relay_time: 1 - doors: - - relay_pin: 10 - state_pin: 11 - name: 'Left door' - - relay_pin: 12 - state_pin: 13 - name: 'Right door' -``` - -Configuration variables: - -- **doors** array (*Required*): List of your doors. - - **name** (*Optional*): Name to use in the Frontend. - - **relay_pin** (*Required*): The pin of your Raspberry Pi where the relay is connected. - - **state_pin** (*Required*): The pin of your Raspberry Pi to retrieve the state. - - **state_pull_mode** (*Optional*): The direction the State pin is pulling. It can be UP or DOWN. Default is UP. - - **relay_time** (*Optional*): The time that the relay will be on for in seconds. Default is .2 seconds. - diff --git a/source/_components/garage_door.wink.markdown b/source/_components/garage_door.wink.markdown deleted file mode 100644 index dc178e57698..00000000000 --- a/source/_components/garage_door.wink.markdown +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: page -title: "Wink Garage door" -description: "Instructions how to setup the Wink garage doors within Home Assistant." -date: 2016-02-12 07:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Deprecated -ha_release: 0.13 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.wink/)" platform and will be removed in the future. Please use the cover platform.** -

- -Wink garage door functionality is currently limited to view only. Wink garage doors will still show the current state of the door, but control has been disabled for third parties. If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control. - -The following quote is from Wink. - -
-As part of our agreement with Chamberlain, third-party access to control Chamberlain garage doors has been restricted. Please contact Chamberlain directly to inquire about permissions. -
- -~~The Wink garage door platform allows you to control your [Wink](http://www.wink.com/) enabled garage door.~~ - -The requirement is that you have setup your [Wink hub](/components/wink/). - diff --git a/source/_components/garage_door.zwave.markdown b/source/_components/garage_door.zwave.markdown deleted file mode 100644 index c07a96085fe..00000000000 --- a/source/_components/garage_door.zwave.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Z-Wave Garage Door" -description: "Instructions how to setup the Z-Wave garage doors within Home Assistant." -date: 2015-11-15 13:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: z-wave.png -ha_category: Deprecated -ha_release: 0.23 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.zwave/)" platform and will be removed in the future. Please use the cover platform.** -

- -To get your Z-Wave garage doors working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). diff --git a/source/_components/hvac.markdown b/source/_components/hvac.markdown deleted file mode 100644 index db57959bf97..00000000000 --- a/source/_components/hvac.markdown +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: "HVAC" -description: "Instructions on how to integrate HVAC devices status with Home Assistant." -date: 2016-05-07 09:00 -sidebar: true -comments: false -sharing: true -footer: true -ha_release: 0.19 ---- - -

-**This component has been deprecated in favor of the "[climate](/components/climate/)" component and will be removed in the future. Please use climate.** -

- -The `hvac` component is built for the controlling and monitoring of HVAC (heating, ventilating, and air conditioning) devices. - -To enable this component, pick one of the platforms and add it to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -hvac: - platform: demo -``` - diff --git a/source/_components/hvac.zwave.markdown b/source/_components/hvac.zwave.markdown deleted file mode 100644 index 820706cec4b..00000000000 --- a/source/_components/hvac.zwave.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Z-Wave HVAC" -description: "Instructions on how to integrate HVAC Z-Wave devices status with Home Assistant." -date: 2016-05-07 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: z-wave.png -ha_category: Deprecated -ha_release: 0.19 ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.zwave/)" platform and will be removed in the future. Please use the climate platform.** -

- -To get your Z-Wave `hvac` devices working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/) and the [HVAC component](/components/hvac/). diff --git a/source/_components/insteon_hub.markdown b/source/_components/insteon_hub.markdown index 9c620bf515f..7318b88ee15 100644 --- a/source/_components/insteon_hub.markdown +++ b/source/_components/insteon_hub.markdown @@ -12,6 +12,10 @@ ha_category: Hub ha_iot_class: "Cloud Polling" --- +

+This component has been disabled due to a complaint by Insteon. It will be enabled again once this issue has been resolved. +

+ The `insteon` component lets you use your [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant. You will need to obtain an Insteon REST API key from the [Insteon Developer program](http://www.insteon.com/become-an-insteon-developer) to use this component. diff --git a/source/_components/light.litejet.markdown b/source/_components/light.litejet.markdown new file mode 100644 index 00000000000..422fe77f0cc --- /dev/null +++ b/source/_components/light.litejet.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "LiteJet Light" +description: "Instructions how to setup the LiteJet lights within Home Assistant." +date: 2016-10-26 13:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +ha_release: 0.32 +--- + +To get your LiteJet lights working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown new file mode 100644 index 00000000000..5a1d061be4d --- /dev/null +++ b/source/_components/light.yeelight.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "Yeelight Wifi Bulb" +description: "Instructions how to setup Yeelight Wifi devices within Home Assistant." +date: 2016-10-29 +sidebar: true +comments: false +sharing: true +footer: true +logo: yeelight.png +ha_category: Light +ha_release: 0.32 +--- + +The `yeelight` light platform allows you to control your Yeelight Wifi bulbs with Home Assistant. + +To enable those lights, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry + - platform: yeelight + devices: + 192.168.1.25: + name: palier +``` + +Configuration variables: + +- **ip** (*Required*): IP(s) of your wifi bulbs +- **name** (*Optional*): A friendly name for the device. + +

+Before trying to control your light through Home Assistant, you have to setup your bulb using Yeelight app. ( [Android](https://play.google.com/store/apps/details?id=com.yeelight.cherry&hl=fr), [IOS](https://itunes.apple.com/us/app/yeelight/id977125608?mt=8) ). +In the bulb property, you have to enable "Developer Mode" +Determine your bulb ip (using router, software, ping ...) +

+ +

+Tests are only made with a YLDP03YL model. Because it's the only hardware developer owns. If you have bugs with another kind of model, you could open an issue on [Home Assitant Github](https://github.com/home-assistant/home-assistant) +

+ + diff --git a/source/_components/litejet.markdown b/source/_components/litejet.markdown new file mode 100644 index 00000000000..f2c4db330e8 --- /dev/null +++ b/source/_components/litejet.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "LiteJet" +description: "Instructions how to setup the LiteJet hub within Home Assistant." +date: 2015-10-26 09:37 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Hub +ha_iot_class: "Local Polling" +ha_release: 0.32 +--- + +LiteJet is a centralized lighting system that predates most home automation technology. All lights and wall switches are wired to a central panel. This central panel has a serial port interface that allows a computer to control the system via LiteJet's third party protocol. + +Home Assistant integrates the LiteJet 3rd party protocol and allows you to get the status and control the connected lights. + +After connecting the LiteJet's RS232-2 port to your computer, add the following to your `configuration.yaml`: + +```yaml +litejet: + port: /dev/serial/by-id/THE-PATH-OF-YOUR-SERIAL-PORT +``` + +Your LiteJet MCP should be configured for 19.2 K baud, 8 data bits, 1 stop bit, no parity, and to transmit a 'CR' after each response. These settings can be configured using the [LiteJet programming software](https://www.centralite.com/helpdesk/knowledgebase.php?article=735). + +You can also configure the Home Assistant to ignore lights, scenes, and switches via their name. This is highly recommended since LiteJet has a fixed number of each of these and with most systems many will be unused. + +```yaml +litejet: +``` + +Configuration variables: + +- **port** (*Required*): The path to the serial port connected to the LiteJet. +- **exclude_names** (*Optional*): A list of light or switch names that should be ignored. +- **include_switches** (*Optional*): Cause entities to be created for all the LiteJet switches. Default is `false`. This can be useful when debugging your lighting as you can press/release switches remotely. + + + +```yaml +litejet: + exclude_names: + - 'Button #' + - 'Scene #' + - 'Timed Scene #' + - 'Timed Scene#' + - 'LV Rel #' + - 'Fan #' +``` diff --git a/source/_components/media_player.emby.markdown b/source/_components/media_player.emby.markdown new file mode 100644 index 00000000000..f4149dc4681 --- /dev/null +++ b/source/_components/media_player.emby.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Emby" +description: "Instructions how to integrate Emby into Home Assistant." +date: 2016-10-13 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: emby.png +ha_category: Media Player +ha_release: "0.32" +ha_iot_class: "Local Polling" +--- + + +The `emby` platform allows you to control a [Emby](http://emby.media/) multimedia system from Home Assistant. + +To add Emby to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + - platform: emby + host: 192.168.11.5 + api_key: "emby_api_key" +``` + +Configuration variables: + +- **host** (*Required*): The host name or address of the device that is running Emby. +- **api_key** (*Requred*): The api-key you would like home-assistant to use to authenticate. +- **ssl** (*Optional*): True if you want to connect with https. Be sure to set the port also. +- **port** (*Optional*): The port number. Defaults to 8096. diff --git a/source/_components/media_player.philips_js.markdown b/source/_components/media_player.philips_js.markdown new file mode 100644 index 00000000000..5c952bc0ea6 --- /dev/null +++ b/source/_components/media_player.philips_js.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Philips TV" +description: "Instructions on how to add Philips TVs to Home Assistant." +date: 2016-11-01 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: philips.png +ha_category: Media Player +ha_iot_class: "Local Polling" +ha_release: 0.32 +--- + + +The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) API. Instructions on how to activate the API and if your model is supported can be found [here](http://jointspace.sourceforge.net/download.html). + +To add your TV to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: +- name: NAME + platform: philips_js + host: 192.168.1.99 +``` + +Configuration variables: + +- **name** (*Optional*): The name you would like to give to the Philips TV. +- **host** (*Required*): IP address of TV. \ No newline at end of file diff --git a/source/_components/media_player.sonos.markdown b/source/_components/media_player.sonos.markdown index 1eeb796772a..62319a09947 100644 --- a/source/_components/media_player.sonos.markdown +++ b/source/_components/media_player.sonos.markdown @@ -86,3 +86,20 @@ Remove one or more speakers from a group of speakers. If no `entity_id` is provi | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will be separated from their coordinator speaker. +### {% linkable_title Service `sonos_set_sleep_timer` %} + +Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of `entity_id`s that will have their timers set. Must be a coordinator speaker. +| `sleep_time` | no | Integer number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day). + +### {% linkable_title Service `sonos_clear_sleep_timer` %} + +Clear the sleep timer on a speaker, if one is set. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker. + diff --git a/source/_components/mochad.markdown b/source/_components/mochad.markdown new file mode 100644 index 00000000000..f27367f0da1 --- /dev/null +++ b/source/_components/mochad.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "Mochad" +description: "Instructions how to integrate Mochad into Home Assistant." +date: 2016-10-20 17:09 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Hub +ha_release: 0.32 +--- + +The `mochad` component is the main component to integrate all X10 platforms being controlled by [mochad](https://sourceforge.net/projects/mochad/). Besides this component you will have to setup your X10 devices separately. + +To integrate your Mochad units with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +mochad: +``` + +Configuration variables: + +- **host** (*Optional*): The host that mochad is running on. Defaults to `localhost`. +- **port** (*Optional*): The port that mochad is running on. Defaults to `1099`. + +A full configuration sample could look like the one below: + +```yaml +# Example configuration.yaml entry +mochad: + host: localhost + port: 1099 +``` diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 6fa51e4417d..1688b580a08 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -33,8 +33,13 @@ Configuration variables: - **gcm_sender_id** (*Required if pushing to Chrome*): The sender ID provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. ### {% linkable_title Getting ready for Chrome %} +Create new project at https://console.cloud.google.com/home/dashboard +Go to https://console.cloud.google.com/apis/credentials/domainverification and verify your domain +After that, go to https://console.firebase.google.com and select import Google project, select the project you created +Then, click the clogwheel on top left and select Project settings +Select Cloud messaging tab +if under server key is button Regenerate key, click that -Google has [a handy guide](https://developers.google.com/web/fundamentals/getting-started/codelabs/push-notifications/#make_a_project_on_the_google_developer_console) that goes into great detail about how to set up for pushing to Chrome. Once you have your GCM API Key and Sender ID in hand, plug them into your configuration as described above. ### {% linkable_title Requirements %} diff --git a/source/_components/notify.matrix.markdown b/source/_components/notify.matrix.markdown index 9cee32ce4b7..1b86eea729a 100644 --- a/source/_components/notify.matrix.markdown +++ b/source/_components/notify.matrix.markdown @@ -9,12 +9,14 @@ sharing: true footer: true logo: matrix.png ha_category: Notifications -ha_release: 0.31 +ha_release: 0.32 --- The `matrix` platform allows you to deliver notifications from Home Assistant to a Matrix room. Rooms can be both direct as well as group chats. +To enable Matrix notifications in your installation, add the following to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry notify: diff --git a/source/_components/notify.nfandroidtv.markdown b/source/_components/notify.nfandroidtv.markdown new file mode 100644 index 00000000000..4832dc8554b --- /dev/null +++ b/source/_components/notify.nfandroidtv.markdown @@ -0,0 +1,55 @@ +--- +layout: page +title: "Notifications for Android TV / FireTV" +description: "Notifications for Android TV / FireTV" +date: 2016-10-21 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nfandroidtv.png +ha_category: Notifications +ha_release: 0.32 +--- + + +Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google&hl=de) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). +The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running. +The In-App purchases only apply to the client for Android smartphones, so there isn't any limit when pushing notifications from HASS. + +To enable the notification platform, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: +- platform: nfandroidtv + name: Kitchen + host: 192.168.1.12 +``` + +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`. +- **host** (*Required*): IP address of the Android TV / FireTV device. +- **duration** (*Optional*): The duration in seconds for which the notification will be displayed. Default is 5 seconds. +- **position** (*Optional*): Has to be one of: bottom-right (default), bottom-left, top-right, top-left, center +- **color** (*Optional*): Has to be one of: grey (default), black, indigo, green, red, cyan, teal, amber, pink +- **transparency** (*Optional*): Has to be one of: 0%, 25% (default), 50%, 75%, 100% +- **interrupt** (*Optional*): If set to true, 1, on etc., the notification is interactive and can be dismissed or selected to display more details. + +The configuration will be used to configure the default values for the notification for the host specified by the IP. However, you can override most of the settings by passing them with the data-attribute when calling the service. +This is a fully customized JSON you can use to test how the final notification will look like: + +```json +{ +"message": "Messagetext", +"title": "My Notification", +"data":{ + "position":"center", + "duration":2, + "transparency":"0%", + "color": "red", + "interrupt": 1 + } +} +``` diff --git a/source/_components/rollershutter.command_line.markdown b/source/_components/rollershutter.command_line.markdown deleted file mode 100644 index 60db7404897..00000000000 --- a/source/_components/rollershutter.command_line.markdown +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: page -title: "Command line Rollershutter" -description: "Instructions how to have rollershutters call command line commands." -date: 2016-02-22 13:45 -sidebar: true -comments: false -sharing: true -footer: true -logo: command_line.png -ha_category: Deprecated -ha_release: 0.14 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.command_line/)" platform and will be removed in the future. Please use the cover platform.** -

- -A `rollershutter` platform that issues specific commands when it is moved up, down and stopped. This might very well become our most powerful platform as it allows anyone to integrate any type of rollershutter into Home Assistant that can be controlled from the command line, including calling other scripts! - -To enable command_rollershutter in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -rollershutter: -- platform: command_line - rollershutters: - Kitchen Rollershutter: - upcmd: move_command up kitchen - downcmd: move_command down kitchen - stopcmd: move_command stop kitchen - statecmd: state_command kitchen - value_template: '{% raw %}{{ value }}{% endraw %}' -``` - -Configuration variables: - -- **rollershutters** (*Required*): The array that contains all command rollershutters. - - **entry** (*Required*): Name of the command rollershutter. Multiple entries are possible. - - **upcmd** (*Required*): The action to take for move up. - - **downcmd** (*Required*): The action to take for move down. - - **stopcmd** (*Required*): The action to take for stop. - - **statecmd** (*Optional*): If given, this command will be run. Returning a result code `0` will indicate that the rollershutter is fully closed, returning a result code `100` will indicate that the rollershutter 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 rollershutter. diff --git a/source/_components/rollershutter.homematic.markdown b/source/_components/rollershutter.homematic.markdown deleted file mode 100644 index eb536f40e71..00000000000 --- a/source/_components/rollershutter.homematic.markdown +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: "Homematic Rollershutter" -description: "Instructions how to integrate Homematic rollershutters within Home Assistant." -date: 2016-06-28 08:30 -sidebar: true -comments: false -sharing: true -footer: true -logo: homematic.png -ha_category: Deprecated -ha_release: 0.23 -ha_iot_class: "Local Push" ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.homematic/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `homematic` rollershutter platform lets you control [Homematic](http://www.homematic.com/) rollershutters 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/rollershutter.markdown b/source/_components/rollershutter.markdown deleted file mode 100644 index f6306a9ad99..00000000000 --- a/source/_components/rollershutter.markdown +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: "Rollershutters" -description: "Instructions how to integrate rollershutters into Home Assistant." -date: 2015-12-01 12:00 -sidebar: true -comments: false -sharing: true -footer: true ---- - -

-**This component has been deprecated in favor of the "[cover](/components/cover/)" component and will be removed in the future. Please use cover.** -

- -Home Assistant can give you an interface to control any rollershutters. diff --git a/source/_components/rollershutter.mqtt.markdown b/source/_components/rollershutter.mqtt.markdown deleted file mode 100644 index 5eab5e95996..00000000000 --- a/source/_components/rollershutter.mqtt.markdown +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: page -title: "MQTT Rollershutter" -description: "Instructions how to integrate MQTT motorized devices into Home Assistant." -date: 2015-12-01 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: mqtt.png -ha_category: Deprecated -ha_release: 0.9 -ha_iot_class: depends ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.mqtt/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `mqtt` rollershutter platform enables the possibility to control an MQTT rollershutter. The device state will be updated only after receiving the a new state from `state_topic`. If these messages are published with RETAIN flag, the MQTT device will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state will be `unknown`. - -There is a state attribute that stores the relative position of the device, where 0% means the device is `closed` and all other intermediate positions means the device is `open`. - -To enable this platform, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -rollershutter: - platform: mqtt - name: "Bedroom Rollershutter" - state_topic: "home/bedroom/rollershutter" - command_topic: "home/bedroom/rollershutter/set" - qos: 0 - payload_up: "OPEN" - payload_down: "CLOSE" - payload_stop: "STOP" - value_template: '{% raw %}{{ value.x }}{% endraw %}' -``` - -Configuration variables: - -- **command_topic** (*Required*): The MQTT topic to publish commands to control the rollershutter. - -- **name** (*Optional*): The name of the rollershutter. Default is 'MQTT Rollershutter'. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. If not defined, the rollershutter will be stateless, that is, no information about current position or open/closed. If defined, the received payload must be a integer between 0 and 100, that represents the percentage for fully closed and fully open, respectively. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages. -- **payload_up** (*Optional*): The payload to open the rollershutter. Default is "OPEN". -- **payload_down** (*Optional*): The payload to close the rollershutter. Default is "CLOSE". -- **payload_stop** (*Optional*): The payload to stop the rollershutter. Default is "STOP". -- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. diff --git a/source/_components/rollershutter.rfxtrx.markdown b/source/_components/rollershutter.rfxtrx.markdown deleted file mode 100644 index 2400be8092a..00000000000 --- a/source/_components/rollershutter.rfxtrx.markdown +++ /dev/null @@ -1,72 +0,0 @@ ---- -layout: page -title: "RFXtrx Rollershutter" -description: "Instructions how to integrate RFXtrx roller shutters into Home Assistant." -date: 2016-06-12 12:40 -sidebar: true -comments: false -sharing: true -footer: true -logo: rfxtrx.png -ha_category: Deprecated -ha_release: 0.21 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.rfxtrx/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `rfxtrx` platform supports Siemens/LightwaveRF and RFY roller shutters that communicate in the frequency range of 433.92 MHz. - -First you have to set up your [rfxtrx hub](/components/rfxtrx/). - -### {% linkable_title Configuration %} - -##### Siemens/LightwaveRF -The easiest way to find your roller shutters is to add this to your `configuration.yaml`: - -```yaml -rollershutter: - platform: rfxtrx - automatic_add: True -``` - -Launch your homeassistant and go the website (e.g http://localhost:8123). -Push your remote and your device should be added. - -Once added it will show an ID (e.g `0b11000102ef9f210010f70`) and you can verify that it works from the frontend. -Then you should update your configuration to: - -```yaml -rollershutter: - platform: rfxtrx - devices: - 0b11000102ef9f210010f70: - name: device_name -``` - -##### RFY -The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) is required for RFY support, however it does not support receive for the RFY protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. Eg, if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`. - -##### Common -Example configuration: - -```yaml -# Example configuration.yaml entry -rollershutter: - platform: rfxtrx - automatic_add: False - signal_repetitions: 2 - devices: - 0b1100ce3213c7f210010f70: # Siemens/LightwaveRF - name: Bedroom Shutter - 070a00000a000101: # RFY - name: Bathroom Shutter -``` - -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. -- **automatic_add** (*Optional*): To enable the automatic addition of new roller shutters (Siemens/LightwaveRF only). -- **signal_repetitions** (*Optional*): Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the roller shutter to try to send each signal repeatedly. -- **fire_event** (*Optional*): Fires an event even if the state is the same as before. Can be used for automations. diff --git a/source/_components/rollershutter.scsgate.markdown b/source/_components/rollershutter.scsgate.markdown deleted file mode 100644 index 6abb7596336..00000000000 --- a/source/_components/rollershutter.scsgate.markdown +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: "SCSGate Rollershutter" -description: "Instructions how to integrate SCSGate motorized devices into Home Assistant." -date: 2016-01-31 22:16 -sidebar: true -comments: false -sharing: true -footer: true -logo: bus_scs.png -ha_category: Deprecated ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.scsgate/)" platform and will be removed in the future. Please use the cover platform.** -

- -The SCSGate device can control motirized roller shutters connected to the BTicino MyHome system. - -To enable SCSGate roller shutters in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -rollershutter: - platform: scsgate - devices: - living_room: - name: Living Room - scs_id: XXXXX -``` - -Configuration variables: - -- **devices** (*Required*): A list of devices with their name to use in the frontend. - -**Known limitation:** it is not possible to know the current state of the roller shutter. diff --git a/source/_components/rollershutter.wink.markdown b/source/_components/rollershutter.wink.markdown deleted file mode 100644 index 0535392f21a..00000000000 --- a/source/_components/rollershutter.wink.markdown +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: "Wink Rollershutter" -description: "Instructions how to setup the Wink rollershutter (shade) within Home Assistant." -date: 2016-02-12 07:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: wink.png -ha_category: Deprecated -ha_release: 0.22 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.wink/)" platform and will be removed in the future. Please use the cover platform.** -

- -The `wink` rollershutter platform allows you to control your [Wink](http://www.wink.com/) enabled rollershutters. It supports Wink shades/blinds/rollershutters such as the Bali Somfy or Lutron Serena blinds. - -The Wink API currently doesn't provide status for shades. - -The requirement is that you have setup your [Wink hub](/components/wink/). - diff --git a/source/_components/rollershutter.zwave.markdown b/source/_components/rollershutter.zwave.markdown deleted file mode 100644 index ebed95ed0fc..00000000000 --- a/source/_components/rollershutter.zwave.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Z-Wave Rollershutter" -description: "Instructions how to setup the Z-Wave rollershutters within Home Assistant." -date: 2015-11-15 13:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: z-wave.png -ha_category: Deprecated -ha_release: 0.23 ---- - -

-**This platform has been deprecated in favor of a "[cover](/components/cover.zwave/)" platform and will be removed in the future. Please use the cover platform.** -

- -To get your Z-Wave rollershutters working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). diff --git a/source/_components/scene.litejet.markdown b/source/_components/scene.litejet.markdown new file mode 100644 index 00000000000..fca7954e1b8 --- /dev/null +++ b/source/_components/scene.litejet.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "LiteJet Scenes" +description: "Instructions how to setup LiteJet scenes within Home Assistant." +date: 2016-10-26 16:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Scene +ha_release: 0.32 +--- + +To get your LiteJet scenes working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/sensor.cups.markdown b/source/_components/sensor.cups.markdown new file mode 100644 index 00000000000..e8ac8b03913 --- /dev/null +++ b/source/_components/sensor.cups.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: "CUPS Sensor" +description: "Instructions how to integrate CUPS sensors into Home Assistant." +date: 2016-10-30 12:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: cups.png +ha_category: System Monitoring +ha_iot_class: "Local Polling" +ha_release: 0.32 +--- + + +The `cups` sensor platform is using the open source printing system [CUPS](https://www.cups.org/) to show details about your printers. + +To set up the sensor the "Queue Name" of the printer is needed. The fastest way to get it, is to visit the CUPS webinterface at "http://[IP ADDRESS PRINT SERVER]:631" and go to "Printers". + +

+ +

+ +To enable the CUPS sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: cups + printers: + - C410 + - C430 +``` + +Configuration variables: + +- **printers** array (*Required*): List of printers to add. + + +

+You will need to install the `python3-dev` or `python3-devel` and the development files for CUPS (`libcups2-dev` or`cups-devel`) package on your system manually (eg. `sudo apt-get install python3-dev libcups2-dev` or `sudo dnf -y install python3-devel cups-devel`) along with a compiler (`gcc`). +

diff --git a/source/_components/sensor.currencylayer.markdown b/source/_components/sensor.currencylayer.markdown new file mode 100644 index 00000000000..29aad210caf --- /dev/null +++ b/source/_components/sensor.currencylayer.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Currencylayer" +description: "Instructions on integrating exchange rates from https://currencylayer.com/ within Home Assistant." +date: 2016-10-26 10:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Finance +logo: currencylayer.png +ha_iot_class: "Cloud Polling" +ha_release: 0.32 +--- + + +The `currencylayer` sensor will show you the current exchange rate from [Currencylayer](https://currencylayer.com/) that provides realtime exchange rates for [170 currencies](https://currencylayer.com/currencies). The free account is limited to only USD as a base currency, allows 1000 requests per month, and updates every hour. + +Obtain your API key [here](https://currencylayer.com/product) + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: currencylayer + api_key: YOUR_API_KEY + base: USD + quote: + - EUR + - INR +``` + +Configuration variables: + +- **api_key** (*Required*): API Key from [Currencylayer](https://currencylayer.com/). +- **base** (*Optional*): The symbol of the base currency. Defaults to USD. +- **quote** (*Required*): The symbol(s) of the quote or target currencies. diff --git a/source/_components/sensor.hddtemp.markdown b/source/_components/sensor.hddtemp.markdown new file mode 100644 index 00000000000..d3669c7d76b --- /dev/null +++ b/source/_components/sensor.hddtemp.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "HDDTemp" +description: "Instructions how to integrate harddrive temperature information into Home Assistant." +date: 2016-10-28 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: System Monitor +ha_release: 0.32 +ha_iot_class: "Local Polling" +--- + +The `hddtemp` sensor platform is using the data provided by [HDDTemp](http://savannah.nongnu.org/projects/hddtemp). + +It required that `hddtemp` is started or running in daemon mode on a local or remote system. + +```bash +$ hddtemp -dF +``` + +To setup a HDDTemp to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: hddtemp +``` + +Configuration variables: + +- **name** (*Optional*): Friendly name to use for the frontend. Default to "HD Temperature". +- **host** (*Optional*): Host where `hddtemp` is running. Default to `localhost`. +- **port** (*Optional*): Port that is used by `hddtemp` . Default to `7634`. + diff --git a/source/_components/sensor.influxdb.markdown b/source/_components/sensor.influxdb.markdown new file mode 100644 index 00000000000..c16839f1fa0 --- /dev/null +++ b/source/_components/sensor.influxdb.markdown @@ -0,0 +1,80 @@ +--- +layout: page +title: "InfluxDB Sensor" +description: "Instructions how to integrate InfluxDB sensors within Home Assistant." +date: 2016-10-26 23:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: influxdb.png +ha_category: Sensor +ha_release: 0.32 +--- + +The `InfluxDB` sensor allows you to use values from an [InfluxDB](https://influxdb.com/) database to populate a sensor state. This can be use to present statistic about home_assistant sensors if used with the `influxdb` history component. It can also be used with an external data source. + +To configure this sensor, you need to define the sensor connection variables and a list of queries to your `configuration.yaml` file. A sensor will be created for each query: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: influxdb + queries: + - name: mean value of foo + where: '"name" = ''foo''' + measurement: '"°C"' +``` + + +Configuration variables for the server: + +- **host** (*Optional*): IP address of your database host, eg. 192.168.1.10. Defaults to `localhost`. +- **port** (*Optional*): Port to use. Defaults to 8086. +- **username** (*Optional*): The username of the database user. +- **password** (*Optional*): The password for the database user account. +- **ssl** (*Optional*): Use `https` instead of `http` to connect. Defaults to `false`. +- **verify_ssl** (*Optional*): Verify SSL certificate for `https` request. Defaults to `false`. +- **queries** array (*Required*): List of queries + - **name** (*Required*): The name of the sensor. + - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. + - **measurement** (*Required*): Defines the measurement name in InfluxDB (the from clause of the query). + - **where** (*Required*): Defines the data selection clause (the where clause of the query). + - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. + - **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. + - **group_function** (*Optional*): The group function to be used. Defaults to `mean`. + - **field** (*Optional*): The field name to select. Defaults to value. + +## {% linkable_title Examples %} + +### {% linkable_title Full configuration %} + +The example configuration entry bellow create two request to your local InfluxDB instance, one to the database `db1`, the other to `db2`: + +- `select last(value) as value from "°C" where "name" = "foo"` +- `select min(tmp) as value from "%" where "entity_id" = ''salon'' and time > now() - 1h` + +```yaml +sensor: + platform: influxdb + host: localhost + username: home-assistant + password: password + queries: + - name: last value of foo + unit_of_measurement: °C + value_template: '{% raw %}{{ value | round(1) }}{% endraw %}' + group_function: last + where: '"name" = ''foo''' + measurement: '"°C"' + field: value + database: db1 + - name: Min for last hour + unit_of_measurement: '%' + value_template: '{% raw %}{{ value | round(1) }}{% endraw %}' + group_function: min + where: '"entity_id" = ''salon'' and time > now() - 1h' + measurement: '"%"' + field: tmp + database: db2 +``` diff --git a/source/_components/sensor.random.markdown b/source/_components/sensor.random.markdown new file mode 100644 index 00000000000..fe73e81f66d --- /dev/null +++ b/source/_components/sensor.random.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Random Sensor" +description: "Instructions how to integrate random number sensors into Home Assistant." +date: 2016-10-30 12:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.32 +--- + + +The `random` sensor platform is creating random sensor values (integers) out of a given range. This can be useful if you want to test automation rules. + +To enable the random sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: random +``` + +Configuration variables: + +- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Random Sensor`. +- **minimum** (*Optional*): Lower limit for the values. Defaults to `0`. +- **maximum** (*Optional*): Upper limit for the values. Defaults to `20`. + diff --git a/source/_components/sensor.synologydsm.markdown b/source/_components/sensor.synologydsm.markdown new file mode 100644 index 00000000000..81c41ec40e8 --- /dev/null +++ b/source/_components/sensor.synologydsm.markdown @@ -0,0 +1,73 @@ +--- +layout: page +title: "SynologyDSM Sensor" +description: "Instructions how to integrate the SynologyDSM sensor within Home Assistant." +date: 2016-10-30 23:21 +sidebar: true +comments: false +sharing: true +footer: true +logo: synologydsm.png +ha_category: Sensor +ha_release: 0.32 +ha_iot_class: depends +--- + + +This `synologydms` sensor allows getting various statistics from your [Synology NAS](https://www.synology.com). Please note that using this sensor wakes up your synology if in hibernation mode. + +To use the SynologyDSM sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +sensor: + - platform: synologydsm + host: IP_ADDRESS_OF_SYNOLOGY_NAS + username: USERNAME + password: PASSWORD + monitored_conditions: + - cpu_total_load + - memory_real_usage + - network_up +``` + +Configuration variables: + +- **host** (*Required*): The IP address of the Synology NAS to monitor +- **port** (*Optional*): The port number on which the NAS is reachable. Defaults to `5000`. +- **username** (*Required*): An user to connect to the Synology NAS (a seperate account is adviced). +- **password** (*Required*): The password of the user to connect to the Synology NAS. +- **volumes** (*Optional*): Array of volumes to monitor. Defaults to all volumes. +- **disks** (*Optional*): Array of disks to monitor. Defaults to all disks. +- **monitored_conditions** (*Required*): Defines a [template](/topics/templating/) to extract a value from the payload. + - **cpu_other_load**: Displays unspecified load in percentage. + - **cpu_user_load**: Displays user load in percentage. + - **cpu_system_load**: Displays system load in percentage. + - **cpu_total_load**: Displays combined load in percentage. + - **cpu_1min_load**: Displays maximum load in past minute. + - **cpu_5min_load**: Displays maximum load in past 5 minutes. + - **cpu_15min_load**: Displays maximum load in past 15 minutes. + - **memory_real_usage**: Displays percentage of memory used. + - **memory_size**: Displays total size of memory in MB. + - **memory_cached**: Displays total size of cache in MB. + - **memory_available_swap**: Displays total size of available swap in MB. + - **memory_available_real**: Displays total size of memory used (based on real memory) in MB. + - **memory_total_swap**: Displays total size of actual memory in MB. + - **memory_total_real**: Displays total size of real memory in MB. + - **network_up**: Displays total up speed of network interfaces (combines all interfaces). + - **network_down**: Displays total down speed of network interfaces (combines all interfaces). + - **disk_name**: Displays the name of the harddisk (creates a new entry for each disk). + - **disk_device**: Displays the path of the harddisk (creates a new entry for each disk). + - **disk_smart_status**: Displays the S.M.A.R.T status of the harddisk (creates a new entry for each disk). + - **disk_status**: Displays the status of the harddisk (creates a new entry for each disk). + - **disk_exceed_bad_sector_thr**: Displays true / false to indicate if the harddisk exceeded the maximum bad sector threshold (creates a new entry for each disk). + - **disk_below_remain_life_thr**: Displays true / false to indicate if the harddisk dropped below the remain life threshold (creates a new entry for each disk). + - **disk_temp**: Displays the temperature of the harddisk (creates a new entry for each disk, uses the unit_system to display in C or F). + - **volume_status**: Displays the status of the volume (creates a new entry for each volume). + - **volume_device_type**: Displays the volume type (RAID, etc) (creates a new entry for each volume). + - **volume_size_total**: Displays the total size of the volume in GB's (creates a new entry for each volume). + - **volume_size_used**: Displays the used space on this volume in GB's (creates a new entry for each volume). + - **volume_percentage_used**: Displays the percentage used for this volume in GB's (creates a new entry for each volume). + - **volume_disk_temp_avg**: Displays the average temperature of all disks in the volume (creates a new entry for each volume). + - **volume_disk_temp_max**: Displays the maximum temperature of all disks in the volume (creates a new entry for each volume). + diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index 7e2e9aef286..dc672a92cec 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -92,5 +92,7 @@ Configuration variables: - **solarradiation**: Current levels of solar radiation - **alerts**: Current severe weather advisories +All the conditions listed above will be updated each 5 minutes with exception of `alerts` that will be updated each 15 minutes by default. + Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs). diff --git a/source/_components/sensor.yahoo_finance.markdown b/source/_components/sensor.yahoo_finance.markdown index 022be8804cd..f6f8fdb8568 100644 --- a/source/_components/sensor.yahoo_finance.markdown +++ b/source/_components/sensor.yahoo_finance.markdown @@ -27,27 +27,19 @@ sensor: Configuration variables: - **name** (*Optional*): The name of the sensor. If not specified, it defaults to *Yahoo Stock*. -- **symbol** (*Optional*): The stock market symbol for a given company. If not specified, it defaults to *Yahoo (YHOO)*. +- **symbols** array (*Optional*): List of stock market symbols for given companies. If not specified, it defaults to *Yahoo (YHOO)*. ## {% linkable_title Examples %} In this section you find some real life examples of how to use this sensor. -### {% linkable_title Red Hat %} +### {% linkable_title Red Hat and Google %} ```yaml sensor: - platform: yahoo_finance - name: Red Hat Inc. - symbol: RHT -``` - -### {% linkable_title Google %} - -```yaml -sensor: - - platform: yahoo_finance - name: Google - symbol: GOOGL + symbols: + - RHT + - GOOGL ``` diff --git a/source/_components/sensor.zoneminder.markdown b/source/_components/sensor.zoneminder.markdown index 8be4611b477..fd71c742a44 100644 --- a/source/_components/sensor.zoneminder.markdown +++ b/source/_components/sensor.zoneminder.markdown @@ -9,10 +9,11 @@ sharing: true footer: true logo: zoneminder.png ha_category: Sensor +ha_release: 0.31 --- -The `ZoneMinder` sensor platform let you monitor the current state of your zoneminder install including the number of events and the current state of the cameras. +The `zoneminder` sensor platform let you monitor the current state of your zoneminder install including the number of events and the current state of the cameras.

You must have the [ZoneMinder component](/components/zoneminder/) configured to use those sensors. @@ -23,5 +24,5 @@ To set it up, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry sensor: - platform: zoneminder -``` \ No newline at end of file + - platform: zoneminder +``` diff --git a/source/_components/switch.acer_projector.markdown b/source/_components/switch.acer_projector.markdown index a918b6d9a69..d9158b31528 100644 --- a/source/_components/switch.acer_projector.markdown +++ b/source/_components/switch.acer_projector.markdown @@ -27,7 +27,7 @@ switch: Configuration variables: -- **filename** (*Required*): The pipe where the projector is connected to +- **filename** (*Required*): The pipe where the projector is connected to. - **name** (*Optional*): The name to use when displaying this switch. - **timeout** (*Optional*): Timeout for the connection in seconds. - **write_timeout** (*Optional*): Write timeout in seconds. diff --git a/source/_components/switch.litejet.markdown b/source/_components/switch.litejet.markdown new file mode 100644 index 00000000000..22c4d9d65f5 --- /dev/null +++ b/source/_components/switch.litejet.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "LiteJet Switch" +description: "Instructions how to setup the LiteJet switches within Home Assistant." +date: 2016-10-26 13:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +ha_release: 0.32 +ha_iot_class: "Local Polling" +--- + +To get your LiteJet switches working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/). diff --git a/source/_components/switch.mochad.markdown b/source/_components/switch.mochad.markdown new file mode 100644 index 00000000000..af7d831d061 --- /dev/null +++ b/source/_components/switch.mochad.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Mochad Switch" +description: "Instructions how to integrate X10 Mochad switches into Home Assistant." +date: 2016-10-20 21:13 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +ha_iot_class: depends +ha_release: 0.32 +--- + +The `mochad` switch platform lets you control an X10 enabled switch device. + +To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +switch: + - platform: mochad + devices: + - address: a1 + - address: a5 +``` + +Configuration variables: + +- **address** (*Required*): The X10 address of the switch. +- **name** (*Optional*): The name of the switch. Default is: x10_switch_dev_*address*. + diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown index 43e30200b6e..d4f301149b2 100644 --- a/source/_components/switch.rest.markdown +++ b/source/_components/switch.rest.markdown @@ -28,8 +28,10 @@ Configuration variables: - **resource** (*Required*): The resource or endpoint that contains the value. - **name** (*Optional*): Name of the REST switch. -- **body_on** (*Optional*): The body that represents enabled state. Default is "ON". -- **body_off** (*Optional*):The body that represents disabled state. Default is "OFF". +- **body_on** (*Optional*): The body of the POST request that commands the switch to become enabled. Default is "ON". This value can be a [template](/topics/templating/), which is useful if the POST request needs to depend on the state of the system. For example, to enable remote-temperature-sensor tracking on a radio thermostat, one has to send the current value of the remote temperature sensor. On can achieve this using the template `'{"rem_temp":{{states.sensor.bedroom_temp.state}}}'`. +- **body_off** (*Optional*): The body of the POST request that commands the switch to become disabled. Default is "OFF". This value can also be a template. +- **is_on_template** (*Optional*): A [template](/topics/templating/) that determines the state of the switch from the value returned by the GET request on the resource url. This template should compute to a boolean (True or False). Default is equivalent to `'{% raw %}{{ value.json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches `body_on`. +

Make sure that the URL matches exactly your endpoint or resource. diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown index 7e31df8da39..07f99181e72 100644 --- a/source/_components/switch.rfxtrx.markdown +++ b/source/_components/switch.rfxtrx.markdown @@ -57,7 +57,7 @@ If you need to generate codes for switches you can use a template (usefull for e - Go to home-assistant-IP:8123/dev-template - Use this code to generate a code: ```yaml -0b11000{{ range(0,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}010f70 +{% raw %}0b11000{{ range(0,700) | random | int }}bc0cfe0{{ range(0,10) | random | int }}010f70{% endraw %} ``` - Use this code to add a new switch in your configuration.yaml - Launch your homeassistant and go the website. diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown index cf2cab03b8c..9194054217d 100644 --- a/source/_components/switch.tplink.markdown +++ b/source/_components/switch.tplink.markdown @@ -20,6 +20,7 @@ Supported units: - HS100 - HS110 +- HS200 To use your TPLink switch in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.zoneminder.markdown b/source/_components/switch.zoneminder.markdown index fa757bf2d9f..eee9948d2fd 100644 --- a/source/_components/switch.zoneminder.markdown +++ b/source/_components/switch.zoneminder.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: zoneminder.png ha_category: Switch +ha_release: 0.31 --- diff --git a/source/_components/thermostat.ecobee.markdown b/source/_components/thermostat.ecobee.markdown deleted file mode 100644 index 65683469473..00000000000 --- a/source/_components/thermostat.ecobee.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "Ecobee Thermostat" -description: "Instructions how to setup the Ecobee thermostats within Home Assistant." -date: 2015-11-30 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ecobee.png -ha_category: Deprecated -ha_release: 0.9 ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.ecobee/)" platform and will be removed in the future. Please use the climate platform.** -

- -To get your Ecobee thermostats working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/thermostat.eq3btsmart.markdown b/source/_components/thermostat.eq3btsmart.markdown deleted file mode 100644 index 3715452e9dc..00000000000 --- a/source/_components/thermostat.eq3btsmart.markdown +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: page -title: "EQ3 Bluetooth Smart Thermostats" -description: "Instructions how to integrate EQ3 Bluetooth Smart Thermostats into Home Assistant." -date: 2016-04-18 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: eq3.gif -ha_category: Deprecated -ha_iot_class: "Local Poll" ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.eq3btsmart/)" platform and will be removed in the future. Please use the climate platform.** -

- -This platform allows you to integrate EQ3 Bluetooth Smart Thermostats. - -The only functionality is to set the temperature, there doesn't seem to be any way to query the temperature sensor or battery level ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)). - -Setup is a bit more cumbersome than for most other thermostats. It has to be paired first: - -```bash -bluetoothctl -scan on - -scan off - -pair -trust -disconnect -exit -``` - -Then check with gatttool if the connection works as expected: - -```bash -gatttool -b 00:11:22:33:44:55 -I -[00:11:22:33:44:55][LE]> connect -Attempting to connect to 00:11:22:33:44:55 -Connection successful -[00:11:22:33:44:55][LE]> char-write-req 0x0411 03 -Characteristic value was written successfully -Notification handle = 0x0421 value: 02 01 09 14 04 2d -[00:11:22:33:44:55][LE]> disconnect -[00:11:22:33:44:55][LE]> exit -``` - -Important: For gatttool or homeassistant to work, the thermostat needs to be disconnected from bluetoothd, so I found it best to modify the hass-daemon startscript by adding: - -```bash -/usr/bin/bt-device -d CC-RT-BLE -``` - -to the start function of /etc/init.d/hass-daemon. - - -```yaml -# Example configuration.yaml entry -thermostat: - platform: eq3btsmart - devices: - room1: - mac: '00:11:22:33:44:55' -``` diff --git a/source/_components/thermostat.heat_control.markdown b/source/_components/thermostat.heat_control.markdown deleted file mode 100644 index 4c580183d4b..00000000000 --- a/source/_components/thermostat.heat_control.markdown +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page -title: "Generic Thermostat" -description: "Turn Home Assistant into a thermostat" -date: 2015-03-23 19:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: heat-control.png -ha_category: Deprecated ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.generic_thermostat/)" platform and will be removed in the future. Please use the climate platform.** -

- -Heat Control is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater under the hood. If the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when required temperature is reached. - -```yaml -# Example configuration.yaml entry -thermostat: - platform: heat_control - name: Study - heater: switch.study_heater - target_sensor: sensor.study_temperature - min_temp: 15 - max_temp: 21 - target_temp: 15 - min_cycle_duration: - # At least one of these must be specified: - days: 2 - hours: 1 - minutes: 10 - seconds: 5 - milliseconds: 20 -``` - -Configuration variables: - -- **name** (*Required*): Name of thermostat -- **heater** (*Required*: `entity_id` for heater switch, must be a toggle device. -- **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature. -- **min_temp** (*Optional*): Set minimum set point available (default: 7) -- **max_temp** (*Optional*): Set maximum set point available (default: 35) -- **target_temp** (*Required*): Set intital target temperature. Failure to set this variable will result in target temperature being set to null on startup. -- **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device. -- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on. diff --git a/source/_components/thermostat.heatmiser.markdown b/source/_components/thermostat.heatmiser.markdown deleted file mode 100644 index 8b5fe55835e..00000000000 --- a/source/_components/thermostat.heatmiser.markdown +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: page -title: "Heatmiser Thermostat" -description: "Instructions how to integrate Heatmiser thermostats within Home Assistant." -date: 2015-12-11 12:35 -sidebar: true -comments: false -sharing: true -footer: true -logo: heatmiser.png -ha_category: Deprecated -ha_release: "0.10" ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.heatmiser/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `heatmiser` thermostat platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](http://www.heatmisershop.co.uk/heatmiser-slimline-programmable-room-thermostat/) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP. - -Further work would be required to get this setup to connect over Wifi, but the HeatmiserV3 python module being used is a full implementation of the V3 protocol. If you would like to contribute to making this work over wifi, please contact @andylockran on github. - -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -thermostat: - platform: heatmiser - ipaddress: YOUR_IPADDRESS - port: YOUR_PORT - tstats: - - 1: - id: THERMOSTAT_ID - name: THERMOSTAT_NAME -``` - -A single interface can handle up to 32 connected devices. - -Configuration variables: - -- **ipaddress** (*Required*): The ip address of your interface. -- **port** (*Required*): The port that the interface is listening on. -- **tstats** (*Required*): A list of thermostats activated on the gateway. -- **id** (*Required*): The id of the thermostat as configured on the device itself -- **name** (*Required*): A friendly name for the themostat diff --git a/source/_components/thermostat.honeywell.markdown b/source/_components/thermostat.honeywell.markdown deleted file mode 100644 index 0966bf7c932..00000000000 --- a/source/_components/thermostat.honeywell.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: "Honeywell Thermostat" -description: "Instructions how to integrate Honeywell thermostats within Home Assistant." -date: 2016-02-07 22:01 -sidebar: true -comments: false -sharing: true -footer: true -logo: honeywell.png -ha_category: Deprecated ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.honeywell/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `honeywell` thermostat 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: - -```yaml -thermostat: - platform: honeywell - username: YOUR_USERNAME - password: YOUR_PASSWORD - region: REGION -``` - -Configuration variables: - -- **username** (*Required*: The username of an user with access. -- **password** (*Required*): The password for your given admin account. -- **away_temperature** (*optional*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. -- **region** (*optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided. diff --git a/source/_components/thermostat.knx.markdown b/source/_components/thermostat.knx.markdown deleted file mode 100644 index 4fc19252eb8..00000000000 --- a/source/_components/thermostat.knx.markdown +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: page -title: "KNX Thermostat" -description: "Instructions on how to integrate KXN thermostats with Home Assistant." -date: 2016-06-24 12:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: knx.png -ha_category: Deprecated -ha_release: 0.25 ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.knx/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `knx` thermostat platform is used as in interface with KNX thermostats. - -KNX thermostats use at least 2 group addresses: one for the current temperature and one for the target temperature (named set-point in KNX terms). - -To use your KNX thermostats in your installation, add the following to your `configuration.yaml` file: - -```yaml -thermostat: - - platform: knx - name: KNX Thermostat - temperature_address: 0/1/1 - setpoint_address: 0/1/0 -``` - -- **name** (*Optional*): A name for this devices used within Home assistant -- **address** (*Required*): The KNX group address that is used to turn on/off this actuator channel -- **temperature_address** (*Required*): The group address that is used to communicate the current temperature. Data format must be datapoint type 9.001 DPT_Value_Temp (2-Octet float value) (see http://www.knx.org/fileadmin/template/documents/downloads_support_menu/KNX_tutor_seminar_page/Advanced_documentation/05_Interworking_E1209.pdf) -- **setpoint_address** (*Required*): The group address that is used to set/read the target temperature. Data format must be datapoint type 9.001 DPT_Value_Temp (2-Octet float value). Make sure, you set the read-flag for the thermostat to allow Home Assistant to read the target temperature. - -With the current version of the module, no advanced KNX thermostat functionalities (e.g. HVAC mode) are supported. diff --git a/source/_components/thermostat.markdown b/source/_components/thermostat.markdown deleted file mode 100644 index 5a2e618b00f..00000000000 --- a/source/_components/thermostat.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: page -title: "Thermostats" -description: "Instructions how to setup thermostats tracking within Home Assistant." -date: 2015-01-20 22:36 -sidebar: true -comments: false -sharing: true -footer: true ---- - -

-**This component has been deprecated in favor of the "[climate](/components/climate/)" component and will be removed in the future. Please use climate.** -

- -Thermostats offer Home Assistant a peek into the current and target temperature in a house. Some thermostats will also offer an away mode that will lower use of heating/cooling. - -

- -

diff --git a/source/_components/thermostat.nest.markdown b/source/_components/thermostat.nest.markdown deleted file mode 100644 index 0f6092393cd..00000000000 --- a/source/_components/thermostat.nest.markdown +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: "Nest Thermostat" -description: "Instructions how to integrate Nest thermostats within Home Assistant." -date: 2015-03-23 19:59 -sidebar: true -comments: false -sharing: true -footer: true -logo: nest_thermostat.png -ha_category: Deprecated ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.nest/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `nest` thermostat platform let you control a thermostat from [Nest](https://nest.com). - -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -thermostat: - platform: nest -``` - -

- -

- -

You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.

diff --git a/source/_components/thermostat.proliphix.markdown b/source/_components/thermostat.proliphix.markdown deleted file mode 100644 index bd37e067a34..00000000000 --- a/source/_components/thermostat.proliphix.markdown +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: page -title: "Proliphix Thermostat" -description: "Instructions how to integrate Proliphix thermostats within Home Assistant." -date: 2016-01-15 08:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: proliphix.png -ha_category: Deprecated -ha_release: 0.11 ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.proliphix/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `proliphix` thermostat platform let you control [Proliphix](http://www.proliphix.com) thermostat from Home Assistant. - -Currently supported and tested thermostats: - -- NT10e - -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -thermostat: - platform: proliphix - host: IP_ADDRESS - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -Configuration variables: - -- **host** (*Required*): Adress of your thermostat, eg. 192.168.1.32 -- **username** (*Required*): Username for the thermostat. -- **password** (*Required*): Password for the thermostat. - -The Proliphix NT Thermostat series are ethernet connected thermostats. They have a local HTTP interface that is based on get/set -of OID values. A complete collection of the API is available in this [API documentation](https://github.com/sdague/thermostat.rb/blob/master/docs/PDP_API_R1_11.pdf). - diff --git a/source/_components/thermostat.radiotherm.markdown b/source/_components/thermostat.radiotherm.markdown deleted file mode 100644 index 5919915ed03..00000000000 --- a/source/_components/thermostat.radiotherm.markdown +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: page -title: "Radiotherm Thermostat" -description: "Instructions how to integrate Radiotherm thermostats within Home Assistant." -date: 2015-10-18 17:15 -sidebar: true -comments: false -sharing: true -footer: true -logo: radiotherm.png -ha_category: Deprecated ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.radiotherm/)" platform and will be removed in the future. Please use the climate platform.** -

- -The `radiotherm` thermostat platform let you control a thermostat from [Radio Thermostat](http://www.radiothermostat.com/). - -The underlaying library supports: -- CT50 V1.09 -- CT50 V1.88 -- CT50 V1.94 (also known as Filtrete 3M50) -- CT80 Rev B2 V1.03 - -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -thermostat: - platform: radiotherm - host: - - 192.168.99.137 - - 192.168.99.202 - hold_temp: True -``` - -Configuration variables: - -- **host** (*Required*): List of your Radiotherm thermostats -- **hold_temp** (*Required*): Boolean to control if Home Assistant temperature adjustments hold (`True`) or are temporary (`False`). - -Temperature settings from Home Assistant will be sent to thermostat and then hold at that temperature. Set to `False` if you set a thermostat schedule on the thermostat itself and just want Home Assistant to send temporary temperature changes. - diff --git a/source/_components/thermostat.zwave.markdown b/source/_components/thermostat.zwave.markdown deleted file mode 100644 index 8be1479fedd..00000000000 --- a/source/_components/thermostat.zwave.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: "Z-Wave Thermostat" -description: "Instructions how to setup the Z-Wave thermostat within Home Assistant." -date: 2016-04-03 9:52 -sidebar: true -comments: false -sharing: true -footer: true -logo: z-wave.png -ha_category: Deprecated -ha_release: 0.17 ---- - -

-**This platform has been deprecated in favor of a "[climate](/components/climate.zwave/)" platform and will be removed in the future. Please use the climate platform.** -

- -To get your Z-Wave thermostat working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). - -

-If your thermostat support fan modes or different operating modes, it should be considered a [HVAC component](/components/hvac.zwave/), and will also be detected as one. Thermostat component does not support setting fan or operation mode. This is controlled via the HVAC component. - -If the thermostat support different operationg modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file. -

diff --git a/source/_components/thingspeak.markdown b/source/_components/thingspeak.markdown new file mode 100644 index 00000000000..e0409dc36d3 --- /dev/null +++ b/source/_components/thingspeak.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "ThingSpeak" +description: "Record one entity in ThingSpeak" +date: 2016-10-24 15:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "History" +ha_release: 0.32 +--- + +The `thingspeak` components makes Home Assistant communicate with the [ThingSpeak API](https://thingspeak.com/). +For now, it records exactly one entity at once, which is great for testing purposes. For long-time storage you should rely +on the [InfluxDB component](https://home-assistant.io/components/influxdb/). + +You will have to create a [new channel](https://thingspeak.com/channels/new) on ThingSpeak and grab your API key from your [account page](https://thingspeak.com/account). + +To setup the ThinkSpeak component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +thingspeak: + api_key: MY_API_KEY + id: 1337 + whitelist: sensor.yr_temperature +``` + +Configuration variables: + +- **api_key** (*Required*): Yout ThingSpeak API key. +- **id** (*Required*): The ID of your desired ThingSpeak channel. +- **whitelist** (*Required*): The name of the entity whose states should be sent to the channel. + diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown new file mode 100644 index 00000000000..cb6b290d278 --- /dev/null +++ b/source/_components/weather.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Weather" +description: "Instructions how to setup your Weather platforms with Home Assistant." +date: 2016-09-28 14:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +The `weather` platforms are gathering meteorological information from web services and displays the conditions and other details about the weather at the given location. + +Home Assistant currently supports free web services and such which requires a registration. Please check the sidebar for a full list of supported `weather` platforms. + + diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown new file mode 100644 index 00000000000..0fe9383d56a --- /dev/null +++ b/source/_components/weather.openweathermap.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "OpenWeatherMap" +description: "Instructions how to integrate OpenWeatherMap within Home Assistant." +date: 2016-09-29 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: openweathermap.png +ha_category: Weather +ha_release: 0.32 +--- + +The `openweathermap` weather platform uses [OpenWeatherMap](http://openweathermap.org/) as an source for current meteorological data for your location. + +You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up). + +To add OpenWeatherMap to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +weather: + - platform: openweathermap + api_key: YOUR_API_KEY + latitude: 46.1234 + longitude: 7.1234 +``` + +Configuration variables: + +- **api_key** (*Required*): Your API key for http://openweathermap.org/. +- **latitude** (*Optional*): Latitude of the location to display the weather. Defaults to the latitude in your your `configuration.yaml` file. +- **longitude** (*Optional*): Longitude of the location to display the weather. Defaults to the longitude in your `configuration.yaml` file. + +

+This platform is an alternative to the [`openweathermap`](/components/sensor.openweathermap/) sensor. +

diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index 066f45b4f8a..353f2691d92 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -57,8 +57,8 @@ Devices that are in the zone **'Home'** will not appear on the map in the Home A #### {% linkable_title Icons %} -It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. +It is preferred to pick an icon to use for your zone. Pick any icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. #### State -`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state, all configured zones are `zoning` all the time +`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state, all configured zones are `zoning` all the time. diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown index 32aa596c8d4..7b38caaddee 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -10,6 +10,7 @@ footer: true logo: zoneminder.png ha_category: Camera featured: false +ha_release: 0.31 --- The ZoneMinder component is the main component to integrate all the sensors and switches for controlling your ZoneMinder instance. @@ -18,14 +19,23 @@ The ZoneMinder component is the main component to integrate all the sensors and # Example configuration.yaml entry zoneminder: host: ZM_HOST - path: ZM_PATH - username: USERNAME - password: PASSWORD ``` Configuration variables: - **host** (*Required*): Your ZoneMinder server. -- **path** (*Optional*): Path to your ZoneMinder install (default: /zm/) +- **path** (*Optional*): Path to your ZoneMinder install. Defaults to `/zm/`. +- **ssl** (*Optional*): Set to `True` if your ZoneMinder installation is using SSL. Default to `False`. - **username** (*Optional*): Your ZoneMinder username. - **password** (*Optional*): Your ZoneMinder password. +### {% linkable_title Full configuration %} + +```yaml +# Example configuration.yaml entry +zoneminder: + host: ZM_HOST + path: ZM_PATH + ssl: False + username: USERNAME + password: PASSWORD +``` diff --git a/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown b/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown new file mode 100644 index 00000000000..676c348828f --- /dev/null +++ b/source/_posts/2016-11-05-hacktoberfest-influxdb-weather.markdown @@ -0,0 +1,151 @@ +--- +layout: post +title: "0.32: Hacktoberfest, InfluxDB sensor, Error reporting, and Weather" +description: "Hacktoberfest is over, new InfluxDB sensor, CUPS sensor, and ThingSpeak." +date: 2016-11-05 03:04:05 +0000 +date_formatted: "November 05, 2016" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: Release-Notes +--- + + +Another two weeks have passed and we are pleased to present Home Assistant 0.32. + +### {% linkable_title Hacktoberfest %} +The [Hacktoberfest] is over now. Home Assistant made the 2nd and the 3rd place out of almost 30'000 participating repositories with a total of 528 pull requests closed - that's an average of 17 pull requests a day! Thanks to all the contributors but also to the team of reviewers. This wouldn't been possible without you 👏 . + +### {% linkable_title Improved error reporting %} +This release has improved the reporting when a config validation error occurs. Thanks to [@kellerza] you will now get a persistent notification added to your UI when this happens. + +### {% linkable_title Asynchronous %} +This release contains the first asynchronous sensor and camera platforms. [@pvizeli] and [@fabaff] ported most of the "internal" sensors to async programming. We hope that you will enjoy the new speed. + +[@balloob] and [@pvizeli] worked a lot on the improvement of the core itself. + +### {% linkable_title Weather component %} + +For a long time we have had a bunch of [weather sensors][weather-sensors] but it's getting better: There is now a [Weather component][weather-component]. Sorry, not much more to tell right now. The plans are to create a weather UI element and to improve the initial implementation. + +### {% linkable_title All changes %} + + + +- Config: Exclude dirs/files prefixed with . ([@lwis]) +- Add mochad component ([@mtreinish]) +- Notify: Added support for [Android TV/FireTV](https://home-assistant.io/components/notify.nfandroidtv/) ([@danielperna84]) +- HTTP: Migrate WSGI to asyncio ([@balloob]) +- Configurator: Support for `entity_picture` ([@amills]) +- Core: Configuration validation error prints line numbers ([@persandstrom]) +- Media player: [Sonos] improvements incl. timer setting functionality ([@bjarniivarsson], [@americanwookie]) +- Zoneminder: SSL/TLS support ([@Khabi]) +- Media player: Discovery support for [Yamaha] ([@sdague]) +- Sensor: New finance platform [CurrencyLayer][currencylayer] ([@arsaboo]) +- Sensor: Support for [InfluxDB sensors][influx-sensor] ([@bestlibre]) +- Sensor: New support [HDDTemp sensors][hddtemp-sensor] ([@fabaff]) +- Camera: Improvements to [RPi camera][rpi-camera] ([@postlund]) +- [ThingSpeak][thingspeak] component ([@simonszu]) +- Core: New property `hass.data` to store internal data ([@balloob]) +- Switch: Templating and configurable timeout for [REST][rest-switch] ([@aa755]) +- Light: [Yeelight][yeelight] Wifi bulbs are now supported ([@HydrelioxGitHub]) +- Sensor: New [random number][random-sensor] sensor ([@fabaff]) +- Media player: New support for [Emby][emby-media] ([@mezz64]) +- [LiteJet][litejet] switches and lights support ([@joncar]) +- Cover: New [garadget] platform ([@JasonCarter80]) +- Pilight: `send_delay` feature ([@janLo]) +- Config: Improvements for `known_devices` ([@kellerza]) +- Device tracker: New discovered event ([@lwis]) +- Device tracker: Improvements and new features for the Volvo on Call platform ([@molobrakos]) +- Climate: Use unit of measurement from a Vera device ([@pavoni]) +- Media player: [Philips TVs][philips_player] with jointSPACE API re now supported ([@danielperna84]) +- Device tracker: [ICloud][icloud] improvements ([@Bart274]) +- Sensor: Support for [Synology DSM][synologydsm] ([@StaticCube]) +- Sensor: Monitoring support for [Dovado routers][dovado-sensor] ([@molobrakos]) +- Sensor: Support for monitoring [printers][cups-sensor] ([@fabaff]) +- Minor features and bug fixes by [@fabaff], [@kellerza], [@robbiet480], [@balloob], [@DavidLP], [@Bart274], [@sdague], [@mtreinish], [@Khabi], [@bbesset], [@bestlibre], [@pvizeli], [@turbokongen], [@devdelay], [@molobrakos], [@postlund], [@wokar], [@amills], [@arsaboo], [@hartmms], [@nsideras], [@tbeckha], and [@kirichkov]. + +### {% linkable_title Misc %} + +Our website has now an additional category called "Ecosystem". This will become the place where tools, apps, and other helper for the Home Assistant ecosystem can store their documentation or guides. + +- [iOS](https://home-assistant.io/ecosystem/ios/) +- [SceneGen](https://home-assistant.io/ecosystem/scenegen/) + +### {% linkable_title Breaking changes %} + +- The [Yahoo Finance][yahoo] platform supports now multiple stock. Please adjust your configuration. +- Deprecated components `garage_door`, `rollershutter`, `thermostat`, and `hvac` have been removed. +- The minimum Python version on Windows has been bumped to Python 3.5. +- The Insteon Hub integration has been disabled due to a [request from Insteon][req-insteon]. + +### {% 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). The release notes have comments enabled but it's preferred if you the former communication channels. Thanks. + +[@aa755]: https://github.com/aa755 +[@americanwookie]: https://github.com/americanwookie +[@amills]: https://github.com/armills +[@arsaboo]: https://github.com/arsaboo +[@balloob]: https://github.com/balloob +[@Bart274]: https://github.com/Bart274 +[@bbesset]: https://github.com/bbesset +[@bestlibre]: https://github.com/bestlibre +[@bjarniivarsson]: https://github.com/bjarniivarsson +[@danielperna84]: https://github.com/danielperna84 +[@DavidLP]: https://github.com/DavidLP +[@devdelay]: https://github.com/devdelay +[@fabaff]: https://github.com/fabaff +[@hartmms]: https://github.com/hartmms +[@HydrelioxGitHub]: https://github.com/HydrelioxGitHub +[@janLo]: https://github.com/janLo +[@JasonCarter80]: https://github.com/JasonCarter80 +[@joncar]: https://github.com/joncar +[@kellerza]: https://github.com/kellerza +[@Khabi]: https://github.com/Khabi +[@kirichkov]: https://github.com/kirichkov +[@lwis]: https://github.com/lwis +[@mezz64]: https://github.com/mezz64 +[@molobrakos]: https://github.com/molobrakos +[@mtreinish]: https://github.com/mtreinish +[@nsideras]: https://github.com/nsideras +[@pavoni]: https://github.com/pavoni +[@persandstrom]: https://github.com/persandstrom +[@postlund]: https://github.com/postlund +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@sdague]: https://github.com/sdague +[@simonszu]: https://github.com/simonszu +[@StaticCube]: https://github.com/StaticCube +[@tbeckha]: https://github.com/tbeckha +[@tchellomello]: https://github.com/tchellomello +[@turbokongen]: https://github.com/turbokongen +[@wokar]: https://github.com/wokar + +[currencylayer]: https://home-assistant.io/components/sensor.currencylayer/ +[yahoo]: https://home-assistant.io/components/sensor.yahoo_finance/ +[mochat]: https://home-assistant.io/components/mochat/ +[firetv]: https://home-assistant.io/components/notify.firetv/ +[Yamaha]: https://home-assistant.io/components/media_player.yamaha/ +[hddtemp-sensor]: https://home-assistant.io/components/sensor.hddtemp/ +[Sonos]: https://home-assistant.io/components/media_player.sonos/ +[weather-sensors]: https://home-assistant.io/components/#weather +[rpi-camera]: https://home-assistant.io/components/camera.rpi_camera/ +[rest-switch]: https://home-assistant.io/components/switch.rest/ +[emby-media]: https://home-assistant.io/components/media_player.emby/ +[random-sensor]: https://home-assistant.io/components/sensor.random/ +[yeelight]: https://home-assistant.io/components/light.yeelight/ +[influx-sensor]: https://home-assistant.io/components/sensor.influxdb/ +[weather-component]: https://home-assistant.io/components/weather/ +[cups-sensor]: https://home-assistant.io/components/sensor.cups/ +[litejet]: https://home-assistant.io/components/litejet/ +[garadget]: https://home-assistant.io/components/garadget/ +[philips_player]: https://home-assistant.io/components/media_player.philips_js/ +[icloud]: https://home-assistant.io/components/device_tracker.icloud/ +[synologydsm]: https://home-assistant.io/components/sensor.synologydsm/ +[dovado-sensor]: https://home-assistant.io/components/sensor.dovado/ +[ios]: https://home-assistant.io/ecosystem/ios/ +[Hacktoberfest]: https://hacktoberfest.digitalocean.com/ +[req-insteon]: https://github.com/home-assistant/home-assistant/issues/3811 +[updater]: https://home-assistant.io/blog/2016/10/25/explaining-the-updater/ +[thingspeak]: https://home-assistant.io/components/thingspeak/ diff --git a/source/_topics/group_visibility.markdown b/source/_topics/group_visibility.markdown new file mode 100644 index 00000000000..64b01be9e78 --- /dev/null +++ b/source/_topics/group_visibility.markdown @@ -0,0 +1,179 @@ +--- +layout: page +title: "Group Visibility" +description: "Instructions how to change group visibility using automations." +date: 2016-10-29 13:00 +sidebar: false +comments: false +sharing: true +footer: true +--- + +After filling Home Assistant with all your precious home automation devices, you usually end up with a cluttered interface and lots of groups that are not interesting in your current context. What if you just want to show groups that are interesting _now_ and hide the rest? That's when group visibility comes to play. + +## {% linkable_title Changing visibility of a group %} + +To change visibility of a group, use the service `group.set_visibility`, pass the group name as `entity_id` and use `visible` to decide wheter the group should be shown or hidden. + +```yaml +service: group.set_visibility +entity_id: group.basement +data: + visible: False +``` + +

+If a sensor belongs to only one group and that group is hidden, the sensor will "jump" to the top of the web interface. Add the sensor to an additional (visible) group if you do not want this to happen. +

+ +## {% linkable_title Automations %} + +First you should decide under which circumstances a group should be visible or not. Depending on the complexity, you might have to write two automations: one that hides the group and another that shows it. + +In this example, the group `group.basement` is hidden when the sun sets and shown again when it rises: + +```yaml +automation: + trigger: + platform: sun + event: sunset + action: + service: group.set_visibility + entity_id: group.basement + data: + visible: False + +automation 2: + trigger: + platform: sun + event: sunrise + action: + service: group.set_visibility + entity_id: group.basement + data: + visible: True +``` + +## {% linkable_title Easier automations %} + +One of the most common uses cases are to show groups during certain times of day, maybe commuting information durig a work day morning or light switches when it is getting dark. The complexity of automations needed to make this happen will quickly get out of hands. So, one way to make the automations easier is to create a sensor that alters its state depending on time of day. One way of doing that is using a `command_line` sensor and a script: + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from datetime import time, datetime + +def mk_occasion(name, start, end, days=None): + s = start.split(':') + e = end.split(':') + return {'name' : name, + 'start': time(int(s[0]), int(s[1]), int(s[2])), + 'end' : time(int(e[0]), int(e[1]), int(e[2])), + 'days' : days} + +# Matching is done from top to bottom +OCCASIONS = [ + # More specific occasions + mk_occasion('work_morning', '06:00:00', '07:10:00', range(5)), + + # General matching + mk_occasion('weekday', '00:00:00', '23:59:59', range(5)), + mk_occasion('weekend', '00:00:00', '23:59:59', [5, 6]) +] + +def get_current_occasion(occasion_list, default_occasion='normal'): + now = datetime.now() + for occasion in OCCASIONS: + if occasion['start'] <= now.time() <= occasion['end'] and \ + (occasion['days'] is None or now.weekday() in occasion['days']): + return occasion['name'] + return default_occasion + +if __name__ == '__main__': + print(get_current_occasion(OCCASIONS)) +``` + +This script will output "work_morning" from 06:00-07:10 during weekdays (monday-friday), "weekday" during all other time from monday-friday and "weekend" on saturdays and sundays. Adjust according to your needs. To create the sensor, just add it like this: + +```yaml +sensor: + - platform: command_line + name: Occasion + command: "python3 occasion.py" +``` + +To simplify things, we create a Home Assistant script that change visibility of a group but also verifies that an entity is in a specific state: + +```yaml +script: + group_visibility: + sequence: + - service: group.set_visibility + data_template: + entity_id: '{% raw %}{{ entity_id }}{% endraw %}' + visible: '{% raw %}{{ is_state(cond, visible_state) }}{% endraw %}' +``` + +The last part is writing an automation that hides or shows the group: + +```yaml +automation: + - alias: Work morning + trigger: + - platform: state + entity_id: sensor.occasion + - platform: event + event_type: homeassistant_start + action: + service: script.group_visibility + data: + entity_id: group.work_sensors + cond: sensor.occasion + visible_state: 'work_morning' +``` + +Our previously defined script will be called if `sensor.occasion` changes state OR when Home Assistant has started. The group `group.work_sensors` will be shown when `sensor.occasion` changes state to "work_morning" and hidden otherwise. + +### {% linkable_title The complete example %} + +```yaml +group: + default_view: + entities: + - group.work_sensors + + # Only visible when it's time to go to work + work_sensors: + name: Time to go to work + entities: + - sensor.something1 + - sensor.something2 + +sensor: + - platform: command_line + name: Occasion + command: "python3 occasion.py" + +script: + group_visibility: + sequence: + - service: group.set_visibility + data_template: + entity_id: '{% raw %}{{ entity_id }}{% endraw %}' + visible: '{% raw %}{{ is_state(cond, visible_state) }}{% endraw %}' + +automation: + - alias: Work morning + trigger: + - platform: state + entity_id: sensor.occasion + - platform: event + event_type: homeassistant_start + action: + service: script.group_visibility + data: + entity_id: group.work_sensors + cond: sensor.occasion + visible_state: 'work_morning' +``` \ No newline at end of file diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index ddc66778263..7623fd22fa5 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -19,6 +19,17 @@ This page contains a list of people who have contributed in one way or another t (in alphabetical order) +- [Jon Caruana](https://github.com/joncar) +- [Jan Losinski](https://github.com/janLo) +- [Ferry van Zeelst](https://github.com/StaticCube) +- []() +- []() +- []() +- []() +- []() +- []() +- []() +- [Abhishek Anand](https://github.com/aa755) - [Adam Mills](https://github.com/armills) - [Adrien Brault](https://github.com/adrienbrault) - [Alexander Fortin](https://github.com/shaftoe) @@ -40,6 +51,8 @@ This page contains a list of people who have contributed in one way or another t - [Azelphur](https://github.com/Azelphur) - [Bart274](https://github.com/Bart274) - [Ben Bangert](https://github.com/bbangert) +- [bestlibre](https://github.com/bestlibre) +- [Bjarni Ivarsson](https://github.com/bjarniivarsson) - [blackdog70](https://github.com/blackdog70) - [Brad Buran](https://github.com/bburan) - [Brad Johnson](https://github.com/bradsk88) @@ -112,6 +125,7 @@ This page contains a list of people who have contributed in one way or another t - [James Cole](https://github.com/jamespcole) - [Jan Harkes](https://github.com/jaharkes) - [Jan-Preben Mossin](https://github.com/jpmossin) +- [Jared Beckham](https://github.com/tbeckha) - [Jaret Stezelberger](https://github.com/DesignFirst) - [Jason Carter](https://github.com/JasonCarter80) - [Jean-Philippe Bouillot](https://github.com/Jypy) @@ -124,6 +138,7 @@ This page contains a list of people who have contributed in one way or another t - [Joel Asher Friedman](https://github.com/joelash) - [Joe McMonagle](https://github.com/joemcmonagle) - [John Arild Berentsen](https://github.com/turbokongen) +- [John](https://github.com/mezz64) - [John Lindley](https://github.com/jwl17330536) - [John McLaughlin](https://github.com/loghound) - [John Williams](https://github.com/Jaidan) @@ -187,6 +202,7 @@ This page contains a list of people who have contributed in one way or another t - [Pascal Vizeli](https://github.com/pvizeli) - [Per Sandström](https://github.com/persandstrom) - [Philip Lundrigan](https://github.com/philipbl) +- [Pierre Ståhl](https://github.com/postlund) - [Piratonym](https://github.com/Piratonym) - [Rev Michael Greb](https://github.com/mikegrb) - [rhooper](https://github.com/rhooper) diff --git a/source/developers/development.markdown b/source/developers/development.markdown index a926ff185bb..e763b8a54f8 100644 --- a/source/developers/development.markdown +++ b/source/developers/development.markdown @@ -11,9 +11,22 @@ footer: true Home Assistant is built from the ground up to be easily extensible using components. Home Assistant uses [Python 3](https://www.python.org/) for the backend and [Polymer (Web components)](https://www.polymer-project.org/) for the frontend. -Home Assistant is open-source and MIT-licensed. Here are links to the source:: +Home Assistant is open-source and MIT-licensed. Here are links to the source: - [home-assistant](https://github.com/home-assistant/home-assistant): Python server backend. - [home-assistant-js](https://github.com/home-assistant/home-assistant-js): JavaScript backend that powers the client. - [home-assistant-polymer](https://github.com/home-assistant/home-assistant-polymer): Polymer UI. +For those new to contributing to open source software, make sure you are familiar with all of the tools and concepts used in Home Assistant before you start. + +When contributing Home Assistant code: + - [Github](https://guides.github.com/activities/hello-world/) + - [Pip and Virtual Environments](https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/) + - [Python 3](https://www.python.org/) + - [Pylint](https://www.pylint.org) + - [Flake8](http://flake8.pycqa.org/en/latest/) + - [Tox](http://tox.readthedocs.org/en/latest/) + - [TravisCl](https://travis-ci.org/) + +When contributing 3rd Party code to be used by Home Assistant: + - [Publishing your own PiPl package](https://jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/) \ No newline at end of file diff --git a/source/developers/development_submitting.markdown b/source/developers/development_submitting.markdown index d72120f75ec..58e60ca5137 100644 --- a/source/developers/development_submitting.markdown +++ b/source/developers/development_submitting.markdown @@ -11,7 +11,7 @@ footer: true Submit your improvements, fixes, and new features to Home Assistant one at a time, using GitHub [Pull Requests](https://help.github.com/articles/using-pull-requests). Here are the steps: - 1. From your fork, create a new branch to hold your changes: + 1. From your fork's dev branch, create a new branch to hold your changes: `git checkout -b some-feature` diff --git a/source/developers/development_testing.markdown b/source/developers/development_testing.markdown index 2a777ea16e1..713f3830a9c 100644 --- a/source/developers/development_testing.markdown +++ b/source/developers/development_testing.markdown @@ -45,7 +45,7 @@ $ py.test tests/test_core.py You can also run linting tests against all changed files, as reported by `git diff upstream/dev --name-only`, using the `lint` script: ```bash -home-assistant$ script/lint --changed +$ script/lint --changed ``` ### {% linkable_title Preventing Linter Errors %} diff --git a/source/getting-started/automation-templating.markdown b/source/getting-started/automation-templating.markdown index b9b3ca2a627..b8dd9e8c195 100644 --- a/source/getting-started/automation-templating.markdown +++ b/source/getting-started/automation-templating.markdown @@ -37,6 +37,19 @@ automation 2: message: {% raw %}{{ trigger.payload }}{% endraw %} ``` +## {% linkable_title Important Template Rules %} + +There are a few very important rules to remember when writing automation templates: + +1. You ***must*** use `data_template` in place of `data` when using templates in the `data` section of a service call. +1. You ***must*** use `service_template` in place of `service` when using templates in the `service` section of a service call. +1. You ***must*** surround single-line templates with double quotes (`"`) or single quotes (`'`). +1. It is advised that you prepare for undefined variables by using `if ... is not none` or the [`default` filter](http://jinja.pocoo.org/docs/dev/templates/#default), or both. +1. It is advised that when comparing numbers, you convert the number(s) to a [`float`](http://jinja.pocoo.org/docs/dev/templates/#float) or an [`int`](http://jinja.pocoo.org/docs/dev/templates/#int) by using the respective [filter](http://jinja.pocoo.org/docs/dev/templates/#list-of-builtin-filters). +1. While the [`float`](http://jinja.pocoo.org/docs/dev/templates/#float) and [`int`](http://jinja.pocoo.org/docs/dev/templates/#int) filters do allow a default fallback value if the conversion is unsuccessful, they do not provide the ability to catch undefined variables. + +Remembering these simple rules will help save you from many headaches and endless hours of frustration when using automation templates. + ## {% linkable_title Available Trigger Data %} The following tables show the available trigger data per platform. diff --git a/source/getting-started/devices.markdown b/source/getting-started/devices.markdown index e955391bfc5..a7eb3e82eff 100644 --- a/source/getting-started/devices.markdown +++ b/source/getting-started/devices.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Home Assistant will be able to automatically discover a bunch of devices and services available on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default). +Home Assistant will be able to automatically discover many devices and services available on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (the default setting). See the [components overview page](/components/) to find installation instructions for your devices and services. If you can't find support for your favorite device or service, [consider adding support](/developers/add_new_platform/). @@ -53,7 +53,7 @@ camera 2: ### {% linkable_title Grouping devices %} -Once you have a bunch of devices set up, it is time to organize them into groups. +Once you have several devices set up, it is time to organize them into groups. Each group consists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the Set State page in the Developer Tools (![<>](https://cdn.rawgit.com/Templarian/MaterialDesign/master/icons/svg/code-tags.svg)). ```yaml diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index bb669e27781..3665b8b1224 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -9,11 +9,11 @@ sharing: true footer: true --- -Below you can find the standard instructions. See the sidebar for installation instructions for specific platforms. If you're running a Linux-based platform, we suggest you to follow the [VirtualEnv Linux instructions] to avoid using root. +Below you can find the standard instructions. See the sidebar for installation instructions for specific platforms. If you're running a Linux-based platform, we suggest you follow the [VirtualEnv Linux instructions] to avoid using root. [Virtualenv Linux instructions]: /getting-started/installation-virtualenv/ -Installing and running Home Assistant on your local machine is easy. Make sure you have [Python 3.4 or higher](https://www.python.org/downloads/) installed and execute the following code in a console: +Installing and running Home Assistant on your local machine is easy. The only requirement is that you have [Python](https://www.python.org/downloads/) installed. For Windows we require at least Python 3.5 and for other operating systems at least Python 3.4.2. Once installed, execute the following code in a console: ```bash $ pip3 install homeassistant diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index 192168d45d1..38cd1e5f143 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -13,7 +13,7 @@ footer: true We care about privacy. Collected data is only stored in your instance of Home Assistant.

-Presence detection detects if people are home, an important input for automation. The most important piece of information is to know if anyone is home. But knowing who is home or where they are will open a whole range of other automation options: +Presence detection detects if people are home, which is the most important input for automation. Knowing who is home or where they are will open a whole range of other automation options: - Send me a notification when my child arrives at school - Turn on the AC when I leave work @@ -27,12 +27,12 @@ Screenshot of Home Assistant showing a school, work and home zone and two people The device tracker component offers presence detection for Home Assistant. It supports two different methods for presence detection: scan for connected devices on the local network and connect to third party service. -Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations however, it will only be able to detect if a device is home. It also struggles with iPhones because they disconnect from WiFi if idle, marking them as not home when they actually are. +Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations, however: it will only be able to detect if a device is home, and iPhones may show as not home inaccurately (as iPhones disconnect from WiFi if idle). -Home Assistant currently supports two third party services for presence detection: [OwnTracks][ha-owntracks] and [Locative][ha-locative]. OwnTracks is an app that you install on your iPhone or Android phone that allows you to push the location of your device to Home Assistant using an MQTT broker. An MQTT broker is an Internet of Things communication platform that you can [freely host yourself][mqtt-self] or get [a private instance for free in the cloud](/components/mqtt/#run-your-own). +Home Assistant currently supports two third-party services for presence detection: [OwnTracks][ha-owntracks] and [Locative][ha-locative]. OwnTracks is an app that you install on your iPhone or Android phone that allows you to push the location of your device to Home Assistant using an MQTT broker. An MQTT broker is an Internet of Things communication platform that you can [freely host yourself][mqtt-self] or get [a private instance for free in the cloud](/components/mqtt/#run-your-own).

-OwnTracks communicates directly with your MQTT broker, no data will pass through their servers. +OwnTracks communicates directly with your MQTT broker; no data will pass through their servers.

### {% linkable_title Zones %} diff --git a/source/images/screenshots/cups-sensor.png b/source/images/screenshots/cups-sensor.png new file mode 100644 index 00000000000..b86af326c8a Binary files /dev/null and b/source/images/screenshots/cups-sensor.png differ diff --git a/source/images/supported_brands/cups.png b/source/images/supported_brands/cups.png new file mode 100644 index 00000000000..d3e37abc6ae Binary files /dev/null and b/source/images/supported_brands/cups.png differ diff --git a/source/images/supported_brands/currencylayer.png b/source/images/supported_brands/currencylayer.png new file mode 100644 index 00000000000..93fe98e6a37 Binary files /dev/null and b/source/images/supported_brands/currencylayer.png differ diff --git a/source/images/supported_brands/emby.png b/source/images/supported_brands/emby.png new file mode 100644 index 00000000000..a6c51ff23d3 Binary files /dev/null and b/source/images/supported_brands/emby.png differ diff --git a/source/images/supported_brands/garadget_logo.jpg b/source/images/supported_brands/garadget_logo.jpg new file mode 100644 index 00000000000..6465496d031 Binary files /dev/null and b/source/images/supported_brands/garadget_logo.jpg differ diff --git a/source/images/supported_brands/nfandroidtv.png b/source/images/supported_brands/nfandroidtv.png new file mode 100644 index 00000000000..043aa2d5e56 Binary files /dev/null and b/source/images/supported_brands/nfandroidtv.png differ diff --git a/source/images/supported_brands/philips.png b/source/images/supported_brands/philips.png new file mode 100644 index 00000000000..5bb29fee30c Binary files /dev/null and b/source/images/supported_brands/philips.png differ diff --git a/source/images/supported_brands/synologydsm.png b/source/images/supported_brands/synologydsm.png new file mode 100644 index 00000000000..9c007a08766 Binary files /dev/null and b/source/images/supported_brands/synologydsm.png differ diff --git a/source/images/supported_brands/yeelight.png b/source/images/supported_brands/yeelight.png new file mode 100644 index 00000000000..27c7c9a86a5 Binary files /dev/null and b/source/images/supported_brands/yeelight.png differ