diff --git a/_config.yml b/_config.yml index 0c9b301a4ce..7811973a169 100644 --- a/_config.yml +++ b/_config.yml @@ -117,6 +117,17 @@ google_analytics_tracking_id: UA-57927901-1 # Facebook Like facebook_like: true +# Liquid template compressor +compress_html: + clippings: [] + comments: [] + endings: [] + ignore: + envs: [] + blanklines: true + profile: false + startings: [] + social: visible: false facebook: @@ -128,9 +139,9 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 40 -current_patch_version: 0 -date_released: 2017-03-11 +current_patch_version: 2 +date_released: 2017-03-22 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. -patch_version_notes: "#" +patch_version_notes: "#release-0402---march-22" diff --git a/sass/custom/_component_page.scss b/sass/custom/_component_page.scss new file mode 100644 index 00000000000..a0cb1d53718 --- /dev/null +++ b/sass/custom/_component_page.scss @@ -0,0 +1,249 @@ +#components-page{ + .component-search{ + margin-bottom: 24px; + + input{ + width: 100%; + padding: 10px; + + background-color: #fefefe; + border-radius: 2px; + border: 1px solid; + border-color: #7c7c7c #c3c3c3 #ddd; + } + } +} + +@media only screen and (max-width: $lap-end) { + #components-page { + .filter-button-group { + margin-bottom: 16px; + + .btn { + display: inline-block; + margin-right: 8px; + margin-bottom: 8px; + + &.current { + background-color: #3A5561; + background-image: linear-gradient(to bottom, #3A5561,#3F6B7D); + } + } + } + } +} + +@media only screen and (min-width: $desk-start) { + #components-page { + .filter-button-group { + .featured { + margin: 12px 0; + } + + .added_in_current_version { + margin-top: 12px; + } + + .added_two_versions_ago { + margin-bottom: 12px; + } + + .btn { + display: block; + background: 0; + color: black; + box-shadow: none; + text-shadow: none; + padding: 2px; + + &.current { + font-weight: bold; + } + } + } + } +} + +// styles for the cards +.hass-option-cards { + display: -ms-flexbox; + display: -webkit-box; + display: -webkit-flexbox; + display: -webkit-flex; + display: flex; + + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-items: flex-start; + margin: -4px; // grid trick, has to match option-card's margin + + p.note{ + width: 100%; + } + + .option-card { + flex: 0 0 auto; + width: 210px; + height: 142px; + display: inline-block; + background-color: #fefefe; + margin: 4px; + border-radius: 2px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + padding: 8px; + text-align: center; + text-decoration: none; + + .img-container { + height: 50px; + margin: 8px 0; + font: 0/0 a; + + &:before { /* create a full-height inline block pseudo=element */ + content: ' '; + display: inline-block; + vertical-align: middle; /* vertical alignment of the inline element */ + height: 100%; + } + + img { + max-width: 100%; + max-height: 50px; + box-shadow: none; + border: none; + vertical-align: middle; + } + } + + .title { + text-decoration: none; + font-size: 18px; + color: #000; + line-height: 1.3em; + height: 2.6em; + } + + .category { + font-size: 14px; + color: #AAA; + } + } + + // fade-in animation + &.show-items .option-card{ + opacity:0; + -webkit-animation:new-item-animation .2s linear forwards; + -o-animation:new-item-animation .2s linear forwards; + animation:new-item-animation .2s linear forwards; + } + + // fade-out animation + &.remove-items .option-card{ + -webkit-animation:removed-item-animation .2s cubic-bezier(.55,-0.04,.91,.94) forwards; + -o-animation:removed-item-animation .2s cubic-bezier(.55,-0.04,.91,.94) forwards; + animation:removed-item-animation .2s cubic-bezier(.55,-0.04,.91,.94) forwards + } +} + +// animations for fade-in and fade-out effects of option-cards +@keyframes new-item-animation { + from { + opacity:0; + -webkit-transform:scale(0); + -ms-transform:scale(0); + -o-transform:scale(0); + transform:scale(0) + } + to { + opacity:1; + -webkit-transform:scale(1); + -ms-transform:scale(1); + -o-transform:scale(1); + transform:scale(1) + } +} +@-webkit-keyframes new-item-animation { + from { + opacity:0; + -webkit-transform:scale(0); + transform:scale(0) + } + to { + opacity:1; + -webkit-transform:scale(1); + transform:scale(1) + } +} +@-o-keyframes new-item-animation { + from { + opacity:0; + -o-transform:scale(0); + transform:scale(0) + } + to { + opacity:1; + -o-transform:scale(1); + transform:scale(1) + } +} + +// space blocker animation +@keyframes openspace { + to { + height:auto + } +} + +@-webkit-keyframes openspace { + to { + height:auto + } +} +@-o-keyframes openspace { + to { + height:auto + } +} + +// removal animation +@keyframes removed-item-animation { + from { + opacity:1; + -webkit-transform:scale(1); + -ms-transform:scale(1); + -o-transform:scale(1); + transform:scale(1) + } + to { + -webkit-transform:scale(0); + -ms-transform:scale(0); + -o-transform:scale(0); + transform:scale(0); + opacity:0 + } +} +@-webkit-keyframes removed-item-animation { + from { + opacity:1; + -webkit-transform:scale(1); + transform:scale(1) + } + to { + -webkit-transform:scale(0); + transform:scale(0); + opacity:0 + } +} +@-o-keyframes removed-item-animation { + from { + opacity:1; + -o-transform:scale(1); + transform:scale(1) + } + to { + -o-transform:scale(0); + transform:scale(0); + opacity:0 + } +} \ No newline at end of file diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 0f870b81f88..651eacf82b6 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -306,132 +306,6 @@ p.note { } } -#components-page { - .isotope-item { - z-index: 2; - } - .isotope-hidden.isotope-item { - pointer-events: none; - z-index: 1; - } - .isotope, - .isotope .isotope-item { - -webkit-transition-duration: 0.8s; - -moz-transition-duration: 0.8s; - transition-duration: 0.8s; - } - .isotope { - -webkit-transition-property: height, width; - -moz-transition-property: height, width; - transition-property: height, width; - } - .isotope .isotope-item { - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - transition-property: transform, opacity; - } -} - -@media only screen and (max-width: $lap-end) { - #components-page { - .filter-button-group { - margin-bottom: 16px; - - .btn { - display: inline-block; - margin-right: 8px; - margin-bottom: 8px; - - &.current { - background-color: #3A5561; - background-image: linear-gradient(to bottom, #3A5561,#3F6B7D); - } - } - } - } -} - -@media only screen and (min-width: $desk-start) { - #components-page { - .filter-button-group { - .featured { - margin: 12px 0; - } - - .added_in_current_version { - margin-top: 12px; - } - - .added_two_versions_ago { - margin-bottom: 12px; - } - - .btn { - display: block; - background: 0; - color: black; - box-shadow: none; - text-shadow: none; - padding: 2px; - - &.current { - font-weight: bold; - } - } - } - } -} - -.hass-option-cards { - .option-card { - display: inline-block; - width: 202px; - height: 142px; - background-color: #fefefe; - margin-right: 4px; - margin-bottom: 8px; - border-radius: 2px; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); - padding: 8px; - text-align: center; - text-decoration: none; - - .img-container { - height: 50px; - margin: 8px 0; - font: 0/0 a; - - &:before { /* create a full-height inline block pseudo=element */ - content: ' '; - display: inline-block; - vertical-align: middle; /* vertical alignment of the inline element */ - height: 100%; - } - - img { - max-width: 100%; - max-height: 50px; - box-shadow: none; - border: none; - vertical-align: middle; - } - } - - .title { - text-decoration: none; - font-size: 18px; - color: #000; - line-height: 1.3em; - height: 2.6em; - } - - .category { - font-size: 14px; - color: #AAA; - } - } -} - .aside-module { .section { margin-bottom: 16px; diff --git a/sass/screen.scss b/sass/screen.scss index c3145e5c4c7..5fed2c748de 100644 --- a/sass/screen.scss +++ b/sass/screen.scss @@ -1,3 +1,4 @@ @import 'oscailte/oscailte'; @import 'custom/paulus'; +@import 'custom/component_page'; @import 'custom/syntax'; diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index 39801137cc4..89631c4cf77 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Android IP Webcam" -description: "Connect Android devices as IP webcam to Home Assistant" +description: "Connect Android devices as an IP webcam to Home Assistant" date: 2017-03-10 00:00 sidebar: true comments: false @@ -12,7 +12,7 @@ ha_category: Hub ha_release: "0.40" --- -The Android IP webcam component turns your Android phone into a network camera with multiple viewing options. +The Android IP webcam component turns an Android phone into a network camera with multiple viewing options. It's setup as a 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. @@ -21,10 +21,14 @@ To set it up, download [the IP Webcam app][app] and add the following informatio ```yaml # Example configuration.yaml entry android_ip_webcam: +<<<<<<< HEAD <<<<<<< HEAD - host: 192.168.1.10 ======= # This should be the ip of your phone +======= + # This should be the IP Address of the phone +>>>>>>> origin/current - host: 192.168.1.10 name: Entrance >>>>>>> current @@ -32,11 +36,11 @@ android_ip_webcam: Configuration variables: -- **host** (*Required*): The ip address where your phone have on network. -- **port** (*Optional*): Default is set 8080. The port where is ip webcam listens. -- **name** (*Optional*): This parameter allows you to override the name of your phone. -- **username** (*Optional*): The username for accessing your phone. -- **password** (*Optional*): The password for accessing your phone. +- **host** (*Required*): The IP Address of the phone on the network. +- **port** (*Optional*): Default is set 8080. The port the IP Webcam listens on. +- **name** (*Optional*): Override the name of the phone. +- **username** (*Optional*): The username to access the phone. +- **password** (*Optional*): The password to access the phone. - **scan_interval** (*Optional*): Default is 10 seconds. Defines the update interval of the phone. - **auto_discovery** (*Optional*): Default is True. Auto detect which sensors and settings are available for setup. - **sensors** array (*Optional*): Conditions to display sensor in the frontend. See list of supported sensors. diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown index 946c0112062..6c599b75b15 100644 --- a/source/_components/binary_sensor.apcupsd.markdown +++ b/source/_components/binary_sensor.apcupsd.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: apcupsd.png -ha_category: Binary Sensor +ha_category: System Monitor ha_release: 0.13 ha_iot_class: "Local Polling" --- diff --git a/source/_components/binary_sensor.bbb_gpio.markdown b/source/_components/binary_sensor.bbb_gpio.markdown index 7d8cb35055e..3a11b6cd6ac 100644 --- a/source/_components/binary_sensor.bbb_gpio.markdown +++ b/source/_components/binary_sensor.bbb_gpio.markdown @@ -19,12 +19,12 @@ To use your BeagleBone Black's GPIO in your installation, add the following to y ```yaml # Example configuration.yaml entry binary_sensor: - - platform: bbb_gpio - pins: - P8_12: - name: Door - GPIO0_26: - name: Window + - platform: bbb_gpio + pins: + P8_12: + name: Door + GPIO0_26: + name: Window ``` Configuration variables: diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown index 87b6310c10f..15129c4ae28 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -11,9 +11,9 @@ ha_category: Binary Sensor logo: home-assistant.png --- -The `template` platform supports sensors which breaks out the state and `state_attributes` from other entities. +The `template` platform supports sensors which breaks out the `state` and `state_attributes` from other entities. The state of a template binary sensor can only be `on` or `off`. -To enable Template binary sensors in your installation, add the following to your `configuration.yaml` file: +To enable template binary sensors in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index 7cb07f3ba6b..4fa4fe0af4a 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -31,4 +31,5 @@ Configuration variables: - **username** (*Required*: The username of an user with administrative privileges, usually `admin`. - **password** (*Required*): The password for your given admin account. +By default Home Assistant pulls information about connected devices from DD-WRT every 5 seconds. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index f406a8a25b4..26e4a3fabd6 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -32,7 +32,7 @@ Configuration variables: - **hosts** (*Required*): The network address to scan (in any supported NMap format). Mixing subnets and IPs is possible. - **home_interval** (*Optional*): The number of minutes nmap will not scan this device, assuming it is home, in order to preserve the device battery. -- **exclude** (*Optional*): Hosts not to include in nmap scanning. +- **exclude** (*Optional*): Hosts not to include in nmap scanning. Scanning the host where Home Assistant is running can cause problems (websocket error), so excluding that host is a good idea. - **scan_options** (*Optional*): Configurable scan options for nmap. Default to `-F --host-timeout 5s` diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index 86d88f3a55a..69f0101354a 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -33,5 +33,6 @@ Configuration variables: - **password** (*Required*): The password for your given admin account. - **verify_ssl** (*Optional*): Verify the controllers SSL certificate. Defaults to True however can also be False or "path/to/custom_cert.pem". - **site_id** (*Optional*): Allows you to specify a `site_id` for device tracking. Defaults to `default`. Found in the URL of the controller (i.e. https://CONTROLLER:PORT/manage/site/SITE_ID/dashboard) +- **verify_ssl** (*Optional*): Controls if the SSL certificate running on your Unifi webserver must be trusted by a known Certificate Authority on the server running Home Assistant. Defaults to 'True'. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.upc_connect.markdown b/source/_components/device_tracker.upc_connect.markdown index 7302fb818d3..99f74999926 100644 --- a/source/_components/device_tracker.upc_connect.markdown +++ b/source/_components/device_tracker.upc_connect.markdown @@ -30,3 +30,7 @@ Configuration variables: - **host** (*Optional*): The IP address of your router. Set it if you are not using `192.168.0.1`. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +Also known to be working with the following devices: + - Irish Virgin Media Super Hub 3.0 + diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 0ab17fea3da..b0f0acb04cf 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -26,6 +26,10 @@ Home Assistant can discover and automatically configure zeroconf/mDNS and uPnP d * Logitech media server (Squeezebox) * DirecTV * Apple TV + * Yeelight Sunflower Bulb + * Flux Led/MagicLight + * Linn / Openhome + * Denon Network Receivers It will be able to add Google Chromecasts and Belkin WeMo switches automatically, for Philips Hue it will require some configuration from the user. @@ -43,6 +47,24 @@ Configuration variables: - **ignore** (*Optional*): A list of platforms that never will be automatically configured by `discovery`. +Valid values for ignore are: + * philips_hue: (Philips Hue) + * google_cast: (Google Chromecast) + * panasonic_viera: (Panasonic Viera) + * plex_mediaserver: (Plex media server) + * roku: (Roku media player) + * sonos: (Sonos Speakers) + * yamaha: (Yamaha media player) + * logitech_mediaserver: (Logitech media server - Squeezebox player) + * directv: (DirecTV) + * denonavr: (Denon Network Receivers) + * samsung_tv: (Samsung TV) + * yeelight: (Yeelight Sunflower Bulb) + * flux_led: (Flux Led/MagicLight) + * apple_tv: (Apple TV) + * openhome: (Linn / Openhome) + +
Home Assistant must be on the same network as the devices for uPnP discovery to work. If running Home Assistant in a Docker container use switch `--net=host` to put it on the host's network. diff --git a/source/_components/ifttt.manything.markdown b/source/_components/ifttt.manything.markdown index eadb8d9d29b..0a872785773 100644 --- a/source/_components/ifttt.manything.markdown +++ b/source/_components/ifttt.manything.markdown @@ -20,46 +20,42 @@ After setting up IFTTT, Maker Channel and ManyThing Channel, you can use the fol ```yaml # Example configuration.yaml entry automation: -- alias: 'ManyThing Recording ON' - # This calls an IFTTT recipe to turn on recording of the ManyThing Camera - # if we leave the house during the day. - trigger: - - platform: state - entity_id: group.all_devices - state: 'not_home' + - alias: 'ManyThing Recording ON' + # This calls an IFTTT recipe to turn on recording of the ManyThing Camera + # if we leave the house during the day. + trigger: + - platform: state + entity_id: group.all_devices + state: 'not_home' + condition: + - platform: state + entity_id: sun.sun + state: 'above_horizon' + action: + service: ifttt.trigger + data: {"event":"manything_on"} - condition: - - platform: state - entity_id: sun.sun - state: 'above_horizon' - - action: - service: ifttt.trigger - data: {"event":"manything_on"} - -- alias: 'ManyThing Recording OFF' - # This calls an IFTTT recipe to turn off recording of the ManyThing Camera - # when we are home unless it's nighttime. - trigger: - - platform: state - entity_id: group.all_devices - state: 'home' - - platform: state - entity_id: sun.sun - state: 'above_horizon' - - condition: use_trigger_values - - action: - service: ifttt.trigger - data: {"event":"manything_off"} + - alias: 'ManyThing Recording OFF' + # This calls an IFTTT recipe to turn off recording of the ManyThing Camera + # when we are home unless it's nighttime. + trigger: + - platform: state + entity_id: group.all_devices + state: 'home' + condition: + - condition: state + entity_id: sun.sun + state: 'above_horizon' + action: + service: ifttt.trigger + data: {"event":"manything_off"} ``` ### {% linkable_title Setting up a recipe %}
-You need to setup a unique trigger for each event you sent to IFTTT.
+You need to setup a unique trigger for each event you sent to IFTTT.
For ManyThing support, you need to set up an `on` and `off` event.
Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics.
++ XY and RGB can not be used at the same time. If both are provided, XY overrides RGB. +
+ +## {% linkable_title Comparison of light MQTT platforms %} + +| Function | [`mqtt`](https://home-assistant.io/components/light.mqtt/) | [`mqtt_json`](https://home-assistant.io/components/light.mqtt_json/) | [`mqtt_template`](https://home-assistant.io/components/light.mqtt_template/) | +|-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------| +| Brightness | ✔ | ✔ | ✔ | +| Color temperature | ✔ | ✔ | ✔ | +| Effects | ✔ | ✔ | ✔ | +| Flashing | ✘ | ✔ | ✔ | +| RGB Color | ✔ | ✔ | ✔ | +| Transitions | ✘ | ✔ | ✔ | +| XY Color | ✔ | ✔ | ✘ | +| White Value | ✔ | ✔ | ✔ | + ## {% linkable_title Examples %} In this section you find some real life examples of how to use this sensor. diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 07809d16fb6..e096b012230 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -13,25 +13,28 @@ ha_iot_class: "Local Push" ha_release: 0.26 --- - The `mqtt_json` light platform lets you control a MQTT-enabled light that can receive [JSON](https://en.wikipedia.org/wiki/JSON) messages. -This platform supports on/off, brightness, RGB colors, transitions, and short/long flashing. The messages sent to/from the lights look similar to this, omitting fields when they aren't needed: +This platform supports on/off, brightness, RGB colors, XY colors, color temperature, transitions, short/long flashing and white values. The messages sent to/from the lights look similar to this, omitting fields when they aren't needed: ```json { "brightness": 255, + "color_temp": 155, "color": { + "r": 255, "g": 255, "b": 255, - "r": 255 + "x": 0.123, + "y": 0.123 }, + "effect": "colorloop", + "state": "ON", "transition": 2, - "state": "ON" + "white_value": 150 } ``` - In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with the RETAIN flag, the MQTT light will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the light will be off. When a state topic is not available, the light will work in optimistic mode. In this mode, the light will immediately change state after every command. Otherwise, the light will wait for state confirmation from the device (message from `state_topic`). @@ -48,19 +51,42 @@ light: Configuration variables: - **command_topic** (*Required*): The MQTT topic to publish commands to change the light's state. -- **name** (*Optional*): The name of the light. Default is "MQTT JSON Light." -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. - **brightness** (*Optional*): Flag that defines if the light supports brightness. Default is false. -- **rgb** (*Optional*): Flag that defines if the light supports RGB colors. Default is false. -- **flash_time_short** (*Optional*): The duration, in seconds, of a "short" flash. Default is 2. +- **color_temperature** (*Optional*): Flag that defines if the light supports color temperature. Default is false. +- **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. +- **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. +- **effect_list** (*Optional*): The list of effects the light supports. - **flash_time_long** (*Optional*): The duration, in seconds, of a "long" flash. Default is 10. +- **flash_time_short** (*Optional*): The duration, in seconds, of a "short" flash. Default is 2. +- **name** (*Optional*): The name of the light. Default is "MQTT JSON Light." - **optimistic** (*Optional*): Flag that defines if the light works in optimistic mode. Default is true if no state topic defined, else false. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. +- **rgb** (*Optional*): Flag that defines if the light supports RGB colors. Default is false. +- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. +- **white_value** (*Optional*): Flag that defines if the light supports white values. Default is false. +- **xy** (*Optional*): Flag that defines if the light supports XY colors. Default is false.Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics.
++ XY and RGB can not be used at the same time. If both are provided, XY overrides RGB. +
+ +## {% linkable_title Comparison of light MQTT platforms %} + +| Function | [`mqtt`](https://home-assistant.io/components/light.mqtt/) | [`mqtt_json`](https://home-assistant.io/components/light.mqtt_json/) | [`mqtt_template`](https://home-assistant.io/components/light.mqtt_template/) | +|-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------| +| Brightness | ✔ | ✔ | ✔ | +| Color temperature | ✔ | ✔ | ✔ | +| Effects | ✔ | ✔ | ✔ | +| Flashing | ✘ | ✔ | ✔ | +| RGB Color | ✔ | ✔ | ✔ | +| Transitions | ✘ | ✔ | ✔ | +| XY Color | ✔ | ✔ | ✘ | +| White Value | ✔ | ✔ | ✔ | + ## {% linkable_title Examples %} In this section you find some real life examples of how to use this sensor. diff --git a/source/_components/light.mqtt_template.markdown b/source/_components/light.mqtt_template.markdown index 76d8a2e4d86..0a96468b396 100644 --- a/source/_components/light.mqtt_template.markdown +++ b/source/_components/light.mqtt_template.markdown @@ -13,11 +13,10 @@ ha_iot_class: "Local Push" ha_release: 0.33 --- - The `mqtt_template` light platform lets you control a MQTT-enabled light that receive commands on a command topic and optionally sends status update on a state topic. It is format-agnostic so you can use any data format you want (i.e. string, JSON), just configure it with templating. -This platform supports on/off, brightness, RGB colors, transitions, short/long flashing and effects. +This platform supports on/off, brightness, RGB colors, XY colors, color temperature, transitions, short/long flashing, effects and white values. In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with the RETAIN flag, the MQTT light will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the light will be off. @@ -47,7 +46,9 @@ Configuration variables: - **red_template** (*Optional*): Template to extract red color from the state payload value. - **green_template** (*Optional*): Template to extract green color from the state payload value. - **blue_template** (*Optional*): Template to extract blue color from the state payload value. +- **color_temp_template** (*Optional*): Template to extract color temperature from the state payload value. - **effect_template** (*Optional*): Template to extract effect from the state payload value. +- **white_value_template** (*Optional*): Template to extract white value from the state payload value. - **optimistic** (*Optional*): Flag that defines if the light works in optimistic mode. Default is true if no state topic or state template is defined, else false. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. @@ -55,6 +56,19 @@ Configuration variables: Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics. +## {% linkable_title Comparison of light MQTT platforms %} + +| Function | [`mqtt`](https://home-assistant.io/components/light.mqtt/) | [`mqtt_json`](https://home-assistant.io/components/light.mqtt_json/) | [`mqtt_template`](https://home-assistant.io/components/light.mqtt_template/) | +|-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------| +| Brightness | ✔ | ✔ | ✔ | +| Color temperature | ✔ | ✔ | ✔ | +| Effects | ✔ | ✔ | ✔ | +| Flashing | ✘ | ✔ | ✔ | +| RGB Color | ✔ | ✔ | ✔ | +| Transitions | ✘ | ✔ | ✔ | +| XY Color | ✔ | ✔ | ✘ | +| White Value | ✔ | ✔ | ✔ | + ## {% linkable_title Examples %} In this section you find some real life examples of how to use this light. diff --git a/source/_components/light.yeelightsunflower.markdown b/source/_components/light.yeelightsunflower.markdown index 8db047f6c9f..324ee4b2e8d 100644 --- a/source/_components/light.yeelightsunflower.markdown +++ b/source/_components/light.yeelightsunflower.markdown @@ -11,10 +11,11 @@ ha_category: Light ha_release: 0.39 --- -The `yeelightsunflower` light platform allows you to control your Yeelight Sunflower light bulbs with Home Assistant. -Note that the "Yeelight Sunflower" bulbs are not the same as the "Yeelight WiFi" bulbs. +The `yeelightsunflower` light platform allows you to control your Yeelight Sunflower light bulbs with Home Assistant. -### {% linkable_title Example configuration %} ++The "Yeelight Sunflower" bulbs are not the same as the "Yeelight WiFi" bulbs. +
To enable your lights, add the following lines to your `configuration.yaml` file: @@ -37,4 +38,3 @@ When the hub is loaded, your lights will appear as devices with their Zigbee IDs The Yeelight Sunflower hub supports SSDP discovery, but that has not been built into the platform. Let the developer know if that would be helpful to you. - diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index 56798dd11db..aab8c253e0f 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -28,7 +28,7 @@ Steps to configure your Amazon Fire TV stick with Home Assistant: - From the main (Launcher) screen, select Settings. - Select System > About > Network. - The following commands must be run in a Python 2.x environment. They will allow the component to function in an Ubuntu 16.04/Hassbian environment. - - `apt-get install swig libssl-dev python-dev libusb-1.0-0` + - `apt-get install swig libssl-dev python-dev libusb-1.0-0 python-yaml` - `pip install flask` - `pip install https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.24.0.tar.gz` - `pip install firetv[firetv-server]` diff --git a/source/_components/media_player.gstreamer.markdown b/source/_components/media_player.gstreamer.markdown index 5b50029da7a..c77e8c40496 100644 --- a/source/_components/media_player.gstreamer.markdown +++ b/source/_components/media_player.gstreamer.markdown @@ -37,7 +37,7 @@ And then install the following system dependencies: Debian/Ubuntu/Rasbian: ```bash -sudo apt-get install python-gst-1.0 \ +sudo apt-get install python3-gst-1.0 \ gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0 \ gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly \ gstreamer1.0-tools diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 14a03280297..b22c42ff16c 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -32,7 +32,7 @@ Configuration variables: - **host** (*Required*): The IP of the Samsung Smart TV, eg. `192.168.0.10`. - **port** (*Optional*): The port of the Samsung Smart TV. Defaults to 55000. If set to 8001, the new websocket connection will be used (required for 2016+ TVs). - **name** (*Optional*): The name you would like to give to the Samsung Smart TV. -- **timeout** (*Optional*): The time-out for the communication with the TV. Defaults to 0. +- **timeout** (*Optional*): The time-out in seconds for the communication with the TV. Defaults to 0 (no timeout). - **mac** (*Optional*): The MAC address of the Samsung Smart TV, eg. `00:11:22:33:44:55:66`. Required for power on support via wake on lan. Currently known supported models: @@ -44,11 +44,14 @@ Currently known supported models: - ES6800 - F6300 - F6500 +- EH5300 - EH5600 - F6400AF - D6505 - D6300SF - U6000 (port must be set to 8001) +- K6500AF (port must be set to 8001) +- KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed) Currently tested but not working models: diff --git a/source/_components/mqtt_eventstream.markdown b/source/_components/mqtt_eventstream.markdown index 0280aef4941..3d89fe244cf 100644 --- a/source/_components/mqtt_eventstream.markdown +++ b/source/_components/mqtt_eventstream.markdown @@ -12,7 +12,7 @@ ha_category: Other ha_release: 0.11 --- -The `mqtt_eventstream` components connects two Home Assistant instances via MQTT. +The `mqtt_eventstream` component connects two Home Assistant instances via MQTT. To integrate MQTT Eventstream into Home Assistant, add the following section to your `configuration.yaml` file: @@ -28,3 +28,29 @@ Configuration variables: - **publish_topic** (*Required*): Topic for publishing local events - **subscribe_topic** (*Required*): Topic to receive events from the remote server. +## Multiple Instances + +Events from multiple instances can be aggregated to a single master instance by subscribing to a wildcard topic from the master instance. + +```yaml +# Example master instance configuration.yaml entry +mqtt_eventstream: + publish_topic: master/topic + subscribe_topic: slaves/# +``` + +For a multiple instance setup, each slave would publish to their own topic. + +```yaml +# Example slave instance configuration.yaml entry +mqtt_eventstream: + publish_topic: slaves/upstairs + subscribe_topic: master/topic +``` + +```yaml +# Example slave instance configuration.yaml entry +mqtt_eventstream: + publish_topic: slaves/downstairs + subscribe_topic: master/topic +``` diff --git a/source/_components/notify.twilio_call.markdown b/source/_components/notify.twilio_call.markdown index 9458a14ca0c..9caf251d046 100644 --- a/source/_components/notify.twilio_call.markdown +++ b/source/_components/notify.twilio_call.markdown @@ -9,18 +9,13 @@ sharing: true footer: true logo: twilio.png ha_category: Notifications -ha_release: "0.37" +ha_release: 0.37 --- -The `twilio` notification platform enables sending notifications via Voice, powered by [Twilio](https://twilio.com). +The `twilio_call` notification platform enables sending notifications via Voice, powered by [Twilio](https://twilio.com). Passed message will be read by Text-To-Speech service. -This component is just an adaptation from the Twilio SMS notification platform and won't exist without it. - -Free trial account is available at [Twilio](https://twilio.com) website providing free calls to verified phone numbers. -Calls are limited to 10 minutes and will play a short trial message before your message runs. - -Upgraded accounts have no limitation. +The requirement is that you have setup [Twilio](/components/twilio/). To use this notification platform in your installation, add the following to your `configuration.yaml` file: @@ -29,15 +24,11 @@ To use this notification platform in your installation, add the following to you notify: - name: NOTIFIER_NAME platform: twilio_call - account_sid: ACCOUNT_SID_FROM_TWILIO - auth_token: AUTH_TOKEN_FROM_TWILIO from_number: E164_PHONE_NUMBER ``` Configuration variables: -- **account_sid** (*Required*): Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It starts with the letters `AC`. -- **auth_token** (*Required*): Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It should be directly under where you found the `account_sid`. - **from_number** (*Required*): An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. - **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.twilio_sms.markdown b/source/_components/notify.twilio_sms.markdown index 6931d2507eb..1e35c14866e 100644 --- a/source/_components/notify.twilio_sms.markdown +++ b/source/_components/notify.twilio_sms.markdown @@ -14,6 +14,8 @@ ha_release: "0.20" The `twilio` notification platform enables sending notifications via SMS, powered by [Twilio](https://twilio.com). +The requirement is that you have setup [Twilio](/components/twilio/). + To use this notification platform in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -21,15 +23,11 @@ To use this notification platform in your installation, add the following to you notify: - name: NOTIFIER_NAME platform: twilio_sms - account_sid: ACCOUNT_SID_FROM_TWILIO - auth_token: AUTH_TOKEN_FROM_TWILIO from_number: E164_PHONE_NUMBER ``` Configuration variables: -- **account_sid** (*Required*): Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It starts with the letters `AC`. -- **auth_token** (*Required*): Your Twilio Account SID which can be found in your [console](https://www.twilio.com/console). It should be directly under where you found the `account_sid`. - **from_number** (*Required*): An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. - **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.webostv.markdown b/source/_components/notify.webostv.markdown index 24ab68a53a5..537039581dd 100644 --- a/source/_components/notify.webostv.markdown +++ b/source/_components/notify.webostv.markdown @@ -33,6 +33,7 @@ Configuration variables: - **host** (*Required*): The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 - **name** (*Required*): The name you would like to give to the LG WebOS Smart TV. - **filename** (*Optional*): The filename where the pairing key with the TV should be stored. This path is relative to Home Assistant's config directory. It defaults to `webostv.conf`. +- **icon** (*Optional*): The path to an image file to use as the icon in notifications. If provided, this image will override the Home Assistant logo. A possible automation could be: @@ -49,3 +50,20 @@ automation: data: message: "You should open a window! (Livingroom Co2: {{ states.sensor.netatmo_livingroom_co2.state }}ppm)" ``` + +The icon can be overridden for individual notifications by providing a path to an alternative icon image to use: + +```yaml +automation: + - alias: Front door motion + trigger: + platform: state + entity_id: binary_sensor.front_door_motion + state: 'on' + action: + service: notify.livingroom_tv + data: + message: "Movement detected: Front Door" + data: + icon: "/home/homeassistant/images/doorbell.png" + ``` diff --git a/source/_components/rflink.markdown b/source/_components/rflink.markdown index 43fe9c4b609..ff64c8cf84d 100644 --- a/source/_components/rflink.markdown +++ b/source/_components/rflink.markdown @@ -12,7 +12,7 @@ ha_category: Hub ha_release: 0.38 --- -The `rflink` component support 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 communication with 433 Mhz devices using cheap hardware (Arduino + 433 Mhz tranceiver). +The `rflink` component support 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 firmware for the Arduino MEGA 2560 that allows communication with 433 Mhz devices using cheap hardware (Arduino + 433 Mhz tranceiver). The 433 Mhz spectrum is used by many manufacturers mostly using their own protocol/standard and includes devices like: light switches, blinds, weather stations, alarms and various other sensors. @@ -60,7 +60,17 @@ To expose the usb/serial interface over TCP on a different host (Linux) the foll $ socat /dev/ttyACM0,b57600 TCP-LISTEN:1234,reuseaddr ``` -Other methods of exposing the serial interface over TCP are possible (eg: ESP8266 or using Arduino Wifi shield). Basically the serial stream should be directly mapped to the TCP stream. +Other methods of exposing the serial interface over TCP are possible (eg: ESP8266 or using Arduino Wifi shield). Essentially the serial stream should be directly mapped to the TCP stream. + +Tested with Wifi serial bridge [esp-link V2.2.3](https://github.com/jeelabs/esp-link/releases/tag/v2.2.3) running on a NodeMCU (ESP8266 Wifi module) with ESP8266 TXD0 (pin D10) and RXD0 (pin D9) connected to Arduino MEGA 2560 RX (Pin 2) and TX (Pin 3) respectively. + ++Due to different logical levels, a voltage level shifter is required between the 3.3V NodeMCU and 5V Arduino MEGA 2560 pins. +
+ ++When re-flashing the Arduino MEGA, disconnect the ESP8266 to avoid programming difficulties. +
```yaml # Example configuration.yaml entry @@ -94,6 +104,9 @@ Wildcards only work at the end of the ID, not in the middle of front! Even though a lot of devices are supported by Rflink, not all have been tested/implemented. If you have a device supported by Rflink but not by this component please consider testing and adding support yourself or [create an issue](https://github.com/home-assistant/home-assistant/issues/new) and mention `@aequitas` in the description. +### {% linkable_title Device Incorrectly Identified %} + +If you find a device is recognized differently, with different protocols or the ON OFF is swapped or detected as two ON commands, it can be overcome with the RFlink 'RF Signal Learning' mechanism from RFLink Rev 46 (11 March 2017). http://www.nemcon.nl/blog2/faq#RFFind. ### {% linkable_title Technical overview %} diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown index d7e6ae6ae36..57478d821ba 100644 --- a/source/_components/sensor.apcupsd.markdown +++ b/source/_components/sensor.apcupsd.markdown @@ -8,7 +8,8 @@ comments: false sharing: true footer: true logo: apcupsd.png -ha_category: Sensor +ha_release: 0.13 +ha_category: System Monitor --- The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command. diff --git a/source/_components/sensor.comed_hourly_pricing.markdown b/source/_components/sensor.comed_hourly_pricing.markdown index 31480bc0635..05bef462697 100644 --- a/source/_components/sensor.comed_hourly_pricing.markdown +++ b/source/_components/sensor.comed_hourly_pricing.markdown @@ -13,10 +13,12 @@ ha_release: "0.40" ha_iot_class: "Cloud Polling" --- -The ComEd Hourly Pricing program is an optional program available to ComEd electric subscribers which charges customers a variable rate for electricity supply based on current demand rather than a traditional fixed rate. Live prices are published [here](https://hourlypricing.comed.com/live-prices/) and also via an [API](https://hourlypricing.comed.com/hp-api/) which we can integrate as a sensor in Home Assistant. +The ComEd Hourly Pricing program is an optional program available to ComEd electric subscribers which charges customers a variable rate for electricity supply based on current demand rather than a traditional fixed rate. Live prices are published [here](https://hourlypricing.comed.com/live-prices/) and also via an [API](https://hourlypricing.comed.com/hp-api/) which we can integrate as a sensor in Home Assistant. There are two price feeds available: the 5-minute price and current hour average price. +To use this sensor in your installation, add the following to your `configuration.yaml` file: + ```yaml # Example configuration.yaml entry sensor: @@ -33,5 +35,5 @@ Configuration variables: - **five_minute**: The latest 5-minute price in cents. - **current_hour_average**: The latest current hour average price in cents. - **name** (*Optional*): Custom name for the sensor. - - **offset** (*Optional*): The pricing feeds provide only the *supply* cost of the electricity. The offset parameter allows you to provide a fixed constant that will be added to the pricing data to provide a more accurate representation of the total electricity cost per kWh. + - **offset** (*Optional*): The pricing feeds provide only the *supply* cost of the electricity. The offset parameter allows you to provide a fixed constant that will be added to the pricing data to provide a more accurate representation of the total electricity cost per kWh. diff --git a/source/_components/sensor.hydroquebec.markdown b/source/_components/sensor.hydroquebec.markdown index 3911005104d..71fb63b5429 100644 --- a/source/_components/sensor.hydroquebec.markdown +++ b/source/_components/sensor.hydroquebec.markdown @@ -27,26 +27,18 @@ sensor: - platform: hydroquebec username: MYUSERNAME password: MYPASSWORD - contract: 123456789 + contract: '123456789' monitored_variables: - period_total_bill - period_length - period_total_days - - period_mean_daily_bill - - period_mean_daily_consumption - - period_total_consumption - - period_lower_price_consumption - - period_higher_price_consumption - - yesterday_total_consumption - - yesterday_lower_price_consumption - - yesterday_higher_price_consumption ``` Configuration variables: -- **username** (*Required*): Your Hydro-Québec Username -- **password** (*Required*): Your Hydro-Québec Password -- **contract** (*Required*): Your Hydro-Québec Contract +- **username** (*Required*): Username used to log into the Hydro-Québec site. +- **password** (*Required*): Password used to log into the Hydro-Québec site. +- **contract** (required since HA 4.0) Your contract number with Hydro-Québec - **monitored_variables** array (*Required*): Variables to monitor. - **period_total_bill** : Current period bill - **period_length**: Current period length diff --git a/source/_components/sensor.kwb.markdown b/source/_components/sensor.kwb.markdown new file mode 100644 index 00000000000..c53b43e8c27 --- /dev/null +++ b/source/_components/sensor.kwb.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: "KWB Easyfire Sensor" +description: "Instructions how to integrate the KWB Easyfire sensor into Home Assistant." +date: 2017-03-06 14:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: kwb.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.40 +--- + +The `kwb` component integrates the sensors of KWB Easyfire pellet central heating units with the Comfort3 controller (http://www.kwbheizung.de/de/produkte/kwb-comfort-3.html) into Home Assistant. + +Direct connection via serial (RS485) or via telnet terminal server is supported. The serial cable has to be attached to the control unit port 25 (which is normally used for detached control terminals). + +Since this serial protocol is proprietary and closed, only most temperature sensors and a few control relays are supported, the rest is still WIP (see https://www.mikrocontroller.net/topic/274137). + +Direct connection via serial port: +```yaml +# Example configuration.yaml entry +- platform: kwb + name: kwb + device: "/dev/ttyUSB0" + type: serial + raw: False +``` + +Telnet terminal server with a serial-ethernet converter: +```yaml +# Example configuration.yaml entry + - platform: kwb + name: kwb + host:
diff --git a/source/_components/switch.bbb_gpio.markdown b/source/_components/switch.bbb_gpio.markdown
index 58022c11f3e..a77ac8560f7 100644
--- a/source/_components/switch.bbb_gpio.markdown
+++ b/source/_components/switch.bbb_gpio.markdown
@@ -19,12 +19,12 @@ To use yourBeagleBone Black's GPIO in your installation, add the following to yo
```yaml
# Example configuration.yaml entry
switch:
- - platform: bbb_gpio
- pins:
- GPIO0_7:
- name: LED Red
- P9_12:
- name: LED Green
+ - platform: bbb_gpio
+ pins:
+ GPIO0_7:
+ name: LED Red
+ P9_12:
+ name: LED Green
```
Configuration variables:
diff --git a/source/_components/tts.amazon_polly.markdown b/source/_components/tts.amazon_polly.markdown
index 74a72492ac7..7433a526a74 100644
--- a/source/_components/tts.amazon_polly.markdown
+++ b/source/_components/tts.amazon_polly.markdown
@@ -15,7 +15,7 @@ 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.
-To enable text-to-speech with Amazon Polly, add the following lines to your `configuration.yaml`:
+To get started, add the following lines to your `configuration.yaml` (example for Amazon Polly):
```yaml
# Example configuration.yaml entry
@@ -29,9 +29,54 @@ tts:
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).
-- **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`.
+| Parameter | Value | Description |
+|---------------------|----------|-------------|
+| `aws_access_key_id` | Required | 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 | 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 |
+| `region_name` | Optional | 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`.
+ |
+| `text_type` | text/ssml | text or ssml: Specify wherever to use text (default) or ssml markup |
+## Usage
+Say to all `media_player` device entities:
+```yaml
+- service: tts.amazon_polly_say
+ data_template:
+ message: '
" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}
{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = "
Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
-You can override a built-in component by having a component with the same name in your config/custom_components
folder. If the build-in component is inside a subfolder, take care to place your customization in a folder with the same name in config/custom_components/*folder*
. Note that overriding build-in components is not recommended and will probably break things!
+You can override a built-in component by having a component with the same name in your config/custom_components
folder. If the built-in component is inside a subfolder, take care to place your customization in a folder with the same name in config/custom_components/*folder*
. Note that overriding built-in components is not recommended and will probably break things!
diff --git a/source/developers/frontend_creating_custom_ui.markdown b/source/developers/frontend_creating_custom_ui.markdown index b5ef37072e6..a7816cbd529 100644 --- a/source/developers/frontend_creating_custom_ui.markdown +++ b/source/developers/frontend_creating_custom_ui.markdown @@ -11,7 +11,7 @@ ha_release: 0.38 --- If you would like to use your own [State card](/developers/frontend_add_card/) without merging your code into [home-assistant-polymer](https://github.com/home-assistant/home-assistant-polymer/) you can create your own implementation. -- Put the element source file and its dependencies in `www/custom_ui/` directory under you homeassistant config. +- Put the element source file and its dependencies in `www/custom_ui/` directory under your homeassistant config directory. For example if creating a state card for the `light` domain named `my_custom_light_card` put `state-card-my_custom_light_card.html` in `www/custom_ui/`. diff --git a/source/help/index.markdown b/source/help/index.markdown index aca835fd48b..0421316301d 100644 --- a/source/help/index.markdown +++ b/source/help/index.markdown @@ -27,13 +27,13 @@ Have you found an issue in your Home Assistant installation? Please report it. R - [Issue tracker home-assistant.io](https://github.com/home-assistant/home-assistant.io/issues) (Website and documentation) - [Feature requests Home Assistant](https://community.home-assistant.io/c/feature-requests) -### {% linkable_title Videos, interviews, talks, and alike %} +### {% linkable_title Videos, talks, workshops and alike %} -- [Home Assistant with Paulus Schoutsen – Episode 94](https://www.podcastinit.com/episode-94-home-assistant-with-paulus-schoutsen/) - January 2017 +- [Home Assistant workshop](https://github.com/home-assistant/home-assistant-assets/tree/master/german/2017-clt-workshop) at [CLT 2017](https://chemnitzer.linux-tage.de/2017/de/) - March 2017 - [Home Assistant - Erweiterungen (Platforms/Components)](https://github.com/home-assistant/home-assistant-assets/tree/master/german/2016-puzzle) at [Puzzle ITC](https://www.puzzle.ch/de/) - December 2016 - [Automating Your Life - Home Automation](http://slides.com/teagan42/life_automation#/) at Develop Denver 2016 - August - [Building Online Communities: Home Assistant](https://medium.com/@gitter/building-online-communities-home-assistant-8818dff671ad#.och4x4rhx) - July 2016 -- [Home Assistant Support 101 - Getting around in Home Assistant](https://www.youtube.com/watch?v=dRfk9JAlPJk) ([Slides](https://docs.google.com/presentation/d/1PUnOpeFZxNj4LEjaohGqH_1hOGQGuS5yRHD1ThHr6nk/edit?usp=sharing)) - June 2016 +- [Home Assistant Support 101 - Getting around in Home Assistant](https://www.youtube.com/watch?v=dRfk9JAlPJk) ([Slides](https://docs.google.com/presentation/d/1PUnOpeFZxNj4LEjaohGqH_1hOGQGuS5yRHD1ThHr6nk/edit?usp=sharing)) - June 2016 - [Awaken your home: Python and the Internet of Things](https://www.youtube.com/watch?v=Cfasc9EgbMU&list=PLKsVm4cWHDQB9JBcD7_ZfNcvC6xx47QHT&index=1) at PyCon 2016 - June 2016 - [Automating your Home with Home Assistant](https://www.youtube.com/watch?v=4-6rTwKl6ww&list=PLKsVm4cWHDQB9JBcD7_ZfNcvC6xx47QHT&index=2) at OpenIoT 2016 - March 2016 @@ -41,10 +41,18 @@ Looking for [talking points](/help/talking-points/) or [trivia](/help/trivia)? ### {% linkable_title Media coverage %} +- [Paulus Schoutsen and Home Assistant - Episode 8](http://codepop.com/open-sourcecraft/episodes/paulus-schoutsen/) - March 2017 +- [Zammad, Home Assistant und Freifunk - are the winner of the Thomas-Krenn-Awards 2017](https://www.thomas-krenn.com/de/tkmag/allgemein/zammad-home-assistant-und-freifunk-das-sind-die-gewinner-des-thomas-krenn-awards-2017/) - March 2017 +- [10 open source software tools for developing IoT applications](http://www.cbronline.com/news/internet-of-things/10-open-source-software-tools-developing-iot-applications/) - March 2017 +- [A Look at HASSbian: Raspberry Pi for Home Automation](http://www.piboards.com/2017/03/07/a-look-at-hassbian-raspberry-pi-for-home-automation/)- March 2017 +- [Home Assistant with Paulus Schoutsen - Episode 94](https://www.podcastinit.com/episode-94-home-assistant-with-paulus-schoutsen/) - January 2017 - [Episode #11](https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation) at minute 15:20 by [Python Bytes](https://pythonbytes.fm/) - January 2017 +- [Home Assistant: The Python Approach to Home Automation](https://www.linux.com/news/home-assistant-python-approach-home-automation-video) - June 2016 +- [Secure home automation, without clouds or dedicated hubs](http://linuxgizmos.com/secure-home-automation-without-clouds-or-dedicated-hubs/) - June 2016 - [Weekend Project: Setting up Home Assistant on your PC or Mac](http://www.automatedhome.co.uk/software/weekend-project-setting-up-home-assistant-on-your-pc-or-mac.html) by [automated home](http://www.automatedhome.co.uk/) - April 2016 - [Episode 105 - DIY Home Automation Roundup](https://www.hometech.fm/shows/105) by [HomeTech.fm](https://www.hometech.fm/) - April 2016 - [5 open source home automation tools](https://opensource.com/life/16/3/5-open-source-home-automation-tools) by [opensource.com](https://opensource.com) - March 2016 +- [Home Assistant – Open Source Python Home Automation Platform](http://www.automatedhome.co.uk/new-products/home-assistant-open-source-python-home-automation-platform.html) - January 2015 ### {% linkable_title Site Search %} diff --git a/source/help/talking-points.markdown b/source/help/talking-points.markdown index 51ee75e564e..4c1a952f0c9 100644 --- a/source/help/talking-points.markdown +++ b/source/help/talking-points.markdown @@ -12,7 +12,7 @@ footer: true People are starting to present Home Assistant at meetings and get-togethers. Below you find a couple of bullet points for your presentation. - [Numbers, numbers, numbers](/help/trivia/) and other details -- Over 400 implementations +- Over 600 implementations - Not depending on cloud services. We like to keep your privacy private - Control all your devices from a single, mobile-friendly, interface - Written in Python3 with 94% test coverage diff --git a/source/images/blog/2017-03-opensourcecraft/social.jpg b/source/images/blog/2017-03-opensourcecraft/social.jpg new file mode 100644 index 00000000000..3ee111c7cd0 Binary files /dev/null and b/source/images/blog/2017-03-opensourcecraft/social.jpg differ diff --git a/source/images/supported_brands/kwb.png b/source/images/supported_brands/kwb.png new file mode 100644 index 00000000000..dabb8fab11a Binary files /dev/null and b/source/images/supported_brands/kwb.png differ