diff --git a/_config.yml b/_config.yml index 6de62f081e9..c6dbb537997 100644 --- a/_config.yml +++ b/_config.yml @@ -140,13 +140,13 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 45 +current_minor_version: 46 current_patch_version: 1 -date_released: 2017-05-22 +date_released: 2017-06-09 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0451---may-22" +patch_version_notes: "#release-0461---june-9" # Minor release (Example #release-0431---april-25): -#patch_version_notes: "#release-0451---may-X" + diff --git a/source/_addons/bluetooth_bcm43xx.markdonw b/source/_addons/bluetooth_bcm43xx.markdonw new file mode 100644 index 00000000000..86fdf43922d --- /dev/null +++ b/source/_addons/bluetooth_bcm43xx.markdonw @@ -0,0 +1,12 @@ +--- +layout: page +title: "Bluetooth BCM43xx" +description: "Activate bluetooth for bcm43xx" +date: 2017-04-30 13:28 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Start Bluetooth for BCM43xx chipset on startup. Like Raspberry Pi3 diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index e500f2603ec..b30ceb63a2c 100644 --- a/source/_components/alarm_control_panel.manual.markdown +++ b/source/_components/alarm_control_panel.manual.markdown @@ -43,16 +43,16 @@ automation: trigger: - platform: state entity_id: sensor.pir1 - state: 'active' + to: 'active' - platform: state entity_id: sensor.pir2 - state: 'active' + to: 'active' - platform: state entity_id: sensor.door - state: 'open' + to: 'open' - platform: state entity_id: sensor.window - state: 'open' + to: 'open' condition: - condition: state entity_id: alarm_control_panel.ha_alarm diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown index 6e9ad277ae7..5e0fe5819b5 100644 --- a/source/_components/axis.markdown +++ b/source/_components/axis.markdown @@ -16,8 +16,57 @@ ha_release: "0.45" Home Assistant will automatically discover their presence on your network. +## {% linkable_title Dependencies %} + +```bash +$ sudo apt-get install python3-gi gir1.2-gstreamer-1.0 +``` + +Depending on how you run Home Assistant you might be needed to symlink the `gi` module into your environment. + +Hassbian: + +```bash +$ ln -s /usr/lib/python3/dist-packages/gi /srv/homeassistant/lib/python3.4/site-packages +``` + +Raspberry Pi All-In-One Installer: + +```bash +$ ln -s /usr/lib/python3/dist-packages/gi /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages +``` + You can also manually configure your devices by adding the following lines to your `configuration.yaml` file: +```yaml +# Example configuration.yaml entry +axis: + m1065lw: + host: IP ADDRESS + include: + - camera +``` + +Configuration variables: + +- **device** (*Required*): Unique name for the Axis device. + - **host** (*Required*): The IP address to your Axis device. + - **username** (*Optional*): The username to your Axis device. Defaults to `root`. + - **password** (*Optional*): The password to your Axis device. Defaults to `pass`. + - **trigger_time** (*Optional*): Minimum time (in seconds) a sensor should keep its positive value. Defaults to 0. + - **location** (*Optional*): Physical location of your Axis device. Default not set. + - **include** (*Required*): This cannot be empty else there would be no use adding the device at all. + - **camera**: Stream MJPEG video to Home Assistant. + - **motion**: The built-in motion detection in Axis cameras. + - **vmd3**: ACAP Motion Detection app which has better algorithms for motion detection. + - **pir**: PIR sensor that can trigger on motion. + - **sound**: Sound detector. + - **daynight**: Certain cameras have day/night mode if they have built-in IR lights. + - **tampering**: Signals when camera believes that it has been tampered with. + - **input**: Trigger on whatever you have connected to device input port. + +A full configuration example could look like this: + ```yaml # Example configuration.yaml entry axis: @@ -26,46 +75,15 @@ axis: username: USERNAME password: PASSWORD include: - - camera - - motion - - pir - - sound - - daynight + - camera + - motion + - pir + - sound + - daynight trigger_time: 0 location: köket ``` -## {% linkable_title Dependencies %} - -```bash -sudo apt-get install python3-gi gir1.2-gstreamer-1.0 -``` - -Depending on how you run Home Assistant you might be needed to symlink the `gi` module into your environment (e.g. in Hassbian): - -```bash -ln -s /usr/lib/python3/dist-packages/gi /srv/homeassistant/lib/python3.4/site-packages -``` - -## {% linkable_title Configuration variables %} - -- **device** (*Required*): Unique name -- **host** (*Required*): The IP address to your Axis device. -- **username** (*Optional*): The username to your Axis device. Default 'root'. -- **password** (*Optional*): The password to your Axis device. Default 'pass'. -- **trigger_time** (*Optional*): Minimum time (in seconds) a sensor should keep its positive value. Default 0. -- **location** (*Optional*): Physical location of your Axis device. Default not set. - -- **include** (*Required*): This cannot be empty else there would be no use adding the device at all. - - **camera**: Stream MJPEG video to Home Assistant - - **motion**: The Built in motion detection in Axis cameras - - **vmd3**: ACAP Motion Detection app which has better algorithms for motion detection - - **pir**: PIR sensor that can trigger on motion - - **sound**: Sound detector - - **daynight**: Certain cameras have day/night mode if they have built-in IR lights - - **tampering**: signals when camera believes that it has been tampered with - - **input**: trigger on whatever you have connected to device input port -

Any specific levels for triggers needs to be configured on the device.

diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown index 086bb9a1799..e14d68d0d55 100644 --- a/source/_components/blink.markdown +++ b/source/_components/blink.markdown @@ -25,7 +25,13 @@ blink: password: YOUR_PASSWORD ``` +Configuration variables: + +- **username** (*Required*): Your username to login to Blink. +- **password** (*Required*): Your password to login to Blink. + Once loaded, your front end will have the following components: + * A camera image for each camera in your system. * A binary_sensor per camera that indicates whether motion detection is enabled. * A binary_sensor for the system that indicates if the system is armed or disarmed. @@ -33,25 +39,27 @@ Once loaded, your front end will have the following components: * A sensor per camera that reports battery level. * A sensor per camera that reports unread notification (ie. detected motion events). -Since the cameras are battery operated, the images are only updated in Home Assistant when the user manually forces a new photo. This image can be updated with the `blink.snap_picture` service followed by a `blink.force_update` service call to force Home Assistant to request an update from Blink's servers. If the `blink.force_update` service is not called, the image will be updated within a 180 second interval, set so that automatic server requests don't overwhelm the Blink API. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. +Since the cameras are battery operated, the images are only updated in Home Assistant when the user manually forces a new photo. This image can be updated with the `snap_picture` service to force Home Assistant to request an update from Blink's servers. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. Services: -There are three services availiabe for the blink platform: + +This services are available for the `blink` component: + - arm_system - arm_camera - snap_picture -- force_update -For `blink.arm_system`, the value sent can be either "True" or "False" and will arm and disarm the whole blink system, respectively -Arm system example +For `arm_system`, the value sent can be either `True` or `False` and will arm and disarm the whole Blink system. Arm system example: + ```json { "device_armed": "True" } ``` -Arm camera follows a similar structure, but each indidivual camera can have motion detection enabled or disabled. Because of this, you also need to supply a name. For example, if I have a camera named "Living Room" and I want to turn off motion detection on that camera, I'd call the `blink.arm_camera` service with the following payload: +Arm camera follows a similar structure, but each indidivual camera can have motion detection enabled or disabled. Because of this, you also need to supply a name. For example, if you have a camera named "Living Room" and you want to turn off motion detection on that camera, you would call the `arm_camera` service with the following payload: + ```json { "friendly_name": "Living Room", @@ -59,20 +67,14 @@ Arm camera follows a similar structure, but each indidivual camera can have moti } ``` -The `blink.snap_picture` service takes the camera name as the payload and with take a new picture with your camera. -``` +The `snap_picture` service takes the camera name as the payload and with take a new picture with your camera. + +```json { "friendly_name": "Living Room" } ``` -The `blink.force_update` service can simply be called with no payload to force a server update. - -Configuration variables: - -- **username** (*Required*): Your username to login to Blink -- **password** (*Required*): Your password to login to Blink -

