diff --git a/_config.yml b/_config.yml index 502ae90635..45147f16ca 100644 --- a/_config.yml +++ b/_config.yml @@ -139,14 +139,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 68 -current_patch_version: 1 -date_released: 2018-04-30 +current_minor_version: 69 +current_patch_version: 0 +date_released: 2018-05-11 # 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-0681---april-30" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/plugins/configuration.rb b/plugins/configuration.rb index 52bcf87fb9..30a5196d72 100644 --- a/plugins/configuration.rb +++ b/plugins/configuration.rb @@ -2,7 +2,7 @@ module Jekyll class ConfigurationBlock < Liquid::Block TYPE_LINKS = { 'action' => '/docs/scripts/', - 'device_class' => '/components/%{component}/#device_class', + 'device_class' => '/components/%{component}/#device-class', 'template' => '/docs/configuration/templating/', } diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index 5826f9c147..fe8f4a5107 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -11,6 +11,8 @@ footer: true Binary sensors gather information about the state of devices which have a "digital" return value (either 1 or 0). These can be switches, contacts, pins, etc. These sensors only have two states: **0/off/low/closed/false** and **1/on/high/open/true**. Knowing that there are only two states allows Home Assistant to represent these sensors in a better way in the frontend according to their functionality. +### {% linkable_title Device Class %} + The way these sensors are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for binary sensors: - **None**: Generic on/off. This is the default and doesn't need to be set. diff --git a/source/_components/device_tracker.icloud.markdown b/source/_components/device_tracker.icloud.markdown index f2f902bd30..a57ba44d4b 100644 --- a/source/_components/device_tracker.icloud.markdown +++ b/source/_components/device_tracker.icloud.markdown @@ -33,9 +33,11 @@ Configuration variables: - **username** (*Required*): The username for the iCloud account. - **password** (*Required*): The password for your given username. - **account_name** (*Optional*): The friendly name for the account_name. If this isn't given, it will use the account_name of the username (so the part before the `@` in the email address). +- **max_interval** (*Optional*): Maximum interval in minutes between subsequent location upates. This tracker uses dynamic intervals for requesting location updates. When iphone is stationary, interval will eventually be set to `max_interval` to save battery. When iphone starts moving again interval will be dynamically updated to 1 min. Note that updating interval to 1 min might be delayed by maximum `max_interval` minutes. Default is 30 min. Minimum value is 1 min. +- **gps_accuracy_threshold** (*Optional*): iCloud location updates come with some gps_accuracy varying from 10 to 5000 meters. This setting defines the accuracy threshold in meters for a location update. Less accurate updates will be discarded by this tracker. This allows more precise location monitoring and fewer false positive zone changes. Default is 1000 meters.
-This may cause battery drainage as it wakes up your device to get the current location. +Low `max_interval` may cause battery drainage as it wakes up your device to get the current location.
@@ -48,7 +50,7 @@ To disable the drainage of the battery, a dynamic interval is being used for eac 2 Factor Authentication is the improved version of 2 Steps Authentication, this is still not supported by the pyicloud library. Therefore it's not possible to use it with the device_tracker yet. 4 services are available for this component: -- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. +- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. Request will result in new Home Assistant [state_changed](/docs/configuration/events/#event-state_changed) event describing current iphone location. Can be used in automations when manual location update is needed, e.g. to check if anyone is home when door's been opened. - **icloud_lost_iphone**: This service will play the Lost iPhone sound on a certain iDevice. The `account_name` and `device_name` are optional. - **icloud_set_interval**: This service will change the dynamic interval of an iDevice. The `account_name` and `device_name` are optional. If `interval` is used in the service_data, the iDevice will be updated with that new interval. That interval will be fixed until the iDevice changes zone or if this service is called again. If `interval` isn't used in the service_data, the interval for that iDevice will revert back to its default dynamic interval based on its current zone, its distance towards home and its battery level. - **icloud_reset_account**: This service can be used to reset an iCloud account. This is helpful when not all devices are being found by the component or if you have added a new iDevice to your account. The `account_name` is optional. diff --git a/source/_components/device_tracker.netgear.markdown b/source/_components/device_tracker.netgear.markdown index f8dace0e12..8bdcacc8cd 100644 --- a/source/_components/device_tracker.netgear.markdown +++ b/source/_components/device_tracker.netgear.markdown @@ -13,7 +13,6 @@ ha_iot_class: "Local Polling" ha_release: pre 0.7 --- - This platform allows you to detect presence by looking at connected devices to a [Netgear](http://www.netgear.com/) device. To use this device tracker in your installation, add the following to your `configuration.yaml` file: @@ -29,10 +28,18 @@ device_tracker: Configuration variables: -- **host** (*Optional*): The IP address of your router, e.g., `192.168.1.1`. If not provided `routerlogin.net` will be used. -- **username** (*Optional*): The username of an user with administrative privileges. If not provided `admin` will be used. -- **port** (*Optional*): The port your router communicates with (defaults to `5000`, but `80` is also known to be used on some models). +- **url** (*Optional*): The base URL, e.g., `http://routerlogin.com:5000` for example. If not provided `host` and `port` are used. If none provided autodetection of the URL will be used. +- **host** (*Optional*): The IP address of your router, e.g., `192.168.1.1`. +- **port** (*Optional*): The port your router communicates with. +- **username** (*Optional*): The username of a user with administrative privileges. If not provided `admin` will be used. - **password** (*Required*): The password for your given admin account. +- **devices** (*Optional*): If provided only specified devices will be reported. Can be MAC address or the device name as reported in the Netgear UI. +- **exclude** (*Optional*): Devices to exclude from the scan. +- **accesspoints** (*Optional*): Also track devices on the specified APs. Only supports MAC address. + +When `accesspoints` is specified an extra device will be reported for each device connected to the APs specified here, as `MY-LAPTOP on RBS40`. `Router` will be reported as AP name for the main AP. Only tested with Orbi. + +The use of `devices` or `exclude` is recommended when using `accesspoints` to avoid having a lot of entries. List of models that are known to use port 80: - Nighthawk X4S - AC2600 (R7800) diff --git a/source/_components/device_tracker.owntracks_http.markdown b/source/_components/device_tracker.owntracks_http.markdown index cadf1f4589..64df68dd04 100644 --- a/source/_components/device_tracker.owntracks_http.markdown +++ b/source/_components/device_tracker.owntracks_http.markdown @@ -32,7 +32,7 @@ Open OwnTracks and go to Connection preferences: - Mode: Select **Private HTTP** - Host: [Home Assistant URL]:[port]/api/owntracks/[your name]/[device name] - Identification: Turn **Authentication** on, username `homeassistant` and password is your API password that you use to login to Home Assistant. - + Host example: If I host my Home Assistant at `https://example.duckdns.org`, my name is Paulus and my phone is a Pixel I would set the host to be `https://example.duckdns.org/api/owntracks/paulus/pixel`. This will result in an entity with an ID of `device_tracker.paulus_pixel`. You can pick any name for the user and the device. Since the battery data is available as an attribute of the device tracker entity, it can be tracked with a [`template` sensor](/components/sensor.template/). @@ -47,17 +47,6 @@ sensor: friendly_name: Pixel of Paulus unit_of_measurement: "%" value_template: '{{ states.device_tracker.paulus_pixel.attributes.battery|int }}' - icon_template: >- - {% set battery_level = states.device_tracker.paulus_pixel.attributes.battery|default(0)|int %} - {% set battery_round = (battery_level / 10) |int * 10 %} - {% if battery_round >= 100 %} - mdi:battery - {% elif battery_round > 0 %} - mdi:battery-{{ battery_round }} - {% else %} - mdi:battery-alert - {% endif %} - entity_id: - - device_tracker.paulus_pixel + device_class: battery ``` {% endraw %} diff --git a/source/_components/fan.template.markdown b/source/_components/fan.template.markdown new file mode 100644 index 0000000000..5ebd666594 --- /dev/null +++ b/source/_components/fan.template.markdown @@ -0,0 +1,96 @@ +--- +layout: page +title: "Template Fan" +description: "Instructions how to setup the Template fans within Home Assistant." +date: 2018-05-03 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Fan +ha_release: 0.69 +ha_iot_class: "Local Push" +logo: home-assistant.png +--- + +The `template` platform creates fans that combine components and provides the +ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, and +set_oscillating commands of a fan. + +To enable Template Fans in your installation, add the following to your +`configuration.yaml` file: + +{% raw %} +```yaml +# Example configuration.yaml entry +fan: + - platform: template + fans: + bedroom_fan: + friendly_name: "Bedroom fan" + value_template: "{{ states('input_boolean.state') }}" + speed_template: "{{ states('input_select.speed') }}" + oscillating_template: "{{ states('input_select.osc') }}" + turn_on: + service: script.fan_on + turn_off: + service: script.fan_off + set_speed: + service: script.fan_speed + data_template: + speed: "{{ speed }}" + set_oscillating: + service: script.fan_oscillating + data_template: + oscillating: "{{ oscillating }}" + speeds: + - '1' + - '2' + - '3' +``` +{% endraw %} + +{% configuration %} + fans: + description: List of your fans. + required: true + type: map + keys: + friendly_name: + description: Name to use in the frontend. + required: false + type: string + value_template: + description: "Defines a template to get the state of the fan. Valid value: 'on'/'off'" + required: true + type: template + speed_template: + description: Defines a template to get the speed of the fan. + required: false + type: template + oscillating_template: + description: "Defines a template to get the osc state of the fan. Valid value: True/False" + required: false + type: template + turn_on: + description: Defines an action to run when the fan is turned on. + required: true + type: action + turn_off: + description: Defines an action to run when the fan is turned off. + required: true + type: action + set_speed: + description: Defines an action to run when the fan is given a speed command. + required: false + type: action + set_oscillating: + description: Defines an action to run when the fan is given a osc state command. + required: false + type: action + speeds: + description: List of speeds the fan is capable of running at. + required: false + type: string list + default: ['low', 'medium', 'high'] +{% endconfiguration %} diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index a28655751b..7ab434c890 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -212,11 +212,11 @@ The following components are currently supported: | device_tracker | Sensor | Support for `occupancy` device class. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | -| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | -| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` or `humidity` as their `device_class`. | +| sensor | TemperatureSensor | All sensors that have `Celsius` or `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | +| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` and `humidity` as their `device_class`. | | sensor | AirQualitySensor | All sensors that have `pm25` as part of their `entity_id` or `pm25` as their `device_class` | | 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`/`lux` as their `unit_of_measurement` or `light` 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 / remote / input_boolean / script | Switch | All represented as switches. | diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown index bdd80d24af..910c07e036 100644 --- a/source/_components/homekit_controller.markdown +++ b/source/_components/homekit_controller.markdown @@ -15,12 +15,17 @@ ha_iot_class: "Local Polling" [HomeKit](https://developer.apple.com/homekit/) controller integration for Home Assistant allows you to connect HomeKit accessories to Home Assistant. This component should not be confused with the [HomeKit](/components/homekit/) component, which allows you to control Home Assistant devices via HomeKit. +
+ You may need additional packages to support the HomeKit Python module: + `$ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev` +
+ There is currently support for the following device types within Home Assistant: - [Light](/components/light.homekit_controller/) - [Switch](/components/switch.homekit_controller/) -The component will be automatically configured if the [`discovery:`](components/discovery/) component is enabled and an enable entry added for HomeKit: +The component will be automatically configured if the [`discovery:`](/components/discovery/) component is enabled and an enable entry added for HomeKit: ```yaml discovery: @@ -28,4 +33,4 @@ discovery: - homekit ``` -For each detected HomeKit accessory, a configuration prompt will appear in the web front end. Use this to provide the HomeKit PIN. +For each detected HomeKit accessory, a configuration prompt will appear in the web front end. Use this to provide the HomeKit PIN. Note that HomeKit accessories can only be paired to one device at once. If your device is currently paired with Siri, you will need to reset it in order to pair it with Home Assistant. Once Home Assistant is configured to work with the device, you can export it back to Siri with the [`HomeKit`](/components/homekit/) component. diff --git a/source/_components/insteon_plm.markdown b/source/_components/insteon_plm.markdown index 58a1bad12c..9e15bb0f7d 100644 --- a/source/_components/insteon_plm.markdown +++ b/source/_components/insteon_plm.markdown @@ -63,26 +63,52 @@ a responder or a controller. In order for any two Insteon devices to talk with one another, they must be linked. For an overview of device linking please read the Insteon page on -[understanding linking]. Currently Insteon PLM does not support software -linking of devices. If you need software that can link your devices (if you -are using a USB Stick PLM for example), you can download [HouseLinc] which runs -on any Windows PC, or you can use [Insteon Terminal] which is open source and -runs on most platforms. HouseLinc is no longer supported by SmartHome but it -still works. Insteon Terminal is a very useful tool but please read the -disclaimers carefully, they are important. +[understanding linking]. The Insteon PLM module supports All-Linking through +[Development Tools] service calls. The following services are available: + +In order for any two Insteon devices to talk with one another, they must be +linked. For an overview of device linking, please read the Insteon page on +[understanding linking]. The Insteon PLM module supports All-Linking through +[Development Tools] service calls. The following services are available: +- **insteon_plm.add_all_link**: Tells the Insteon Modem (IM) start All-Linking +mode. Once the IM is in All-Linking mode, press the link button on the device +to complete All-Linking. +- **insteon_plm.delete_all_link**: Tells the Insteon Modem (IM) to remove an +All-Link record from the All-Link Database of the IM and a device. Once the IM +is set to delete the link, press the link button on the corresponding device +to complete the process. +- **insteon_plm.load_all_link_database**: Load the All-Link Database for a +device. WARNING - Loading a device All-Link database is very time consuming +and inconsistent. This may take a LONG time and may need to be repeated to +obtain all records. +- **insteon_plm.print_all_link_database**: Print the All-Link Database for a +device. Requires that the All-Link Database is loaded into memory. +- **insteon_plm.print_im_all_link_database**: Print the All-Link Database for +the INSTEON Modem (IM). + +If you are looking for more advanced options, you can use the +[insteonplm_interactive] command line tool that is distributed with the +[insteonplm] Python module. Please see the documentation on the [insteonplm] +GitHub site. Alternatively, you can download [HouseLinc] which runs on any +Windows PC, or you can use [Insteon Terminal] which is open source and runs +on most platforms. SmartHome no longer supports HouseLinc, but it still +works. Insteon Terminal is a very useful tool but please read the disclaimers +carefully, they are important. [understanding linking]: http://www.insteon.com/support-knowledgebase/2015/1/28/understanding-linking +[Development Tools]: https://www.home-assistant.io/docs/tools/dev-tools/ [HouseLinc]: https://www.smarthome.com/houselinc.html [Insteon Terminal]: https://github.com/pfrommerd/insteon-terminal +[insteonplm_interactive]: https://github.com/nugget/python-insteonplm#command-line-interface ### {% linkable_title Customization %} -The only configuration item that is absolutely necessary is the port so that -Home Assistant can connect to the PLM. This will expose all the supported INSTEON -devices which exist in the modem's ALL-Link database. However, devices will -only be shown by their INSTEON hex address (e.g., "1A.2B.3C") which can be a bit -unwieldy. As you link and unlink devices using the 'Set' buttons, they'll be -added and removed from Home Assistant automatically. +The only configuration item that is absolutely necessary is the port so that +Home Assistant can connect to the PLM. This will expose all the supported +INSTEON devices which exist in the modem’s ALL-Link database. However, devices +will only be shown by their INSTEON hex address (e.g., “1A.2B.3C”) which can +be a bit unwieldy. As you link and unlink devices using the ‘Set’ buttons, +they’ll be added and removed from Home Assistant automatically. You can use the normal Home Assistant [device customization] section of your configuration to assign friendly names and special icons to your devices. This @@ -123,7 +149,9 @@ insteon_plm: cat: 0x10 subcat: 0x11 ``` + ### {% linkable_title What NOT to do %} + Insteon PLM is a top level component and device discovery will identify the Home Assistant platform the device belongs in. As such, do not declare Insteon devices in other platforms. For example, this configuration @@ -134,4 +162,3 @@ light: - platform: insteon_plm address: 1a2b3c ``` - diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 8b8a67393e..e92f859fb7 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -196,6 +196,7 @@ payload_not_available: | RGB Color | ✔ | ✔ | ✔ | | Transitions | ✘ | ✔ | ✔ | | XY 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 9455777285..6e70c8be89 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -23,10 +23,12 @@ This platform supports on/off, brightness, RGB colors, XY colors, color temperat "color_temp": 155, "color": { "r": 255, - "g": 255, - "b": 255, - "x": 0.123, - "y": 0.123 + "g": 180, + "b": 200, + "x": 0.406, + "y": 0.301, + "h": 344.0, + "s": 29.412 }, "effect": "colorloop", "state": "ON", @@ -126,6 +128,11 @@ xy: required: false type: boolean default: false +hs: + description: Flag that defines if the light supports HS colors. + required: false + type: boolean + default: false availability_topic: description: The MQTT topic subscribed to receive availability (online/offline) updates. required: false @@ -147,7 +154,7 @@ payload_not_available:- XY and RGB can not be used at the same time. If both are provided, XY overrides RGB. + RGB, XY and HSV can not be used at the same time in `state_topic` messages. Make sure that only one of the color models is in the "color" section of the state MQTT payload.
## {% linkable_title Comparison of light MQTT platforms %} @@ -161,6 +168,7 @@ payload_not_available: | RGB Color | ✔ | ✔ | ✔ | | Transitions | ✘ | ✔ | ✔ | | XY Color | ✔ | ✔ | ✘ | +| HS Color | ✘ | ✔ | ✘ | | White Value | ✔ | ✔ | ✔ | ## {% linkable_title Examples %} @@ -215,7 +223,32 @@ Home Assistant will then convert its 8bit value in the message to and from the d ```json { "brightness": 4095, + "state": "ON" +} +``` + +### {% linkable_title HS Color %} + +To use a light with hue+saturation as the color model, set `hs` to `true` in the platform configuration: + +```yaml +light: + - platform: mqtt_json + name: mqtt_json_hs_light + state_topic: "home/light" + command_topic: "home/light/set" + hs: True +``` + +Home Assistant expects the hue values to be in the range 0 to 360 and the saturation values to be scaled from 0 to 100. For example, the following is a blue color shade: + +```json +{ "state": "ON", + "color": { + "h": 24.0, + "s": 100.0 + } } ``` diff --git a/source/_components/light.mqtt_template.markdown b/source/_components/light.mqtt_template.markdown index d623971099..11b4372672 100644 --- a/source/_components/light.mqtt_template.markdown +++ b/source/_components/light.mqtt_template.markdown @@ -132,6 +132,7 @@ payload_not_available: | RGB Color | ✔ | ✔ | ✔ | | Transitions | ✘ | ✔ | ✔ | | XY Color | ✔ | ✔ | ✘ | +| HS Color | ✘ | ✔ | ✘ | | White Value | ✔ | ✔ | ✔ | ## {% linkable_title Examples %} diff --git a/source/_components/matrix.markdown b/source/_components/matrix.markdown new file mode 100644 index 0000000000..1047d54053 --- /dev/null +++ b/source/_components/matrix.markdown @@ -0,0 +1,136 @@ +--- +layout: page +title: "Matrix" +description: "Matrix chatbot support" +date: 2018-03-25 18:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: matrix.png +ha_category: Hub +ha_version: 0.69 +--- + +This component allows you to send messages to matrix rooms, as well as to react to messages in matrix rooms. Reacting to commands is accomplished by firing an event when one of the configured commands is triggered. + +```yaml +# Example configuration.yaml entry +matrix: + homeserver: https://matrix.org + username: "@my_matrix_user:matrix.org" + password: supersecurepassword + rooms: + - "#hasstest:matrix.org" + commands: + - word: my_command + name: my_command +``` + +Configuration variables: + +{% configuration %} +username: + description: "The matrix username that home assistant should use to log in. *Note*: You must specify a full matrix ID here, including the homeserver domain, e.g. '@my_matrix_bot:matrix.org'. Please note also that the '@' character has a special meaning in YAML, so this must always be given in quotes." + required: true + type: string +password: + description: The password for your Matrix account. + required: true + type: string +homeserver: + description: "The full URL for your homeserver. If you use the defauls matrix.org homeserver, this is 'https://matrix.org'." + required: true + type: string +verify_ssl: + description: Verify the homeservers certificate. + required: false + type: string + default: true +rooms: + description: "The list of rooms that the bot should join and listen for commands (see below) in. While you can limit the list of rooms that a certain command applies to on a per-command basis (see below), you must still list all rooms here that commands should be received in. Rooms can be given either by their internal ID (e.g., '!cURbafjkfsMDVwdRDQ:matrix.org') or any of their aliases (e.g., '#matrix:matrix.org')." + required: false + type: [string] + default: empty +commands: + description: "A list of commands that the bot should listen for. If a command is triggered (via its *word* or *expression*, see below), an event is fired that you can handle using automations. Every command consists of these possible configuration options:" + required: false + type: map + default: empty + keys: + word: + description: "Specifies a word that the bot should listen for. If you specify 'my_command' here, the bot will react to any message starting with '!my_command'." + required: false + type: string + expression: + description: "Specifies a regular expression (in python regexp syntax) that the bot should listen to. The bot will react to any message that matches the regular expression." + required: false + type: string + name: + description: "The name of the command. This will be an attribute of the event that is fired when this command triggers." + required: true + type: string + rooms: + description: "A list of rooms that the bot should listen for this command in. If this is not given, the *rooms* list from the main config is used. Please note that every room in this list must also be in the main *room* config." + required: false + type: [string] + default: empty +{% endconfiguration %} + +### {% linkable_title Event Data %} + +If a command is triggered, a `matrix_command` event is fired. The event contains the name of the command in the `name` field. If the command is a word command that has no name set, the `name` field contains the word instead. + +If the command is a word command, the `data` field contains a list of the command's arguments, i.e., everything that stood behind the word, split at spaces. If the command is an expression command, the `data` field contains the [group dictionary](https://docs.python.org/3.6/library/re.html?highlight=re#re.match.groupdict) of the regular expression that matched the message. + +### {% linkable_title Comprehensive Configuration Example %} + +This example also uses the [matrix `notify` platform](/components/notify.matrix/). + +```yaml +# The Matrix component +matrix: + homeserver: https://matrix.org + username: "@my_matrix_user:matrix.org" + password: supersecurepassword + rooms: + - "#hasstest:matrix.org" + - "#someothertest:matrix.org" + commands: + - word: testword + rooms: + - "#someothertest:matrix.org" + - expression: "My name is (?P
+
+Example of various device class icons for sensors.
+
+This component is not affiliated with PostNL and retrieves date from the endpoints of the mobile application. Use at your own risk. +
diff --git a/source/_components/sensor.socialblade.markdown b/source/_components/sensor.socialblade.markdown new file mode 100644 index 0000000000..cf106c9133 --- /dev/null +++ b/source/_components/sensor.socialblade.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: Social Blade Sensor +description: "Instructions on how to set up Social Blade Sensor within Home Assistant." +date: 2018-04-23 08:00 +sidebar: false +comments: false +sharing: true +footer: true +logo: socialblade.png +ha_category: Sensor +ha_release: 0.69 +ha_iot_class: "Cloud Polling" +--- + +The `socialblade` sensor component allows you get updates on a youtube channel using your social blade channel id. The sensor gets the subscribers and total views count from [Social Blade Website]( https://socialblade.com/) + +to get the channel id you can go to [Social Blade Website]( https://socialblade.com/) and search for youtube channel by username, then select the channel and grab the id from the url. +The channel id will be the last part of the url : +https://socialblade.com/youtube/channel/{channel_id} + +## Example for `configuration.yaml` : + +```yaml +sensor: + - platform: socialblade + channel_id: YOUR_CHANNEL_NUMBER +``` + +{% configuration %} +channel_id: + description: channel id number optained from the URL when you access Social Blade web client. + required: true + type: string +{% endconfiguration %} + +All the data will be fetch from [Social Blade]( https://socialblade.com/). diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index 9d1ec23a0c..8ef5a5dc44 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -69,6 +69,11 @@ sensor: description: Defines a template for the entity picture of the sensor. required: false type: template + device_class: + description: The type/class of the sensor to set the icon in the frontend. + required: false + type: device_class + default: None {% endconfiguration %} ## {% linkable_title Considerations %} diff --git a/source/_components/sensor.waze_travel_time.markdown b/source/_components/sensor.waze_travel_time.markdown index 2440930b9f..db3e3f0418 100644 --- a/source/_components/sensor.waze_travel_time.markdown +++ b/source/_components/sensor.waze_travel_time.markdown @@ -48,4 +48,12 @@ name: required: false default: "Waze Travel Time" type: string +incl_filter: + description: A substring that has to be present in the description of the selected route (a simple case-insensitive matching). + required: false + type: string +excl_filter: + description: A substring that has to be NOT present in the description of the selected route (a simple case-insensitive matching). + required: false + type: string {% endconfiguration %} diff --git a/source/_components/switch.rainmachine.markdown b/source/_components/switch.rainmachine.markdown index 26b73e0aa8..f37ce0fbd5 100644 --- a/source/_components/switch.rainmachine.markdown +++ b/source/_components/switch.rainmachine.markdown @@ -13,84 +13,24 @@ ha_iot_class: "Cloud Polling" ha_release: 0.51 --- -The `rainmachine` switch platform allows you to control programs and zones within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/). - -## {% linkable_title Configuring the Platform %} - -The platform allows for either local (i.e., directly across the LAN) or remote (i.e., through RainMachine's cloud API) access; the route you choose will dictate what your configuration should look like. - -For local access, specify the IP address/hostname of your RainMachine unit, your RainMachine password, and optionally, the device's HTTP port: - -```yaml -switch: - platform: rainmachine - ip_address: 192.168.1.100 - password: YOUR_PASSWORD -``` - -For remote access, specify your RainMachine username/email and password: - -```yaml -switch: - platform: rainmachine - email: user@host.com - password: YOUR_PASSWORD -``` - -{% configuration %} -password: - description: Your RainMachine password. - required: true - type: string -email: - description: "Your RainMachine username/email. Cannot be used with the `ip_address` parameter." - required: false - type: string -ip_address: - description: "The IP address of your RainMachine unit; cannot be used with the `email` parameter." - required: optional - type: string -port: - description: The TCP port used by your unit for the REST API. - required: false - type: int - default: 8080 -ssl: - description: Whether communication with the local device should occur over HTTPS. - required: false - type: boolean - default: true -zone_run_time: - description: The number of seconds that a zone should run when turned on. - required: false - type: int - default: 600 -{% endconfiguration %} +The `rainmachine` switch platform allows you to control programs and zones +within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/). ++You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/) +configured to use this switch. After configuring that component, switches will +automatically appear. +
## {% linkable_title Controlling Your Device %} -After Home Assistant loads, you will see new switches for every enabled program and zone. These work as expected: +After Home Assistant loads, new switches will be added for every enabled +program and zone. These work as expected: - Program On/Off: starts/stops a program -- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to determine how long to run for) +- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to +determine how long to run for) -Programs and zones are linked. If a program is running its final zone, you will see both the program and zone switches turned on; turning either one off will turn the other one off (just like in the web app). - -## {% linkable_title Weblink %} - -If you would like to see and control more detailed information, create an [iFrame](/components/panel_iframe/) that renders the RainMachine web app: - -```yaml -panel_iframe: - rainmachine: - title: RainMachine - url: "https://my.rainmachine.com/s/
+
+## {% linkable_title New Platforms %}
+
+- New sensor domain expiry ([@masarliev] - [#14067]) ([sensor.domain_expiry docs]) (new-platform)
+- Support Xiaomi Mijia Bluetooth Wireless Temperature and Humidity Sensor ([@ratcashdev] - [#13955]) ([sensor.mitemp_bt docs]) (new-platform)
+- Move RainMachine to component/hub model ([@bachya] - [#14085]) ([rainmachine docs]) ([switch.rainmachine docs]) (breaking change) (new-platform)
+- Foundation for users ([@balloob] - [#13968]) ([auth docs]) ([http docs]) (new-platform)
+- Add Social Blade Sensor ([@meauxt] - [#14060]) ([sensor.socialblade docs]) ([sensor.uscis docs]) (new-platform)
+- Add PostNL sensor (Dutch Postal Services) ([@iMicknl] - [#12366]) ([sensor.postnl docs]) (new-platform)
+- Issue/add template fans ([@giangvo] - [#12027]) ([fan.template docs]) (new-platform)
+- Matrix Chatbot ([@tinloaf] - [#13355]) ([matrix docs]) ([notify docs]) (breaking change) (new-platform)
+
+## {% linkable_title If you need help... %}
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
+
+## {% linkable_title Reporting Issues %}
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
+
+
+## {% linkable_title Breaking Changes %}
+
+- Pollen.com: Added attributes on top 3 allergens ([@bachya] - [#14018]) ([sensor.pollen docs]) (breaking change)
+- Add Sonos device attribute with grouping information ([@amelchio] - [#13553]) ([media_player.sonos docs]) (breaking change)
+- Re-implement HomematicIP cloud to async ([@mxworm] - [#13468]) ([homematicip_cloud docs]) ([sensor.homematicip_cloud docs]) (breaking change)
+- Move RainMachine to component/hub model ([@bachya] - [#14085]) ([rainmachine docs]) ([switch.rainmachine docs]) (breaking change) (new-platform)
+- System log: make firing event optional ([@balloob] - [#14102]) ([system_log docs]) (breaking change)
+- Disable eliqonline requirement ([@balloob] - [#14156]) ([sensor.eliqonline docs]) (breaking change)
+- Custom component loading cleanup ([@balloob] - [#14211]) (breaking change)
+- Converts RainMachine to hub model (part 2) ([@bachya] - [#14225]) ([rainmachine docs]) ([switch.rainmachine docs]) (breaking change)
+- Homekit: Changed device_class requirement Humidity Sensor ([@cdce8p] - [#14277]) ([homekit docs]) (breaking change)
+- Sensor device classes ([@cdce8p] - [#14282]) ([sensor docs]) (breaking change)
+- Matrix Chatbot ([@tinloaf] - [#13355]) ([matrix docs]) ([notify docs]) (breaking change) (new-platform)
+
+## {% linkable_title Beta Fixes %}
+
+- Add missing 'sensor' to ABODE_PLATFORMS ([@jloutsenhizer] - [#14313]) ([abode docs]) (beta fix)
+- Add debounce to move_cover ([@cdce8p] - [#14314]) ([homekit docs]) (beta fix)
+- Fix module names for custom components ([@balloob] - [#14317]) (beta fix)
+- Revert custom component loading logic ([@balloob] - [#14327]) (beta fix)
+- fix(hbmqtt): partial packets breaking hbmqtt ([@graffic] - [#14329]) ([mqtt docs]) (beta fix)
+- Fix Yeelight naming ([@syssi])
+
+## {% linkable_title All changes %}
+
+- Pollen.com: Added attributes on top 3 allergens ([@bachya] - [#14018]) ([sensor.pollen docs]) (breaking change)
+- Expose the condition code on condition sensors ([@maddox] - [#14011]) ([sensor.yweather docs])
+- upgrade rfxtrx lib, dimming support for Lighting3 ([@Danielhiversen] - [#14026]) ([rfxtrx docs])
+- Add Accuracy to Google Location Sharing ([@rdbahm] - [#14039]) ([device_tracker docs])
+- bump gogogate2 version ([@dlbroadfoot] - [#14044]) ([cover.gogogate2 docs])
+- device_tracker.ubus: catch ConnectionError ([@stintel] - [#14045]) ([device_tracker docs])
+- Show a notification when a config entry is discovered ([@balloob] - [#14022])
+- deCONZ use forward entry setup ([@Kane610] - [#13990]) ([binary_sensor docs]) ([deconz docs]) ([scene docs]) ([sensor docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs])
+- Bump pyEight version to update API & reduce connection issues ([@mezz64] - [#14058]) ([eight_sleep docs])
+- Bump locationsharinglib to 1.2.2 ([@thelittlefireman] - [#14070]) ([device_tracker docs])
+- Remove excessive debugging in webostv module ([@stephanerosi] - [#14056]) ([media_player.webostv docs])
+- Support new Xiaomi Aqara device model names and LAN protocol 2.0 ([@ileler] - [#13540]) ([xiaomi_aqara docs]) ([binary_sensor.xiaomi_aqara docs]) ([light.xiaomi_aqara docs]) ([sensor.xiaomi_aqara docs]) ([switch.xiaomi_aqara docs])
+- Add devices to Tahoma ([@bakedraccoon] - [#14075]) ([tahoma docs]) ([cover.tahoma docs]) ([sensor.tahoma docs])
+- New sensor domain expiry ([@masarliev] - [#14067]) ([sensor.domain_expiry docs]) (new-platform)
+- Modify weather components for "new" frontend card ([@c727] - [#14076]) ([weather.buienradar docs]) ([weather.darksky docs]) ([weather.openweathermap docs])
+- Add Sonos device attribute with grouping information ([@amelchio] - [#13553]) ([media_player.sonos docs]) (breaking change)
+- Re-implement HomematicIP cloud to async ([@mxworm] - [#13468]) ([homematicip_cloud docs]) ([sensor.homematicip_cloud docs]) (breaking change)
+- Update pyhomematic to 0.1.42 ([@danielperna84] - [#14095]) ([homematic docs])
+- Adds update file_path service to local_file camera ([@robmarkcole] - [#13976]) ([camera.local_file docs])
+- Zone component config entry support ([@Kane610] - [#14059]) ([zone docs])
+- Improve MQTT topic validation ([@OttoWinter] - [#14099]) ([mqtt docs])
+- Fix the optional friendly name of the Yeelight (Closes: #14088) ([@syssi] - [#14110]) ([light.yeelight docs])
+- Update QNAP lib to 0.2.6; handle null temps gracefully ([@colinodell] - [#14117]) ([sensor.qnap docs])
+- Support Xiaomi Mijia Bluetooth Wireless Temperature and Humidity Sensor ([@ratcashdev] - [#13955]) ([sensor.mitemp_bt docs]) (new-platform)
+- Upgrade colorlog to 3.1.4 ([@fabaff] - [#14132])
+- Move RainMachine to component/hub model ([@bachya] - [#14085]) ([rainmachine docs]) ([switch.rainmachine docs]) (breaking change) (new-platform)
+- Add support for light sensors with 'lx' unit to HomeKit ([@bieniu] - [#14131]) ([homekit docs])
+- Upgrade restrictedpython to 4.0b3 ([@fabaff] - [#14140]) ([python_script docs])
+- Logitech Pop support for emulated_hue component ([@dgraye] - [#12833]) ([emulated_hue docs])
+- Bump pyvizio to 0.0.3 ([@cgarwood] - [#14147]) ([media_player.vizio docs])
+- System log: make firing event optional ([@balloob] - [#14102]) ([system_log docs]) (breaking change)
+- Upgrade pylast to 2.2.0 ([@fabaff] - [#14139]) ([sensor.lastfm docs])
+- Upgrade sqlalchemy to 1.2.7 ([@fabaff] - [#14138])
+- Upgrade tapsaff to 0.2.0 ([@fabaff] - [#14137]) ([binary_sensor.tapsaff docs])
+- Upgrade python-telegram-bot to 10.0.2 ([@fabaff] - [#14144])
+- Upgrade youtube_dl to 2018.04.25 ([@fabaff] - [#14136]) ([media_extractor docs])
+- Clean up HomeKit accessory information characteristics ([@schmittx] - [#14114]) ([homekit docs])
+- Upgrade psutil to 5.4.5 ([@fabaff] - [#14135])
+- Fixed datetime values ([@gives1976] - [#14153]) ([sensor.sql docs])
+- deluge-components-update ([@engrbm87] - [#14016]) ([sensor.deluge docs]) ([switch.deluge docs])
+- Light mqtt_json: Add HS color support ([@OttoWinter] - [#14029]) ([light.mqtt_json docs])
+- Convert more files to async/await syntax ([@OttoWinter] - [#14142])
+- Disable eliqonline requirement ([@balloob] - [#14156]) ([sensor.eliqonline docs]) (breaking change)
+- deCONZ allow unloading of config entry ([@Kane610] - [#14115]) ([binary_sensor docs]) ([deconz docs]) ([scene docs]) ([sensor docs])
+- Upgrade netdisco to 1.4.0 ([@fabaff] - [#14152])
+- Add precipitation to OpenWeatherMap forecast ([@escoand] - [#13971]) ([weather.openweathermap docs])
+- Allow transitioning to colour temp for tradfri ([@Hate-Usernames] - [#14157])
+- Added update_interval to maxcube ([@dingusdk] - [#14143]) ([maxcube docs])
+- zha: Support remotes/buttons ([@rcloran] - [#12528]) ([zha docs]) ([binary_sensor.zha docs])
+- Upgrade numpy to 1.14.3 ([@fabaff] - [#14187]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
+- Updating darksky default update interval to 5 mins ([@msubra] - [#14195]) ([sensor.darksky docs])
+- Fix TypeError on round(self.humidity) (fixes #13116) ([@mvn23] - [#14174]) ([weather docs])
+- Add room hint support to Google Assistant cloud ([@balloob] - [#14180])
+- Update CODEOWNERS ([@pschmitt] - [#14214])
+- Fixes #14169 (Upgrade pyupnp-async to 0.1.0.2) ([@dgomes] - [#14210]) ([upnp docs])
+- zha: Clean up binary_sensor listener registration/state updates ([@rcloran] - [#14197])
+- HomematicIP cloud: Add logic to check accesspoint connection state ([@sander76] - [#14203]) ([homematicip_cloud docs])
+- Foundation for users ([@balloob] - [#13968]) ([auth docs]) ([http docs]) (new-platform)
+- Allow easy extension of websocket API ([@balloob] - [#14186]) ([frontend docs]) ([websocket_api docs])
+- Change the divisor for total consumption output ([@CM000n] - [#14215]) ([switch.fritzbox docs])
+- Upgrade mypy to 0.590 ([@fabaff] - [#14207])
+- Template Sensor add device_class support ([@OttoWinter] - [#14034]) ([sensor.template docs])
+- Add more parameters for DSMR sensor ([@rubenvandeven] - [#13967]) ([sensor.dsmr docs])
+- Support setting explicit mute value for Panasonic Viera TV ([@blackwind] - [#13954]) ([media_player.panasonic_viera docs])
+- Allow to set a desired update interval for camera_proxy_stream view ([@NovapaX] - [#13350]) ([camera docs])
+- panasonic_viera: Provide unique_id from SSDP UDN, if available ([@scop] - [#13541]) ([media_player.panasonic_viera docs])
+- Custom component loading cleanup ([@balloob] - [#14211]) (breaking change)
+- Buienradar improvements: continuous sensors and unique ID's ([@corneyl] - [#13249]) ([sensor.buienradar docs])
+- add volumio discovery ([@escoand] - [#14220]) ([media_player.volumio docs])
+- Converts RainMachine to hub model (part 2) ([@bachya] - [#14225]) ([rainmachine docs]) ([switch.rainmachine docs]) (breaking change)
+- Add MQTT Sensor device_class ([@OttoWinter] - [#14033]) ([sensor.mqtt docs])
+- Allow independent control of white level on flux_led component ([@oblogic7] - [#13985]) ([light.flux_led docs])
+- Add Social Blade Sensor ([@meauxt] - [#14060]) ([sensor.socialblade docs]) ([sensor.uscis docs]) (new-platform)
+- UPnP code cleanup ([@dgomes] - [#14235]) ([upnp docs]) ([sensor.upnp docs])
+- Improve config schema of the blackbird component ([@syssi] - [#14007]) ([media_player.blackbird docs])
+- Add support for tracking devices on Netgear access points ([@MatMaul] - [#13331]) ([device_tracker docs])
+- WUnderground unique ids ([@OttoWinter] - [#13311]) ([sensor.wunderground docs])
+- Add PostNL sensor (Dutch Postal Services) ([@iMicknl] - [#12366]) ([sensor.postnl docs]) (new-platform)
+- python_openzwave update config service ([@perosb] - [#12060]) ([zwave docs])
+- Add unique_id to zwave node entity ([@andrey-git] - [#14201]) ([zwave docs])
+- Add prereqs for HomeKit Controller ([@marthoc] - [#14172])
+- Restores switch state, case the switch is optimistic ([@dgomes] - [#14151]) ([switch.mqtt docs])
+- Issue/add template fans ([@giangvo] - [#12027]) ([fan.template docs]) (new-platform)
+- HomeKit - Climate: power state on/off support ([@roiff] - [#14082]) ([homekit docs])
+- Demo Sensor - Added device_class support ([@cdce8p] - [#14269]) ([sensor.demo docs])
+- Re-enable eliqonline requirement ([@molobrakos] - [#14265]) ([sensor.eliqonline docs])
+- Add fetching camera thumbnails over websocket ([@balloob] - [#14231]) ([camera docs]) ([frontend docs]) ([image_processing docs]) ([microsoft_face docs]) ([websocket_api docs])
+- Allow fetching media player covers via websocket connection ([@balloob] - [#14233]) ([media_player docs])
+- Fix ZWave light brightness ([@cdce8p] - [#14261]) ([light.zwave docs])
+- fix check config not working after #14211 ([@fanthos] - [#14259])
+- Issue Template Fix CRLF ([@OttoWinter] - [#14283])
+- Upgrade attrs to 18.1.0 ([@fabaff] - [#14281])
+- Update HAP-python to 2.0.0 ([@cdce8p] - [#14278]) ([homekit docs])
+- Upgrade holidays to 0.9.5 ([@fabaff] - [#14274]) ([binary_sensor.workday docs])
+- Homekit: Changed device_class requirement Humidity Sensor ([@cdce8p] - [#14277]) ([homekit docs]) (breaking change)
+- HomeKit: Support triggered state for alarm_control_panel ([@schmittx] - [#14285]) ([homekit docs])
+- Upgrade astral to 1.6.1 ([@fabaff] - [#14297])
+- BOM Weather throttle fix ([@nickw444] - [#14234]) ([sensor.bom docs])
+- Publish attributes unconditionally ([@blackwind] - [#14179]) ([mqtt_statestream docs])
+- Sensor device classes ([@cdce8p] - [#14282]) ([sensor docs]) (breaking change)
+- Matrix Chatbot ([@tinloaf] - [#13355]) ([matrix docs]) ([notify docs]) (breaking change) (new-platform)
+- deCONZ add new device without restart ([@Kane610] - [#14221]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs])
+- Add alarmdotcom sensor status ([@jnewland] - [#14254]) ([alarm_control_panel.alarmdotcom docs])
+- Add domain to labels and count state changes to Prometheus ([@jnewland] - [#14253]) ([prometheus docs])
+- Add support for max_volume ([@relvacode] - [#13822]) ([media_player.onkyo docs])
+- Refactor ImageProcessingFaceEntity ([@robmarkcole] - [#14296]) ([image_processing docs]) ([image_processing.demo docs]) ([image_processing.dlib_face_detect docs]) ([image_processing.dlib_face_identify docs]) ([image_processing.microsoft_face_detect docs]) ([image_processing.microsoft_face_identify docs])
+- Onkyo: SUPPORT_VOLUME_STEP ([@rsmeral] - [#14299]) ([media_player.onkyo docs])
+- Add All-Linking capabilities ([@teharris1] - [#14065]) ([insteon_plm docs]) ([binary_sensor.insteon_plm docs]) ([fan.insteon_plm docs]) ([light.insteon_plm docs]) ([sensor.insteon_plm docs]) ([switch.insteon_plm docs])
+- Add missing 'sensor' to ABODE_PLATFORMS ([@jloutsenhizer] - [#14313]) ([abode docs]) (beta fix)
+- Add debounce to move_cover ([@cdce8p] - [#14314]) ([homekit docs]) (beta fix)
+- Fix module names for custom components ([@balloob] - [#14317]) (beta fix)
+- Revert custom component loading logic ([@balloob] - [#14327]) (beta fix)
+- fix(hbmqtt): partial packets breaking hbmqtt ([@graffic] - [#14329]) ([mqtt docs]) (beta fix)
+
+[#12027]: https://github.com/home-assistant/home-assistant/pull/12027
+[#12060]: https://github.com/home-assistant/home-assistant/pull/12060
+[#12366]: https://github.com/home-assistant/home-assistant/pull/12366
+[#12528]: https://github.com/home-assistant/home-assistant/pull/12528
+[#12833]: https://github.com/home-assistant/home-assistant/pull/12833
+[#13249]: https://github.com/home-assistant/home-assistant/pull/13249
+[#13311]: https://github.com/home-assistant/home-assistant/pull/13311
+[#13331]: https://github.com/home-assistant/home-assistant/pull/13331
+[#13350]: https://github.com/home-assistant/home-assistant/pull/13350
+[#13355]: https://github.com/home-assistant/home-assistant/pull/13355
+[#13468]: https://github.com/home-assistant/home-assistant/pull/13468
+[#13540]: https://github.com/home-assistant/home-assistant/pull/13540
+[#13541]: https://github.com/home-assistant/home-assistant/pull/13541
+[#13553]: https://github.com/home-assistant/home-assistant/pull/13553
+[#13822]: https://github.com/home-assistant/home-assistant/pull/13822
+[#13954]: https://github.com/home-assistant/home-assistant/pull/13954
+[#13955]: https://github.com/home-assistant/home-assistant/pull/13955
+[#13967]: https://github.com/home-assistant/home-assistant/pull/13967
+[#13968]: https://github.com/home-assistant/home-assistant/pull/13968
+[#13971]: https://github.com/home-assistant/home-assistant/pull/13971
+[#13976]: https://github.com/home-assistant/home-assistant/pull/13976
+[#13985]: https://github.com/home-assistant/home-assistant/pull/13985
+[#13990]: https://github.com/home-assistant/home-assistant/pull/13990
+[#14007]: https://github.com/home-assistant/home-assistant/pull/14007
+[#14011]: https://github.com/home-assistant/home-assistant/pull/14011
+[#14016]: https://github.com/home-assistant/home-assistant/pull/14016
+[#14018]: https://github.com/home-assistant/home-assistant/pull/14018
+[#14022]: https://github.com/home-assistant/home-assistant/pull/14022
+[#14026]: https://github.com/home-assistant/home-assistant/pull/14026
+[#14029]: https://github.com/home-assistant/home-assistant/pull/14029
+[#14033]: https://github.com/home-assistant/home-assistant/pull/14033
+[#14034]: https://github.com/home-assistant/home-assistant/pull/14034
+[#14039]: https://github.com/home-assistant/home-assistant/pull/14039
+[#14044]: https://github.com/home-assistant/home-assistant/pull/14044
+[#14045]: https://github.com/home-assistant/home-assistant/pull/14045
+[#14056]: https://github.com/home-assistant/home-assistant/pull/14056
+[#14058]: https://github.com/home-assistant/home-assistant/pull/14058
+[#14059]: https://github.com/home-assistant/home-assistant/pull/14059
+[#14060]: https://github.com/home-assistant/home-assistant/pull/14060
+[#14065]: https://github.com/home-assistant/home-assistant/pull/14065
+[#14067]: https://github.com/home-assistant/home-assistant/pull/14067
+[#14070]: https://github.com/home-assistant/home-assistant/pull/14070
+[#14075]: https://github.com/home-assistant/home-assistant/pull/14075
+[#14076]: https://github.com/home-assistant/home-assistant/pull/14076
+[#14082]: https://github.com/home-assistant/home-assistant/pull/14082
+[#14085]: https://github.com/home-assistant/home-assistant/pull/14085
+[#14095]: https://github.com/home-assistant/home-assistant/pull/14095
+[#14099]: https://github.com/home-assistant/home-assistant/pull/14099
+[#14102]: https://github.com/home-assistant/home-assistant/pull/14102
+[#14110]: https://github.com/home-assistant/home-assistant/pull/14110
+[#14114]: https://github.com/home-assistant/home-assistant/pull/14114
+[#14115]: https://github.com/home-assistant/home-assistant/pull/14115
+[#14117]: https://github.com/home-assistant/home-assistant/pull/14117
+[#14131]: https://github.com/home-assistant/home-assistant/pull/14131
+[#14132]: https://github.com/home-assistant/home-assistant/pull/14132
+[#14135]: https://github.com/home-assistant/home-assistant/pull/14135
+[#14136]: https://github.com/home-assistant/home-assistant/pull/14136
+[#14137]: https://github.com/home-assistant/home-assistant/pull/14137
+[#14138]: https://github.com/home-assistant/home-assistant/pull/14138
+[#14139]: https://github.com/home-assistant/home-assistant/pull/14139
+[#14140]: https://github.com/home-assistant/home-assistant/pull/14140
+[#14142]: https://github.com/home-assistant/home-assistant/pull/14142
+[#14143]: https://github.com/home-assistant/home-assistant/pull/14143
+[#14144]: https://github.com/home-assistant/home-assistant/pull/14144
+[#14147]: https://github.com/home-assistant/home-assistant/pull/14147
+[#14151]: https://github.com/home-assistant/home-assistant/pull/14151
+[#14152]: https://github.com/home-assistant/home-assistant/pull/14152
+[#14153]: https://github.com/home-assistant/home-assistant/pull/14153
+[#14156]: https://github.com/home-assistant/home-assistant/pull/14156
+[#14157]: https://github.com/home-assistant/home-assistant/pull/14157
+[#14172]: https://github.com/home-assistant/home-assistant/pull/14172
+[#14174]: https://github.com/home-assistant/home-assistant/pull/14174
+[#14179]: https://github.com/home-assistant/home-assistant/pull/14179
+[#14180]: https://github.com/home-assistant/home-assistant/pull/14180
+[#14186]: https://github.com/home-assistant/home-assistant/pull/14186
+[#14187]: https://github.com/home-assistant/home-assistant/pull/14187
+[#14195]: https://github.com/home-assistant/home-assistant/pull/14195
+[#14197]: https://github.com/home-assistant/home-assistant/pull/14197
+[#14201]: https://github.com/home-assistant/home-assistant/pull/14201
+[#14203]: https://github.com/home-assistant/home-assistant/pull/14203
+[#14207]: https://github.com/home-assistant/home-assistant/pull/14207
+[#14210]: https://github.com/home-assistant/home-assistant/pull/14210
+[#14211]: https://github.com/home-assistant/home-assistant/pull/14211
+[#14214]: https://github.com/home-assistant/home-assistant/pull/14214
+[#14215]: https://github.com/home-assistant/home-assistant/pull/14215
+[#14220]: https://github.com/home-assistant/home-assistant/pull/14220
+[#14221]: https://github.com/home-assistant/home-assistant/pull/14221
+[#14225]: https://github.com/home-assistant/home-assistant/pull/14225
+[#14231]: https://github.com/home-assistant/home-assistant/pull/14231
+[#14233]: https://github.com/home-assistant/home-assistant/pull/14233
+[#14234]: https://github.com/home-assistant/home-assistant/pull/14234
+[#14235]: https://github.com/home-assistant/home-assistant/pull/14235
+[#14253]: https://github.com/home-assistant/home-assistant/pull/14253
+[#14254]: https://github.com/home-assistant/home-assistant/pull/14254
+[#14259]: https://github.com/home-assistant/home-assistant/pull/14259
+[#14261]: https://github.com/home-assistant/home-assistant/pull/14261
+[#14265]: https://github.com/home-assistant/home-assistant/pull/14265
+[#14269]: https://github.com/home-assistant/home-assistant/pull/14269
+[#14274]: https://github.com/home-assistant/home-assistant/pull/14274
+[#14277]: https://github.com/home-assistant/home-assistant/pull/14277
+[#14278]: https://github.com/home-assistant/home-assistant/pull/14278
+[#14281]: https://github.com/home-assistant/home-assistant/pull/14281
+[#14282]: https://github.com/home-assistant/home-assistant/pull/14282
+[#14283]: https://github.com/home-assistant/home-assistant/pull/14283
+[#14285]: https://github.com/home-assistant/home-assistant/pull/14285
+[#14296]: https://github.com/home-assistant/home-assistant/pull/14296
+[#14297]: https://github.com/home-assistant/home-assistant/pull/14297
+[#14299]: https://github.com/home-assistant/home-assistant/pull/14299
+[#14313]: https://github.com/home-assistant/home-assistant/pull/14313
+[#14314]: https://github.com/home-assistant/home-assistant/pull/14314
+[#14317]: https://github.com/home-assistant/home-assistant/pull/14317
+[#14327]: https://github.com/home-assistant/home-assistant/pull/14327
+[#14329]: https://github.com/home-assistant/home-assistant/pull/14329
+[@CM000n]: https://github.com/CM000n
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Hate-Usernames]: https://github.com/Hate-Usernames
+[@Kane610]: https://github.com/Kane610
+[@MatMaul]: https://github.com/MatMaul
+[@NovapaX]: https://github.com/NovapaX
+[@OttoWinter]: https://github.com/OttoWinter
+[@amelchio]: https://github.com/amelchio
+[@andrey-git]: https://github.com/andrey-git
+[@bachya]: https://github.com/bachya
+[@bakedraccoon]: https://github.com/bakedraccoon
+[@balloob]: https://github.com/balloob
+[@bieniu]: https://github.com/bieniu
+[@blackwind]: https://github.com/blackwind
+[@c727]: https://github.com/c727
+[@cdce8p]: https://github.com/cdce8p
+[@cgarwood]: https://github.com/cgarwood
+[@colinodell]: https://github.com/colinodell
+[@corneyl]: https://github.com/corneyl
+[@danielperna84]: https://github.com/danielperna84
+[@dgomes]: https://github.com/dgomes
+[@dgraye]: https://github.com/dgraye
+[@dingusdk]: https://github.com/dingusdk
+[@dlbroadfoot]: https://github.com/dlbroadfoot
+[@engrbm87]: https://github.com/engrbm87
+[@escoand]: https://github.com/escoand
+[@fabaff]: https://github.com/fabaff
+[@fanthos]: https://github.com/fanthos
+[@giangvo]: https://github.com/giangvo
+[@gives1976]: https://github.com/gives1976
+[@graffic]: https://github.com/graffic
+[@iMicknl]: https://github.com/iMicknl
+[@ileler]: https://github.com/ileler
+[@jloutsenhizer]: https://github.com/jloutsenhizer
+[@jnewland]: https://github.com/jnewland
+[@maddox]: https://github.com/maddox
+[@marthoc]: https://github.com/marthoc
+[@masarliev]: https://github.com/masarliev
+[@meauxt]: https://github.com/meauxt
+[@mezz64]: https://github.com/mezz64
+[@molobrakos]: https://github.com/molobrakos
+[@msubra]: https://github.com/msubra
+[@mvn23]: https://github.com/mvn23
+[@mxworm]: https://github.com/mxworm
+[@nickw444]: https://github.com/nickw444
+[@oblogic7]: https://github.com/oblogic7
+[@perosb]: https://github.com/perosb
+[@pschmitt]: https://github.com/pschmitt
+[@ratcashdev]: https://github.com/ratcashdev
+[@rcloran]: https://github.com/rcloran
+[@rdbahm]: https://github.com/rdbahm
+[@relvacode]: https://github.com/relvacode
+[@robmarkcole]: https://github.com/robmarkcole
+[@roiff]: https://github.com/roiff
+[@rsmeral]: https://github.com/rsmeral
+[@rubenvandeven]: https://github.com/rubenvandeven
+[@sander76]: https://github.com/sander76
+[@schmittx]: https://github.com/schmittx
+[@scop]: https://github.com/scop
+[@stephanerosi]: https://github.com/stephanerosi
+[@stintel]: https://github.com/stintel
+[@syssi]: https://github.com/syssi
+[@teharris1]: https://github.com/teharris1
+[@thelittlefireman]: https://github.com/thelittlefireman
+[@tinloaf]: https://github.com/tinloaf
+[abode docs]: /components/abode/
+[alarm_control_panel.alarmdotcom docs]: /components/alarm_control_panel.alarmdotcom/
+[auth docs]: /components/auth/
+[binary_sensor docs]: /components/binary_sensor/
+[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
+[binary_sensor.insteon_plm docs]: /components/binary_sensor.insteon_plm/
+[binary_sensor.tapsaff docs]: /components/binary_sensor.tapsaff/
+[binary_sensor.trend docs]: /components/binary_sensor.trend/
+[binary_sensor.workday docs]: /components/binary_sensor.workday/
+[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/
+[binary_sensor.zha docs]: /components/binary_sensor.zha/
+[camera docs]: /components/camera/
+[camera.local_file docs]: /components/camera.local_file/
+[cover.gogogate2 docs]: /components/cover.gogogate2/
+[cover.tahoma docs]: /components/cover.tahoma/
+[deconz docs]: /components/deconz/
+[device_tracker docs]: /components/device_tracker/
+[eight_sleep docs]: /components/eight_sleep/
+[emulated_hue docs]: /components/emulated_hue/
+[fan.insteon_plm docs]: /components/fan.insteon_plm/
+[fan.template docs]: /components/fan.template/
+[frontend docs]: /components/frontend/
+[homekit docs]: /components/homekit/
+[homematic docs]: /components/homematic/
+[homematicip_cloud docs]: /components/homematicip_cloud/
+[http docs]: /components/http/
+[image_processing docs]: /components/image_processing/
+[image_processing.demo docs]: /components/image_processing.demo/
+[image_processing.dlib_face_detect docs]: /components/image_processing.dlib_face_detect/
+[image_processing.dlib_face_identify docs]: /components/image_processing.dlib_face_identify/
+[image_processing.microsoft_face_detect docs]: /components/image_processing.microsoft_face_detect/
+[image_processing.microsoft_face_identify docs]: /components/image_processing.microsoft_face_identify/
+[image_processing.opencv docs]: /components/image_processing.opencv/
+[insteon_plm docs]: /components/insteon_plm/
+[light.deconz docs]: /components/light.deconz/
+[light.flux_led docs]: /components/light.flux_led/
+[light.insteon_plm docs]: /components/light.insteon_plm/
+[light.mqtt_json docs]: /components/light.mqtt_json/
+[light.xiaomi_aqara docs]: /components/light.xiaomi_aqara/
+[light.yeelight docs]: /components/light.yeelight/
+[light.zwave docs]: /components/light.zwave/
+[matrix docs]: /components/matrix/
+[maxcube docs]: /components/maxcube/
+[media_extractor docs]: /components/media_extractor/
+[media_player docs]: /components/media_player/
+[media_player.blackbird docs]: /components/media_player.blackbird/
+[media_player.onkyo docs]: /components/media_player.onkyo/
+[media_player.panasonic_viera docs]: /components/media_player.panasonic_viera/
+[media_player.sonos docs]: /components/media_player.sonos/
+[media_player.vizio docs]: /components/media_player.vizio/
+[media_player.volumio docs]: /components/media_player.volumio/
+[media_player.webostv docs]: /components/media_player.webostv/
+[microsoft_face docs]: /components/microsoft_face/
+[mqtt docs]: /components/mqtt/
+[mqtt_statestream docs]: /components/mqtt_statestream/
+[notify docs]: /components/notify/
+[prometheus docs]: /components/prometheus/
+[python_script docs]: /components/python_script/
+[rainmachine docs]: /components/rainmachine/
+[rfxtrx docs]: /components/rfxtrx/
+[scene docs]: /components/scene/
+[scene.deconz docs]: /components/scene.deconz/
+[sensor docs]: /components/sensor/
+[sensor.bom docs]: /components/sensor.bom/
+[sensor.buienradar docs]: /components/sensor.buienradar/
+[sensor.darksky docs]: /components/sensor.darksky/
+[sensor.deconz docs]: /components/sensor.deconz/
+[sensor.deluge docs]: /components/sensor.deluge/
+[sensor.demo docs]: /components/sensor.demo/
+[sensor.domain_expiry docs]: /components/sensor.domain_expiry/
+[sensor.dsmr docs]: /components/sensor.dsmr/
+[sensor.eliqonline docs]: /components/sensor.eliqonline/
+[sensor.homematicip_cloud docs]: /components/sensor.homematicip_cloud/
+[sensor.insteon_plm docs]: /components/sensor.insteon_plm/
+[sensor.lastfm docs]: /components/sensor.lastfm/
+[sensor.mitemp_bt docs]: /components/sensor.mitemp_bt/
+[sensor.mqtt docs]: /components/sensor.mqtt/
+[sensor.pollen docs]: /components/sensor.pollen/
+[sensor.postnl docs]: /components/sensor.postnl/
+[sensor.qnap docs]: /components/sensor.qnap/
+[sensor.socialblade docs]: /components/sensor.socialblade/
+[sensor.sql docs]: /components/sensor.sql/
+[sensor.tahoma docs]: /components/sensor.tahoma/
+[sensor.template docs]: /components/sensor.template/
+[sensor.upnp docs]: /components/sensor.upnp/
+[sensor.uscis docs]: /components/sensor.uscis/
+[sensor.wunderground docs]: /components/sensor.wunderground/
+[sensor.xiaomi_aqara docs]: /components/sensor.xiaomi_aqara/
+[sensor.yweather docs]: /components/sensor.yweather/
+[switch.deluge docs]: /components/switch.deluge/
+[switch.fritzbox docs]: /components/switch.fritzbox/
+[switch.insteon_plm docs]: /components/switch.insteon_plm/
+[switch.mqtt docs]: /components/switch.mqtt/
+[switch.rainmachine docs]: /components/switch.rainmachine/
+[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
+[system_log docs]: /components/system_log/
+[tahoma docs]: /components/tahoma/
+[upnp docs]: /components/upnp/
+[weather docs]: /components/weather/
+[weather.buienradar docs]: /components/weather.buienradar/
+[weather.darksky docs]: /components/weather.darksky/
+[weather.openweathermap docs]: /components/weather.openweathermap/
+[websocket_api docs]: /components/websocket_api/
+[xiaomi_aqara docs]: /components/xiaomi_aqara/
+[zha docs]: /components/zha/
+[zone docs]: /components/zone/
+[zwave docs]: /components/zwave/
diff --git a/source/cloud/google_assistant.markdown b/source/cloud/google_assistant.markdown
index c3334ca891..070f03040b 100644
--- a/source/cloud/google_assistant.markdown
+++ b/source/cloud/google_assistant.markdown
@@ -42,6 +42,7 @@ cloud:
aliases:
- bright lights
- entry lights
+ room: living room
```
{% configuration cloud %}
@@ -89,5 +90,8 @@ google_actions:
description: Aliases that can also be used to refer to this entity
required: false
type: list
+ room:
+ description: Hint for Google Assistant in which room this entity is.
+ required: false
+ type: string
{% endconfiguration %}
-
diff --git a/source/help/index.markdown b/source/help/index.markdown
index 105bf91613..881204f047 100644
--- a/source/help/index.markdown
+++ b/source/help/index.markdown
@@ -31,6 +31,7 @@ Have you found an issue in your Home Assistant installation? Please report it. R
### {% linkable_title Videos, talks, workshops and alike %}
+- [Automate your home with Home Assistant](https://www.youtube.com/watch?v=SSrgi4iHGbs) at [foss-north 2018](http://foss-north.se/2018/speakers-and-talks.html#jparadies) - March 2018
- [Home Assistant](https://github.com/home-assistant/home-assistant-assets/tree/master/english/2017-qecampX) at QECampX 2017 - October 2017
- [Open Source Heimautomation mit Home Assistant](https://github.com/home-assistant/home-assistant-assets/tree/master/german/2017-maker-faire-zurich) at [Mini Maker Faire Zurich 2017](https://www.makerfairezurich.ch/en/) - September 2017
- [Why we can't have the Internet of Nice Things: A home automation primer](https://www.openwest.org/custom/description.php?id=92) at [OpenWest 2017](https://www.openwest.org) - July 2017
diff --git a/source/images/screenshots/sensor_device_classes_icons.png b/source/images/screenshots/sensor_device_classes_icons.png
new file mode 100644
index 0000000000..58e115250c
Binary files /dev/null and b/source/images/screenshots/sensor_device_classes_icons.png differ
diff --git a/source/images/supported_brands/postnl.png b/source/images/supported_brands/postnl.png
new file mode 100644
index 0000000000..93d54db18c
Binary files /dev/null and b/source/images/supported_brands/postnl.png differ
diff --git a/source/images/supported_brands/socialblade.png b/source/images/supported_brands/socialblade.png
new file mode 100644
index 0000000000..3e2de38de2
Binary files /dev/null and b/source/images/supported_brands/socialblade.png differ