diff --git a/README.markdown b/README.markdown index f290a931746..728fc3c4a93 100644 --- a/README.markdown +++ b/README.markdown @@ -1,6 +1,6 @@ [](https://discord.gg/CxqDrfU) [](https://travis-ci.org/home-assistant/home-assistant.github.io) -[](http://www.krihelinator.xyz) +[](http://www.krihelinator.xyz) [](https://creativecommons.org/licenses/by-nc-sa/4.0/) # Home Assistant website diff --git a/_config.yml b/_config.yml index 7ff89f2d248..0b462885387 100644 --- a/_config.yml +++ b/_config.yml @@ -141,14 +141,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 80 -current_patch_version: 3 -date_released: 2018-10-18 +current_minor_version: 81 +current_patch_version: 0 +date_released: 2018-10-29 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0803---october-18" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_components/alarm_control_panel.simplisafe.markdown b/source/_components/alarm_control_panel.simplisafe.markdown index 2d5a76c6ba2..9c8fdc893ec 100644 --- a/source/_components/alarm_control_panel.simplisafe.markdown +++ b/source/_components/alarm_control_panel.simplisafe.markdown @@ -12,35 +12,9 @@ ha_release: 0.24 ha_category: Alarm --- -The `simplisafe` platform enables the ability to control a [SimpliSafe](http://simplisafe.com/) control panel. +The `simplisafe` alarm control panel platform gives users the ability to +control a SimpliSafe home alarm system. -## {% linkable_title Configuration %} - -To enable this, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -alarm_control_panel: - platform: simplisafe - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -{% configuration %} -username: - description: Username for the SimpliSafe account. - required: true - type: string -password: - description: Password for SimpliSafe account. - required: true - type: string -name: - description: The name of the alarm. Default is the SimpliSafe alarm id. - required: false - type: string -code: - description: Specifies a code to enable or disable the alarm in the frontend. - required: false - type: string -{% endconfiguration %} +You must have the [`simplisafe` component](/components/simplisafe/) configured +to use this platform. After configuring that component, any alarm control +panels defined will automatically appear. diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index a16ca91b979..bc6c493324a 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -17,7 +17,13 @@ The `android_ip_webcam` component turns an Android phone into a network camera w It's setup as an MJPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. -To set it up, download [the IP Webcam app][app], and add the following information to your `configuration.yaml` file: +## {% linkable_title Setup %} + +Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. You will be able to the IP address of the device. + +## {% linkable_title Configuration %} + +To set it up the component, add the following information to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -27,7 +33,7 @@ android_ip_webcam: {% configuration %} host: - description: The IP Address of the phone on the network. + description: The IP address of the phone on the network. required: true type: string port: @@ -59,50 +65,50 @@ sensors: type: list keys: audio_connections: - description: Audio Connections + description: The audio connections battery_level: - description: Battery Level + description: The battery level battery_temp: - description: Battery Temperature + description: The battery temperature battery_voltage: - description: Battery Voltage + description: The battery voltage light: - description: Light Level + description: The light level motion: - description: Motion + description: Motion detection pressure: - description: Pressure + description: The current pressure proximity: - description: Proximity + description: The proximity sound: - description: Sound + description: The sound detection video_connections: - description: Video Connections + description: The video connections switches: description: Conditions to display settings in the frontend. See the list of supported switches. required: false type: list keys: exposure_lock: - description: Exposure Lock + description: Control the exposure lock ffc: - description: Front-facing Camera + description: Control the front-facing camera. focus: - description: Focus + description: Control the focus. gps_active: - description: GPS Active + description: Control the GPS. night_vision: - description: Night Vision + description: Control the night vision. overlay: - description: Overlay + description: Control the overlay. torch: - description: Torch + description: Control the torch. whitebalance_lock: - description: White Balance Lock + description: Control the white balance lock. video_recording: - description: Video Recording + description: Control the video recording. motion_sensor: - description: Activate motion sensor if auto_discovery is disabled. + description: Activate motion sensor if `auto_discovery` is disabled. required: false type: boolean {% endconfiguration %} @@ -147,4 +153,3 @@ android_ip_webcam: - torch ``` -[app]: https://play.google.com/store/apps/details?id=com.pas.webcam diff --git a/source/_components/binary_sensor.august.markdown b/source/_components/binary_sensor.august.markdown index 9b25dd4a390..04af4a51571 100644 --- a/source/_components/binary_sensor.august.markdown +++ b/source/_components/binary_sensor.august.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: august.png -ha_category: Doorbell +ha_category: Binary Sensor ha_release: "0.64" ha_iot_class: "Cloud Polling" --- @@ -20,3 +20,7 @@ If you have August Doorbell, once you have enabled the [August component](/compo * Doorbell ding sensor * Doorbell motion sensor * Doorbell online sensor + +If you have August Smart Lock with DoorSense, once you have enabled the [August component](/components/august/), you should see the following sensors: + +* Door sensor diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 114c974cbbf..132c59298e0 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -109,12 +109,43 @@ value_template: required: false type: string force_update: - description: > - Sends update events even if the value has not changed. - Useful if you want to have meaningful value graphs in history. - reqired: false + description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history. + required: false type: boolean - default: false + default: False +off_delay: + description: For sensors that only sends ‘On’ state updates, this variable sets a delay in seconds after which the sensor state will be updated back to ‘Off’. + required: false + type: integer +device: + description: 'Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list, tuple + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown index dc6db91896c..c4181593468 100644 --- a/source/_components/binary_sensor.octoprint.markdown +++ b/source/_components/binary_sensor.octoprint.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Local Polling" The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error.
-You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. +You must have the [OctoPrint component](/components/octoprint/) configured to use this binary sensor. After configuring that component, binary sensors automatically appear.
## {% linkable_title Configuration %} diff --git a/source/_components/binary_sensor.opentherm_gw.markdown b/source/_components/binary_sensor.opentherm_gw.markdown new file mode 100644 index 00000000000..decdf3b7397 --- /dev/null +++ b/source/_components/binary_sensor.opentherm_gw.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "OpenTherm Gateway Binary Sensor" +description: "Expose internal data from the OpenTherm Gateway." +date: 2018-10-19 18:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Binary Sensor +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` binary sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant. + +# {% linkable_title Configuration %} + +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration. + ++The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +
diff --git a/source/_components/binary_sensor.rflink.markdown b/source/_components/binary_sensor.rflink.markdown new file mode 100644 index 00000000000..9e9bee2a3c9 --- /dev/null +++ b/source/_components/binary_sensor.rflink.markdown @@ -0,0 +1,95 @@ +--- +layout: page +title: "RFLink Binary Sensor" +description: "Instructions on how to integrate RFLink binary sensors into Home Assistant." +date: 2018-10-04 +sidebar: true +comments: false +sharing: true +footer: true +logo: rflink.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +ha_release: "0.81" +--- + +The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). + +First, you have to set up your [RFLink hub](/components/rflink/). + +The RFLink component does not know the difference between a `binary_sensor`, a `switch` and a `light`. Therefore all switchable devices are automatically added as `light` by default. + +RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`. + +Once the ID of a binary sensor is known, it can be used to configure it as a binary sensor type in Home Assistant, for example, to hide it or configure a nice name. + +Configuring a device as a binary sensor: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: rflink + devices: + pt2262_00174754_0: {} +``` + +{% configuration %} +devices: + description: A list of binary sensors. + required: false + type: map + keys: + rflink_ids: + description: RFLink ID of the device + required: true + type: map + keys: + name: + description: Name of the device, defaults to RFLink ID. + required: false + type: string + aliases: + description: Alternative RFLink ID's this device is known by. + required: false + type: list + device_class: + description: The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend. + required: false + type: string + off_delay: + description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'. + required: false + type: int + force_update: + description: Sends update events even if the value has not changed. Useful for sensors that only sends `On`. + required: false + type: boolean + default: false +{% endconfiguration %} + +### {% linkable_title Sensor state %} + +Initially, the state of a binary sensor is unknown. When a sensor update is received, the state is known and will be shown in the frontend. + +### {% linkable_title Device support %} + +See [device support](/components/rflink/#device-support) + +### {% linkable_title Additional configuration examples %} + +Multiple sensors with custom name and device class and set off_delay + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: rflink + devices: + pt2262_00174754_0: + name: PIR Entrance + device_class: motion + off_delay: 5 + pt2262_00174758_0: + name: PIR Living Room + device_class: motion + off_delay: 5 +``` diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown index 72d641283b7..953c77c1375 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -62,7 +62,7 @@ sensors: description: The conditions to create sensors from. required: false type: list - default: all (`battery`, `temperature`, `status`, `wifi_strength`) + default: all (`battery`, `temperature`, `wifi_strength`) {% endconfiguration %} Once Home Assistant starts, the `blink` component will create the following platforms: @@ -74,11 +74,7 @@ Once Home Assistant starts, the `blink` component will create the following plat Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. -Please note that each camera reports two different states: one as `sensor.blink_+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/climate.mill.markdown b/source/_components/climate.mill.markdown new file mode 100644 index 00000000000..aa13ac75be1 --- /dev/null +++ b/source/_components/climate.mill.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Mill heater" +description: "Instructions on how to integrate Mill heater into Home Assistant." +date: 2018-10-10 15:00 +0200 +sidebar: true +comments: false +sharing: true +footer: true +logo: mill.png +ha_category: Climate +ha_release: 0.81 +ha_iot_class: "Cloud Polling" +--- + +Integrates Mill heater into Home Assistant. + +The component requires that the heater is set as an [independent device](https://millheat.zendesk.com/hc/en-us/articles/115001123491-What-is-an-Independent-device-) in the Mill app. + + +To enable this platform, add the following lines to your `configuration.yaml` file: + +```yaml +climate: + - platform: mill + username: email@gmail.com + password: pswd +``` + +{% configuration %} +username: + description: Your registered Mill email. + required: true + type: string +password: + description: Your Mill password. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown index 96f98766b54..41da3c077cc 100644 --- a/source/_components/climate.mqtt.markdown +++ b/source/_components/climate.mqtt.markdown @@ -201,6 +201,11 @@ max_temp: description: Maximum set point available type: number required: false +temp_step: + description: Step size for temperature set point + type: number + required: false + default: 1 {% endconfiguration %} #### {% linkable_title Optimistic mode %} diff --git a/source/_components/climate.opentherm_gw.markdown b/source/_components/climate.opentherm_gw.markdown index 41444ff8ae2..1248a657816 100644 --- a/source/_components/climate.opentherm_gw.markdown +++ b/source/_components/climate.opentherm_gw.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "OpenTherm Gateway" +title: "OpenTherm Gateway Climate" description: "Control your OpenTherm Gateway from Home Assistant." date: 2018-08-29 16:23 sidebar: true @@ -18,48 +18,8 @@ The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](h # {% linkable_title Configuration %} -```yaml -# Example configuration.yaml entry -climate: - - platform: opentherm_gw - device: /dev/ttyUSB0 -``` - -{% configuration %} -device: - description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." - required: true - type: string -name: - description: The name for the device within Home Assistant. - required: false - type: string - default: OpenTherm Gateway -precision: - description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." - required: false - type: float - default: "`0.5` for Celsius and `1.0` for Fahrenheit." -floor_temperature: - description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override Home Assistant and round to the lower value according to the configured `precision`. - required: false - type: boolean -{% endconfiguration %} +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
- -# {% linkable_title Example %} - -A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. - -```yaml -# Full example configuration.yaml entry -climate: - - platform: opentherm_gw - device: socket://otgw.example.org:2345 - name: Thermostat - precision: 0.5 - floor_temperature: true -``` diff --git a/source/_components/climate.wink.markdown b/source/_components/climate.wink.markdown index be8623cb08f..2520b49fa45 100644 --- a/source/_components/climate.wink.markdown +++ b/source/_components/climate.wink.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling" --- -The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats, Air Conditioners, and Water Heaters. +The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners. The requirement is that you have setup [Wink](/components/wink/). @@ -28,7 +28,6 @@ The requirement is that you have setup [Wink](/components/wink/). - Honeywell (No Wink hub required) - Generic Z-Wave - Quirky Aros window AC unit -- Rheem Econet water heaters (No Wink hub required)The above devices are confirmed to work, but others may work as well. diff --git a/source/_components/cover.deconz.markdown b/source/_components/cover.deconz.markdown index 1b721a581c1..5f2e3999fc5 100644 --- a/source/_components/cover.deconz.markdown +++ b/source/_components/cover.deconz.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Push" See the [deCONZ main component](/components/deconz/) for configuration instructions. -Covers are devices like ventilation dampers. +Covers are devices like ventilation dampers or smart window covers. Note that devices in the cover platform identify as lights, so there is a manually curated list that defines which "lights" are covers. @@ -24,3 +24,4 @@ The `entity_id` name will be `cover.device_name`, where `device_name` is defined #### {% linkable_title Verified supported covers %} - Keen vents +- Xiaomi Aqara Curtain controller diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index b3f15bfeccd..26bb333b6b3 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -159,6 +159,35 @@ unique_id: description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception. required: false type: string +device: + description: 'Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_components/cover.ryobi_gdo.markdown b/source/_components/cover.ryobi_gdo.markdown deleted file mode 100644 index eac9454463d..00000000000 --- a/source/_components/cover.ryobi_gdo.markdown +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: page -title: "Ryobi GDO Cover" -description: "Instructions on how to integrate Ryobi Garage Door Opener (RyobiGDO) within Home Assistant." -date: 2018-04-22 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: ryobi.png -ha_category: Cover -ha_release: 0.71 -ha_iot_class: "Cloud Polling" ---- - - -The `ryobi_gdo` cover platform lets you control [Ryobi](https://www.ryobitools.com/gdo/) garage door opener through Home Assistant. - -## {% linkable_title Setup %} - -In order to be able to use your Ryobi garage door opener, you will have to get the DEVICE_ID_OF_YOUR_COVER (one for each garage door). - -The DEVICE_ID_OF_YOUR_COVER can be retrieved using `curl`, simply use your username and password using the following example. Your `DEVICE_ID_OF_YOUR_COVER` will be `varName`: - -```bash -$ curl -H "Content-Type: application/json" -X GET \ - -d '{"username":"RYOBIGDO_USERNAME","password":"RYOBIGDO_PASSWORD"}' \ - https://tti.tiwiconnect.com/api/devices -``` - -## {% linkable_title Configuration %} - -To enable Ryobi covers in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cover: - - platform: ryobi_gdo - username: RYOBIGDO_USERNAME - password: RYOBIGDO_PASSWORD - device_id: - - DEVICE_ID_OF_YOUR_COVER#1 - - DEVICE_ID_OF_YOUR_COVER#2 -``` - -{% configuration %} -username: - description: Your RyobiGDO account username. - required: true - type: string -password: - description: Your RyobiGDO account password. - required: true - type: string -device_id: - description: List of your doors. - required: true - type: list -{% endconfiguration %} diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown index 0340ef07126..db8927e9a4e 100644 --- a/source/_components/deconz.markdown +++ b/source/_components/deconz.markdown @@ -88,7 +88,7 @@ Typical values for switches, the event codes are 4 numbers where the first and l Where for example on a Philips Hue Dimmer, 2001 would be holding the dim up button. -For the IKEA Tradfri remote, 1 is the middle button, 2 is up, 3 is down, 4 is left, and 5 is right. +For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 for up, 3 for down, 4 for left, and 5 for right (e.g., "event: 1002" for middle button short release). ## {% linkable_title Examples %} diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index 01e1c68ce5e..d4bb1a028b6 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -38,6 +38,16 @@ password: description: The password for your given admin account. required: true type: string +ssl: + description: Whether to connect via HTTPS. + required: false + type: boolean + default: false +verify_ssl: + description: If SSL/TLS verification for HTTPS resources needs to be turned off (for self-signed certs, etc.) + required: false + type: boolean + default: true {% endconfiguration %} By default Home Assistant pulls information about connected devices from DD-WRT every 5 seconds. diff --git a/source/_components/device_tracker.quantum_gateway.markdown b/source/_components/device_tracker.quantum_gateway.markdown new file mode 100644 index 00000000000..05ff8524740 --- /dev/null +++ b/source/_components/device_tracker.quantum_gateway.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: "Quantum Gateway" +description: "Instructions on how to integrate Quantum Gateways into Home Assistant." +date: 2018-09-30 01:40 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Presence Detection +logo: fios.svg +ha_release: 0.81 +--- + +The `quantum_gateway` device tracker platform offers presence detection by looking at connected devices to a Verizon Fios gateway. + +It was tested with a Verizon Fios-G1100 Quantum Gateway. + +## {% linkable_title Configuration %} + +To use a Verizon Fios Quantum Gateway in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: quantum_gateway + host: 192.168.1.1 + password: YOUR_PASSWORD +``` + +{% configuration %} +host: + description: The IP address of your router, e.g., `192.168.1.1`. + required: false + type: string + default: myfiosgateway.com +password: + description: The password for the `admin` user. The default password may be printed on the gateway itself. + required: true + type: string +{% endconfiguration %} + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/fan.dyson.markdown b/source/_components/fan.dyson.markdown index 8ac36b9fc9f..22240bbdb92 100644 --- a/source/_components/fan.dyson.markdown +++ b/source/_components/fan.dyson.markdown @@ -21,7 +21,7 @@ You first have to setup the [Dyson component](/components/dyson/) ### {% linkable_title Supported fan devices %} - Pure Cool link (desk and tower) -- Pure Hot+cool link (heating is not yet supported) +- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control) ### {% linkable_title Attributes %} diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index f48971fde9c..60bc9ad1f87 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -146,6 +146,35 @@ unique_id: description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception. required: false type: string +device: + description: 'Information about the device this fan is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list, tuple + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %}
diff --git a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown new file mode 100644 index 00000000000..4bae0d66a2a --- /dev/null +++ b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown @@ -0,0 +1,88 @@ +--- +layout: page +title: "NSW Rural Fire Service Incidents" +description: "Instructions on how to integrate the NSW Rural Fire Service Incidents feed into Home Assistant." +date: 2018-09-23 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nsw-rural-fire-service.png +ha_category: Geo Location +ha_iot_class: "Cloud Polling" +ha_release: "0.81" +--- + +The `nsw_rural_fire_service_feed` platform lets you integrate a GeoJSON feed provided by the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) with information about bush fires, grass fires, hazard reductions and more. It retrieves incidents from a feed and shows information of those incidents filtered by distance to Home Assistant's location. + +
+
+
+
+
@@ -136,7 +140,7 @@ group: ## {% linkable_title Group behavior %} -When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. +By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well. ## {% linkable_title Customize group order %} You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in. diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 7c4eb488b7d..bdeb47998f6 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -275,6 +275,7 @@ The following components are currently supported: | sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `co2` as their `device_class` | | sensor | LightSensor | All sensors that have `lm` or `lx` as their `unit_of_measurement` or `illuminance` as their `device_class` | | switch | Switch | Represented as a switch by default but can be changed by using `type` within `entity_config`. | +| water_heater | WaterHeater | All water_heater devices. | ## {% linkable_title Troubleshooting %} diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown index cd55944cb37..dc7104dba18 100644 --- a/source/_components/konnected.markdown +++ b/source/_components/konnected.markdown @@ -116,6 +116,25 @@ devices: repeat: description: Number of times to repeat a momentary pulse. Set to `-1` to make an infinite repeat. This is useful as an alarm or warning when used with a piezo buzzer. required: false + host: + type: string + required: false + description: Optionally specify the Konnected device's IP address or hostname to set up without discovery. + port: + type: integer + required: false + description: Optionally specify the port number for the Konnected API on the device. Note that the port is different on every device. See help.konnected.io to learn how to determine the port number. + discovery: + type: boolean + required: false + default: true + description: Enable or disable discovery for this device. When `true`, the device will respond to discovery requests on your network. When `false`, the device will not respond to discovery requests, so it's important that you set reserved IP for the device and configure the _host_ and _port_ here. + blink: + type: boolean + required: false + default: true + description: Blink the blue LED upon successful transmission of a state change. + {% endconfiguration%} #### {% linkable_title Configuration Notes %} @@ -188,6 +207,10 @@ Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly use ### {% linkable_title Revision History %} +#### 0.80 +* Added ability to specify `host` and `port` to set up devices without relying on discovery. +* Added `discovery` and `blink` config options to enable/disable these features. + #### 0.79 * Added `inverse` configuration option for binary sensors. diff --git a/source/_components/lifx.markdown b/source/_components/lifx.markdown new file mode 100644 index 00000000000..11c478c6421 --- /dev/null +++ b/source/_components/lifx.markdown @@ -0,0 +1,132 @@ +--- +layout: page +title: "LIFX" +description: "Instructions on how to integrate LIFX into Home Assistant." +date: 2018-10-08 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lifx.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.81 +--- + +The `lifx` component allows you to integrate your [LIFX](https://www.lifx.com) into Home Assistant. + +_Please note, the `lifx` component does not support Windows. The `lifx_legacy` light platform (supporting basic functionality) can be used instead._ + +You can configure the LIFX component by going to the integrations page inside the config panel. + +## {% linkable_title Set state %} + +The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons. + +The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state. + +### {% linkable_title Service `light.lifx_set_state` %} + +Change the light to a new state. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `transition` | Duration (in seconds) for the light to fade to the new state. +| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0). +| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs). +| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is. +| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state. + +## {% linkable_title Light effects %} + +The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this: +```yaml +automation: + - alias: ... + trigger: + # ... + action: + - service: light.turn_on + data: + entity_id: light.office, light.kitchen + effect: lifx_effect_pulse +``` + +However, if you want to fully control a light effect, you have to use its dedicated service call, like this: +```yaml +script: + colorloop_start: + alias: 'Start colorloop' + sequence: + - service: light.lifx_effect_colorloop + data: + entity_id: group.livingroom + brightness: 255 + period: 10 + spread: 30 + change: 35 +``` + +The available light effects and their options are listed below. + +### {% linkable_title Service `light.lifx_effect_pulse` %} + +Run a flash effect by changing to a color and then back. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `color_name` | A color name such as `red` or `green`. +| `rgb_color` | A list containing three integers representing the RGB color you want the light to be. +| `brightness` | Integer between 0 and 255 for how bright the color should be. +| `period` | The duration of a single pulse (in seconds). +| `cycles` | The total number of pulses. +| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`. +| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). + +### {% linkable_title Service `light.lifx_effect_colorloop` %} + +Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light. +| `period` | Duration (in seconds) between starting a new color change. +| `transition` | Duration (in seconds) where lights are actively changing color. +| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359). +| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359). +| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). + +### {% linkable_title Service `light.lifx_effect_stop` %} + +Run an effect that does nothing, thereby stopping any other effect that might be running. + +| Service data attribute | Description | +| ---------------------- | ----------- | +| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. + + +## {% linkable_title Advanced configuration %} + +There are some manual configuration options available. These should only be needed if you have more than one network interface and automatic configuration does not find your LIFX devices. + +```yaml +# Example configuration.yaml entry +lifx: + light: + server: IP_ADDRESS + broadcast: IP_ADDRESS +``` + +{% configuration %} +server: + description: Your server address. Will listen on all interfaces if omitted. + required: false + type: string +broadcast: + description: The broadcast address for discovering lights. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/light.elkm1.markdown b/source/_components/light.elkm1.markdown new file mode 100644 index 00000000000..2dfa79a4114 --- /dev/null +++ b/source/_components/light.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Light" +description: "Instructions how to integrate Elk-M1 light." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Light +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +An Elk-M1 light (which can be X10, Insteon, UPB) is represented as a `light`. + +
+Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown index cb6dc00f2f9..511306f4aec 100644 --- a/source/_components/light.lifx.markdown +++ b/source/_components/light.lifx.markdown @@ -13,110 +13,4 @@ ha_iot_class: "Local Polling" ha_release: 0.12 --- -The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. - -_Please note, the `lifx` platform does not support Windows. The `lifx_legacy` platform (supporting basic functionality) can be used instead._ - -```yaml -# Example configuration.yaml entry -light: - - platform: lifx -``` -{% configuration %} -broadcast: - description: The broadcast address for discovering lights. Only needed if using more than one network interface. Omit if you are unsure. - required: false - type: string -server: - description: Your server address. Will listen on all interfaces if omitted. Omit if you are unsure. - required: false - type: string -{% endconfiguration %} - -## {% linkable_title Set state %} - -The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons. - -The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state. - -### {% linkable_title Service `light.lifx_set_state` %} - -Change the light to a new state. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `transition` | Duration (in seconds) for the light to fade to the new state. -| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0). -| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs). -| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is. -| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state. - -## {% linkable_title Light effects %} - -The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this: -```yaml -automation: - - alias: ... - trigger: - # ... - action: - - service: light.turn_on - data: - entity_id: light.office, light.kitchen - effect: lifx_effect_pulse -``` - -However, if you want to fully control a light effect, you have to use its dedicated service call, like this: -```yaml -script: - colorloop_start: - alias: 'Start colorloop' - sequence: - - service: light.lifx_effect_colorloop - data: - entity_id: group.livingroom - brightness: 255 - period: 10 - spread: 30 - change: 35 -``` - -The available light effects and their options are listed below. - -### {% linkable_title Service `light.lifx_effect_pulse` %} - -Run a flash effect by changing to a color and then back. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `color_name` | A color name such as `red` or `green`. -| `rgb_color` | A list containing three integers representing the RGB color you want the light to be. -| `brightness` | Integer between 0 and 255 for how bright the color should be. -| `period` | The duration of a single pulse (in seconds). -| `cycles` | The total number of pulses. -| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`. -| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). - -### {% linkable_title Service `light.lifx_effect_colorloop` %} - -Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light. -| `period` | Duration (in seconds) between starting a new color change. -| `transition` | Duration (in seconds) where lights are actively changing color. -| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359). -| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359). -| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True). - -### {% linkable_title Service `light.lifx_effect_stop` %} - -Run an effect that does nothing, thereby stopping any other effect that might be running. - -| Service data attribute | Description | -| ---------------------- | ----------- | -| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all. +For installation instructions, see [the LIFX component](/components/lifx/). diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index c5049911d13..10604217165 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -88,6 +88,21 @@ effect_list: description: The list of effects the light supports. required: false type: string list +hs_command_topic: + description: "The MQTT topic to publish commands to change the light's color state in HS format (Hue Saturation). + Range for Hue: 0° .. 360°, Range of Saturation: 0..100. + Note: Brightness is sent separately in the `brightness_command_topic`." + required: false + type: string +hs_state_topic: + description: "The MQTT topic subscribed to receive color state updates in HS format. + Note: Brightness is received separately in the `brightness_state_topic`." + required: false + type: string +hs_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value." + required: false + type: string on_command_type: description: "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on." required: false @@ -200,7 +215,7 @@ payload_not_available: | RGB Color | ✔ | ✔ | ✔ | | Transitions | ✘ | ✔ | ✔ | | XY Color | ✔ | ✔ | ✘ | -| HS Color | ✘ | ✔ | ✘ | +| HS Color | ✔ | ✔ | ✘ | | White Value | ✔ | ✔ | ✔ | ## {% linkable_title Examples %} diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 49dfbd502ef..b5b4099a276 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -256,6 +256,23 @@ Home Assistant expects the hue values to be in the range 0 to 360 and the satura } ``` +### {% linkable_title Brightness and RGBW support %} + +To enable a light with brightness, RGB support and a separate white channel (RGBW) in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt_json + name: mqtt_json_light_1 + state_topic: "home/rgbw1" + command_topic: "home/rgbw1/set" + brightness: true + rgb: true + white_value: true +``` + + ### {% linkable_title Implementations %} - A full example of custom lighting using this platform and an ESP8266 microcontroller can be found [here](https://github.com/corbanmailloux/esp-mqtt-rgb-led). It supports on/off, brightness, transitions, RGB colors, and flashing. diff --git a/source/_components/light.xiaomi_miio.markdown b/source/_components/light.xiaomi_miio.markdown index 4597bc7f8fa..79f5a9b36c1 100644 --- a/source/_components/light.xiaomi_miio.markdown +++ b/source/_components/light.xiaomi_miio.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Local Polling" ha_release: 0.53 --- -The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2. +The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp. ## Features @@ -62,6 +62,17 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip - reminder - eyecare_mode +### Philips Zhirui Desk Lamp + +* Power (on, off) +* Brightness +* Scene (1, 2, 3, 4) +* Delayed turn off (Resolution in seconds) +* Attributes + - model + - scene + - delayed_turn_off + Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file. To add a Xiaomi Philips Light to your installation, add the following to your configuration.yaml file: @@ -91,7 +102,7 @@ name: type: string default: Xiaomi Philips Light model: - description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. + description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling` and `philips.light.mono1`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available. required: false type: string {% endconfiguration %} diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index c58559c46a9..597910be02c 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -58,6 +58,10 @@ devices: required: false type: boolean default: False + model: + description: "Yeelight model. Possible values are `mono1`, `color1`, `strip1`, `bslamp1`, `ceiling1`, `ceiling2`, `ceiling3`, `ceiling4`. The setting is used to enable model specific features f.e. a particular color temperature range." + required: false + type: string {% endconfiguration %} #### {% linkable_title Music mode %} @@ -72,22 +76,27 @@ Determine your bulb IP (using router, software, ping...). Information on how to enable "LAN Mode" can be found [here](https://getyeti.co/posts/how-to-control-yeelight-and-your-smarthome-with-yeti). +### {% linkable_title Supported models %} +This component is tested to work with the following models. If you have a different model and it is working please let us know.
-- **YLDP01YL**: LED Bulb (White) -- **YLDP02YL**: LED Bulb (Color) -- **YLDP03YL**: LED Bulb (Color) - E26 -- **YLDP05YL**: LED Bulb (White) II -- **YLDP06YL**: LED Bulb (Color) II -- **YLDD01YL**: Lightstrip (Color) -- **YLDD02YL**: Lightstrip (Color) -- **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version! -- **MJTD01YL**: Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) -- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650) -- **YLXD01YL**: Yeelight Smart LED Ceiling Light - Youth Version - +| Model ID | Model number | Product name | +|------------|--------------|--------------------------------------------------| +| `mono1` | YLDP01YL | LED Bulb (White) | +| ? | YLDP05YL | LED Bulb (White) - 2nd generation | +| `color1` | YLDP02YL | LED Bulb (Color) | +| `color1` | YLDP03YL | LED Bulb (Color) - E26 | +| `color2` | YLDP06YL | LED Bulb (Color) - 2nd generation | +| `strip1` | YLDD01YL | Lightstrip (Color) | +| `strip1` | YLDD02YL | Lightstrip (Color) | +| `bslamp1` | MJCTD01YL | Xiaomi Mijia Bedside Lamp - WIFI Version! | +| `lamp1` | MJTD01YL | Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) | +| `ceiling1` | ? | Yeelight Ceiling Light | +| `ceiling2` | YLXD01YL | Yeelight Smart LED Ceiling Light - Youth Version | +| `ceiling3` | ? | Yeelight Ceiling Light | +| `ceiling4` | YLXD02YL | Yeelight Ceiling Light 4 (Jiaoyue 650) | ## {% linkable_title Platform Services %} diff --git a/source/_components/lock.template.markdown b/source/_components/lock.template.markdown new file mode 100644 index 00000000000..155ba139001 --- /dev/null +++ b/source/_components/lock.template.markdown @@ -0,0 +1,142 @@ +--- +layout: page +title: "Template Lock" +description: "Instructions on how to integrate Template Locks into Home Assistant." +date: 2018-10-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Lock +ha_release: 0.81 +ha_iot_class: "Local Push" +logo: home-assistant.png +ha_qa_scale: internal +--- + +The `template` platform creates locks that combines components. + +For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a lock that knows whether the garage door is open or closed. + +This can simplify the GUI and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. + +In optimistic mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from the template. Try to enable it, if experiencing incorrect lock operation. + +## {% linkable_title Configuration %} + +To enable Template Locks in your installation, add the following to your `configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +lock: + - platform: template + name: Garage door + value_template: "{{ is_state('sensor.door', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.door + unlock: + service: switch.turn_off + data: + entity_id: switch.door +``` +{% endraw %} + +{% configuration %} + name: + description: Name to use in the frontend. + required: false + type: string + default: Template Lock + value_template: + description: Defines a template to set the state of the lock. + required: true + type: template + lock: + description: Defines an action to run when the lock is locked. + required: true + type: action + unlock: + description: Defines an action to run when the lock is unlocked. + required: true + type: action + optimistic: + description: Flag that defines if lock works in optimistic mode. + required: false + type: boolean + default: false +{% endconfiguration %} + +## {% linkable_title Considerations %} + +If you are using the state of a platform that takes extra time to load, the Template Lock may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %} + +## {% linkable_title Examples %} + +In this section, you find some real-life examples of how to use this lock. + +### {% linkable_title Lock from Switch %} + +This example shows a lock that copies data from a switch. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('switch.source', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Optimistic Mode %} + +This example shows a lock in optimistic mode. This lock will immediately change state after command and will not wait for state update from the sensor. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + optimistic: true + lock: + service: switch.turn_on + data: + entity_id: switch.source + unlock: + service: switch.turn_off + data: + entity_id: switch.source +``` +{% endraw %} + +### {% linkable_title Sensor and Two Switches %} + +This example shows a lock that takes its state from a sensor, and uses two momentary switches to control a device. + +{% raw %} +```yaml +lock: + - platform: template + name: Garage Door + value_template: "{{ is_state('sensor.skylight.state', 'on') }}" + lock: + service: switch.turn_on + data: + entity_id: switch.skylight_open + unlock: + service: switch.turn_on + data: + entity_id: switch.skylight_close +``` +{% endraw %} diff --git a/source/_components/media_player.lg_soundbar.markdown b/source/_components/media_player.lg_soundbar.markdown new file mode 100644 index 00000000000..ff8878e0dc8 --- /dev/null +++ b/source/_components/media_player.lg_soundbar.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "LG Soundbars" +description: "Instructions on how to integrate LG Soundbars into Home Assistant." +date: 2018-10-17 19:55:18 +sidebar: true +comments: false +sharing: true +footer: true +logo: lg.png +ha_category: Media Player +ha_iot_class: "Local Polling" +ha_release: 0.81 +--- + +The `lg_soundbar` platform allows you to control [LG Soundbars](https://www.lg.com/us/sound-bars) from Home Assistant. + +Supported devices: + +- The SK range + +Compatible devices will be automatically added if the [`discovery`](/components/discovery/) component is enabled. + +### {% linkable_title Supported operations %} + +- These devices support mute, volume control, source selection and mode selection. diff --git a/source/_components/notify.aws_lambda.markdown b/source/_components/notify.aws_lambda.markdown index be5a5494caa..ef3c5f1d841 100644 --- a/source/_components/notify.aws_lambda.markdown +++ b/source/_components/notify.aws_lambda.markdown @@ -14,9 +14,13 @@ ha_release: "0.20" The `aws_lambda` notification platform enables invoking [AWS Lambda](https://aws.amazon.com/lambda/) functions. -To use this notification platform in your installation, add the following to your `configuration.yaml` file: +## {% linkable_title Setup %} -### Configuration +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -30,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **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`. - **context** (*Optional*): An optional dictionary you can provide to pass custom context through to the Lambda function. The `context` dictionary (if any) is combined with the same data available at the `/api/config` HTTP API route. diff --git a/source/_components/notify.aws_sns.markdown b/source/_components/notify.aws_sns.markdown index cfa69e00843..2903fbfcaa5 100644 --- a/source/_components/notify.aws_sns.markdown +++ b/source/_components/notify.aws_sns.markdown @@ -14,6 +14,12 @@ ha_release: "0.20" The `aws_sns` notification platform enables publishing to an [AWS SNS](https://aws.amazon.com/sns/) topic or application. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -28,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **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`. diff --git a/source/_components/notify.aws_sqs.markdown b/source/_components/notify.aws_sqs.markdown index a1e8a33f8bd..6aa9288f7bf 100644 --- a/source/_components/notify.aws_sqs.markdown +++ b/source/_components/notify.aws_sqs.markdown @@ -14,6 +14,12 @@ ha_release: "0.20" The `aws_sqs` notification platform enables publishing to an [AWS SQS](https://aws.amazon.com/sqs/) message queue. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +## {% linkable_title Configuration %} + To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -28,9 +34,9 @@ notify: Configuration variables: -- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. -- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. -- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file). +- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`. +- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`. +- **profile_name** (*Optional*): A credentials profile name. - **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`. - **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`. diff --git a/source/_components/notify.homematic.markdown b/source/_components/notify.homematic.markdown new file mode 100644 index 00000000000..5ba5dd3b362 --- /dev/null +++ b/source/_components/notify.homematic.markdown @@ -0,0 +1,111 @@ +--- +layout: page +title: "Homematic Notifications" +description: "Instructions on how to notify Homematic devices." +date: 2018-10-03 11:44 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Notifications +ha_release: 0.81 +--- + +The `homematic` notification platform enables invoking Homematic devices. + +To use this notification platform in your installation, add the following to your `configuration.yaml` file: + +## {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + channel: 2 + param: "SUBMIT" + value: "1,1,108000,8" +``` + +{% configuration %} +address: + description: The address of your Homematic device. The address is the serial number of the device shown in the CCU in the `devices` section in the column `serial number`. + required: true + type: string +channel: + description: The channel of your Homematic device. + required: true + type: integer +param: + description: An additional parameter for the Homematic device. + required: true + type: string +interface: + description: Set the name of the interface from the config. + required: false + type: string +value: + description: This is the value that is set on the device. Its device specific. + required: true + type: string +{% endconfiguration %} + +### {% linkable_title Usage %} + +`homematic` is a notify platform and can be controlled by calling the notify service [as described here](/components/notify/). + +Only the `data` part of the event payload is processed. This part can specify or override the value given as configuration variable: + +```json +{ + "data": { + "address": "NEQXXXXXXX", + "channel": 2, + "param": "SUBMIT", + "value": "1,1,108000,8" + } +} +``` + +It is possible to provide a template in order to compute the value: + +{% raw %} +```json +{ + "data": { + "value": "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + } +} +``` +{% endraw %} + +You can also specify the event payload using a group notification (instead of specifying the value for the notify itself): + +{% raw %} +```yaml +notify: + - name: my_hm + platform: homematic + address: NEQXXXXXXX + - name: group_hm + platform: group + services: + - service: my_hm + data: + data: + value: "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}" + +alert: + temperature: + name: Temperature too high + done_message: Temperature OK + entity_id: binary_sensor.temperature_too_high + can_acknowledge: True + notifiers: + - group_hm +``` +{% endraw %} + +Please note that the first `data` element belongs to the service `my_hm`, while the second one belongs to the event payload. diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index 00303b0f32c..45f452f5a88 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -13,7 +13,9 @@ ha_release: pre 0.7 --- -The `xmpp` platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. +The `xmpp` notification platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. + +## {% linkable_title Configuration %} To enable Jabber notifications in your installation, add the following to your `configuration.yaml` file: @@ -27,18 +29,47 @@ notify: recipient: YOUR_RECIPIENT ``` -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`. -- **sender** (*Required*): The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, eg. your_name@jabber.org. -- **password** (*Required*): The password for your given Jabber account. -- **recipient** (*Required*): The Jabber ID (JID) that will receive the messages. -- **tls** (*Optional*): Allow to disable TLS. Defaults to `true`. -- **verify** (*Optional*): Allow disabling SSL certificate validity check (e.g., self-signed certificate). Defaults to `true`. -- **room** (*Optional*): Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the sender. +{% configuration %} +name: + description: "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`." + required: false + type: string + default: Random Sensor +sender: + description: "The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, e.g. your_name@jabber.org." + required: true + type: string +resource: + description: "Resource part of JID, e.g., your_name@jabber.org/`HA-cabin`." + required: false + type: string + default: home-assistant +password: + description: The password for your given Jabber account. + required: true +recipient: + description: The Jabber ID (JID) that will receive the messages. + required: true +tls: + description: Force TLS. + required: false + type: boolean + default: true +verify: + description: Allow disabling SSL certificate validity check, e.g., self-signed certificate. + required: false + type: boolean + default: true +room: + description: Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient. + required: false + type: string +{% endconfiguration %}- sleekxmpp, as of version 1.3.2, does not support >TLS1. If you are running your own XMPP server (e.g., Prosody, ejabberd) make sure to allow using TLS1. + Pre Home Assistant 0.81 `sleekxmpp` was used to connect to XMPP servers. `sleekxmpp` as of version 1.3.2, does not support > TLS v1. If you are running your own XMPP server (e.g., Prosody, ejabberd) make sure to allow using TLS v1. + + Home Assistant after 0.81 uses `slixmpp`, which also supports TLS v1.1 and TLS v1.2.
All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender. diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown index eb7289ad074..992fd9700da 100644 --- a/source/_components/octoprint.markdown +++ b/source/_components/octoprint.markdown @@ -14,40 +14,114 @@ ha_release: 0.19 ha_iot_class: "Local Polling" --- -[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors, you will have to setup sensors and binary sensors separately. +[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors. -To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. +## {% linkable_title Configuration %} +To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. ```yaml octoprint: host: YOUR_OCTOPRINT_HOST api_key: YOUR_API_KEY - bed: false - number_of_tools: 1 ``` {% configuration %} -host: - description: IP address or hostname of Octoprint host. +octoprint: + type: list required: true - type: string -api_key: - description: The retrieved api key. - required: true - type: string -bed: - description: If the printer has a heated bed. - required: false - default: false - type: boolean -number_of_tools: - description: Number of temperature adjustable tools, i.e. nozzle. - required: false - default: 0 - type: integer + keys: + host: + description: IP address or hostname of Octoprint host. + required: true + type: string + api_key: + description: The retrieved API key. + required: true + type: string + name: + description: The name for this printer, must be unique if multiple printers are defined. + required: false + type: string + default: OctoPrint + port: + description: The port of the Octoprint server. + required: false + type: integer + default: 80 + ssl: + description: Enable or disable SSL/TLS. + required: false + type: boolean + default: false + bed: + description: If the printer has a heated bed. + required: false + type: boolean + default: false + number_of_tools: + description: Number of temperature adjustable tools, e.g., nozzle. + required: false + type: integer + default: 1 + sensors: + description: Configuration for the sensors. + required: false + type: map + keys: + monitored_conditions: + description: The sensors to activate. + type: list + default: all (`Current State`, `Temperatures`, `Job Percentage`, `Time Elapsed`, `Time Remaining`) + keys: + "Current State": + description: Text of current state. + "Temperatures": + description: Temperatures of all available tools, eg. `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device. + "Job Percentage": + description: Percentage of the job. + "Time Elapsed": + description: Time elapsed on current print job, in seconds. + "Time Remaining": + description: Time remaining on current print job, in seconds. + binary_sensors: + description: Configuration for the binary sensors. + required: false + type: map + keys: + monitored_conditions: + description: The sensors to activate. + type: list + default: all (`Printing`, `Printing Error`) + keys: + "Printing": + description: State of the printer. + "Printing Error": + description: Error while printing. {% endconfiguration %} ++If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup. +
+ +Example with multiple printers: + +```yaml +octoprint: + - host: YOUR_OCTOPRINT_HOST + api_key: YOUR_API_KEY + name: PRINTER_NAME_1 + number_of_tools: 2 + sensors: + monitored_conditions: + - 'Current State' + - 'Job Percentage' + - host: YOUR_OCTOPRINT_HOST + api_key: YOUR_API_KEY + name: PRINTER_NAME_2 + number_of_tools: 1 +``` + If the OctoPrint host is equipped with a web camera it is possible to add this as well. ```yaml diff --git a/source/_components/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown new file mode 100644 index 00000000000..62aa3def7f5 --- /dev/null +++ b/source/_components/opentherm_gw.markdown @@ -0,0 +1,309 @@ +--- +layout: page +title: "OpenTherm Gateway Hub" +description: "Control your OpenTherm Gateway from Home Assistant." +date: 2018-10-07 16:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Hub +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` component is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. +When enabled, this component will automatically add it's [`climate` entity](/components/climate.opentherm_gw) to Home Assistant. + +# {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +opentherm_gw: + device: /dev/ttyUSB0 +``` + +{% configuration %} +device: + description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." + required: true + type: string +climate: + description: "Settings for the `opentherm_gw` climate entity." + required: false + type: map + keys: + name: + description: "The name for the device within Home Assistant." + required: false + type: string + default: "OpenTherm Gateway" + precision: + description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." + required: false + type: float + default: "`0.5` for Celsius and `1.0` for Fahrenheit." + floor_temperature: + description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`." + required: false + type: boolean + default: false +monitored_variables: + description: "A list of variables to expose as sensors." + required: false + type: list + keys: + burner_hours: + description: Boiler flame on time. + burner_starts: + description: Number of burner starts. + ch_pump_hours: + description: Central heating pump running time. + ch_pump_starts: + description: Number of central heating pump starts. + ch_water_pressure: + description: Central heating water pressure. + ch_water_temp: + description: Central heating water temperature. + ch_water_temp_2: + description: Central heating 2 water temperature. + control_setpoint: + description: Central heating water target temperature. + control_setpoint_2: + description: Central heating 2 water target temperature. + cooling_control: + description: Cooling control signal value. + dhw_burner_hours: + description: Hot water flame on time. + dhw_burner_starts: + description: Number of hot water burner starts. + dhw_flow_rate: + description: Hot water flow rate. + dhw_pump_hours: + description: Hot water pump running time. + dhw_pump_starts: + description: Number of hot water pump starts. + dhw_setpoint: + description: Hot water target temperature. + dhw_temp: + description: Hot water temperature. + dhw_temp_2: + description: Hot water 2 temperature. + exhaust_temp: + description: Boiler exhaust temperature. + master_ch2_enabled: + description: Thermostat requests central heating 2 on. + master_ch_enabled: + description: Thermostat requests central heating on. + master_cooling_enabled: + description: Thermostat requests cooling. + master_dhw_enabled: + description: Thermostat requests hot water to be heated. + master_memberid: + description: Thermostat member ID. + master_ot_version: + description: Thermostat OpenTherm protocol version. + master_otc_enabled: + description: Thermostat is using outside temperature correction. + master_product_type: + description: Thermostat product type. + master_product_version: + description: Thermostat product version. + max_ch_setpoint: + description: Boiler maximum central heating water temperature. + oem_diag: + description: OEM diagnostic information. + otgw_about: + description: OpenTherm Gateway firmware version. + otgw_build: + description: OpenTherm Gateway firmware build date and time. + otgw_clockmhz: + description: OpenTherm Gateway firmware design clock speed. + otgw_dhw_ovrd: + description: OpenTherm Gateway hot water override status. + otgw_gpio_a: + description: OpenTherm Gateway GPIO port A operating mode. + otgw_gpio_a_state: + description: OpenTherm Gateway GPIO A state. + otgw_gpio_b: + description: OpenTherm Gateway GPIO port B operating mode. + otgw_gpio_b_state: + description: OpenTherm Gateway GPIO B state. + otgw_ignore_transitions: + description: OpenTherm Gateway ignores ripples in the signal during high/low transitions. + otgw_led_a: + description: OpenTherm Gateway LED A operating mode. + otgw_led_b: + description: OpenTherm Gateway LED B operating mode. + otgw_led_c: + description: OpenTherm Gateway LED C operating mode. + otgw_led_d: + description: OpenTherm Gateway LED D operating mode. + otgw_led_e: + description: OpenTherm Gateway LED E operating mode. + otgw_led_f: + description: OpenTherm Gateway LED F operating mode. + otgw_mode: + description: OpenTherm Gateway operating mode. + otgw_ovrd_high_byte: + description: OpenTherm Gateway overrides high byte with message ID 100. + otgw_setback_temp: + description: OpenTherm Gateway setback temperature for `away mode`. + otgw_setpoint_ovrd_mode: + description: OpenTherm Gateway central heating setpoint override mode. + otgw_smart_pwr: + description: OpenTherm Gateway smart power operating mode. + otgw_thermostat_detect: + description: OpenTherm Gateway automatic thermostat detection status. + otgw_vref: + description: OpenTherm Gateway voltage reference setting. + outside_temp: + description: Outside temperature as reported in the OpenTherm protocol. + relative_mod_level: + description: Relative modulation level. + remote_rw_dhw: + description: Boiler supports writing hot water setpoint. + remote_rw_max_ch: + description: Boiler supports writing maximum central heating setpoint. + remote_transfer_dhw: + description: Boiler supports reading hot water setpoint. + remote_transfer_max_ch: + description: Boiler supports reading maximum central heating setpoint. + return_water_temp: + description: Boiler return water temperature. + room_setpoint: + description: Room target temperature. + room_setpoint_2: + description: Room 2 target temperature. + room_setpoint_ovrd: + description: Room target temperature override value. + room_temp: + description: Current room temperature. + rovrd_auto_prio: + description: Programmed room setpoint change takes priority over remote override setting. + rovrd_man_prio: + description: Manual room setpoint change takes priority over remote override setting. + slave_air_pressure_fault: + description: Boiler reports air pressure fault. + slave_ch2_active: + description: Boiler reports central heating 2 active. + slave_ch2_present: + description: Boiler has a central heating 2 circuit. + slave_ch_active: + description: Boiler reports central heating active. + slave_ch_max_setp: + description: Maximum boiler supported central heating water target temperature. + slave_ch_min_setp: + description: Minimum boiler supported central heating water target temperature. + slave_control_type: + description: Boiler control type ('off' is modulating, 'on' is on/off). + slave_cooling_active: + description: Boiler reports cooling active. + slave_cooling_supported: + description: Boiler supports cooling. + slave_dhw_active: + description: Boiler reports hot water active. + slave_dhw_config: + description: Boiler hot water mode ('off' is instantaneous or unspecified, 'on' is storage tank). + slave_dhw_max_setp: + description: Maximum boiler supported hot water target temperature. + slave_dhw_min_setp: + description: Minimum boiler supported hot water target temperature. + slave_dhw_present: + description: Boiler reports hot water present. + slave_diagnostic_indication: + description: Boiler diagnostic indication. + slave_fault_indication: + description: Boiler fault indication. + slave_flame_on: + description: Boiler reports flame on. + slave_gas_fault: + description: Boiler reports gas fault. + slave_low_water_pressure: + description: Boiler reports low water pressure. + slave_master_low_off_pump: + description: Boiler supports low-off and pump control commands (this sensor is inverted, 'on' is not supported, 'off' is supported) + slave_max_capacity: + description: Maximum boiler capacity. + slave_max_relative_modulation: + description: Maximum boiler supported relative modulation. + slave_memberid: + description: Boiler member ID. + slave_min_mod_level: + description: Minimum boiler supported modulation level. + slave_oem_fault: + description: Boiler OEM fault indication. + slave_ot_version: + description: Boiler OpenTherm protocol version. + slave_product_type: + description: Boiler product type. + slave_product_version: + description: Boiler product version. + slave_remote_reset: + description: Boiler reports 'lockout-reset' supported. + slave_service_required: + description: Boiler reports service required. + slave_water_overtemp: + description: Boiler reports water overtemperature. + solar_coll_temp: + description: Solar collector temperature. + solar_storage_temp: + description: Solar storage unit temperature. +{% endconfiguration %} + +## {% linkable_title Supported Variables %} +The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` component and look for the status updates. + + +## {% linkable_title GPIO modes %} +Possible modes and their meaning for the GPIO pins are listed here: +{% comment %} + Bulletpoints and numbers to match the LED mode layout below. +{% endcomment %} +* 1\. No function, default for both ports on a freshly flashed chip. +* 2\. Ground - A permanently low output (0V). Could be used for a power LED. +* 3\. Vcc - A permanently high output (5V). Can be used as a short-proof power supply for some external circuitry used by the other GPIO port. +* 4\. LED E - An additional LED if you want to present more than 4 LED functions. +* 5\. LED F - An additional LED if you want to present more than 5 LED functions. +* 6\. Home - Set thermostat to setback temperature when pulled low. +* 7\. Away - Set thermostat to setback temperature when pulled high. +* 8\. DS1820 (GPIO port B only) - Data line for a DS18S20 or DS18B20 temperature sensor used to measure the outside temperature. A 4k7 resistor should be connected between GPIO port B and Vcc. + + +## {% linkable_title LED modes %} +Possible LED modes and their meaning are listed here: +* R. Receiving an Opentherm message from the thermostat or boiler. +* X. Transmitting an Opentherm message to the thermostat or boiler. +* T. Transmitting or receiving a message on the thermostat interface. +* B. Transmitting or receiving a message on the boiler interface. +* O. Remote setpoint override is active. +* F. Flame is on. +* H. Central heating is on. +* W. Hot water is on. +* C. Comfort mode (Domestic Hot Water Enable) is on. +* X. Transmission error has been detected. +* M. Boiler requires maintenance. +* P. Raised power mode active on thermostat interface. + ++The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +
+ +# {% linkable_title Example %} + +A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. + +```yaml +# Full example configuration.yaml entry +opentherm_gw: + device: socket://otgw.example.org:2345 + climate: + name: Thermostat + precision: 0.5 + floor_temperature: True + monitored_variables: + - room_setpoint + - room_temp + - otgw_about +``` diff --git a/source/_components/route53.markdown b/source/_components/route53.markdown new file mode 100644 index 00000000000..a00e5e708d0 --- /dev/null +++ b/source/_components/route53.markdown @@ -0,0 +1,103 @@ +--- +layout: page +title: "route53" +description: "Automatically update your AWS Route53 DNS records." +date: 2018-02-10 20:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: route53.png +ha_category: Network +ha_release: "0.81" +--- + +With the `route53` component can you keep your AWS Route53 DNS records up to date. + +The component will run every hour, but can also be started manually by using the service `route53.update_records` under services. + +Please note that this platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address. + +## {% linkable_title Setup %} + +You will need to configure your AWS Account with a suitable IAM policy and API keys for this to function. + +If you are familiar with this process, you can skip the next section and head directly to the configuration section. + +On the AWS side, you need to do the following; + +1. Create a suitable zone for a domain that you own and manage in Route53, the domain `home.yourdomain.com` is used as an example. + +2. Once created, write down the Hosted Zone ID value for the domain. This is needed for the plugin and IAM configuration. + +3. Create an IAM Policy that provides update and query access to this domain explicitly and has no other permissions to the AWS account. + +Here is an IAM Policy sample, don't forget to update your Zone ID on the Resource line. + +``` +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": [ + "route53:GetHostedZone", + "route53:ChangeResourceRecordSets", + "route53:ListResourceRecordSets" + ], + "Resource": "arn:aws:route53:::hostedzone/YOURZONEIDGOESHERE" + }, + { + "Sid": "VisualEditor1", + "Effect": "Allow", + "Action": "route53:TestDNSAnswer", + "Resource": "*" + } + ] +} +``` + +4. Once this has been done, create a new user called `homeassistant` and add the IAM policy to the user, allowing it to manage this DNS resource. + +5. Under the security credentials tab for the `homeassistant` user, create a set of access keys for placement in the component definition YAML. + +## {% linkable_title Configuration %} + +To use the component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +route53: + aws_access_key_id: ABC123 + aws_secret_access_key: DEF456 + zone: ZONEID678 + domain: home.yourdomain.com + records: + - vpn + - hassio + - home +``` + +{% configuration route53 %} +aws_access_key_id: + description: The AWS access key ID for the account that has IAM access to the domain. + required: true + type: string +aws_secret_access_key: + description: The AWS secret access key for the account that has IAM access to the domain. + required: true + type: string +zone: + description: The AWS zone ID for the domain in Route53. + required: true + type: string +domain: + description: The domain name for the domain in Route53. + required: true + type: string +records: + description: A list of records you want to update. + required: true + type: list +{% endconfiguration %} diff --git a/source/_components/scene.elkm1.markdown b/source/_components/scene.elkm1.markdown new file mode 100644 index 00000000000..346e54be32a --- /dev/null +++ b/source/_components/scene.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Scene" +description: "Instructions on how to integrate Elk-M1 tasks (macros)." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Scene +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 tasks are represented as `scene` entities. + ++Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/sensor.dyson.markdown b/source/_components/sensor.dyson.markdown index 8a1cd8a1efb..c92b2f7d669 100644 --- a/source/_components/sensor.dyson.markdown +++ b/source/_components/sensor.dyson.markdown @@ -21,4 +21,4 @@ You have first to setup the [Dyson component](/components/dyson/) ### {% linkable_title Supported fan devices %} - Pure Cool link (desk and tower) -- Pure Hot+cool link (but heating is not yet supported) +- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control) diff --git a/source/_components/sensor.elkm1.markdown b/source/_components/sensor.elkm1.markdown new file mode 100644 index 00000000000..97216415589 --- /dev/null +++ b/source/_components/sensor.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Sensor" +description: "Instructions on how to integrate Elk-M1 counters, keypads, panel, settings, and zones." +date: 2018-10-11 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Sensor +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 counters, keypads, panel, settings, and zones are represented as `sensor` entities. + ++Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/sensor.geo_rss_events.markdown b/source/_components/sensor.geo_rss_events.markdown index 9d73fe5f7b9..bd1d773b0d7 100644 --- a/source/_components/sensor.geo_rss_events.markdown +++ b/source/_components/sensor.geo_rss_events.markdown @@ -21,7 +21,7 @@ This sensor is particularly useful if events occur unexpectedly in the vicinity-You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. -
- -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: octoprint - name: OctoPrint - monitored_conditions: - - Current State - - Temperatures - - Job Percentage - - Time Elapsed - - Time Remaining -``` - -{% configuration %} -name: - description: The name of the sensor. - required: false - default: OctoPrint - type: string -monitored_conditions: - description: States to monitor. - required: true - type: list - keys: - current state: - description: Text of current state. - temperatures: - description: Temperatures of all available tools, e.g., `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device. - job percentage: - description: Percentage of the job. - time elapsed: - description: Time elapsed on current print job, in seconds. - time remaining: - description: Time remaining on current print job, in seconds. -{% endconfiguration %} - --If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup. +You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. After configuring that component, sensors automatically appear.
diff --git a/source/_components/sensor.opentherm_gw.markdown b/source/_components/sensor.opentherm_gw.markdown new file mode 100644 index 00000000000..108b7ac09ed --- /dev/null +++ b/source/_components/sensor.opentherm_gw.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "OpenTherm Gateway Sensor" +description: "Expose internal data from the OpenTherm Gateway." +date: 2018-10-10 12:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Sensor +ha_release: 0.81 +ha_iot_class: "Local Push" +--- + +The `opentherm_gw` sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant. + +# {% linkable_title Configuration %} + +Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration. + ++The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat. +
diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 7e756ce6a3d..bae594e5f4a 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -43,7 +43,7 @@ resource: type: string default: string method: - description: The method of the request. + description: The method of the request. Either `POST` or `GET`. required: false type: string default: GET diff --git a/source/_components/sensor.rmvtransport.markdown b/source/_components/sensor.rmvtransport.markdown index 6e5abe5de27..0ecb8212fd6 100644 --- a/source/_components/sensor.rmvtransport.markdown +++ b/source/_components/sensor.rmvtransport.markdown @@ -28,39 +28,52 @@ sensor: ``` {% configuration %} -name: - description: Name to use in the frontend. +timeout: + description: Specify the timeout for the API calls. required: false - default: The default is the station name. - type: string -stationId: - description: ID of the stop or station, e.g., 3000010. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs. + default: 10 + type: integer +next_departure: + description: One or multiple departure sensors. required: true - type: string -destinations: - description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." - required: false - type: [string] -lines: - description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" - required: false - default: The default is the station name. - type: [string, integer] -products: - description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." - required: false - default: Defaults to all. - type: [string] -time_offset: - description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. - required: false - default: The defaults is 0. - type: integer -max_journeys: - description: Specify the maximal number of journeys. - required: false - default: The default is 5. - type: integer + type: list + keys: + name: + description: Name to use in the frontend. + required: false + default: The default is the station name. + type: string + station: + description: "ID of the stop or station, e.g. `3000010`. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs." + required: true + type: string + destinations: + description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel." + required: false + type: [string] + direction: + description: "Name of a stop or station, e.g., 'Frankfurt (Main) Hauptbahnhof'. This can be used to only consider a particular direction of travel." + required: false + type: [string] + lines: + description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`" + required: false + type: [string, int] + products: + description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`." + required: false + default: ['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE'] + type: [string] + time_offset: + description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop. + required: false + default: 0 + type: integer + max_journeys: + description: Specify the maximal number of journeys. + required: false + default: 5 + type: integer {% endconfiguration %} ## {% linkable_title Examples %} @@ -73,6 +86,8 @@ The example below shows a full configuration with three sensors that showcase th # Example configuration.yaml entry sensor: - platform: rmvtransport + scan_interval: 120 + timeout: 10 next_departure: - station: 3000010 time_offset: 5 diff --git a/source/_components/sensor.rtorrent.markdown b/source/_components/sensor.rtorrent.markdown new file mode 100644 index 00000000000..03dc91fe300 --- /dev/null +++ b/source/_components/sensor.rtorrent.markdown @@ -0,0 +1,57 @@ +--- +layout: page +title: "rtorrent Sensor" +description: "Instructions on how to integrate rtorrent sensors within Home Assistant." +date: 2018-10-14 05:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: rtorrent.png +ha_category: Downloading +ha_release: 0.81 +ha_iot_class: "Local Polling" +--- + +The `rtorrent` platform allows you to monitor your downloads with [rtorrent](https://rakshasa.github.io/rtorrent/) from within Home Assistant and setup automations based on the information. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rtorrent + url: 'http://You must have the [ZoneMinder component](/components/zoneminder/) configured to use this sensor. diff --git a/source/_components/simplisafe.markdown b/source/_components/simplisafe.markdown new file mode 100644 index 00000000000..74ecfe42e5b --- /dev/null +++ b/source/_components/simplisafe.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: "SimpliSafe" +description: "Instructions on how to integrate SimpliSafe into Home Assistant." +date: 2018-10-05 14:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: simplisafe.png +ha_release: 0.81 +ha_category: Alarm +--- + +The `simplisafe` component integrates SimpliSafe home security (V2 and V3) +systems into Home Assistant. Multiple SimpliSafe accounts can be accommodated. + +To enable this component, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +simplisafe: + accounts: + - username: user@email.com + password: password123 +``` + +{% configuration %} +username: + description: The email address of a SimpliSafe account. + required: true + type: string +password: + description: The password of a SimpliSafe account. + required: true + type: string +code: + description: A code to enable or disable the alarm in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/smhi.markdown b/source/_components/smhi.markdown new file mode 100644 index 00000000000..e2a7d2dd440 --- /dev/null +++ b/source/_components/smhi.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "SMHI" +description: "Instructions on how to integrate SMHI forecasts within Home Assistant." +date: 2018-09-23 20:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: smhi.png +ha_category: Hub +ha_release: 0.81 +ha_iot_class: "Cloud Polling" +--- + +The `smhi` component adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location. + +## {% linkable_title Configuration %} + +The SMHI weather service is free under the Creative Commons Attribution 4.0, international license. Weather data will be pulled once every 30 minutes. + +To add SMHI weather forecast to your installation, go to the Integrations page inside the config panel and add a location by providing the longitude and latitude of your location. + +If the location is configured in Home Assistant, it will be selected as the default location. After that, you can add additional locations. + +
+You can only add locations through the integrations page, not in configuration files. +
+ ++Only location close to Sweden can be added. See [SMHI.se area](http://opendata.smhi.se/apidocs/metfcst/geographic_area.html) for more details what locations are supported. +
+ + +{% configuration %} +latitude: + description: Manually specify latitude. + required: false + type: number + default: Provided by Home Assistant configuration +longitude: + description: Manually specify longitude. + required: false + type: number + default: Provided by Home Assistant configuration +name: + description: Name to use in the frontend. + required: false + type: string + default: Home +{% endconfiguration %} + +Details about the API are available in the [SMHI API documentation](http://opendata.smhi.se/apidocs/metfcst/index.html). diff --git a/source/_components/switch.elkm1.markdown b/source/_components/switch.elkm1.markdown new file mode 100644 index 00000000000..8ef52a09af6 --- /dev/null +++ b/source/_components/switch.elkm1.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "Elk-M1 Switch" +description: "Instructions on how to integrate Elk-M1 outputs (relays)." +date: 2018-10-07 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elkproducts.png +ha_release: 0.81 +ha_category: Switch +ha_iot_class: "Local Push" +--- + +The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html). + +Elk-M1 outputs are represented as `switch` entities. + ++Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page. +
diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown index 68ec3dfc3a0..884210ebe0f 100644 --- a/source/_components/switch.mqtt.markdown +++ b/source/_components/switch.mqtt.markdown @@ -103,6 +103,35 @@ value_template: description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload." required: false type: string +device: + description: 'Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' + required: false + type: map + keys: + identifiers: + description: 'A list of IDs that uniquely identify the device. For example a serial number.' + required: false + type: list, string + connections: + description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' + required: false + type: list + manufacturer: + description: 'The manufacturer of the device.' + required: false + type: string + model: + description: 'The model of the device.' + required: false + type: string + name: + description: 'The name of the device.' + required: false + type: string + sw_version: + description: 'The firmware version of the device.' + required: false + type: string {% endconfiguration %}diff --git a/source/_components/switch.recswitch.markdown b/source/_components/switch.recswitch.markdown new file mode 100644 index 00000000000..e5f1ba62fc3 --- /dev/null +++ b/source/_components/switch.recswitch.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "Ankuoo Rec Switch" +logo: ankuoo_recswitch.png +description: "Instructions on how to integrate Ankuoo Rec Switch into Home Assistant." +date: 2018-10-05 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: "ankuoo_recswitch.png" +ha_release: "0.81" +ha_category: Switch +ha_iot_class: "Local Polling" +--- + +The `recswitch` switch platform allows you to control the Ankuoo Rec Switch devices. + +Supported devices (tested): +- Ankuoo RecSwitch MS6126 +- Lumitek CSW201 NEO WiFi + +### {% linkable_title Configuration %} + +To enable this switch, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +switch: + - platform: recswitch + host: 'IP_ADDRESS' + mac: 'MAC_ADDRESS' +``` + +{% configuration %} +host: + description: IP address or hostname of the device. + required: true + type: string +mac: + description: MAC address of the device. + required: true + type: string +name: + description: Name to use in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/switch.unifi.markdown b/source/_components/switch.unifi.markdown new file mode 100644 index 00000000000..40376ec6daf --- /dev/null +++ b/source/_components/switch.unifi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "UniFi Switches" +description: "Instructions on how to integrate POE control switches from UniFi into Home Assistant." +date: 2018-10-15 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Switch +ha_release: "0.81" +ha_iot_class: "Local Polling" +--- + +See the [UniFi main component](/components/unifi/) for configuration instructions. + +Switches are network devices that are powered by POE switches from Ubuiqitis UniFi line of networking gear. + +Note that POE control actually configures the network port of the switch which the device is connected to. diff --git a/source/_components/tts.amazon_polly.markdown b/source/_components/tts.amazon_polly.markdown index 0a424f2fc74..0ac187e7f4b 100644 --- a/source/_components/tts.amazon_polly.markdown +++ b/source/_components/tts.amazon_polly.markdown @@ -15,6 +15,12 @@ ha_release: 0.37 The `amazon_polly` text-to-speech platform that works with [Amazon Polly](https://aws.amazon.com/polly/) to create the spoken output. Polly is a paid service via Amazon Web Services. There is a [free tier](https://aws.amazon.com/polly/pricing/) for the first 12 months and then a charge per million characters afterwards. +## {% linkable_title Setup %} + +For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions. + +Available voices are listed in the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html). + ## {% linkable_title Configuration %} To get started, add the following lines to your `configuration.yaml` (example for Amazon Polly): @@ -29,21 +35,22 @@ tts: {% configuration %} aws_access_key_id: - description: "Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`." + description: "Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`." required: true type: string aws_secret_access_key: - description: "Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`." + description: "Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`." required: true type: string profile_name: - description: A credentials profile name. For more information, please see the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) for more information. + description: A credentials profile name. required: false type: string region_name: - description: "The region identifier to connect to. The default is `us-east-1`. See the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions." + description: The region identifier to connect to. required: false type: string or list + default: us-east-1 name: description: "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`." required: false @@ -54,18 +61,19 @@ text_type: type: string default: text voice: - description: "Voice name to be used. See the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) for available voices." + description: Voice name to be used. required: false type: string output_format: - description: "Override the default output format, e.g., `mp3`, `ogg_vorbis` or `pcm`." + description: "Override the default output format. Either `mp3`, `ogg_vorbis` or `pcm`." required: false type: string default: mp3 sample_rate: - description: "Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm." + description: "Override the default sample rate." required: false type: string + default: 22050 for MP3 and Ogg Vorbis, 16000 for pcm {% endconfiguration %} ## {% linkable_title Usage %} diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown new file mode 100644 index 00000000000..fd42ca782dc --- /dev/null +++ b/source/_components/unifi.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "UniFi" +description: "Instructions on how to configure UniFi integration with UniFi Controller by Ubiquiti." +date: 2018-10-15 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiuiti.png +ha_category: Hub +ha_release: "0.81" +ha_iot_class: "Local Polling" +--- + +[UniFi](https://unifi-sdn.ubnt.com/) by [Ubiquiti Networks, inc.](https://www.ubnt.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end. + +Currently this implementation only exposes POE control for networked devices. Device tracker implementation is not using the same code base. + +## {% linkable_title Configuration %} + +Home Assistant offers UniFi integration through **Configuration** -> **Integrations** -> **UniFi Controller**. + +Enter `host address`, `user name` and `password` and then continue to select which `site` you want to connect to Home Assistant. The user must have administrator privileges. + +## {% linkable_title Debugging component %} + +If you have problems with UniFi or the component you can add debug prints to the log. + +```yaml +logger: + default: info + logs: + aiounifi: debug + homeassistant.components.unifi: debug + homeassistant.components.switch.unifi: debug +``` diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown index 9b836238429..9ed678cfb61 100644 --- a/source/_components/vacuum.neato.markdown +++ b/source/_components/vacuum.neato.markdown @@ -18,7 +18,7 @@ The `neato` vacuum platform allows you to control your [Neato Botvac Connected]( The status will contain attributes on the robots last clean session.
-If you notice the robot stops responding to commands check the status attribute to see if the robot is offline. If you see "Robot Offline" check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant. +If you notice the robot stops responding to commands check the state to see if the robot is "unavailable". If you see "unavailable" first try to restart the vacuum and wait about 5 minutes to see if it is no longer "unavailable". If you are still having issues check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
## {% linkable_title Configuration %} diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index 0aeae152429..500e176081c 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -135,7 +135,7 @@ The following table shows the units of measurement for each attribute:
As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Android Mi Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) is confirmed as working for the following Android methods. Using older version than 5.0.30 is not recommended as it might lack support for some newer devices like the Roborock S50.
-
+
The iPhone app still stores the token in the sqlite db as of v4.7.18 (July 17, 2018).
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Mi Robot 2 (Roborock) Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained
@@ -260,3 +260,10 @@ To fetch the token follow these instructions depending on your mobile phone plat
12. Copy the returned 32-digit hexadecimal string to your clipboard.
13. Open `Terminal` and execute this command: `echo '0:
-The Unix timestamps can be obtained from the input_datetime component. This will allow you to graphically set the start and end date.
+The Unix timestamps can be obtained from the `input_datetime` component. This will allow you to graphically set the start and end date.
+Econet water heaters use to live under the `climate` platform prior to release 0.81.
+
+Not all water heater services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking
+Wink water heaters use to live under the `climate` platform prior to release 0.81.
+
Vagrant is intended for testing/development only. It is NOT recommended for permanent installations.
@@ -20,6 +20,8 @@ Vagrant is intended for testing/development only. It is NOT recommended for perm
You must have [Vagrant](https://www.vagrantup.com/downloads.html) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) installed on your workstation. Vagrant and Virtualbox support all the main platforms, including Windows, MacOS and Linux.
+Limited support is available for Hyper-V on Windows, see below.
+
## {% linkable_title Get Home Assistant source code %}
Download the Home Assistant source code by either downloading the .zip file from [GitHub releases page](https://github.com/home-assistant/home-assistant/releases) or by using [Git](https://git-scm.com/)
@@ -98,3 +100,15 @@ To completely remove the VM **and** setup a fresh new environment:
```bash
$ ./provision.sh recreate
```
+
+## {% linkable_title Windows %}
+
+On Windows, Vagrant is launched through an elevated `PowerShell`. Use the batch script `provision.bat` instead of the shell script `provision.sh`.
+
+## {% linkable_title Hyper-V %}
+
+It is possible to use Hyper-V instead of Virtualbox on Windows, with some limitations.
+
+Samba is used for the virtual machine to access files, for which the Windows credentials are needed when the machine is created.
+As Hyper-V does not allow for port forwarding, NAT is used by default for the network. Through creating an external network switch in Hyper-V it is possible to access the machine on the network.
+The IP address is visible on creation, and through the Hyper-V manager.
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index 2e9a79e051f..3c6a1d9cec4 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -59,6 +59,118 @@ An empty payload will cause a previously discovered device to be deleted.
The `
+As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc.
+
diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html
index 1a2e590320c..ad8df9a0553 100644
--- a/source/_includes/custom/footer.html
+++ b/source/_includes/custom/footer.html
@@ -1,13 +1,13 @@
Home Assistant will track the state of all the devices in your home, so you don't have to.
+
+
+
+
+
+
+
+ **Services**.
+
+Screenshot of the Alarm Panel card.
+
+Screenshot of the Alarm Panel card.
+
+Screenshot of the Entity Button card.
+
+Screenshot of the Entity Button card with Title and Script Service.
+
+Screenshot of the gauge card.
+
+Screenshot of the gauge card with custom title and unit of measurement.
+
@@ -74,6 +74,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -86,6 +91,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -117,6 +127,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -129,6 +144,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -186,6 +206,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -198,6 +223,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
style:
required: true
description: Position and style the element using CSS.
@@ -221,6 +251,11 @@ tap_action:
description: none, more-info, toggle, navigate, call-service
type: string
default: more-info
+hold_action:
+ required: false
+ description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
+ type: string
+ default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@@ -233,6 +268,11 @@ service_data:
required: false
description: The service data to use.
type: object
+hold_time:
+ required: false
+ description: Time in ms for click-and-hold to register.
+ type: integer
+ default: 500
image:
required: false
description: The image to display.
@@ -311,6 +351,20 @@ state_filter:
"off": brightness(50%) hue-rotate(45deg)
```
+## {% linkable_title How to use click-and-hold %}
+
+If the option `hold_action` is specified, that action will be performed when the entity is clicked and held for a certain time (default 0.5 seconds).
+Please note that the `tap_action` and `hold_action` share variables for `navigation_path`, `service` and `service_data`. It is therefore not possible to, e.g., call two different services when clicked and when held.
+
+```yaml
+tap_action: toggle
+hold_action: call-service
+service: light.turn_on
+service_data:
+ entity_id: light.bed_light
+ brightness_pct: 100
+```
+
## {% linkable_title Example %}
```yaml
diff --git a/source/_lovelace/thermostat.markdown b/source/_lovelace/thermostat.markdown
new file mode 100644
index 00000000000..f5a3797d544
--- /dev/null
+++ b/source/_lovelace/thermostat.markdown
@@ -0,0 +1,36 @@
+---
+layout: page
+title: "Thermostat Card"
+sidebar_label: Thermostat
+description: "The thermostat card allows you to control a climate entity."
+date: 2018-10-25 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+The thermostat card gives control of your climate entity.
+
+
+ Screenshot of the thermostat card.
+
+ Screenshot of the thermostat card.
+