diff --git a/_config.yml b/_config.yml index 7d840828153..2ee55b75ece 100644 --- a/_config.yml +++ b/_config.yml @@ -142,9 +142,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 49 -current_patch_version: 1 -date_released: 2017-07-24 +current_minor_version: 50 +current_patch_version: 0 +date_released: 2017-07-29 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_addons/ssh.markdown b/source/_addons/ssh.markdown index 64ab8e54cb1..708f38dfc00 100644 --- a/source/_addons/ssh.markdown +++ b/source/_addons/ssh.markdown @@ -10,7 +10,8 @@ footer: true featured: true --- -Setting up an [SSH](https://openssh.org/) server allows access to your Hass.io folders with any SSH client. It include also a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out: +Setting up an [SSH](https://openssh.org/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out: + ```bash $ hassio help ``` diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index 3658d3cca97..0388ee6b4f3 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -9,10 +9,10 @@ sharing: true footer: true logo: home-assistant.png ha_category: Alarm -ha_release: 0.49 +ha_release: 0.50 --- -This component extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant. +This platform extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant. It's essentially the opposite of the [MQTT Alarm Panel](/components/alarm_control_panel.mqtt/) which allows Home Assistant to observe an existing, fully-featured alarm where all of the alarm logic is embedded in that physical device. @@ -63,7 +63,7 @@ Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/ ## {% linkable_title MQTT Control %} -The state of this alarm can be controlled using [MQTT](/components/mqtt/). Ensure you've configured that before adding this component. +The state of this alarm can be controlled using [MQTT](/components/mqtt/). Ensure you've configured that before adding this component. To change the state of the alarm, publish one of the following messages to the `command_topic`: @@ -71,7 +71,7 @@ To change the state of the alarm, publish one of the following messages to the ` - `ARM_HOME` - `ARM_AWAY` -To receive state updates from HA, subscribe to the `state_topic`. HA will publish a new message whenever the state changes: +To receive state updates from HA, subscribe to the `state_topic`. Home Assistant will publish a new message whenever the state changes: - `disarmed` - `armed_home` diff --git a/source/_components/binary_sensor.pilight.markdown b/source/_components/binary_sensor.pilight.markdown index a372098918f..f278d116b6c 100644 --- a/source/_components/binary_sensor.pilight.markdown +++ b/source/_components/binary_sensor.pilight.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Pilight Binary Sensor" -description: "Instructions how to integrate pilight binary sensors within Home Assistant." +description: "Instructions how to integrate Pilight binary sensors within Home Assistant." date: 2017-03-24 20:41 sidebar: true comments: false @@ -13,8 +13,9 @@ ha_release: 0.44 ha_iot_class: "Local Polling" --- -This component implement the [pilight hub](https://github.com/home-assistant/home-assistant.github.io/source/_components/pilight.markdown) binary sensor functionality. -Two type of pilight binary sensor configuration available. A normal sensor which send the on and off state cyclical and a trigger sensor which send only a trigger when an event happend (for example lots of cheap PIR motion detector) (see example configuration below). +The `pilight` binary sensor platform implement the [pilight hub](/components/pilight/) binary sensor functionality. Two type of Pilight binary sensor configuration available. A normal sensor which send the on and off state cyclical and a trigger sensor which send only a trigger when an event happend (for example lots of cheap PIR motion detector). + +To enable a Pilight binary sensor in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yml entry diff --git a/source/_components/binary_sensor.velbus.markdown b/source/_components/binary_sensor.velbus.markdown index bba3618f134..579f3c273ef 100644 --- a/source/_components/binary_sensor.velbus.markdown +++ b/source/_components/binary_sensor.velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Binary Sensor ha_iot_class: "Local Push" -ha_release: 0.49 +ha_release: "0.50" --- The `velbus` binary_sensor allows you to control [Velbus](http://www.velbus.eu) connected wall switches. diff --git a/source/_components/binary_sensor.xiaomi.markdown b/source/_components/binary_sensor.xiaomi.markdown index ff3c9dc62ec..d4f5a7672a4 100644 --- a/source/_components/binary_sensor.xiaomi.markdown +++ b/source/_components/binary_sensor.xiaomi.markdown @@ -43,10 +43,13 @@ The requirement is that you have setup the [`xiaomi` component](/components/xiao entity_id: sensor.illumination_34ce00xxxx11 below: 300 action: - service: light.turn_on - entity_id: light.gateway_light_34ce00xxxx11 - data: - brightness: 5 + - service: light.turn_on + entity_id: light.gateway_light_34ce00xxxx11 + data: + brightness: 5 + - service: automation.turn_on + data: + entity_id: automation.MOTION_OFF - alias: If there no motion for 5 minutes turn off the gateway light trigger: platform: state @@ -56,8 +59,11 @@ The requirement is that you have setup the [`xiaomi` component](/components/xiao for: minutes: 5 action: - service: light.turn_off - entity_id: light.gateway_light_34ce00xxxx11 + - service: light.turn_off + entity_id: light.gateway_light_34ce00xxxx11 + - service: automation.turn_off + data: + entity_id: automation.Motion_off ``` #### {% linkable_title Door and/or Window %} diff --git a/source/_components/config.markdown b/source/_components/config.markdown index 1de117ef841..7490d3e4064 100644 --- a/source/_components/config.markdown +++ b/source/_components/config.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: home-assistant.png -ha_category: Other +ha_category: Front end ha_release: 0.39 --- diff --git a/source/_components/conversation.markdown b/source/_components/conversation.markdown index 5397a3297ee..55b9fbb19a7 100644 --- a/source/_components/conversation.markdown +++ b/source/_components/conversation.markdown @@ -12,7 +12,7 @@ ha_category: "Voice" --- -The conversation component can process sentences into commands for Home Assistant. It currently has built in functionality to recognize `turn `, but custom phrases can be added through configuration. +The `conversation` component can process sentences into commands for Home Assistant. It currently has built in functionality to recognize `turn `, but custom phrases can be added through configuration. To enable the conversation option in your installation, add the following to your `configuration.yaml` file: @@ -23,6 +23,7 @@ conversation: ``` To add custom phrases to be recognized: + ```yaml # Example configuration.yaml entry with custom phrasesconversation conversation: @@ -32,11 +33,17 @@ conversation: service: input_boolean.toggle ``` -The action keyword uses [script -syntax](https://home-assistant.io/docs/scripts/). - +The action keyword uses [script syntax](https://home-assistant.io/docs/scripts/). +To use the `conversation` component with the [`shopping list` component](/components/shopping_list/) add an intent. +```yaml +# Example configuration.yaml entry +conversation: + intents: + ShoppingListAddItem: + - Add {item} to my shopping list +``` When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to [the demo](/demo/) using Chrome or Chromium to see it in action. diff --git a/source/_components/cover.lutron_caseta.markdown b/source/_components/cover.lutron_caseta.markdown index 5a1f315011e..482fa379b24 100644 --- a/source/_components/cover.lutron_caseta.markdown +++ b/source/_components/cover.lutron_caseta.markdown @@ -10,6 +10,17 @@ footer: true logo: lutron.png ha_category: Cover ha_iot_class: "Local Polling" +ha_release: 0.45 --- -To get your Lutron Caseta covers working with Home Assistant, follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/). +To get your Lutron Caseta covers (Serena Shades) working with Home Assistant, first follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/). + +You also need to configure Lutron Caseta as a cover platform in your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +cover: + - platform: lutron_caseta +``` + +Your Lutron Caseta shades will be pulled into Home Assistant with the names they were assigned in the Lutron Caseta app. diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 2a0af4c408f..43152eb5f98 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -33,6 +33,7 @@ Home Assistant can discover and automatically configure zeroconf/mDNS and uPnP d * Bose Soundtouch speakers * Axis Communications security devices * IKEA Trådfri (Tradfri) + * Harmony Hub It will be able to add Google Chromecasts and Belkin WeMo switches automatically, for Philips Hue it will require some configuration from the user. diff --git a/source/_components/fan.velbus.markdown b/source/_components/fan.velbus.markdown index f9008b7275c..ff0652f233f 100644 --- a/source/_components/fan.velbus.markdown +++ b/source/_components/fan.velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Fan ha_iot_class: "Local Push" -ha_release: 0.49 +ha_release: "0.50" --- The `velbus` fan allows you to control [Velbus](http://www.velbus.eu) connected fans. diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index 785e59c7f8d..47beb0a6f7e 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -36,3 +36,17 @@ The example above defined two themes named `happy` and `sad`. For each theme you There are 2 themes-related services: - `frontend.reload_themes` - reloads theme configuration from yaml. - `frontend.set_theme(name)` - sets backend-preferred theme name. + +Example in automation: +```yaml +automation: + - alias: 'Set theme at startup' + initial_state: 'on' + trigger: + - platform: homeassistant + event: start + action: + service: frontend.set_theme + data: + name: pink +``` diff --git a/source/_components/intent_script.markdown b/source/_components/intent_script.markdown index e6c72b0275c..68336fd79d5 100644 --- a/source/_components/intent_script.markdown +++ b/source/_components/intent_script.markdown @@ -9,27 +9,28 @@ sharing: true footer: true logo: home-assistant.png ha_category: Intent -ha_release: 0.50 +ha_release: "0.50" --- The intent_script component allows users to configure actions and responses to intents. Intents can be fired by any component that supports it. Examples are Alexa (Amazon Echo), API.ai (Google Assistant) and Snips. ```yaml -{% raw %}# Example configuration.yaml entry +# Example configuration.yaml entry intent_script: GetTemperature: # Intent type speech: - text: We have {{ states.sensor.temperature }} degrees + text: We have {% raw %}{{ states.sensor.temperature }}{% endraw %} degrees action: service: notify.notify data_template: message: Hello from an intent! -{% endraw %} ``` +Configuration variables: Inside an intent we can define these variables: -- **speech** (*Optional*): Text or template to return -- **action** (*Optional*): [Script syntax] -- **async_action** (*Optional*): Set to True to have Home Assistant not wait for the script to finish before returning the intent response. -[Script syntax]: /docs/scripts/ +- **intent** (*Required*): Name of the intent. Multiple entries are possible. + - **speech** (*Optional*): Text or template to return. + - **action** (*Optional*): [Script syntax](/docs/scripts/). + - **async_action** (*Optional*): Set to True to have Home Assistant not wait for the script to finish before returning the intent response. + diff --git a/source/_components/light.tplink.markdown b/source/_components/light.tplink.markdown index 63f07d78ae7..68fff983950 100644 --- a/source/_components/light.tplink.markdown +++ b/source/_components/light.tplink.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: tp-link.png -ha_category: light +ha_category: Light ha_iot_class: "Local Polling" ha_release: "0.50" --- diff --git a/source/_components/light.velbus.markdown b/source/_components/light.velbus.markdown index ba0f09cb204..662b788ca41 100644 --- a/source/_components/light.velbus.markdown +++ b/source/_components/light.velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Light ha_iot_class: "Local Push" -ha_release: 0.49 +ha_release: "0.50" --- The `velbus` light allows you to control [Velbus](http://www.velbus.eu) lights. diff --git a/source/_components/media_extractor.markdown b/source/_components/media_extractor.markdown index 3cb3a459aea..482f40cb682 100644 --- a/source/_components/media_extractor.markdown +++ b/source/_components/media_extractor.markdown @@ -54,7 +54,7 @@ More info about queries [here](https://github.com/rg3/youtube-dl#format-selectio ### {% linkable_title Use the service %} -Go to the "Developer Tools", then to "Call Service", and choose `media_extractor/play_media` from the list of available services. Fill the "Service Data" field as shown in the example below and hit "CALL SERVICE". +Go to the "Developer Tools," then to "Call Service," and choose `media_extractor/play_media` from the list of available services. Fill the "Service Data" field as shown in the example below and hit "CALL SERVICE." This will download the file from the given URL. diff --git a/source/_components/sensor.uk_transport.markdown b/source/_components/sensor.uk_transport.markdown index 10a33ef4310..62358de3f74 100644 --- a/source/_components/sensor.uk_transport.markdown +++ b/source/_components/sensor.uk_transport.markdown @@ -56,19 +56,19 @@ A large amount of information about upcoming departures is available within the sensors: next_train_status: friendly_name: 'Next train status' - value_template: '{{states.sensor.next_train_to_wat.attributes.next_trains[0].status}}' + value_template: {% raw %}'{{states.sensor.next_train_to_wat.attributes.next_trains[0].status}}'{% endraw %} next_trains_origin: friendly_name: 'Next train origin' - value_template: '{{states.sensor.next_train_to_wat.attributes.next_trains[0].origin_name}}' + value_template: {% raw %}'{{states.sensor.next_train_to_wat.attributes.next_trains[0].origin_name}}'{% endraw %} next_trains_estimated: friendly_name: 'Next train estimated' - value_template: '{{states.sensor.next_train_to_wat.attributes.next_trains[0].estimated}}' + value_template: {% raw %}'{{states.sensor.next_train_to_wat.attributes.next_trains[0].estimated}}'{% endraw %} next_trains_scheduled: friendly_name: 'Next train scheduled' - value_template: '{{states.sensor.next_train_to_wat.attributes.next_trains[0].scheduled}}' + value_template: {% raw %}'{{states.sensor.next_train_to_wat.attributes.next_trains[0].scheduled}}'{% endraw %} next_trains_platform: friendly_name: 'Next train platform' - value_template: '{{states.sensor.next_train_to_wat.attributes.next_trains[0].platform}}' + value_template: {% raw %}'{{states.sensor.next_train_to_wat.attributes.next_trains[0].platform}}'{% endraw %} ``` @@ -106,16 +106,16 @@ And the template sensor for viewing the next bus attributes. sensors: next_bus_route: friendly_name: 'Next bus route' - value_template: '{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].route}}' + value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].route}}'{% endraw %} next_bus_direction: friendly_name: 'Next bus direction' - value_template: '{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].direction}}' + value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].direction}}'{% endraw %} next_bus_scheduled: friendly_name: 'Next bus scheduled' - value_template: '{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].scheduled}}' + value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].scheduled}}'{% endraw %} next_bus_estimated: friendly_name: 'Next bus estimated' - value_template: '{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].estimated}}' + value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].estimated}}'{% endraw %} ``` diff --git a/source/_components/shopping_list.markdown b/source/_components/shopping_list.markdown new file mode 100644 index 00000000000..c30bbd9ff6e --- /dev/null +++ b/source/_components/shopping_list.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Shopping List" +description: "Instructions on how to integrate a Shopping list into Home Assistant using Intent." +date: 2017-07-29 13:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Intent +ha_release: "0.50" +--- + +The `shopping_list` component allows you to keep track of shopping list items. Includes the ability to add items via your voice using the sentence "Add eggs to my shopping list". + +```yaml +# Example configuration.yaml entry +shopping_list: +``` diff --git a/source/_components/switch.velbus.markdown b/source/_components/switch.velbus.markdown index 216970bb2fa..b4a7ae12967 100644 --- a/source/_components/switch.velbus.markdown +++ b/source/_components/switch.velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Switch ha_iot_class: "Local Push" -ha_release: 0.49 +ha_release: "0.50" --- The `velbus` switch allows you to control [Velbus](http://www.velbus.eu) connected switches. diff --git a/source/_components/velbus.markdown b/source/_components/velbus.markdown index 865d052973d..0f8f3abdead 100644 --- a/source/_components/velbus.markdown +++ b/source/_components/velbus.markdown @@ -10,7 +10,7 @@ footer: true logo: velbus.png ha_category: Hub ha_iot_class: "Local Push" -ha_release: 0.49 +ha_release: "0.50" --- The `velbus` component supports the Velbus USB and Serial gateways. diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown index 0a1d8a7c6f5..7ce7c46b16a 100644 --- a/source/_cookbook/automation_for_rainy_days.markdown +++ b/source/_cookbook/automation_for_rainy_days.markdown @@ -22,10 +22,10 @@ automation: entity_id: sensor.precip_intensity to: 'rain' condition: - - platform: state + - condition: state entity_id: group.all_devices state: 'home' - - platform: time + - condition: time after: '14:00' before: '23:00' action: diff --git a/source/_docs/ecosystem/appdaemon.markdown b/source/_docs/ecosystem/appdaemon.markdown index 01395996c39..51f27fe4447 100755 --- a/source/_docs/ecosystem/appdaemon.markdown +++ b/source/_docs/ecosystem/appdaemon.markdown @@ -16,12 +16,12 @@ AppDaemon is a loosely coupled, multithreaded, sandboxed python execution enviro AppDaemon is not meant to replace Home Assistant Automations and Scripts, rather complement them. For a lot of things, automations work well and can be very succinct. However, there is a class of more complex automations for which they become harder to use, and appdeamon then comes into its own. It brings quite a few things to the table: -- New paradigm - some problems require a procedural and/or iterative approach, and `AppDaemon` Apps are a much more natural fit for this. Recent enhancements to Home Assistant scripts and templates have made huge strides, but for the most complex scenarios, Apps can do things that Automations can't +- New paradigm - Some problems require a procedural and/or iterative approach, and `AppDaemon` Apps are a much more natural fit for this. Recent enhancements to Home Assistant scripts and templates have made huge strides, but for the most complex scenarios, apps can do things that automations can't. - Ease of use - AppDaemon's API is full of helper functions that make programming as easy and natural as possible. The functions and their operation are as "Pythonic" as possible, experienced Python programmers should feel right at home. -- Reuse - write a piece of code once and instantiate it as an app as many times as you need with different parameters e.g. a motion light program that you can use in 5 different places around your home. The code stays the same, you just dynamically add new instances of it in the config file +- Reuse - write a piece of code once and instantiate it as an app as many times as you need with different parameters e.g. a motion light program that you can use in 5 different places around your home. The code stays the same, you just dynamically add new instances of it in the config file. - Dynamic - AppDaemon has been designed from the start to enable the user to make changes without requiring a restart of Home Assistant, thanks to it's loose coupling. However, it is better than that - the user can make changes to code and AppDaemon will automatically reload the code, figure out which Apps were using it and restart them to use the new code with out the need to restart `AppDaemon` itself. It is also possible to change parameters for an individual or multiple apps and have them picked up dynamically, and for a final trick, removing or adding apps is also picked up dynamically. Testing cycles become a lot more efficient as a result. - Complex logic - Python's If/Else constructs are clearer and easier to code for arbitrarily complex nested logic -- Durable variables and state - variables can be kept between events to keep track of things like the number of times a motion sensor has been activated, or how long it has been since a door opened +- Durable variables and state - Variables can be kept between events to keep track of things like the number of times a motion sensor has been activated, or how long it has been since a door opened. - All the power of Python - use any of Python's libraries, create your own modules, share variables, refactor and re-use code, create a single app to do everything, or multiple apps for individual tasks - nothing is off limits! It is in fact a testament to Home Assistant's open nature that a component like `AppDaemon` can be integrated so neatly and closely that it acts in all ways like an extension of the system, not a second class citizen. Part of the strength of Home Assistant's underlying design is that it makes no assumptions whatever about what it is controlling or reacting to, or reporting state on. This is made achievable in part by the great flexibility of Python as a programming environment for Home Assistant, and carrying that forward has enabled me to use the same philosophy for `AppDaemon` - it took surprisingly little code to be able to respond to basic events and call services in a completely open ended manner - the bulk of the work after that was adding additonal functions to make things that were already possible easier. @@ -74,7 +74,7 @@ class FlashyMotionLights(appapi.AppDaemon): self.turn_off("light.drive") ``` -This is starting to get a little more complex in Home Assistant automations requiring an Automation rule and two separate scripts. +This is starting to get a little more complex in Home Assistant automations requiring an automation rule and two separate scripts. Now lets extend this with a somewhat artificial example to show something that is simple in AppDaemon but very difficult if not impossible using automations. Lets warn someone inside the house that there has been motion outside by flashing a lamp on and off 10 times. We are reacting to the motion as before by turning on the light and setting a timer to turn it off again, but in addition, we set a 1 second timer to run `flash_warning()` which when called, toggles the inside light and sets another timer to call itself a second later. To avoid re-triggering forever, it keeps a count of how many times it has been activated and bales out after 10 iterations. diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index df50d186801..afb735832f9 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -14,7 +14,7 @@ The easiest way to install Home Assistant on your Raspberry Pi is by using HASSb 1. [Download the Hassbian image][image-download] (364 MB) 2. Use [Etcher][etcher] to flash the image to your SD card - 3. Ensure your Raspberry Pi has wired access to the internet for the entire process. + 3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your wireless network (details below). 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 5 minutes. These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk). Additional information is available in this [video](https://www.youtube.com/watch?v=tCGlQSsQ-Mc). @@ -31,6 +31,17 @@ The following extras are included on the image: - SSH server is enabled. - A tool called `hassbian-config`. +### {% linkable_title Wireless Network %} + +After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up Wifi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this: + +```conf +network={ + ssid="YOUR_SSID" + psk="YOUR_PASSWORD" +} +``` + ### {% linkable_title Technical Details %} - Home Assistant is installed in a virtual Python environment at `/srv/homeassistant/` @@ -40,3 +51,5 @@ The following extras are included on the image: [image-download]: https://github.com/home-assistant/pi-gen/releases/latest [etcher]: https://etcher.io/ [http://hassbian.local:8123]: http://hassbian.local:8123 +[wifi-setup]: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md + diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown index 737cfd138b8..81ad7ae1f5f 100644 --- a/source/_docs/z-wave.markdown +++ b/source/_docs/z-wave.markdown @@ -86,7 +86,7 @@ Depending on what's plugged into your USB ports, the name found above may change ### {% linkable_title Adding Devices %} -To add a Z-Wave device to your system, go to the Services menu and select the `zwave` domain, and select the `add-node` service. Then find your device's add button and press that as well. +To add a Z-Wave device to your system, go to the Z-Wave panel in the Home Assistant frontend and click the Add Node button in the Z-Wave Network Management card. This will place the controller in inclusion mode, after which you should activate your device to be included by following the instructions provided with the device.

Some Z-Wave controllers like Aeotec ZW090 Z-Stick Gen5 have ability to add devices to the network using their own contol buttons. This method should be avoided as it is prone to errors. Devices added to the Z-Wave network using this method may not function well. @@ -94,7 +94,7 @@ Some Z-Wave controllers like Aeotec ZW090 Z-Stick Gen5 have ability to add devic ### {% linkable_title Adding Security Devices %} -Security Z-Wave devices require a network key before being added to the network using the `zwave.add_node_secure` service. You must set the *network_key* configuration variable to use a network key before adding these devices. +Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. An easy script to generate a random key: ```bash diff --git a/source/_posts/2017-07-29-release-50.markdown b/source/_posts/2017-07-29-release-50.markdown new file mode 100644 index 00000000000..09ad9c5323f --- /dev/null +++ b/source/_posts/2017-07-29-release-50.markdown @@ -0,0 +1,393 @@ +--- +layout: post +title: "0.50: Voice control, History improvements, and Xiaomi" +description: "Use your voice to control your Home." +date: 2017-07-29 00:11:05 +date_formatted: "July 29, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-07-0.50/components.png +--- + + + +Last Wednesday we released [Hass.io](https://home-assistant.io/hassio/), an operating system to take care of all the updating hassles that come with running home automation at home and so much more. This is a major milestone for Home Assistant as it is our first step to offering a fully integrated solution using a bring your own hardware approach. + +The launch has been crazy successful. The [20 minute introduction video][hassio-intro] by BRUHAutomation already has 12.5k views in just 4 days with no less than 150 comments. + +Hass.io will be a great foundation for bigger and better integrated features. Stay tuned. + +### {% linkable_title Adding the power of voice to integrations %} + +But enough about Hass.io, let's not forget about Home Assistant. This release has completely revamped the way how we deal with voice integrations. We turned Home Assistant into a platform to write voice apps, no matter where the processing of the voice happens. This can be done by Alexa, Google Assistant or in the Home Assistant user interface. + +We are super excited about the new functionality and hope that it will trigger a new type of applications and systems to be built on top of Home Assistant. This release includes a shopping list to show the new functionality. As a user you can add any item to the shopping list with your voice and also ask what is on your shopping list. + +```yaml +# Example configuration.yaml entry +shopping_list: +``` + +To make testing these applications easier, we've updated the conversation component. The component will now allow sentences to be configured that hook directly into the new voice functionality. Combined with the new interface it will allow for some great interactions! Check out the [developer docs][intent docs] for more information. + +

+ +
+ +### {% linkable_title History improvements %} + +[@OverloadUT] has been recently spending a lot of time on optimizing the history database queries. This release includes PR [#8632], the first in a list of improvements that he is working on. This PR greatly improves requests for single entities by using an optimized query for this use case. + +The performance change in some of his tests shows this change to be about 300x faster (30 seconds to 0.1 seconds!) (There is no theoretical upper limit due to the issue with multi-entity queries getting worse the longer the current recorder run has been going.) + +[hassio-intro]: https://www.youtube.com/watch?v=XWPluWcYRMI&feature=youtu.be + +### {% linkable_title Xiaomi integration %} + +Yes, it has happened! After being in beta for a while, the Xiaomi support is now available to all. [@danielhiversen] did an amazing job and we now support sensors, switches, lights and covers. + +### {% linkable_title Velbus integration %} + +Another awesome integration is that of the Velbus home automation system which has been contributed by [@thomasdelaet]. It integrates their sensors, covers, fans, lights and switches. + +### {% linkable_title Manual alarm with MQTT control %} + +A new version of the manual alarm component is now available with full MQTT control thanks to [@colinodell]. Using this you can build your own control panel to remotely arm/disarm the alarm. For example, using a [Raspberry Pi to create an alarm](https://www.hackster.io/colinodell/diy-alarm-control-panel-for-home-assistant-ac1813). + +## {% linkable_title New Platforms %} + +- Initial support for Google Wifi/OnHub ([@fronzbot] - [#8485]) ([sensor.google_wifi docs]) (new-platform) +- Xiaomi gw support ([@danielhiversen] - [#8555]) ([xiaomi docs]) ([binary_sensor.xiaomi docs]) ([cover.xiaomi docs]) ([light.xiaomi docs]) ([sensor.xiaomi docs]) ([switch.xiaomi docs]) (new-platform) +- Add Intent component ([@balloob] - [#8434]) ([alexa docs]) ([intent_script docs]) ([shopping_list docs]) ([snips docs]) (breaking change) (new-platform) +- Manual alarm with MQTT control ([@colinodell] - [#8257]) ([alarm_control_panel.manual_mqtt docs]) (new-platform) +- Add component Light TPLink ([@gollo] - [#8643]) ([light.tplink docs]) (new-platform) +- Velbus ([@thomasdelaet] - [#8076]) ([velbus docs]) ([binary_sensor.velbus docs]) ([light.velbus docs]) (new-platform) +- Add uk_transport component. ([@robmarkcole] - [#8600]) ([sensor.uk_transport docs]) (new-platform) + +## {% linkable_title If you need help... %} +...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. 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][issue]. Make sure to fill in all fields of the issue template. + + +## {% linkable_title Breaking Changes %} + +- Automations: The state trigger keyword `state` and the time trigger keyword `after` were deprecated in 0.46. They have now been removed. Use `to` and `at` instead. ([@amelchio] - [#8510]) ([automation.state docs]) ([automation.time docs]) (breaking change) +- Wink: the component is no longer supporting the `access_token` in the config. Use the new OAuth authentication or add your username and password to the config. ([@w1ll1am23] - [#8208]) ([wink docs]) (breaking change) +- Alexa/API.AI/Snips.ai/Conversation: configuring responses to intents/sentences has been moved to a new component called `intent_script`. Conversation now allows configuring sentences to map to intents. ([@balloob] - [#8434]) ([alexa docs]) ([intent docs]) ([intent_script docs]) + ([shopping_list docs]) ([snips docs]) (breaking change) (new-platform) + +```yaml +alexa: +snips: +apiai: + +intent_script: + LightKitchen: + speech: + type: plain + text: I did the work, yay. + card: + type: simple + title: Lights Card + content: I have turned on the lights. + action: + service: light.turn_on + data: + entity_id: light.kitchen + +conversation: + intents: + LightKitchen: + - The kitchen is magic +``` + +- Switch fritzdect: attributes have been renamed to use underscores and no capital letters ([@thomasklingbeil] - [#8436]) ([switch.fritzdect docs]) (breaking change) +- Yahoo Weather: no longer allow configuring forecasts but include all instead. ([@fanthos] - [#8626]) ([weather.yweather docs]) (breaking change) +- The Home Assistant Z-Wave Cover implementation has been updated to support the latest development version of OpenZWave. If you are currently applying a workaround to your OpenZWave installation to support the barrier command class, you'll need to make sure you update your workaround to the latest development version of OpenZWave. ([@firstof9] - [#8574]) ([cover docs]) ([cover.zwave docs]) (breaking change) + +## {% linkable_title All changes %} + +- Make deps directory persistent over upgrades ([@MartinHjelmare] - [#7801]) +- Fix check for running inside venv ([@MartinHjelmare] - [#8481]) +- Bump to KNXIP 0.5 ([@open-homeautomation] - [#8492]) ([knx docs]) +- Expose all components on hass [Concept] ([@balloob] - [#8490]) ([light docs]) +- Add bind_hass to components ([@balloob] - [#8502]) +- Persistent notification import ([@balloob] - [#8507]) +- Added additional attributes to OwnTracks device_tracker ([@binarybucks] - [#8503]) ([device_tracker.owntracks docs]) +- Added sensor state rounding ([@fronzbot] - [#8499]) ([sensor.pi_hole docs]) +- fix for a bug introduced with media support in #8282 ([@MikeChristianson] - [#8513]) ([notify.twitter docs]) +- handle timeout errors without logging.exception when updating hue lights; double quotes in log msgs ([@azogue] - [#8524]) ([light.hue docs]) +- Remove deprecated automation keywords ([@amelchio] - [#8510]) ([automation.state docs]) ([automation.time docs]) (breaking change) +- Citybikes: Allow None as result for empty slots ([@janLo] - [#8528]) ([sensor.citybikes docs]) +- Return a 0 temperature value when none is found ([@phil-lavin] - [#8518]) ([climate.maxcube docs]) +- Fix #6469 and #6828 ([@titilambert] - [#8537]) ([sensor.hydroquebec docs]) +- Update docstrings ([@fabaff] - [#8536]) +- Upgrade TwitterAPI to 2.4.6 ([@fabaff] - [#8535]) ([notify.twitter docs]) +- Decora: Fix set brightness and improve reconnection ([@titilambert] - [#8522]) ([light.decora docs]) +- Initial support for Google Wifi/OnHub ([@fronzbot] - [#8485]) ([sensor.google_wifi docs]) (new-platform) +- Fix exception dlib_face_identify when image is not recognized by face_recognition module ([@tchellomello] - [#8552]) ([image_processing.dlib_face_identify docs]) +- [media_extractor] Add support for custom stream queries for media_extractor ([@minchik] - [#8538]) ([media_extractor docs]) +- Report Harmony remote off if state is unknown ([@jawilson] - [#8547]) ([remote.harmony docs]) +- Upgrade the alarmdecoder dependency library from 0.12.1 to 0.12.3. ([@viswa-swami] - [#8542]) ([alarmdecoder docs]) +- turn_on_action and turn_off_action with script syntax ([@azogue] - [#8558]) ([media_player.kodi docs]) +- Extends Pi-hole sensor to support the new sensors: ([@tchellomello] - [#8549]) ([sensor.pi_hole docs]) +- Support for Wink Switch and Light groups also fix fan speed selection ([@w1ll1am23] - [#8501]) ([wink docs]) ([fan.wink docs]) ([light.wink docs]) ([switch.wink docs]) +- Added a service to write to KNX group addressed including documentation ([@open-homeautomation] - [#8491]) ([knx docs]) +- Handle manual edits to emulated_hue_ids.json ([@jawilson] - [#8560]) ([emulated_hue docs]) +- Enhance python_script to support "_getitem_" ([@sdague] - [#8541]) ([python_script docs]) +- Update persistent deps dir version in config.py ([@balloob] - [#8479]) +- Xiaomi gw support ([@danielhiversen] - [#8555]) ([xiaomi docs]) ([binary_sensor.xiaomi docs]) ([cover.xiaomi docs]) ([light.xiaomi docs]) ([sensor.xiaomi docs]) ([switch.xiaomi docs]) (new-platform) +- fix #8263 corrected Adafruit DHT library version from 1.3.0 to 1.3.2 ([@namadori] - [#8562]) ([sensor.dht docs]) +- xiaomi bug fix ([@danielhiversen] - [#8576]) ([binary_sensor.xiaomi docs]) +- Bumped python-simplisafe version ([@bachya] - [#8578]) ([alarm_control_panel.simplisafe docs]) +- Added Time Remaining and Time Elapsed sensors for octoprint ([@w1ll1am23] - [#8581]) ([sensor.octoprint docs]) +- upgade xiaomi lib to 0.2 ([@danielhiversen] - [#8584]) ([xiaomi docs]) +- Device support for different new sensors of the xiaomi aqara gateway ([@syssi] - [#8577]) ([xiaomi docs]) ([binary_sensor.xiaomi docs]) ([sensor.xiaomi docs]) ([switch.xiaomi docs]) +- Extends Fitbit sensors to track the device battery level ([@tchellomello] - [#8583]) ([sensor.fitbit docs]) +- xiaomi binary sensor bug fix ([@danielhiversen] - [#8586]) ([binary_sensor.xiaomi docs]) +- upgrade pywebpush and PyJWT ([@perosb] - [#8588]) ([notify.html5 docs]) +- Support for Wink oauth application authorization ([@w1ll1am23] - [#8208]) ([wink docs]) (breaking change) +- Add Intent component ([@balloob] - [#8434]) ([alexa docs]) ([intent docs]) ([intent_script docs]) ([shopping_list docs]) ([snips docs]) (breaking change) (new-platform) +- Remove code in wink.py overwriting hass.data configurator ([@w1ll1am23] - [#8595]) ([wink docs]) +- bump python-mirobo version for more robust protocol handling, make the platform to update on startup ([@rytilahti] - [#8602]) ([switch.xiaomi_vacuum docs]) +- Binary sensor ping fixed for hassio ([@gollo] - [#8573]) ([binary_sensor.ping docs]) +- Simplified percent conversion, better logging ([@open-homeautomation] - [#8568]) ([sensor.knx docs]) +- make attributes in the fritzdect module easier to process ([@thomasklingbeil] - [#8436]) ([switch.fritzdect docs]) (breaking change) +- Allow set_cover_position in scenes ([@peckham] - [#8613]) +- better but still not great ([@cribbstechnologies] - [#8618]) +- Upgrade youtube_dl to 2017.7.23 ([@fabaff] - [#8617]) ([media_extractor docs]) +- Upgrade mypy to 0.520 ([@fabaff] - [#8616]) +- REST binary sensor value_template optional ([@philhawthorne] - [#8596]) ([binary_sensor.rest docs]) +- added onvif camera fix for non-virtual env installations ([@matt2005] - [#8592]) ([camera.onvif docs]) +- Cleanup old device_tracker stuff ([@pvizeli] - [#8627]) +- Add support for using credstash as a secret store ([@justin8] - [#8494]) +- Added support for default value when environment variable is missing ([@devspacenine] - [#8484]) +- Manual alarm with MQTT control ([@colinodell] - [#8257]) ([alarm_control_panel.manual_mqtt docs]) (new-platform) +- Catch and log Lyft API errors ([@armills] - [#8635]) ([sensor.lyft docs]) +- Tweak conversation/intent/shopping list ([@balloob] - [#8636]) ([conversation docs]) ([shopping_list docs]) +- Update dependencies cast + discovery ([@balloob] - [#8646]) ([media_player.cast docs]) +- Add component Light TPLink ([@gollo] - [#8643]) ([light.tplink docs]) (new-platform) +- Fixes Fitbit sensor to report battery level with the expected device ([@tchellomello] - [#8647]) ([sensor.fitbit docs]) +- Upgrade aiolifx ([@amelchio] - [#8648]) ([light.lifx docs]) +- Velbus ([@thomasdelaet] - [#8076]) ([velbus docs]) ([binary_sensor.velbus docs]) ([light.velbus docs]) (new-platform) +- Yahoo Weather update, supports forecast for more days ([@fanthos] - [#8626]) ([weather.yweather docs]) (breaking change) +- History performance improvements for single-entity requests ([@OverloadUT] - [#8632]) ([history docs]) +- Add transition support to light.zha ([@jawilson] - [#8548]) ([light.zha docs]) +- Add uk_transport component. ([@robmarkcole] - [#8600]) ([sensor.uk_transport docs]) (new-platform) +- Added support for SerenaHoneycombShades to Lutron Caseta ([@809694+kfcook] - [#8662]) ([cover.lutron_caseta docs]) +- MQTT Switch: add availability_topic for online/offline status ([@abmantis] - [#8593]) ([mqtt docs]) ([switch.mqtt docs]) +- Adding support for mapping keys to value in statsd ([@Khabi] - [#8665]) ([statsd docs]) +- Upgrade fuzzywuzzy to 0.15.1 ([@fabaff] - [#8671]) ([conversation docs]) +- Upgrade libnacl to 1.5.2 ([@fabaff] - [#8670]) ([device_tracker.owntracks docs]) +- Upgrade sqlalchemy to 1.1.12 ([@fabaff] - [#8669]) ([recorder docs]) +- Upgrade pyhomematic to 0.1.30 ([@danielperna84] - [#8673]) ([homematic docs]) +- Hass.io: logo support / timeout handling ([@pvizeli] - [#8668]) ([hassio docs]) +- Updated pysnmp to 4.3.9 ([@bgehrich] - [#8675]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) +- Fix COMMAND_CLASS_BARRIER_OPERATOR for dev branch of OpenZwave ([@firstof9] - [#8574]) ([cover docs]) ([cover.zwave docs]) (breaking change) +- Shopping List: edit name / complete status ([@balloob] - [#8666]) ([shopping_list docs]) +- Support for Wink local control ([@w1ll1am23] - [#8607]) ([wink docs]) +- Persist shopping list + clear completed ([@balloob] - [#8697]) ([shopping_list docs]) + +[#7801]: https://github.com/home-assistant/home-assistant/pull/7801 +[#8076]: https://github.com/home-assistant/home-assistant/pull/8076 +[#8208]: https://github.com/home-assistant/home-assistant/pull/8208 +[#8257]: https://github.com/home-assistant/home-assistant/pull/8257 +[#8434]: https://github.com/home-assistant/home-assistant/pull/8434 +[#8436]: https://github.com/home-assistant/home-assistant/pull/8436 +[#8479]: https://github.com/home-assistant/home-assistant/pull/8479 +[#8481]: https://github.com/home-assistant/home-assistant/pull/8481 +[#8484]: https://github.com/home-assistant/home-assistant/pull/8484 +[#8485]: https://github.com/home-assistant/home-assistant/pull/8485 +[#8490]: https://github.com/home-assistant/home-assistant/pull/8490 +[#8491]: https://github.com/home-assistant/home-assistant/pull/8491 +[#8492]: https://github.com/home-assistant/home-assistant/pull/8492 +[#8494]: https://github.com/home-assistant/home-assistant/pull/8494 +[#8499]: https://github.com/home-assistant/home-assistant/pull/8499 +[#8501]: https://github.com/home-assistant/home-assistant/pull/8501 +[#8502]: https://github.com/home-assistant/home-assistant/pull/8502 +[#8503]: https://github.com/home-assistant/home-assistant/pull/8503 +[#8507]: https://github.com/home-assistant/home-assistant/pull/8507 +[#8510]: https://github.com/home-assistant/home-assistant/pull/8510 +[#8513]: https://github.com/home-assistant/home-assistant/pull/8513 +[#8518]: https://github.com/home-assistant/home-assistant/pull/8518 +[#8522]: https://github.com/home-assistant/home-assistant/pull/8522 +[#8524]: https://github.com/home-assistant/home-assistant/pull/8524 +[#8528]: https://github.com/home-assistant/home-assistant/pull/8528 +[#8535]: https://github.com/home-assistant/home-assistant/pull/8535 +[#8536]: https://github.com/home-assistant/home-assistant/pull/8536 +[#8537]: https://github.com/home-assistant/home-assistant/pull/8537 +[#8538]: https://github.com/home-assistant/home-assistant/pull/8538 +[#8541]: https://github.com/home-assistant/home-assistant/pull/8541 +[#8542]: https://github.com/home-assistant/home-assistant/pull/8542 +[#8547]: https://github.com/home-assistant/home-assistant/pull/8547 +[#8548]: https://github.com/home-assistant/home-assistant/pull/8548 +[#8549]: https://github.com/home-assistant/home-assistant/pull/8549 +[#8552]: https://github.com/home-assistant/home-assistant/pull/8552 +[#8555]: https://github.com/home-assistant/home-assistant/pull/8555 +[#8558]: https://github.com/home-assistant/home-assistant/pull/8558 +[#8560]: https://github.com/home-assistant/home-assistant/pull/8560 +[#8562]: https://github.com/home-assistant/home-assistant/pull/8562 +[#8568]: https://github.com/home-assistant/home-assistant/pull/8568 +[#8573]: https://github.com/home-assistant/home-assistant/pull/8573 +[#8574]: https://github.com/home-assistant/home-assistant/pull/8574 +[#8576]: https://github.com/home-assistant/home-assistant/pull/8576 +[#8577]: https://github.com/home-assistant/home-assistant/pull/8577 +[#8578]: https://github.com/home-assistant/home-assistant/pull/8578 +[#8581]: https://github.com/home-assistant/home-assistant/pull/8581 +[#8583]: https://github.com/home-assistant/home-assistant/pull/8583 +[#8584]: https://github.com/home-assistant/home-assistant/pull/8584 +[#8586]: https://github.com/home-assistant/home-assistant/pull/8586 +[#8588]: https://github.com/home-assistant/home-assistant/pull/8588 +[#8592]: https://github.com/home-assistant/home-assistant/pull/8592 +[#8593]: https://github.com/home-assistant/home-assistant/pull/8593 +[#8595]: https://github.com/home-assistant/home-assistant/pull/8595 +[#8596]: https://github.com/home-assistant/home-assistant/pull/8596 +[#8600]: https://github.com/home-assistant/home-assistant/pull/8600 +[#8602]: https://github.com/home-assistant/home-assistant/pull/8602 +[#8607]: https://github.com/home-assistant/home-assistant/pull/8607 +[#8613]: https://github.com/home-assistant/home-assistant/pull/8613 +[#8616]: https://github.com/home-assistant/home-assistant/pull/8616 +[#8617]: https://github.com/home-assistant/home-assistant/pull/8617 +[#8618]: https://github.com/home-assistant/home-assistant/pull/8618 +[#8626]: https://github.com/home-assistant/home-assistant/pull/8626 +[#8627]: https://github.com/home-assistant/home-assistant/pull/8627 +[#8632]: https://github.com/home-assistant/home-assistant/pull/8632 +[#8635]: https://github.com/home-assistant/home-assistant/pull/8635 +[#8636]: https://github.com/home-assistant/home-assistant/pull/8636 +[#8643]: https://github.com/home-assistant/home-assistant/pull/8643 +[#8646]: https://github.com/home-assistant/home-assistant/pull/8646 +[#8647]: https://github.com/home-assistant/home-assistant/pull/8647 +[#8648]: https://github.com/home-assistant/home-assistant/pull/8648 +[#8662]: https://github.com/home-assistant/home-assistant/pull/8662 +[#8665]: https://github.com/home-assistant/home-assistant/pull/8665 +[#8666]: https://github.com/home-assistant/home-assistant/pull/8666 +[#8668]: https://github.com/home-assistant/home-assistant/pull/8668 +[#8669]: https://github.com/home-assistant/home-assistant/pull/8669 +[#8670]: https://github.com/home-assistant/home-assistant/pull/8670 +[#8671]: https://github.com/home-assistant/home-assistant/pull/8671 +[#8673]: https://github.com/home-assistant/home-assistant/pull/8673 +[#8675]: https://github.com/home-assistant/home-assistant/pull/8675 +[#8697]: https://github.com/home-assistant/home-assistant/pull/8697 +[@809694+kfcook]: https://github.com/809694+kfcook +[@Khabi]: https://github.com/Khabi +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MikeChristianson]: https://github.com/MikeChristianson +[@OverloadUT]: https://github.com/OverloadUT +[@abmantis]: https://github.com/abmantis +[@amelchio]: https://github.com/amelchio +[@armills]: https://github.com/armills +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bgehrich]: https://github.com/bgehrich +[@binarybucks]: https://github.com/binarybucks +[@colinodell]: https://github.com/colinodell +[@cribbstechnologies]: https://github.com/cribbstechnologies +[@danielhiversen]: https://github.com/danielhiversen +[@danielperna84]: https://github.com/danielperna84 +[@devspacenine]: https://github.com/devspacenine +[@fabaff]: https://github.com/fabaff +[@fanthos]: https://github.com/fanthos +[@firstof9]: https://github.com/firstof9 +[@fronzbot]: https://github.com/fronzbot +[@gollo]: https://github.com/gollo +[@janLo]: https://github.com/janLo +[@jawilson]: https://github.com/jawilson +[@justin8]: https://github.com/justin8 +[@matt2005]: https://github.com/matt2005 +[@minchik]: https://github.com/minchik +[@namadori]: https://github.com/namadori +[@open-homeautomation]: https://github.com/open-homeautomation +[@peckham]: https://github.com/peckham +[@perosb]: https://github.com/perosb +[@phil-lavin]: https://github.com/phil-lavin +[@philhawthorne]: https://github.com/philhawthorne +[@pvizeli]: https://github.com/pvizeli +[@robmarkcole]: https://github.com/robmarkcole +[@rytilahti]: https://github.com/rytilahti +[@sdague]: https://github.com/sdague +[@syssi]: https://github.com/syssi +[@tchellomello]: https://github.com/tchellomello +[@thomasdelaet]: https://github.com/thomasdelaet +[@thomasklingbeil]: https://github.com/thomasklingbeil +[@titilambert]: https://github.com/titilambert +[@viswa-swami]: https://github.com/viswa-swami +[@w1ll1am23]: https://github.com/w1ll1am23 +[alarm_control_panel.manual_mqtt docs]: https://home-assistant.io/components/alarm_control_panel.manual_mqtt/ +[alarm_control_panel.simplisafe docs]: https://home-assistant.io/components/alarm_control_panel.simplisafe/ +[alarmdecoder docs]: https://home-assistant.io/components/alarmdecoder/ +[alexa docs]: https://home-assistant.io/components/alexa/ +[automation.state docs]: https://home-assistant.io/docs/automation/trigger/#state-trigger +[automation.time docs]: https://home-assistant.io/docs/automation/trigger/#time-trigger +[binary_sensor.ping docs]: https://home-assistant.io/components/binary_sensor.ping/ +[binary_sensor.rest docs]: https://home-assistant.io/components/binary_sensor.rest/ +[binary_sensor.velbus docs]: https://home-assistant.io/components/binary_sensor.velbus/ +[binary_sensor.xiaomi docs]: https://home-assistant.io/components/binary_sensor.xiaomi/ +[camera.onvif docs]: https://home-assistant.io/components/camera.onvif/ +[climate.maxcube docs]: https://home-assistant.io/components/climate.maxcube/ +[conversation docs]: https://home-assistant.io/components/conversation/ +[cover docs]: https://home-assistant.io/components/cover/ +[cover.lutron_caseta docs]: https://home-assistant.io/components/cover.lutron_caseta/ +[cover.xiaomi docs]: https://home-assistant.io/components/cover.xiaomi/ +[cover.zwave docs]: https://home-assistant.io/components/cover.zwave/ +[device_tracker.owntracks docs]: https://home-assistant.io/components/device_tracker.owntracks/ +[device_tracker.snmp docs]: https://home-assistant.io/components/device_tracker.snmp/ +[emulated_hue docs]: https://home-assistant.io/components/emulated_hue/ +[fan.wink docs]: https://home-assistant.io/components/fan.wink/ +[hassio docs]: https://home-assistant.io/hassio/ +[history docs]: https://home-assistant.io/components/history/ +[homematic docs]: https://home-assistant.io/components/homematic/ +[image_processing.dlib_face_identify docs]: https://home-assistant.io/components/image_processing.dlib_face_identify/ +[intent docs]: https://home-assistant.io/developers/intent/ +[intent_script docs]: https://home-assistant.io/components/intent_script/ +[knx docs]: https://home-assistant.io/components/knx/ +[light docs]: https://home-assistant.io/components/light/ +[light.decora docs]: https://home-assistant.io/components/light.decora/ +[light.hue docs]: https://home-assistant.io/components/light.hue/ +[light.lifx docs]: https://home-assistant.io/components/light.lifx/ +[light.tplink docs]: https://home-assistant.io/components/light.tplink/ +[light.velbus docs]: https://home-assistant.io/components/light.velbus/ +[light.wink docs]: https://home-assistant.io/components/light.wink/ +[light.xiaomi docs]: https://home-assistant.io/components/light.xiaomi/ +[light.zha docs]: https://home-assistant.io/components/light.zha/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player.cast docs]: https://home-assistant.io/components/media_player.cast/ +[media_player.kodi docs]: https://home-assistant.io/components/media_player.kodi/ +[mqtt docs]: https://home-assistant.io/components/mqtt/ +[notify.html5 docs]: https://home-assistant.io/components/notify.html5/ +[notify.twitter docs]: https://home-assistant.io/components/notify.twitter/ +[python_script docs]: https://home-assistant.io/components/python_script/ +[recorder docs]: https://home-assistant.io/components/recorder/ +[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/ +[sensor.citybikes docs]: https://home-assistant.io/components/sensor.citybikes/ +[sensor.dht docs]: https://home-assistant.io/components/sensor.dht/ +[sensor.fitbit docs]: https://home-assistant.io/components/sensor.fitbit/ +[sensor.google_wifi docs]: https://home-assistant.io/components/sensor.google_wifi/ +[sensor.hydroquebec docs]: https://home-assistant.io/components/sensor.hydroquebec/ +[sensor.knx docs]: https://home-assistant.io/components/sensor.knx/ +[sensor.lyft docs]: https://home-assistant.io/components/sensor.lyft/ +[sensor.octoprint docs]: https://home-assistant.io/components/sensor.octoprint/ +[sensor.pi_hole docs]: https://home-assistant.io/components/sensor.pi_hole/ +[sensor.snmp docs]: https://home-assistant.io/components/sensor.snmp/ +[sensor.uk_transport docs]: https://home-assistant.io/components/sensor.uk_transport/ +[sensor.xiaomi docs]: https://home-assistant.io/components/sensor.xiaomi/ +[shopping_list docs]: https://home-assistant.io/components/shopping_list/ +[snips docs]: https://home-assistant.io/components/snips/ +[statsd docs]: https://home-assistant.io/components/statsd/ +[switch.fritzdect docs]: https://home-assistant.io/components/switch.fritzdect/ +[switch.mqtt docs]: https://home-assistant.io/components/switch.mqtt/ +[switch.wink docs]: https://home-assistant.io/components/switch.wink/ +[switch.xiaomi docs]: https://home-assistant.io/components/switch.xiaomi/ +[switch.xiaomi_vacuum docs]: https://home-assistant.io/components/switch.xiaomi_vacuum/ +[velbus docs]: https://home-assistant.io/components/velbus/ +[weather.yweather docs]: https://home-assistant.io/components/weather.yweather/ +[wink docs]: https://home-assistant.io/components/wink/ +[xiaomi docs]: https://home-assistant.io/components/xiaomi/ +[forum]: https://community.home-assistant.io/ +[issue]: https://github.com/home-assistant/home-assistant/issues +[discord]: https://discord.gg/c5DvZ4e + diff --git a/source/developers/code_review_component.markdown b/source/developers/code_review_component.markdown index e3662e63791..fcc47210669 100644 --- a/source/developers/code_review_component.markdown +++ b/source/developers/code_review_component.markdown @@ -11,30 +11,24 @@ footer: true A checklist of things to do when you're adding a new component. +

+Not all existing platforms follow the requirements in this checklist. This cannot be used as a reason to not follow them! +

+ ### {% linkable_title Requirements %} 1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']` - 2. If requirement hosted on GitHub: - - Point at a zip archive of a release tag or commit SHA. - - Add version found in zip-archive as hash to URL. - -```python -REQUIREMENTS = [ - 'http://github.com/technicalpickles/python-nest' - '/archive/e6c9d56a8df455d4d7746389811f2c1387e8cb33.zip' - '#python-nest==3.0.3'] -``` + 2. We no longer want requirements hosted on GitHub. Please upload to PyPi. ### {% linkable_title Configuration %} 1. Voluptuous schema present for config validation - 2. Default parameters specified in voluptuous schema, not in `setup_platform(…)` + 2. Default parameters specified in voluptuous schema, not in `setup(…)` 3. Schema using as many generic config keys as possible from `homeassistant.const` 4. If having platforms, have a `PLATFORM_SCHEMA`, otherwise `CONFIG_SCHEMA`. 5. If `PLATFORM_SCHEMA`, import base from `homeassistant.helpers.config_validation` - ### {% linkable_title Component/platform communication %} 1. If you need to share global data with platforms, use the dictionary `hass.data`. `hass.data[DATA_XY]` while `XY` is the component is preferred over `hass.data[DOMAIN]`. - 2. If the component fetches data that causes related platform entities to update, + 2. If the component fetches data that causes it's related platform entities to update, you can notify them using the dispatcher code in `homeassistant.helpers.dispatcher`. diff --git a/source/developers/code_review_platform.markdown b/source/developers/code_review_platform.markdown index 1096302764f..edf5ab5c3c7 100644 --- a/source/developers/code_review_platform.markdown +++ b/source/developers/code_review_platform.markdown @@ -11,19 +11,14 @@ footer: true A checklist of things to do when you're adding a new platform. +

+Not all existing platforms follow the requirements in this checklist. This cannot be used as a reason to not follow them! +

+ ### {% linkable_title 1. Requirements %} - 1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']` - 2. If requirement hosted on GitHub: - - Point at a zip archive of a release tag or commit SHA. - - Add version found in zip-archive as hash to URL. - -```python -REQUIREMENTS = [ - 'http://github.com/technicalpickles/python-nest' - '/archive/e6c9d56a8df455d4d7746389811f2c1387e8cb33.zip' - '#python-nest==3.0.3'] -``` + 1. Requirement version should be pinned: `REQUIREMENTS = ['phue==0.8.1']` + 2. We no longer want requirements hosted on GitHub. Please upload to PyPi. ### {% linkable_title 2. Dependencies %} @@ -65,3 +60,17 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ 1. Extend entity from component, e.g. `class HueLight(Light)` 2. Do not call `update()` in constructor, use `add_devices(devices, True)` instead. 3. Do not do any I/O inside properties. Cache values inside `update()` instead. + +### {% linkable_title 6. Communication with devices/services %} + + 1. All API specific code has to be part of a third party library hosted on PyPi. Home Assistant should only interact with objects and not make direct calls to the API. + +```python +# bad +status = requests.get(url('/status')) + +# good +from phue import Bridge +bridge = Bridge(…) +status = bridge.status() +``` diff --git a/source/images/blog/2017-07-0.50/components.png b/source/images/blog/2017-07-0.50/components.png new file mode 100644 index 00000000000..6d032df96fa Binary files /dev/null and b/source/images/blog/2017-07-0.50/components.png differ diff --git a/source/mqtt/test_server.html b/source/mqtt/test_server.html new file mode 100644 index 00000000000..72838dc88b4 --- /dev/null +++ b/source/mqtt/test_server.html @@ -0,0 +1,153 @@ +--- +layout: page +title: "Test the embedded MQTT server" +description: "This allows you to test the Home Assistant embedded MQTT server." +date: 2017-07-29 13:35 +sidebar: false +comments: false +sharing: true +footer: true +--- + + + + + +
+
+ +
+ + Default for the Home Assistant embedded websocket server is ws://localhost:8080. +

+
+
+ +
+ +
+ + Enter your Home Assistant password if you have set one. This password will not be stored! +
+
+ +
+ +
+
+
+ +
+ +
+
+ + + + + +