diff --git a/source/_components/camera.arlo.markdown b/source/_components/camera.arlo.markdown index c66cfc63efb..51ea29fa9b8 100644 --- a/source/_components/camera.arlo.markdown +++ b/source/_components/camera.arlo.markdown @@ -12,7 +12,7 @@ ha_category: Camera ha_release: 0.46 --- -To get your [Arlo](https://arlo.netgear.com/) sensors working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). +To get your [Arlo](https://arlo.netgear.com/) cameras working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). This component is not yet able to live stream from your Arlo camera, but it will be able to playback the last video capture. diff --git a/source/_components/device_tracker.upc_connect.markdown b/source/_components/device_tracker.upc_connect.markdown index 99f74999926..bb5261269a5 100644 --- a/source/_components/device_tracker.upc_connect.markdown +++ b/source/_components/device_tracker.upc_connect.markdown @@ -33,4 +33,5 @@ See the [device tracker component page](/components/device_tracker/) for instruc Also known to be working with the following devices: - Irish Virgin Media Super Hub 3.0 + - Ziggo Connectbox NL diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown index 8db5a8205c5..c50f15861ed 100644 --- a/source/_components/emulated_hue.markdown +++ b/source/_components/emulated_hue.markdown @@ -28,6 +28,8 @@ To enable the emulated Hue bridge, add one of the following configs to your `con ```yaml # Google Home example configuration.yaml entry emulated_hue: + type: google_home + listen_port: 80 # Google Home does not work on different ports. ``` @@ -111,6 +113,8 @@ You can verify that the `emulated_hue` component has been loaded and is respondi - `http://:8300/description.xml` - This URL should return a descriptor file in the form of an XML file. - `http://:8300/api/pi/lights` - This will return a list of devices, lights, scenes, groups, etc.. that `emulated_hue` is exposing to Alexa. +For Google Home, verify that the URLs above are using port 80, rather than port 8300 (i.e. http://:80/description.xml). + An additional step is required to run Home Assistant as non-root user and use port 80 when using the AiO script. Execute the following command to allow `emulated_hue` to use port 80 as non-root user. ```bash diff --git a/source/_components/feedreader.markdown b/source/_components/feedreader.markdown index b1eee59e2ad..efaee1fb50a 100644 --- a/source/_components/feedreader.markdown +++ b/source/_components/feedreader.markdown @@ -52,7 +52,7 @@ automation: data_template: "{{ trigger.event.data.title }}" ``` -*Any field under the `` tag in the feed can be used for example `tigger.event.data.content` will get the body of the feed entry. +*Any field under the `` tag in the feed can be used for example `trigger.event.data.content` will get the body of the feed entry. For more advanced use cases, a custom component registering to the `feedreader` event type could be used instead: diff --git a/source/_components/ha.markdown b/source/_components/ha.markdown index 56812a8129d..89d7bcaff95 100644 --- a/source/_components/ha.markdown +++ b/source/_components/ha.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Home Assistant 0.45" +title: "Home Assistant 0.46" description: "" date: 2016-12-16 17:00 sidebar: true @@ -9,7 +9,7 @@ sharing: true footer: true logo: home-assistant.png ha_category: Other -ha_release: 0.45 +ha_release: 0.46 --- Details about the latest release can always be found at: diff --git a/source/_components/ifttt.manything.markdown b/source/_components/ifttt.manything.markdown index 0a872785773..5113b8bbcb7 100644 --- a/source/_components/ifttt.manything.markdown +++ b/source/_components/ifttt.manything.markdown @@ -26,22 +26,22 @@ automation: trigger: - platform: state entity_id: group.all_devices - state: 'not_home' + to: 'not_home' condition: - platform: state entity_id: sun.sun - state: 'above_horizon' + 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. + # when we get home unless it's nighttime. trigger: - platform: state entity_id: group.all_devices - state: 'home' + to: 'home' condition: - condition: state entity_id: sun.sun diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index c43e86268ae..811f2c2972f 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -68,8 +68,8 @@ You need to setup a unique trigger for each event you sent to IFTTT. automation: alias: Startup Notification trigger: - platform: event - event_type: homeassistant_start + platform: homeassistant + event: start action: service: ifttt.trigger data: {"event":"TestHA_Trigger", "value1":"Hello World!"} @@ -82,8 +82,8 @@ IFTTT can also be used in scripts and with `data_template`. Here is the above a automation: alias: Startup Notification trigger: - platform: event - event_type: homeassistant_start + platform: homeassistant + event: start action: service: script.ifttt_notify data_template: diff --git a/source/_components/light.markdown b/source/_components/light.markdown index 27ad3eb65be..c4ec7bce9ec 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -36,6 +36,27 @@ Most lights do not support all attributes. You can check the platform documentat | `flash` | yes | Tell light to flash, can be either value `short` or `long`. | `effect`| yes | Applies an effect such as `colorloop` or `random`. +

+In order to apply attributes to an entity you will need to add `data:` to the configuration. See example below +

+ +```yaml +# Example configuration.yaml entry +automation: +- id: one + alias: Turn on light when motion is detected + trigger: + - platform: state + entity_id: binary_sensor.motion_1 + to: 'on' + action: + - service: light.turn_on + data: + entity_id: light.living_room + brightness: 255 + kelvin: 2700 +``` + ### {% linkable_title Service `light.turn_off` %} Turns one or multiple lights off. diff --git a/source/_components/media_player.frontier_silicon.markdown b/source/_components/media_player.frontier_silicon.markdown index 6507bd0ad82..3300f8dffd1 100644 --- a/source/_components/media_player.frontier_silicon.markdown +++ b/source/_components/media_player.frontier_silicon.markdown @@ -53,10 +53,8 @@ alias: "Bathroom Motion Detected" trigger: platform: state entity_id: binary_sensor.motion_sensor_166d0001171111 - from: 'off' to: 'on' - state: 'on' action: service: media_player.turn_on data: diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown index d69b770fa69..e0a5fc8ff94 100644 --- a/source/_components/media_player.markdown +++ b/source/_components/media_player.markdown @@ -47,7 +47,7 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, | -----------------------| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `entity_id` | yes | Target a specific media player. Defaults to all. | | `media_content_id` | no | A media identifier. The format of this is component dependent. For example, you can provide URLs to Sonos and Cast but only a playlist ID to iTunes. | -| `media_content_type` | no | A media type. Must be one of `MUSIC`, `TVSHOW`, `VIDEO`, `EPISODE`, `CHANNEL` or `PLAYLIST`. For example, to play music you would set `media_content_type` to `MUSIC`. | +| `media_content_type` | no | A media type. Must be one of `music`, `tvshow`, `video`, `episode`, `channel` or `playlist`. For example, to play music you would set `media_content_type` to `music`. | #### {% linkable_title Service `media_player/select_source` %} diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 7dde8c1dca1..aa49ca3d955 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -13,7 +13,7 @@ ha_release: 0.7.5 --- -The `telegram` platform uses [Telegram](https://web.telegram.org) to delivery notifications from Home Assistant to your Android device, your Windows phone, or your iOS device. +The `telegram` platform uses [Telegram](https://web.telegram.org) to deliver notifications from Home Assistant to your Android device, your Windows phone, or your iOS device. The requirements are: @@ -89,7 +89,7 @@ Configuration variables: - **message** (*Required*): Message text. - **title** (*Optional*): Will be composed as '%title\n%message'. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. -- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. ### {% linkable_title Photo support %} @@ -119,7 +119,7 @@ Configuration variables: - **password** (*Optional*): Username for a URL which require HTTP authentication. - **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. -- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. ### {% linkable_title Document support %} @@ -148,7 +148,7 @@ Configuration variables: - **password** (*Optional*): Username for a URL which require HTTP authentication. - **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. -- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. ### {% linkable_title Location support %} @@ -171,4 +171,4 @@ Configuration variables: - **latitude** (*Required*): The latitude to send. - **longitude** (*Required*): The longitude to send. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. -- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. diff --git a/source/_components/notify.webostv.markdown b/source/_components/notify.webostv.markdown index 8bfdc9cd640..408c31eef02 100644 --- a/source/_components/notify.webostv.markdown +++ b/source/_components/notify.webostv.markdown @@ -59,7 +59,7 @@ automation: trigger: platform: state entity_id: binary_sensor.front_door_motion - state: 'on' + to: 'on' action: service: notify.livingroom_tv data: diff --git a/source/_components/remote.itach.markdown b/source/_components/remote.itach.markdown index bd6862fdded..cdfd5eff7c5 100755 --- a/source/_components/remote.itach.markdown +++ b/source/_components/remote.itach.markdown @@ -14,7 +14,7 @@ ha_release: 0.39 --- -The `itach` remote platform allows you to control IR devices with a [Global Caché iTach Device](https://www.globalcache.com/products/itach/ip2irspecs) +The `itach` remote platform allows you to control IR devices with a [Global Caché iTach Device](https://www.globalcache.com/products/itach/ip2irspecs) and GC-100 devices. The Global Cache IR API are similar accross their product line. See API documentation links at the end of this page. To use your iTach remote in your installation, you will need to know the IR commands for your devices in Pronto hex format and add the following to your `configuration.yaml` file: @@ -35,13 +35,21 @@ remote: ``` Configuration variables: -- **name** (*Required*): The iTach's name to display in the front end. +- **name** (*Optional*): The iTach's name to display in the front end. - **host** (*Required*): The iTach's IP address. - **port** (*Optional*): The iTach's port. 4998 is default. - **devices** array (*Required*): Devices controlled by the iTach. - **name** (*Required*): Name of the device. - **modaddr** (*Optional*): iTach module address for the IR emitter. 1 is default. - - **connaddr** (*Required*): iTach connection address for the IR emitter. + - **connaddr** (*Required*): iTach connection location for the IR emitter. (Note connaddr is a misleading label. Do not put the connection address here. Technically the connection address is the combination of the module address plus the connection location). - **commands** array (*Required*): Commands available to send to the device. - **name** (*Required*): Command name. - **data** (*Required*): Hex command data. + +An example to call the component from developer tools using the remote, send_command service `{ "entity_id":"remote.tv", "device":"0", "command":"menu" }` + +Note: Global Cache devices expect data in their own format of "sendir...". This component converts hex code to Global Cache IR form. + +API Docs: +- [iTach](https://www.globalcache.com/files/docs/API-iTach.pdf) +- [GC-100](http://www.globalcache.com/files/docs/API-GC-100.pdf) diff --git a/source/_components/sensor.history_stats.markdown b/source/_components/sensor.history_stats.markdown index 75f7a469f34..d1fa2cfa1dc 100644 --- a/source/_components/sensor.history_stats.markdown +++ b/source/_components/sensor.history_stats.markdown @@ -147,6 +147,5 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd ```

- The `/dev-template` page of your home-assistant UI can help you check if the values for `start`, `end` or `duration` are correct. - If you want to check if your period is right, just click on your component, the `from` and `to` attributes will show the start and end of the period, nicely formatted. + The `/dev-template` page of your home-assistant UI can help you check if the values for `start`, `end` or `duration` are correct. If you want to check if your period is right, just click on your component, the `from` and `to` attributes will show the start and end of the period, nicely formatted.

diff --git a/source/_components/sensor.modem_callerid.markdown b/source/_components/sensor.modem_callerid.markdown index 3226f51990d..1c17c3f4742 100644 --- a/source/_components/sensor.modem_callerid.markdown +++ b/source/_components/sensor.modem_callerid.markdown @@ -45,7 +45,7 @@ Some example automations: trigger: platform: state entity_id: sensor.modem_callerid - state: "callerid" + to: "callerid" action: service: notify.notify data: @@ -54,7 +54,7 @@ Some example automations: trigger: platform: state entity_id: sensor.modem_callerid - state: "callerid" + to: "callerid" action: service: persistent_notification.create data: @@ -64,7 +64,7 @@ Some example automations: trigger: platform: state entity_id: sensor.modem_callerid - state: "callerid" + to: "callerid" action: service: tts.google_say data_template: diff --git a/source/_components/sensor.sensehat.markdown b/source/_components/sensor.sensehat.markdown index 03a4a95a6d0..f2b28881bad 100644 --- a/source/_components/sensor.sensehat.markdown +++ b/source/_components/sensor.sensehat.markdown @@ -2,7 +2,7 @@ layout: page title: "Sense HAT" description: "Instructions how to integrate Sense HAT within Home Assistant." -date: 2016-12-05 07:00 +date: 2017-06-03 04:00 sidebar: true comments: false sharing: true @@ -124,18 +124,18 @@ As all of the following steps should be under the `pi` user environment. ###### Install _RTIMU_ ```bash -# Install RTIMU to pi user environment +# pi user environment: Install RTIMU pip3 install rtimulib -# Add symlink to RTIMU in _homeassistant_venv_ -# Create a symlink using the following command: -ln -s /usr/lib/python3/dist-packages/RTIMU.cpython-34m-arm-linux-gnueabihf.so /srv/homeassistant/homeassistant_venv/lib/python3.4/ - -# Add _homeassistant_ user to the _input_ and the _i2c_ groups +# pi user environment: Add _homeassistant_ user to the _input_, _video_ and the _i2c_ groups sudo addgroup homeassistant input sudo addgroup homeassistant i2c +sudo addgroup homeassistant video -# Reboot Raspberry Pi to apply changes +# HA environment: Add symlink to RTIMU +ln -s /usr/lib/python3/dist-packages/RTIMU.cpython-35m-arm-linux-gnueabihf.so /srv/homeassistant/lib/python3.5/site-packages/ + +# pi user environment: Reboot Raspberry Pi to apply changes sudo reboot ``` diff --git a/source/_components/sensor.waqi.markdown b/source/_components/sensor.waqi.markdown index 2e6de105df7..30ac8d193a3 100644 --- a/source/_components/sensor.waqi.markdown +++ b/source/_components/sensor.waqi.markdown @@ -15,13 +15,15 @@ ha_iot_class: "Local Polling" The `waqi` sensor platform will query [World Air Quality Index](http://aqicn.org) service to check AQI value for a specific set of locations. The resulting indexes will be added to the Home Assistant as sensor outputs. +This sensor requires an API token. Please obtain one at [AQICN API token](http://aqicn.org/data-platform/token/#/). + To enable this sensor, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry sensor: - platform: waqi - token: AQICN_API_TOKEN + token: AQICN_API_TOKEN locations: - beijing stations: @@ -30,11 +32,9 @@ sensor: Configuration variables: -- **locations** (*Required*): a list of location names to look for air quality data. In case a specific location has multiple registered stations all of them will be added to Home Assistant - -- **token** (*Required*): a token for the AQICN public API. Please obtain one at [AQICN API token](http://aqicn.org/data-platform/token/#/) - -- **stations** (*Optional*): a list of station names to look for air quality data. Station should be within locations specified above. +- **locations** (*Required*): A list of location names to look for air quality data. In case a specific location has multiple registered stations all of them will be added to Home Assistant. +- **token** (*Required*): The token for the AQICN public API. +- **stations** (*Optional*): A list of station names to look for air quality data. Station should be within locations specified above. The value reported is an overall AQ index for the location. The values of the index can be interpreted as following: diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 4a56445d2b3..e04f7d7d7ca 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -19,107 +19,93 @@ To enable it, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry switch: - platform: broadlink - host: IP_ADDRESS - mac: 'MAC_ADDRESS' - switches: - reciever: - command_on: 'switch_packet on' - command_off: 'switch_packet off' + - platform: broadlink + host: IP_ADDRESS + mac: 'MAC_ADDRESS' + switches: + reciever: + command_on: 'switch_packet on' + command_off: 'switch_packet off' ``` Configuration variables: - **host** (*Required*): The hostname/IP address to connect to. -- **mac** (*Required*): Device mac address. -- **timeout** (*Optional*): Timeout in seconds for the connection to the device +- **mac** (*Required*): Device MAC address. +- **timeout** (*Optional*): Timeout in seconds for the connection to the device. - **friendly_name** (*Optional*): The name used to display the switch in the frontend. -- **type** (*Optional*): Switch type. (rm, rm2, rm_mini, rm_pro_phicomm, rm2_home_plus, rm2_home_plus_gdt, rm2_pro_plus, rm2_pro_plus2, rm2_pro_plus_bl, rm_mini_shate, sp1, sp2, honeywell_sp2, sp3, spmini2 or spminiplus) +- **type** (*Optional*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2` or `spminiplus`. - **switches** (*Optional*): The array that contains all switches. - **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible. - **friendly_name** (*Optional*): The name used to display the switch in the frontend. - **command_on** (*Required*): Base64 encoded packet from RM device to take for on. - **command_off** (*Required*): Base64 encoded packet from RM device to take for off. - Information about how to install on Windows can be found [here](https://home-assistant.io/components/sensor.broadlink/#microsoft-windows-installation) ### {% linkable_title How to obtain IR/RF packets? %} -Choose Call Service from the Developer Tools. Choose the service broadlink/learn_command from the list of Available services: and hit CALL SERVICE. Press the button on your remote with in 20 seconds. The packet will be printed in the log and as a persistent notification. +Choose Call Service from the Developer Tools. Choose the service broadlink/learn_command from the list of **Available services:** and hit **CALL SERVICE**. Press the button on your remote with in 20 seconds. The packet will be printed as a persistent notification in the States page of the web interface. - -Example config for rm, rm2, rm_mini, rm_pro_phicomm, rm2_home_plus, rm2_home_plus_gdt, rm2_pro_plus, rm2_pro_plus2, rm2_pro_plus_bl and rm_mini_shate devices: +Example config for `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl` and `rm_mini_shate` devices: ```yaml -switch 2: - platform: broadlink - host: 192.168.1.2 - mac: 'B4:43:0D:CC:0F:58' - timeout: 15 - switches: -# Will work on most Phillips tvs: - tv_phillips: - friendly_name: "Phillips Tv Power" - command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=' - command_off: 'JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=' - -# Will work on most LG tvs - tv_lg: - friendly_name: "LG Tv Power" - command_on: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' - command_off: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' - - tv_lg_hdmi1_hdmi2: - friendly_name: "LG Tv HDMI12" - command_on: 'JgBIAAABIZMRExITEjYSExMRERURExEUEDkRNxEUEjYSNhM3ETcSNxITETgSNhI2ExMQExE4ETYSNxIUERMSExE4ETcRFBETEQANBQ==' - command_off: 'JgBQAAABJJMSEhISETgSEhITEBMSEhMSETcSNxMREjcSNxI3EjcSOBETERITNhM2EhITERM2EzcRNxI3ExISEhI3EjcRExETEgAFLQABJEoRAA0FAAAAAAAAAAA=' - - tv_lg_hdmi3: - friendly_name: "LG Tv HDMI3" - command_on: 'JgBIAAABIZMSFBISETgRExEUERQQFBETEjcTNhMSETgRNxE3EjcROBM2ERMSFBE4ERMSNxM2EjUSFBE2ETgRExM2ExITEhATEwANBQ==' - - tv_lg_av1_av2: - friendly_name: "LG Tv AV12" - command_on: 'JgBIAAABIpQPFBITETgSEw8UEhQSEhEVDzgSOBAUETgQOQ84EjgRNxITETgSExA5EDgREhI3EhMROBMSEDkQFBETEjYTEhE4EQANBQ==' - command_off: 'JgBIAAABH5YPFBETETgUERAUEBURFBATETgROBEUETcSNxE4ETcSOBISEBUQFREUEjUSFBA5ETcRNxE4ETkQOBAUEjcRFRAUEQANBQ==' - - -switch 2: - platform: broadlink - host: 192.168.1.2 - mac: 'B4:43:0D:CC:0F:58' - timeout: 15 - switches: -# Will work on most Phillips tvs: - tv: - friendly_name: "Phillips Tv" - command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=' - command_off: 'JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=' - +switch: + - platform: broadlink + host: 192.168.1.2 + mac: 'B4:43:0D:CC:0F:58' + timeout: 15 + switches: + # Will work on most Phillips TVs: + tv_phillips: + friendly_name: "Phillips Tv Power" + command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=' + command_off: 'JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=' + # Will work on most LG TVs + tv_lg: + friendly_name: "LG Tv Power" + command_on: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' + command_off: 'JgBYAAABIJISExETETcSEhISEhQQFBETETcROBESEjcRNhM1EjcTNRMTERISNxEUERMSExE2EjYSNhM2EhIROBE3ETcREhITEgAFGwABH0oSAAwzAAEfShEADQU=' + tv_lg_hdmi1_hdmi2: + friendly_name: "LG Tv HDMI12" + command_on: 'JgBIAAABIZMRExITEjYSExMRERURExEUEDkRNxEUEjYSNhM3ETcSNxITETgSNhI2ExMQExE4ETYSNxIUERMSExE4ETcRFBETEQANBQ==' + command_off: 'JgBQAAABJJMSEhISETgSEhITEBMSEhMSETcSNxMREjcSNxI3EjcSOBETERITNhM2EhITERM2EzcRNxI3ExISEhI3EjcRExETEgAFLQABJEoRAA0FAAAAAAAAAAA=' + tv_lg_hdmi3: + friendly_name: "LG Tv HDMI3" + command_on: 'JgBIAAABIZMSFBISETgRExEUERQQFBETEjcTNhMSETgRNxE3EjcROBM2ERMSFBE4ERMSNxM2EjUSFBE2ETgRExM2ExITEhATEwANBQ==' + tv_lg_av1_av2: + friendly_name: "LG Tv AV12" + command_on: 'JgBIAAABIpQPFBITETgSEw8UEhQSEhEVDzgSOBAUETgQOQ84EjgRNxITETgSExA5EDgREhI3EhMROBMSEDkQFBETEjYTEhE4EQANBQ==' + command_off: 'JgBIAAABH5YPFBETETgUERAUEBURFBATETgROBEUETcSNxE4ETcSOBISEBUQFREUEjUSFBA5ETcRNxE4ETkQOBAUEjcRFRAUEQANBQ==' + - platform: broadlink + host: 192.168.1.2 + mac: 'B4:43:0D:CC:0F:58' + timeout: 15 + switches: + # Will work on most Phillips TVs: + tv: + friendly_name: "Phillips Tv" + command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=' + command_off: 'JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=' ``` - Example config for sp1, sp2, honeywell_sp2, sp3, spmini2 and spminiplus devices: +Example config for `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2` and `spminiplus` devices: ```yaml -switch 1: - platform: broadlink - host: IP_ADDRESS - mac: 'MAC_ADDRESS' - type: sp1 - friendly_name: 'Humidifier' - -switch 2: - platform: broadlink - host: IP_ADDRESS - mac: 'MAC_ADDRESS' - type: sp2 - friendly_name: 'Humidifier' - +switch: + - platform: broadlink + host: IP_ADDRESS + mac: 'MAC_ADDRESS' + type: sp1 + friendly_name: 'Humidifier' + - platform: broadlink + host: IP_ADDRESS + mac: 'MAC_ADDRESS' + type: sp2 + friendly_name: 'Humidifier' ``` - ### {% linkable_title Service `send_packet` %} You can use the service broadlink/send_packet to directly send IR packets without the need to assign a switch entity for each command. @@ -141,12 +127,11 @@ script: - "JgBGAJSTFDUUNhM2ExITEhMSExITEhM2EzYTNhQRFBEUERQRFBEUNRQ2ExITNhMSExITNhMSExITEhM2ExITNhQ1FBEUNhMADQUAAA==" ``` - ### {% linkable_title Using E-Control Remotes %} -If you already have your remotes learned on E-Control app you can use this method to "copy" trem to HA. +If you already have your remotes learned on E-Control app you can use this method to "copy" them to Home Assistant. -First get or learn all the remotes you want to add on HA in E-Control +First get or learn all the remotes you want to add to Home Assistant in E-Control 1. Download @@ -158,7 +143,7 @@ First get or learn all the remotes you want to add on HA in E-Control 3. Get data from your Android device - Connect your Android device to your computer and browse the SD card / External Storage folder "/broadlink/newremote/SharedData/". You need to get the following files and put them in the same folder as this script.: + Connect your Android device to your computer and browse the SD card/External Storage folder "/broadlink/newremote/SharedData/". You need to get the following files and put them in the same folder as this script: jsonSubIr jsonButton @@ -179,11 +164,11 @@ First get or learn all the remotes you want to add on HA in E-Control 3. `sudo python setup.py install` 7. Test the codes -Use the `sendcode` script you have already downloded to test the codes you got from the device -You need to edit the script with your RM Pro IP Address and MAC Address and with the code in hex format. -When run the script, you know the code works when get message +Use the `sendcode` script you have already downloded to test the codes you got from the device. +You need to edit the script with your RM Pro IP Address and MAC Address and with the code in HEX format. +When run the script, you know the code works when get message . Code sent... Not every code works. -8. Convert the hex codes to base64 +8. Convert the HEX codes to base64 Use [this](http://tomeko.net/online_tools/hex_to_base64.php?lang=en1) tool to convert the hex codes to base64 for use with Home Assistant. diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown index e90b4b59f97..a48b0367b13 100644 --- a/source/_components/switch.flux.markdown +++ b/source/_components/switch.flux.markdown @@ -18,7 +18,7 @@ The component will update your lights based on the the time of day. It will only During the day (in between `start time` and `sunset time`), it will fade the lights from the `start_colortemp` to the `sunset_colortemp`. After sunset (between `sunset_time` and `stop_time`), the lights will fade from the the `sunset_colortemp` to the `stop_colortemp`. If the lights are still on after the `stop_time` it will continue to change the light to the `stop_colortemp` until the light is turned off. The fade effect is created by updating the lights every 30 seconds with a 30 second transition time. -If you don't wish to have flux update on 30 second intervals, you can leave the switch turned off and use automation rules that call the service `switch.flux_update` whenever you want the lights updated. +If you don't wish to have flux update on 30 second intervals, you can leave the switch turned off and use automation rules that call the service `switch._update` whenever you want the lights updated, where `` equals the `name:` property in the switch configuration. To use the Flux switch in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.rachio.markdown b/source/_components/switch.rachio.markdown index e75c4ed155e..59ac66bb059 100644 --- a/source/_components/switch.rachio.markdown +++ b/source/_components/switch.rachio.markdown @@ -33,7 +33,7 @@ switch: Configuration variables: -- **access_token** (*Required3): Your Rachio API Access Token. +- **access_token** (*Required): Your Rachio API Access Token. - **manual_run_mins** (*Optional*): For how long, in minutes, to turn on a station when the switch is enabled. Defaults to 10 minutes. ## {% linkable_title Examples %} diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index 946772a6a13..5cc99311a9f 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -32,7 +32,7 @@ Send a notification. | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/send_photo` %} Send a photo. @@ -44,10 +44,11 @@ Send a photo. | `caption` | yes | The title of the image. | | `username` | yes | Username for a URL which require HTTP basic authentication. | | `password` | yes | Password for a URL which require HTTP basic authentication. | +| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. | | `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/send_document` %} Send a document. @@ -59,10 +60,11 @@ Send a document. | `caption` | yes | The title of the document. | | `username` | yes | Username for a URL which require HTTP basic authentication. | | `password` | yes | Password for a URL which require HTTP basic authentication. | +| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. | | `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/send_location` %} Send a location. @@ -74,7 +76,7 @@ Send a location. | `target` | yes | An array of pre-authorized chat_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/edit_message` %} Edit a previusly sent message in a conversation. @@ -87,7 +89,7 @@ Edit a previusly sent message in a conversation. | `title` | yes | Optional title for your notification. Will be composed as '%title\n%message'. | | `parse_mode` | yes | Parser for the message text: `html` or `markdown`. | | `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/edit_caption` %} Edit the caption of a previusly sent message. @@ -98,7 +100,7 @@ Edit the caption of a previusly sent message. | `chat_id` | no | The chat_id where to edit the caption. | | `caption` | no | Message body of the notification. | | `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/edit_replymarkup` %} Edit the inline keyboard of a previusly sent message. @@ -108,7 +110,7 @@ Edit the inline keyboard of a previusly sent message. | `message_id` | no | Id of the message to edit. When answering a callback from a pressed button, the id of the origin message is in: `{{ trigger.event.data.message.message_id }}`. | | `chat_id` | no | The chat_id where to edit the reply_markup. | | `disable_web_page_preview`| yes | True/false for disable link previews for links in the message. | -| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | +| `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | #### {% linkable_title Service `telegram_bot/answer_callback_query` %} Respond to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. diff --git a/source/_cookbook/automation_first_light.markdown b/source/_cookbook/automation_first_light.markdown index e2f857912f1..098036db77f 100644 --- a/source/_cookbook/automation_first_light.markdown +++ b/source/_cookbook/automation_first_light.markdown @@ -75,15 +75,15 @@ automation: # if light is off, force a 0, otherwise use the brightness value value_template: {% raw %}'{% if states.light.livingroom_ec.state == "on" %}{{ states.light.livingroom_ec.attributes.brightness }}{% else %}0{% endif %}'{% endraw %} # brightness below 50% (255 = 100%) - below: 127 + below: 128 - condition: numeric_state entity_id: light.kitchen_bar value_template: {% raw %}'{% if states.light.kitchen_bar.state == "on" %}{{ states.light.kitchen_bar.attributes.brightness }}{% else %}0{% endif %}'{% endraw %} - below: 127 + below: 128 - condition: numeric_state entity_id: light.kitchen_ceiling value_template: {% raw %}'{% if states.light.kitchen_ceiling.state == "on" %}{{ states.light.kitchen_ceiling.attributes.brightness }}{% else %}0{% endif %}'{% endraw %} - below: 127 + below: 128 # Trigger a scene # You could add as many services or scenes as you'd like diff --git a/source/_cookbook/automation_flashing_lights.markdown b/source/_cookbook/automation_flashing_lights.markdown index cf09063f1f2..df141213070 100644 --- a/source/_cookbook/automation_flashing_lights.markdown +++ b/source/_cookbook/automation_flashing_lights.markdown @@ -23,7 +23,7 @@ automation: trigger: platform: state entity_id: binary_sensor.PIR1 - state: 'on' + to: 'on' condition: - condition: state entity_id: switch.AlmAct1 @@ -41,7 +41,7 @@ automation: trigger: platform: state entity_id: switch.AlmSnd1 - state: 'on' + to: 'on' action: service: script.turn_on entity_id: script.flash_room1 @@ -50,11 +50,11 @@ automation: trigger: platform: state entity_id: switch.REL1 - state: 'off' + to: 'off' condition: condition: state entity_id: switch.AlmSnd1 - state: 'off' + to: 'off' action: service: script.turn_off entity_id: script.flash_room1 diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown index d33a8cbef24..0a1d8a7c6f5 100644 --- a/source/_cookbook/automation_for_rainy_days.markdown +++ b/source/_cookbook/automation_for_rainy_days.markdown @@ -20,7 +20,7 @@ automation: trigger: - platform: state entity_id: sensor.precip_intensity - state: 'rain' + to: 'rain' condition: - platform: state entity_id: group.all_devices @@ -40,7 +40,7 @@ And then of course turn off the lamp when it stops raining but only if it's with trigger: - platform: state entity_id: sensor.precip_intensity - state: 'None' + to: 'None' condition: - condition: sun after: 'sunset' diff --git a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown index cdb5fd2e8f6..9e2f0663378 100644 --- a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown +++ b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown @@ -80,7 +80,7 @@ automation: trigger: - platform: state entity_id: switch.KillHass - state: 'on' + to: 'on' action: service: homeassistant.stop - alias: 'Stop restarting HA is WeMo is found' diff --git a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown index ed859cdaeed..4da386bbbc9 100644 --- a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown +++ b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown @@ -20,7 +20,7 @@ automation: trigger: platform: state entity_id: sensor.motion_sensor - state: 'on' + to: 'on' action: service: homeassistant.turn_on entity_id: light.kitchen @@ -29,7 +29,7 @@ automation: trigger: platform: state entity_id: sensor.motion_sensor - state: 'off' + to: 'off' for: minutes: 10 action: diff --git a/source/_docs/automation/examples.markdown b/source/_docs/automation/examples.markdown index f31c35df84e..a1eb7ddfae7 100644 --- a/source/_docs/automation/examples.markdown +++ b/source/_docs/automation/examples.markdown @@ -26,7 +26,7 @@ automation: offset: '-01:00:00' - platform: state entity_id: group.all_devices - state: 'home' + to: 'home' condition: # Prefix the first line of each condition configuration # with a '-'' to enter multiple @@ -45,7 +45,7 @@ automation: trigger: platform: state entity_id: group.all_devices - state: 'not_home' + to: 'not_home' action: service: light.turn_off entity_id: group.all_lights diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index ac7e7a4ca4d..8614cbba115 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -111,6 +111,23 @@ automation: offset: '-00:45:00' ``` +Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. + +```yaml +automation: + alias: "Exterior Lighting on when dark outside" + trigger: + platform: numeric_state + entity_id: sun.sun + value_template: "{% raw %}{{ state.attributes.elevation }}{% endraw %}" + # Can be a positive or negative number + below: -4.0 + action: + service: switch.turn_on + entity_id: switch.exterior_lighting +``` +The US Naval Observatory has a [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time. + ### {% linkable_title Template trigger %} Template triggers work by evaluating a [template] on each state change. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown index c46da344485..c829df3312d 100644 --- a/source/_docs/autostart/systemd.markdown +++ b/source/_docs/autostart/systemd.markdown @@ -23,7 +23,7 @@ If you want Home Assistant to be launched automatically, an extra step is needed - `ExecStart` contains the path to `hass` and this may vary. Check with `whereis hass` for the location. - If running Home Assistant in a Python virtual environment or a Docker container, please skip to section below. - For most systems, the file is `/etc/systemd/system/home-assistant@[your user].service` with [your user] replaced by the user account that Home Assistant will run as - normally `homeassistant`. For Ubuntu 16.04, the file is `/lib/systemd/system/home-assistant.service` and requires running this command `sudo ln -s /lib/systemd/system/home-assistant.service /etc/systemd/system/home-assistant.service` after file is created. -- If unfamiliar with command-line text editors, `sudo nano -w [filename]` can be used with `[filename]` replaced with the full path to the file. Ex. `sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service`. After text entered, press CTRL-X then press Y to save and exit. +- If unfamiliar with command-line text editors, `sudo nano -w [filename]` can be used with `[filename]` replaced with the full path to the file. Ex. `sudo nano -w /etc/systemd/system/home-assistant@[your user].service`. After text entered, press CTRL-X then press Y to save and exit. ``` [Unit] diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 7c0a0395f9e..00d50671ce1 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -12,6 +12,10 @@ redirect_from: /getting-started/customizing-devices/ By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities. +

+Be carefull not to forget to place `customize`, `customize_domain`, and `customize_glob` inside `homeassistant:` or it will fail. +

+ ```yaml homeassistant: name: Home diff --git a/source/_docs/ecosystem/apache.markdown b/source/_docs/ecosystem/apache.markdown index 31747c477a2..9e5806fe59d 100644 --- a/source/_docs/ecosystem/apache.markdown +++ b/source/_docs/ecosystem/apache.markdown @@ -22,7 +22,7 @@ This is useful if you want to have: So you already have a working Apache server available at example.org. Your Home Assistant is correctly working on this web server and available at http://localhost:8123 -Enable [`mod_proxy_wstunnel`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.htm) by running if you encounter issues while serving Home Assistant through your proxy: +Enable [`mod_proxy_wstunnel`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html) by running if you encounter issues while serving Home Assistant through your proxy: ```bash $ sudo a2enmod proxy_wstunnel diff --git a/source/_docs/hassbian/common-tasks.markdown b/source/_docs/hassbian/common-tasks.markdown index 4b97ac1fd91..262770e8d20 100644 --- a/source/_docs/hassbian/common-tasks.markdown +++ b/source/_docs/hassbian/common-tasks.markdown @@ -84,7 +84,7 @@ Log in as the `pi` account and execute the following commands: ```bash $ sudo su -s /bin/bash homeassistant $ cd /home/homeassistant/.homeassistant -$ nano homeassistant.log +$ nano home-assistant.log ``` This will in order do the following: diff --git a/source/_docs/installation/raspberry-pi-all-in-one.markdown b/source/_docs/installation/raspberry-pi-all-in-one.markdown index 97da2ba5a98..bff307a8b50 100644 --- a/source/_docs/installation/raspberry-pi-all-in-one.markdown +++ b/source/_docs/installation/raspberry-pi-all-in-one.markdown @@ -19,14 +19,15 @@ Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian i Irrespective of whether you use SSH to connect to the Pi from another computer or not, you need SSH to install Home Assistant. So go ahead and enable SSH. * Login to Raspberry Pi. For example with `ssh pi@your_raspberry_pi_ip` -* Run the following command +* Run the following command: + +

+ This command is a one-liner and not run as sudo. +

```bash $ curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh ``` -

- Note this command is one-line and not run as sudo. -

Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. The installer will identitfy what Raspberry Pi hardware revision you are using and adjust commands accordingly. A complete log of the install is located at: `/home/pi/fabric-home-assistant/installation_report.txt` The installer has been updated to simply log any errors encountered, but resume installing. Please consult the "installation report" if your install encountered issues. diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index ac33901d7ee..5763106da34 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -68,9 +68,9 @@ condition: ### {% linkable_title Numeric state condition %} -This type of condition attempts to parse the state of specified entity as a number and triggers if the value matches all of the above or below thresholds. +This type of condition attempts to parse the state of specified entity as a number and triggers if the value matches the thresholds. -For above, the condition passes if `value >= above`. For below, the condition passes if `value <= below`. If both `below` and `above` are specified, both tests have to pass. +If both `below` and `above` are specified, both tests have to pass. You can optionally use a `value_template` to process the value of the state before testing it. diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index 1f7c6f02f23..7a595c2da4d 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -83,7 +83,6 @@
  • {% active_link /developers/helpers/ Online helpers %}
  • -
  • {% active_link /developers/multiple_instances/ Multiple Instances %}
  • {% active_link /developers/website/ Home-Assistant.io %}
  • {% active_link /developers/releasing/ Releasing %}
  • {% active_link /developers/maintenance/ Maintenance %}
  • diff --git a/source/_posts/2017-06-04-release-46.markdown b/source/_posts/2017-06-04-release-46.markdown new file mode 100644 index 00000000000..b18554d5c28 --- /dev/null +++ b/source/_posts/2017-06-04-release-46.markdown @@ -0,0 +1,399 @@ +--- +layout: post +title: "0.46: Rachio sprinklers, Netgear Arlo cameras and Z-Wave fans" +description: "Another great new release with a major focus on bugfixes." +date: 2017-06-04 01:04:05 +0000 +date_formatted: "June 4, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-06-0.46/components.png +--- + + + +It's time for 0.46! This release does not have too many new integrations, instead it focussed on bug fixes. + +## {% linkable_title New platforms %} + +- Template light ([@cribbstechnologies] - [#7657]) ([light.template docs]) (new-platform) +- Support for GE Zwave fan controller ([@armills] - [#7767]) ([zwave docs]) ([fan.zwave docs]) (new-platform) +- Rachio (Sprinklers) ([@Klikini] - [#7600]) ([switch.rachio docs]) (new-platform) +- Introduced support to Netgear Arlo Cameras ([@tchellomello] - [#7826]) ([arlo docs]) ([camera.arlo docs]) ([sensor.arlo docs]) (new-platform) + +## {% linkable_title Release 0.46.1 - June 9 %} + +- Support for renaming ZWave values ([@armills] - [#7780]) ([zwave docs]) +- Dsmr5 revert ([@aequitas] - [#7900]) ([sensor.dsmr docs]) +- Fix typos in Wunderground component (Percipitation -> Precipitation) ([@mje-nz] - [#7901]) ([sensor.wunderground docs]) +- Mqtt cover: Making command topic optional and add ability to set up/down position including ability to template the value ([@cribbstechnologies] - [#7841]) ([cover.mqtt docs]) +- Media Player - OpenHome: Fixed metadata issue ([@bazwilliams] - [#7932]) ([media_player.openhome docs]) +- Sensor - MetOffice: Fix last updated date ([@cyberjacob] - [#7965]) ([sensor.metoffice docs]) +- Prevent Roku doing I/O in event loop ([@balloob] - [#7969]) ([media_player.roku docs]) + +## {% linkable_title Breaking changes %} + +- The USPS sensor entity names have changed as there are now two. One for packages and one for mail. Config will now also use `scan_interval` instead of `update_interval` ([@happyleavesaoc] - [#7655]) ([sensor.usps docs]) (breaking change) +- Automation state trigger: From/to checks will now ignore state changes that are just attribute changess ([@amelchio] - [#7651]) ([automation.state docs]) (breaking change) +- Redesign monitored variables for hp_ilo sensor. `monitored_variables` is now a list of `name` and `sensor_type` values ([@Juggels] - [#7534]) ([sensor.hp_ilo docs]) (breaking change) + +```yaml +sensor: + - platform: hp_ilo + host: IP_ADDRESS or HOSTNAME + username: USERNAME + password: PASSWORD + monitored_variables: + - name: SENSOR NAME + sensor_type: SENSOR TYPE +``` + +- Automation - time: The `after` keyword for time triggers (not conditions) has been deprecated in favor of the `at` keyword. This resembles better what it does (old one still works, gives a warning) ([@armills] - [#7846]) ([automation.time docs]) (breaking change) +- Automation - numeric_state: `above` and `below` will no longer trigger if it is equal. ([@armills] - [#7857]) (breaking change) +- Broadlink switches: Entity ids will change for switches that don't have a default name set. In this case the object_id is now used. ([@abmantis] - [#7845]) ([switch.broadlink docs]) (breaking change) +- Disallow ambiguous color descriptors in the light.turn_on schema. This means that you can no longer specify both `xy_color` and `rgb_color`. ([@amelchio] - [#7765]) (breaking change) + +## {% linkable_title If you need help... %} +...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. 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 All changes %} + +- Align with OpenALPR platform for naming conf variables ([@fabaff] - [#7650]) ([image_processing.seven_segments docs]) +- Added support to Amcrest camera to feed using RTSP via ffmpeg ([@tchellomello] - [#7646]) ([camera.amcrest docs]) ([sensor.amcrest docs]) +- bump fedex version ([@happyleavesaoc] - [#7653]) ([sensor.fedex docs]) +- bump ups version ([@happyleavesaoc] - [#7654]) +- update usps ([@happyleavesaoc] - [#7655]) ([sensor.usps docs]) (breaking change) +- Final tweaks for Zwave panel ([@turbokongen] - [#7652]) ([zwave docs]) +- Add network_key as a config option ([@robbiet480] - [#7637]) ([zwave docs]) +- Bugfix #7586 ([@turbokongen] - [#7661]) ([lock.zwave docs]) +- Fix tests ([@balloob] - [#7659]) +- Change line endings to LN ([@fabaff] - [#7660]) ([calendar.demo docs]) ([calendar.google docs]) ([camera.synology docs]) ([climate.tado docs]) ([remote.harmony docs]) ([sensor.synologydsm docs]) +- Point pylutron to pypi ([@thecynic] - [#7664]) ([lutron docs]) +- Upgrade Openhome library ([@bazwilliams] - [#7671]) ([media_player.openhome docs]) +- Ignore attribute changes in automation trigger from/to ([@amelchio] - [#7651]) ([automation.state docs]) (breaking change) +- Switch pymodbus to pypi ([@andrey-git] - [#7677]) ([modbus docs]) +- zoneminder: fix incorrect use of logging.exception. ([@tobygray] - [#7675]) ([zoneminder docs]) +- Zwave: Apply refresh_node workaround on 1st instance only ([@andrey-git] - [#7579]) ([zwave docs]) +- Guard against new and removed state change events ([@balloob] - [#7687]) ([automation.state docs]) +- ZWave: Add reset service to meters ([@turbokongen] - [#7676]) ([zwave docs]) +- Remove defunct INSTALL_OPENZWAVE from Dockerfile ([@armills] - [#7697]) +- Fix telegram chats ([@azogue] - [#7689]) ([notify.telegram docs]) +- Fix playback control of web streams ([@cgtobi] - [#7683]) ([media_player.volumio docs]) +- Sort entities in default groups by name ([@amelchio] - [#7681]) +- Continue tracking device over dhcp lease table if wireless adapter not installed ([@LvivEchoes] - [#7690]) ([device_tracker.mikrotik docs]) +- device_tracker.ubus: Handle empty results ([@tobygray] - [#7673]) ([device_tracker.ubus docs]) +- Bump pyEight version ([@mezz64] - [#7701]) ([eight_sleep docs]) +- Upgrade python-telegram-bot to 6.0.1 ([@fabaff] - [#7704]) +- Make 'sender' as requirement for the config (fixes #7698) ([@fabaff] - [#7706]) ([notify.smtp docs]) +- Allow fetching hass.io panel without auth ([@balloob] - [#7714]) ([hassio docs]) +- update apcacccess used in apcupsd to 0.0.10, which fixes random file drop from apcaccess ([@infamy] - [#7722]) ([apcupsd docs]) +- Constrain requests to a version ([@balloob] - [#7725]) +- Asuswrt continuous ssh ([@aronsky] - [#7728]) +- Ensure https base_url in telegram bot ([@bzillins] - [#7726]) ([telegram_bot.webhooks docs]) +- Prevent the random template filter from caching its output. Fixes #5678 ([@antsar] - [#7716]) +- Don't initialize mqtt components which have already been discovered ([@nordeep] - [#7625]) ([mqtt.discovery docs]) +- LIFX: disable color features for white-only bulbs ([@amelchio] - [#7742]) ([light.lifx docs]) +- Don't block startup more than 60 seconds while waiting for components. ([@antsar] - [#7739]) +- Always return rgb color of bulbs ([@w1ll1am23] - [#7743]) ([light.wink docs]) +- Redesign monitored variables for hp_ilo sensor ([@Juggels] - [#7534]) ([sensor.hp_ilo docs]) (breaking change) +- Fix time_date sensor to update at predictable intervals ([@stu-gott] - [#7644]) ([sensor.time_date docs]) +- Added new commands and functionality to the harmony remote component. ([@everix1992] - [#7113]) ([remote docs]) ([remote.harmony docs]) ([remote.services.yaml docs]) +- Template light ([@cribbstechnologies] - [#7657]) ([light.template docs]) (new-platform) +- Exclude filter for event types ([@amigian74] - [#7627]) +- Change setup script to use pip install instead of setup.py develop ([@hoh] - [#7756]) +- Add icons to device tracker. ([@antsar] - [#7759]) +- Rename of the zwave hass.data constants ([@armills] - [#7768]) ([zwave docs]) ([cover.zwave docs]) ([lock.zwave docs]) +- Get rid of mock http component app ([@balloob] - [#7775]) +- Remove usage of event_loop fixture ([@balloob] - [#7776]) +- assertEquals is deprecated ([@balloob] - [#7777]) +- Support for GE Zwave fan controller ([@armills] - [#7767]) ([zwave docs]) ([fan.zwave docs]) (new-platform) +- Replace executor with async_add_job ([@balloob] - [#7658]) +- Fix Telegram Bot send file to multiple targets, snapshots of HA cameras, variable templating, digest auth ([@azogue] - [#7771]) +- Fix more deprecation warnings ([@balloob] - [#7778]) +- Powerview to async ([@sander76] - [#7682]) ([scene.hunterdouglas_powerview docs]) +- Fix home/stay in concord232 ([@CTLS] - [#7789]) ([alarm_control_panel.concord232 docs]) +- Add Marantz SSDP discovery / Detect error string in AppCommand.xml body ([@scarface-4711] - [#7779]) ([media_player.denonavr docs]) +- Upgrade Sphinx to 1.6.2 ([@fabaff] - [#7805]) +- Upgrade slacker to 0.9.50 ([@fabaff] - [#7797]) ([notify.slack docs]) +- Bump pyenvisalink to version 2.1 ([@Cinntax] - [#7803]) ([envisalink docs]) +- Upgrade pysnmp to 4.3.6 ([@fabaff] - [#7806]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) +- Rachio (Sprinklers) ([@Klikini] - [#7600]) ([switch.rachio docs]) (new-platform) +- Rest notify data ([@Teagan42] - [#7757]) ([notify.rest docs]) +- Added handling of an AssertionError from pxssh failed login ([@aronsky] - [#7750]) ([device_tracker.asuswrt docs]) +- Upgrade sqlalchemy to 1.1.10 ([@fabaff] - [#7807]) +- Upgrade mypy to 0.511 ([@fabaff] - [#7809]) +- Allow configuring DSMR5 protocol. ([@aequitas] - [#7535]) ([sensor.dsmr docs]) +- Telegram send image: fix mimetype detection ([@azogue] - [#7802]) +- Bump aiohttp to 2.1.0 ([@mezz64] - [#7825]) +- Cleanup telegram / Add url to webhook ([@pvizeli] - [#7824]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) (breaking change) +- Upgrade pysnmp to 4.3.7 ([@fabaff] - [#7828]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) +- Flux led fix ([@danielhiversen] - [#7829]) ([light.flux_led docs]) +- update snapcast media player ([@happyleavesaoc] - [#7079]) ([media_player.services.yaml docs]) ([media_player.snapcast docs]) +- Update docstrings and log messages ([@fabaff] - [#7709]) +- Upgrade PyMVGLive to 1.1.4 ([@fabaff] - [#7832]) ([sensor.mvglive docs]) +- Added persistent error message if cover.myq fails to load ([@tchellomello] - [#7700]) ([cover.myq docs]) +- Add initial benchmark framework ([@balloob] - [#7827]) +- Downgrade Docker to Python 3.5 to solve Segmentation Faults ([@philhawthorne] - [#7799]) +- Introduced support to Netgear Arlo Cameras ([@tchellomello] - [#7826]) ([arlo docs]) ([camera.arlo docs]) ([sensor.arlo docs]) (new-platform) +- Allow 'base_url' (fixes #7784) ([@fabaff] - [#7796]) ([upnp docs]) +- Expose the node name on the zwave node entity ([@armills] - [#7787]) ([zwave docs]) +- Bumped pyhomematic version ([@danielperna84] - [#7861]) ([homematic docs]) +- Rename time trigger 'after' to 'at' ([@armills] - [#7846]) ([automation.time docs]) (breaking change) +- Use expected behvaior for above/below ([@armills] - [#7857]) (breaking change) +- log time delay of domain setup in info level ([@azogue] - [#7808]) +- Optimize history_stats efficiency and database usage ([@bokub] - [#7858]) ([sensor.history_stats docs]) +- dont use default for switch name, so that the object id is used ([@abmantis] - [#7845]) ([switch.broadlink docs]) (breaking change) +- Disallow ambiguous color descriptors in the light.turn_on schema ([@amelchio] - [#7765]) (breaking change) +- Make monkey patch work in Python 3.6 ([@balloob] - [#7848]) +- fix permissions issue for Insteon Local #6558 ([@wardcraigj] - [#7860]) ([insteon_local docs]) +- Start of migration framework, to allow moving of files in the config … ([@infamy] - [#7740]) ([ios docs]) ([notify.ios docs]) (breaking change) +- Spotify aliases ([@Teagan42] - [#7702]) ([media_player.spotify docs]) +- Query in InfluxDB sensor is now templatable ([@titilambert] - [#7634]) ([sensor.influxdb docs]) +- fix for https://github.com/home-assistant/home-assistant/issues/7019 ([@molobrakos] - [#7618]) ([tellduslive docs]) +- Check if media commands are actually applicable ([@Juggels] - [#7595]) ([media_player.sonos docs]) +- Quickfix Bug #7384 ([@DavidLP] - [#7582]) ([media_player.spotify docs]) +- Align switch group handling with light. ([@aequitas] - [#7577]) ([switch.rflink docs]) +- Update netdisco ([@balloob] - [#7865]) +- Fix telegram_bot ([@balloob] - [#7877]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) +- [light.lifx] Update aiolifx ([@amelchio] - [#7882]) ([light.lifx docs]) +- Fix MQTT camera test ([@balloob] - [#7878]) + +[#7079]: https://github.com/home-assistant/home-assistant/pull/7079 +[#7113]: https://github.com/home-assistant/home-assistant/pull/7113 +[#7534]: https://github.com/home-assistant/home-assistant/pull/7534 +[#7535]: https://github.com/home-assistant/home-assistant/pull/7535 +[#7577]: https://github.com/home-assistant/home-assistant/pull/7577 +[#7579]: https://github.com/home-assistant/home-assistant/pull/7579 +[#7582]: https://github.com/home-assistant/home-assistant/pull/7582 +[#7595]: https://github.com/home-assistant/home-assistant/pull/7595 +[#7600]: https://github.com/home-assistant/home-assistant/pull/7600 +[#7618]: https://github.com/home-assistant/home-assistant/pull/7618 +[#7625]: https://github.com/home-assistant/home-assistant/pull/7625 +[#7627]: https://github.com/home-assistant/home-assistant/pull/7627 +[#7634]: https://github.com/home-assistant/home-assistant/pull/7634 +[#7637]: https://github.com/home-assistant/home-assistant/pull/7637 +[#7644]: https://github.com/home-assistant/home-assistant/pull/7644 +[#7646]: https://github.com/home-assistant/home-assistant/pull/7646 +[#7650]: https://github.com/home-assistant/home-assistant/pull/7650 +[#7651]: https://github.com/home-assistant/home-assistant/pull/7651 +[#7652]: https://github.com/home-assistant/home-assistant/pull/7652 +[#7653]: https://github.com/home-assistant/home-assistant/pull/7653 +[#7654]: https://github.com/home-assistant/home-assistant/pull/7654 +[#7655]: https://github.com/home-assistant/home-assistant/pull/7655 +[#7657]: https://github.com/home-assistant/home-assistant/pull/7657 +[#7658]: https://github.com/home-assistant/home-assistant/pull/7658 +[#7659]: https://github.com/home-assistant/home-assistant/pull/7659 +[#7660]: https://github.com/home-assistant/home-assistant/pull/7660 +[#7661]: https://github.com/home-assistant/home-assistant/pull/7661 +[#7664]: https://github.com/home-assistant/home-assistant/pull/7664 +[#7671]: https://github.com/home-assistant/home-assistant/pull/7671 +[#7673]: https://github.com/home-assistant/home-assistant/pull/7673 +[#7675]: https://github.com/home-assistant/home-assistant/pull/7675 +[#7676]: https://github.com/home-assistant/home-assistant/pull/7676 +[#7677]: https://github.com/home-assistant/home-assistant/pull/7677 +[#7681]: https://github.com/home-assistant/home-assistant/pull/7681 +[#7682]: https://github.com/home-assistant/home-assistant/pull/7682 +[#7683]: https://github.com/home-assistant/home-assistant/pull/7683 +[#7687]: https://github.com/home-assistant/home-assistant/pull/7687 +[#7689]: https://github.com/home-assistant/home-assistant/pull/7689 +[#7690]: https://github.com/home-assistant/home-assistant/pull/7690 +[#7697]: https://github.com/home-assistant/home-assistant/pull/7697 +[#7700]: https://github.com/home-assistant/home-assistant/pull/7700 +[#7701]: https://github.com/home-assistant/home-assistant/pull/7701 +[#7702]: https://github.com/home-assistant/home-assistant/pull/7702 +[#7704]: https://github.com/home-assistant/home-assistant/pull/7704 +[#7706]: https://github.com/home-assistant/home-assistant/pull/7706 +[#7709]: https://github.com/home-assistant/home-assistant/pull/7709 +[#7714]: https://github.com/home-assistant/home-assistant/pull/7714 +[#7716]: https://github.com/home-assistant/home-assistant/pull/7716 +[#7722]: https://github.com/home-assistant/home-assistant/pull/7722 +[#7725]: https://github.com/home-assistant/home-assistant/pull/7725 +[#7726]: https://github.com/home-assistant/home-assistant/pull/7726 +[#7728]: https://github.com/home-assistant/home-assistant/pull/7728 +[#7739]: https://github.com/home-assistant/home-assistant/pull/7739 +[#7740]: https://github.com/home-assistant/home-assistant/pull/7740 +[#7742]: https://github.com/home-assistant/home-assistant/pull/7742 +[#7743]: https://github.com/home-assistant/home-assistant/pull/7743 +[#7750]: https://github.com/home-assistant/home-assistant/pull/7750 +[#7756]: https://github.com/home-assistant/home-assistant/pull/7756 +[#7757]: https://github.com/home-assistant/home-assistant/pull/7757 +[#7759]: https://github.com/home-assistant/home-assistant/pull/7759 +[#7765]: https://github.com/home-assistant/home-assistant/pull/7765 +[#7767]: https://github.com/home-assistant/home-assistant/pull/7767 +[#7768]: https://github.com/home-assistant/home-assistant/pull/7768 +[#7771]: https://github.com/home-assistant/home-assistant/pull/7771 +[#7775]: https://github.com/home-assistant/home-assistant/pull/7775 +[#7776]: https://github.com/home-assistant/home-assistant/pull/7776 +[#7777]: https://github.com/home-assistant/home-assistant/pull/7777 +[#7778]: https://github.com/home-assistant/home-assistant/pull/7778 +[#7779]: https://github.com/home-assistant/home-assistant/pull/7779 +[#7787]: https://github.com/home-assistant/home-assistant/pull/7787 +[#7789]: https://github.com/home-assistant/home-assistant/pull/7789 +[#7796]: https://github.com/home-assistant/home-assistant/pull/7796 +[#7797]: https://github.com/home-assistant/home-assistant/pull/7797 +[#7799]: https://github.com/home-assistant/home-assistant/pull/7799 +[#7802]: https://github.com/home-assistant/home-assistant/pull/7802 +[#7803]: https://github.com/home-assistant/home-assistant/pull/7803 +[#7805]: https://github.com/home-assistant/home-assistant/pull/7805 +[#7806]: https://github.com/home-assistant/home-assistant/pull/7806 +[#7807]: https://github.com/home-assistant/home-assistant/pull/7807 +[#7808]: https://github.com/home-assistant/home-assistant/pull/7808 +[#7809]: https://github.com/home-assistant/home-assistant/pull/7809 +[#7824]: https://github.com/home-assistant/home-assistant/pull/7824 +[#7825]: https://github.com/home-assistant/home-assistant/pull/7825 +[#7826]: https://github.com/home-assistant/home-assistant/pull/7826 +[#7827]: https://github.com/home-assistant/home-assistant/pull/7827 +[#7828]: https://github.com/home-assistant/home-assistant/pull/7828 +[#7829]: https://github.com/home-assistant/home-assistant/pull/7829 +[#7832]: https://github.com/home-assistant/home-assistant/pull/7832 +[#7845]: https://github.com/home-assistant/home-assistant/pull/7845 +[#7846]: https://github.com/home-assistant/home-assistant/pull/7846 +[#7848]: https://github.com/home-assistant/home-assistant/pull/7848 +[#7857]: https://github.com/home-assistant/home-assistant/pull/7857 +[#7858]: https://github.com/home-assistant/home-assistant/pull/7858 +[#7860]: https://github.com/home-assistant/home-assistant/pull/7860 +[#7861]: https://github.com/home-assistant/home-assistant/pull/7861 +[#7865]: https://github.com/home-assistant/home-assistant/pull/7865 +[#7877]: https://github.com/home-assistant/home-assistant/pull/7877 +[#7878]: https://github.com/home-assistant/home-assistant/pull/7878 +[#7882]: https://github.com/home-assistant/home-assistant/pull/7882 +[@CTLS]: https://github.com/CTLS +[@Cinntax]: https://github.com/Cinntax +[@DavidLP]: https://github.com/DavidLP +[@Juggels]: https://github.com/Juggels +[@Klikini]: https://github.com/Klikini +[@LvivEchoes]: https://github.com/LvivEchoes +[@Teagan42]: https://github.com/Teagan42 +[@abmantis]: https://github.com/abmantis +[@aequitas]: https://github.com/aequitas +[@amelchio]: https://github.com/amelchio +[@amigian74]: https://github.com/amigian74 +[@andrey-git]: https://github.com/andrey-git +[@antsar]: https://github.com/antsar +[@armills]: https://github.com/armills +[@aronsky]: https://github.com/aronsky +[@azogue]: https://github.com/azogue +[@balloob]: https://github.com/balloob +[@bazwilliams]: https://github.com/bazwilliams +[@bokub]: https://github.com/bokub +[@bzillins]: https://github.com/bzillins +[@cgtobi]: https://github.com/cgtobi +[@cribbstechnologies]: https://github.com/cribbstechnologies +[@danielhiversen]: https://github.com/danielhiversen +[@danielperna84]: https://github.com/danielperna84 +[@everix1992]: https://github.com/everix1992 +[@fabaff]: https://github.com/fabaff +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@hoh]: https://github.com/hoh +[@infamy]: https://github.com/infamy +[@mezz64]: https://github.com/mezz64 +[@molobrakos]: https://github.com/molobrakos +[@nordeep]: https://github.com/nordeep +[@philhawthorne]: https://github.com/philhawthorne +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@sander76]: https://github.com/sander76 +[@scarface-4711]: https://github.com/scarface-4711 +[@stu-gott]: https://github.com/stu-gott +[@tchellomello]: https://github.com/tchellomello +[@thecynic]: https://github.com/thecynic +[@titilambert]: https://github.com/titilambert +[@tobygray]: https://github.com/tobygray +[@turbokongen]: https://github.com/turbokongen +[@w1ll1am23]: https://github.com/w1ll1am23 +[@wardcraigj]: https://github.com/wardcraigj +[alarm_control_panel.concord232 docs]: https://home-assistant.io/components/alarm_control_panel.concord232/ +[apcupsd docs]: https://home-assistant.io/components/apcupsd/ +[arlo docs]: https://home-assistant.io/components/arlo/ +[automation.state docs]: https://home-assistant.io/components/automation.state/ +[automation.time docs]: https://home-assistant.io/components/automation.time/ +[calendar.demo docs]: https://home-assistant.io/components/calendar.demo/ +[calendar.google docs]: https://home-assistant.io/components/calendar.google/ +[camera.amcrest docs]: https://home-assistant.io/components/camera.amcrest/ +[camera.arlo docs]: https://home-assistant.io/components/camera.arlo/ +[camera.synology docs]: https://home-assistant.io/components/camera.synology/ +[climate.tado docs]: https://home-assistant.io/components/climate.tado/ +[cover.myq docs]: https://home-assistant.io/components/cover.myq/ +[cover.zwave docs]: https://home-assistant.io/components/cover.zwave/ +[device_tracker.__init__ docs]: https://home-assistant.io/components/device_tracker.__init__/ +[device_tracker.asuswrt docs]: https://home-assistant.io/components/device_tracker.asuswrt/ +[device_tracker.mikrotik docs]: https://home-assistant.io/components/device_tracker.mikrotik/ +[device_tracker.snmp docs]: https://home-assistant.io/components/device_tracker.snmp/ +[device_tracker.ubus docs]: https://home-assistant.io/components/device_tracker.ubus/ +[eight_sleep docs]: https://home-assistant.io/components/eight_sleep/ +[envisalink docs]: https://home-assistant.io/components/envisalink/ +[fan.zwave docs]: https://home-assistant.io/components/fan.zwave/ +[hassio docs]: https://home-assistant.io/components/hassio/ +[homematic docs]: https://home-assistant.io/components/homematic/ +[image_processing.seven_segments docs]: https://home-assistant.io/components/image_processing.seven_segments/ +[insteon_local docs]: https://home-assistant.io/components/insteon_local/ +[ios docs]: https://home-assistant.io/components/ios/ +[light.__init__ docs]: https://home-assistant.io/components/light.__init__/ +[light.flux_led docs]: https://home-assistant.io/components/light.flux_led/ +[light.lifx docs]: https://home-assistant.io/components/light.lifx/ +[light.template docs]: https://home-assistant.io/components/light.template/ +[light.wink docs]: https://home-assistant.io/components/light.wink/ +[lock.zwave docs]: https://home-assistant.io/components/lock.zwave/ +[lutron docs]: https://home-assistant.io/components/lutron/ +[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/ +[media_player.openhome docs]: https://home-assistant.io/components/media_player.openhome/ +[media_player.services.yaml docs]: https://home-assistant.io/components/media_player.services.yaml/ +[media_player.snapcast docs]: https://home-assistant.io/components/media_player.snapcast/ +[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/ +[media_player.spotify docs]: https://home-assistant.io/components/media_player.spotify/ +[media_player.volumio docs]: https://home-assistant.io/components/media_player.volumio/ +[modbus docs]: https://home-assistant.io/components/modbus/ +[mqtt.discovery docs]: https://home-assistant.io/components/mqtt.discovery/ +[notify.ios docs]: https://home-assistant.io/components/notify.ios/ +[notify.rest docs]: https://home-assistant.io/components/notify.rest/ +[notify.slack docs]: https://home-assistant.io/components/notify.slack/ +[notify.smtp docs]: https://home-assistant.io/components/notify.smtp/ +[notify.telegram docs]: https://home-assistant.io/components/notify.telegram/ +[recorder.__init__ docs]: https://home-assistant.io/components/recorder.__init__/ +[remote docs]: https://home-assistant.io/components/remote/ +[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/ +[remote.services.yaml docs]: https://home-assistant.io/components/remote.services.yaml/ +[scene.hunterdouglas_powerview docs]: https://home-assistant.io/components/scene.hunterdouglas_powerview/ +[sensor.amcrest docs]: https://home-assistant.io/components/sensor.amcrest/ +[sensor.arlo docs]: https://home-assistant.io/components/sensor.arlo/ +[sensor.dsmr docs]: https://home-assistant.io/components/sensor.dsmr/ +[sensor.fedex docs]: https://home-assistant.io/components/sensor.fedex/ +[sensor.history_stats docs]: https://home-assistant.io/components/sensor.history_stats/ +[sensor.hp_ilo docs]: https://home-assistant.io/components/sensor.hp_ilo/ +[sensor.influxdb docs]: https://home-assistant.io/components/sensor.influxdb/ +[sensor.mvglive docs]: https://home-assistant.io/components/sensor.mvglive/ +[sensor.snmp docs]: https://home-assistant.io/components/sensor.snmp/ +[sensor.synologydsm docs]: https://home-assistant.io/components/sensor.synologydsm/ +[sensor.time_date docs]: https://home-assistant.io/components/sensor.time_date/ +[sensor.usps docs]: https://home-assistant.io/components/sensor.usps/ +[switch.broadlink docs]: https://home-assistant.io/components/switch.broadlink/ +[switch.rachio docs]: https://home-assistant.io/components/switch.rachio/ +[switch.rflink docs]: https://home-assistant.io/components/switch.rflink/ +[telegram_bot.__init__ docs]: https://home-assistant.io/components/telegram_bot.__init__/ +[telegram_bot.polling docs]: https://home-assistant.io/components/telegram_bot.polling/ +[telegram_bot.webhooks docs]: https://home-assistant.io/components/telegram_bot.webhooks/ +[tellduslive docs]: https://home-assistant.io/components/tellduslive/ +[upnp docs]: https://home-assistant.io/components/upnp/ +[zoneminder docs]: https://home-assistant.io/components/zoneminder/ +[zwave docs]: https://home-assistant.io/components/zwave/ +[forum]: https://community.home-assistant.io/ +[gitter]: https://gitter.im/home-assistant/home-assistant +[issue]: https://github.com/home-assistant/home-assistant/issues +[#7780]: https://github.com/home-assistant/home-assistant/pull/7780 +[#7841]: https://github.com/home-assistant/home-assistant/pull/7841 +[#7900]: https://github.com/home-assistant/home-assistant/pull/7900 +[#7901]: https://github.com/home-assistant/home-assistant/pull/7901 +[#7932]: https://github.com/home-assistant/home-assistant/pull/7932 +[#7965]: https://github.com/home-assistant/home-assistant/pull/7965 +[#7969]: https://github.com/home-assistant/home-assistant/pull/7969 +[@cyberjacob]: https://github.com/cyberjacob +[@mje-nz]: https://github.com/mje-nz +[cover.mqtt docs]: https://home-assistant.io/components/cover.mqtt/ +[sensor.metoffice docs]: https://home-assistant.io/components/sensor.metoffice/ +[sensor.wunderground docs]: https://home-assistant.io/components/sensor.wunderground/ +[media_player.roku docs]: https://home-assistant.io/components/media_player.roku/ diff --git a/source/developers/multiple_instances.markdown b/source/developers/multiple_instances.markdown index 07238c5d0bd..ffdfd6b5053 100644 --- a/source/developers/multiple_instances.markdown +++ b/source/developers/multiple_instances.markdown @@ -9,6 +9,8 @@ sharing: true footer: true --- +# {% linkable_title This has been deprecated and is no longer supported. %} + Home Assistant supports running multiple synchronised instances using a master-slave model. Whenever `events.fire` or `states.set` is called on the slave it will forward it to the master. The master will replicate all events and changed states to its slaves.

    diff --git a/source/developers/python_api.markdown b/source/developers/python_api.markdown index 8b7c74e0329..727e94f071e 100644 --- a/source/developers/python_api.markdown +++ b/source/developers/python_api.markdown @@ -9,9 +9,11 @@ sharing: true footer: true --- -In the package [`homeassistant.remote`](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/remote.py) a Python API on top of the [HTTP API](/developers/api/) can be found. +See the [developer documentation][devdocs] for a full overview of the documentation. The rest of this page will contain examples on how to use it. -Note: This page is not full documentation for this API, but a collection of examples showing its use. +[devdocs]: https://dev-docs.home-assistant.io/en/master/api/homeassistant.html#module-homeassistant.remote + +In the package [`homeassistant.remote`](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/remote.py) a Python API on top of the [HTTP API](/developers/api/) can be found. A simple way to get all current entities is to visit the "Set State" page in the "Developer Tools". For the examples below just choose one from the available entries. Here the sensor `sensor.office_temperature` and the switch `switch.livingroom_pin_2` are used. @@ -24,17 +26,6 @@ api = remote.API('127.0.0.1', 'password') print(remote.validate_api(api)) ``` -Here's another way to use the `homeassistant.remote` package: - -```python -import homeassistant.remote as remote - -api = remote.API('127.0.0.1', 'password') -hass = remote.HomeAssistant(api) -hass.start() -living_room = hass.states.get('group.living_room') -``` - ### {% linkable_title Get configuration %} Get the current configuration of a Home Assistant instance: @@ -81,7 +72,7 @@ import homeassistant.remote as remote api = remote.API('127.0.0.1', 'YOUR_PASSWORD') office_temperature = remote.get_state(api, 'sensor.office_temperature') -print('{} is {} {}.'.format(office_temperature.attributes['friendly_name'], +print('{} is {} {}.'.format(office_temperature.name, office_temperature.state, office_temperature.attributes['unit_of_measurement'] ) @@ -101,7 +92,7 @@ import homeassistant.remote as remote api = remote.API('127.0.0.1', 'YOUR_PASSWORD') switch_livingroom = remote.get_state(api, 'switch.livingroom_pin_2') -print('{} is {}.'.format(switch_livingroom.attributes['friendly_name'], +print('{} is {}.'.format(switch_livingroom.name, switch_livingroom.state ) ) @@ -193,5 +184,3 @@ data = {"title":"Test", "message":"A simple test message from HA."} remote.call_service(api, domain, 'jabber', data) ``` - -For more details, please check the source of [homeassistant.remote](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/remote.py). diff --git a/source/hassio/addon_config.markdown b/source/hassio/addon_config.markdown index 76a2df6470d..382bf4be477 100644 --- a/source/hassio/addon_config.markdown +++ b/source/hassio/addon_config.markdown @@ -91,7 +91,8 @@ The config for an add-on is stored in `config.json`. | boot | yes | `auto` by system and manual or only `manual` | ports | no | Network ports to expose from the container. Format is `"container-port/type": host-port`. | host_network | no | If that is True, the add-on run on host network. -| devices | no | Device list to map into add-on. Format is: `::` +| devices | no | Device list to map into add-on. Format is: `::`. i.e. `/dev/ttyAMA0:/dev/ttyAMA0:rwm` +| privileged | no | Privilege for access to hardware/system. Available access: `NET_ADMIN` | map | no | List of maps for additional hass.io folders. Possible values: `config`, `ssl`, `addons`, `backup`, `share`. Default it map it `ro`, you can change that if you add a ":rw" at the end of name. | environment | no | A dict of environment variable to run add-on. | options | yes | Default options value of the add-on diff --git a/source/images/blog/2017-06-0.46/components.png b/source/images/blog/2017-06-0.46/components.png new file mode 100644 index 00000000000..f2a443074c5 Binary files /dev/null and b/source/images/blog/2017-06-0.46/components.png differ