From 086960a502281d2b3ddfe25574adeb610bcd81bd Mon Sep 17 00:00:00 2001 From: cgtobi Date: Fri, 6 Apr 2018 21:49:47 +0200 Subject: [PATCH 01/45] Docs for transparency feature google calendar component (#5101) * Add transparency feature to google calendar component * Set default behaviour to ignore the availability. This reflects the old behaviour and does not break current workflows. --- source/_components/calendar.google.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index d0463968357..5999dc48ac6 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -95,7 +95,8 @@ Variables: - **track**: (*Required*): Should we create a sensor `True` or ignore it `False`? - **search**: (*Optional*): If set will only trigger for matched events. - **offset**: (*Optional*): A set of characters that precede a number in the event title for designating a pre-trigger state change on the sensor. (Default: `!!`) - +  - **ignore_availablilty**: (*Optional*): Should we respect `free`/`busy` flags? (Defaults to `true`) +   From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each. You'll also have a sensor `calendar.test_everything` that will not filter events out and always show the next event available. But what if you only wanted it to toggle based on all events? Just leave out the *search* parameter. From 5c47c159a9f0653cf988cf421f0f4c6eed6d4d5a Mon Sep 17 00:00:00 2001 From: Juggels Date: Fri, 6 Apr 2018 22:24:10 +0200 Subject: [PATCH 02/45] Allow TodoistAPI date_string in service call (#4923) * Update docs to reflect changes * Match docs to latest component update * Missed renamed parameters in example --- source/_components/calendar.todoist.markdown | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/source/_components/calendar.todoist.markdown b/source/_components/calendar.todoist.markdown index d3ad45c8c4f..c416ddb50d7 100644 --- a/source/_components/calendar.todoist.markdown +++ b/source/_components/calendar.todoist.markdown @@ -111,7 +111,7 @@ Home Assistant does its best to determine what task in each project is "most" im Todoist also comes with access to a service, `calendar.todoist_new_task`. This service can be used to create a new Todoist task. You can specify labels and a project, or you can leave them blank, and the task will go to your "Inbox" project. -Here's an example JSON payload: +Here are two example JSON payloads resulting in the same task: ```json { @@ -123,6 +123,17 @@ Here's an example JSON payload: } ``` +```json +{ + "content": "Pick up the mail", + "project": "Errands", + "labels":"Homework,School", + "priority":3, + "due_date_string":"tomorrow at 14:00", + "due_date_lang":"en" +} +``` + - **content** (*Required*): The name of the task you want to create. - **project** (*Optional*): The project to put the task in. @@ -131,6 +142,11 @@ Here's an example JSON payload: - **priority** (*Optional*): The priority of the task, from 1-4. Again, 1 means least important, and 4 means most important. -- **due_date** (*Optional*): When the task should be due, in either YYYY-MM-DD format or YYYY-MM-DD HH:MM format. +- **due_date_string** (*Optional*): When the task should be due, in [natural language](https://support.todoist.com/hc/en-us/articles/205325931-Dates-and-Times). Mutually exclusive with `due_date` + +- **due_date_lang** (*Optional*): When `due_date_string` is set, it is posisble to set the language. + Valid languages are: `en`, `da`, `pl`, `zh`, `ko`, `de`, `pt`, `ja`, `it`, `fr`, `sv`, `ru`, `es`, `nl` + +- **due_date** (*Optional*): When the task should be due, in either YYYY-MM-DD format or YYYY-MM-DD HH:MM format. Mutually exclusive with `due_date_string`. Note that there's (currently) no way to mark tasks as done through Home Assistant; task names do not necessarily have to be unique, so you could find yourself in a situation where you close the wrong task. From 0c7780681bdfe73b07184b79bdcd5adf38fd24a7 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Sun, 8 Apr 2018 04:32:01 +0200 Subject: [PATCH 03/45] MQTT Sensor Unique ID feature (#5131) --- source/_components/sensor.mqtt.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index dc835ac9d7f..7076fc9b560 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -80,6 +80,10 @@ json_attributes: description: A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes. reqired: false type: list, string +unique_id: + description: "An id that uniquely identifies this sensor. If 2 sensors have the same unique id, Home Assistant will raise an exception.**" + required: false + type: string {% endconfiguration %} ## {% linkable_title Examples %} From 07203297935648138e6b040dbbbdc39d842ee8ee Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Mon, 9 Apr 2018 16:11:20 +0200 Subject: [PATCH 04/45] Added binary_sensor to supported types (#5143) --- source/_components/homekit.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 5313a8428aa..90bddcb5153 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -194,6 +194,7 @@ The following components are currently supported: | Component | Type Name | Description | | --------- | --------- | ----------- | | alarm_control_panel | SecuritySystem | All security systems. | +| binary_sensor | Sensor | Support for `CO2`, `Gas`, `Moisture`, `Motion`, `Occupancy`, `Opening` and `Smoke` device classes. Defaults to the `Occupancy` device class for everything else. | | climate | Thermostat | All climate devices. | | cover | WindowCovering | All covers that support `set_cover_position`. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | From 89f64dfbd82617b39545f6c7f12777653f53a300 Mon Sep 17 00:00:00 2001 From: Phil Kates Date: Mon, 9 Apr 2018 07:23:59 -0700 Subject: [PATCH 05/45] homekit/locks: Add locks (#5093) --- source/_components/homekit.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 90bddcb5153..d3ee4c773f5 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -198,6 +198,7 @@ The following components are currently supported: | climate | Thermostat | All climate devices. | | cover | WindowCovering | All covers that support `set_cover_position`. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | +| lock | DoorLock | Support for `lock / unlock`. | | sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. | | sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` | | switch / remote / input_boolean / script | Switch | All represented as switches. | From bba777df3f6aece9c0e4ef33918de35e38a5c429 Mon Sep 17 00:00:00 2001 From: Elelabs-maintainer <37191432+Elelabs-maintainer@users.noreply.github.com> Date: Mon, 9 Apr 2018 20:37:27 +0300 Subject: [PATCH 06/45] Add 2 new supported hardware platforms (#5135) Raspberry Pi Shield and USB adapter, compatible with Home Assistant and `bellows` python library. Based on Silabs EM35X MCU, compatible with ezsp protocol. --- source/_components/zha.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index f751532e70d..0e769fc6a45 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -26,8 +26,10 @@ There is currently support for the following device types within Home Assistant: Known working ZigBee radios: -- Nortek/GoControl Z-Wave & Zigbee USB Adaptor - Model HUSBZB-1 +- Nortek/GoControl Z-Wave & Zigbee USB Adapter - Model HUSBZB-1 - XBee Series 2C +- [Elelabs ZigBee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) +- [Elelabs ZigBee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) To configure the component, a `zha` section must be present in the `configuration.yaml`, and the path to the serial device for the radio and path to the database which will persist your network data is required. From b356bfcc451ff4ed6509da12e1e17ed73cea1a19 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Apr 2018 19:24:31 -0700 Subject: [PATCH 07/45] Add docs for the Eufy component (#5145) * Add docs for the Eufy component * Update version * Update version * Update version --- source/_components/eufy.markdown | 54 ++++++++++++++++++++++++ source/_components/light.eufy.markdown | 19 +++++++++ source/_components/switch.eufy.markdown | 19 +++++++++ source/images/supported_brands/eufy.png | Bin 0 -> 9536 bytes 4 files changed, 92 insertions(+) create mode 100644 source/_components/eufy.markdown create mode 100644 source/_components/light.eufy.markdown create mode 100644 source/_components/switch.eufy.markdown create mode 100644 source/images/supported_brands/eufy.png diff --git a/source/_components/eufy.markdown b/source/_components/eufy.markdown new file mode 100644 index 00000000000..c11870e401e --- /dev/null +++ b/source/_components/eufy.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Eufy" +description: "Instructions on how to integrate Eufy devices into Home Assistant." +date: 2018-05-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: eufy.png +ha_category: Hub +ha_release: 0.68 +--- + +The `eufy` component is the main component to integrate various [eufy](http://https://www.eufylife.com/) devices with Home Assistant. + +Supported devices will be discovered after the `eufy` component is configured: + +```yaml +# Example configuration.yaml entry +eufy: + username: testuser@domain + password: p4ssw0rd +``` + +where username and password are the ones configured in the EufyHome app. Alternately, Eufy devices that are not discoverable can be statically configured. + +```yaml +eufy: + devices: + - address: 192.168.1.10 + access_token: 1234567890abcdef + type: T1012 + name: Smart Light + - address: 192.168.1.11 + access_token: abcdef1234567890 + type: T1201 + name: Smart Switch +``` + +access_token can be obtained by running: + +``` +curl -H "Content-Type: application/json" -d '{"client_id":"eufyhome-app", "client_Secret":"GQCpr9dSp3uQpsOMgJ4xQ", "email":"USERNAME", "password":"PASSWORD"}' https://home-api.eufylife.com/v1/user/email/login | jq +``` + +replacing USERNAME and PASSWORD with the Eufy username and password. This will give an access_token. Then run: + +``` +curl -H token:TOKEN -H category:Home https://home-api.eufylife.com/v1/device/list/devices-and-groups | jq +``` + +replacing TOKEN with the access_token from the previous command. This will provide the local_code for each device. + diff --git a/source/_components/light.eufy.markdown b/source/_components/light.eufy.markdown new file mode 100644 index 00000000000..773d99f4aa2 --- /dev/null +++ b/source/_components/light.eufy.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "EufyLights" +description: "Instructions on how to integrate Eufy LED lights into Home Assistant." +date: 2018-05-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: eufy.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.68 +--- + +The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) lights from within Home Assistant. + +They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled. + diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown new file mode 100644 index 00000000000..22e56ae38bd --- /dev/null +++ b/source/_components/switch.eufy.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "EufySwitch" +description: "Instructions on how to integrate Eufy switches into Home Assistant." +date: 2018-05-09 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: eufy.png +ha_category: Switch +ha_iot_class: "Local Polling" +ha_release: 0.68 +--- + +The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) switches from within Home Assistant. + +They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled. + diff --git a/source/images/supported_brands/eufy.png b/source/images/supported_brands/eufy.png new file mode 100644 index 0000000000000000000000000000000000000000..98d647b056864213ec35a89bd7619d1a7a829805 GIT binary patch literal 9536 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 Date: Thu, 12 Apr 2018 09:27:08 +0200 Subject: [PATCH 08/45] Rename light platform from aurora to nanoleaf_aurora (#5158) --- source/_components/light.nanoleaf_aurora.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/light.nanoleaf_aurora.markdown b/source/_components/light.nanoleaf_aurora.markdown index 074bd1c77f1..4f066dc7b2f 100644 --- a/source/_components/light.nanoleaf_aurora.markdown +++ b/source/_components/light.nanoleaf_aurora.markdown @@ -21,7 +21,7 @@ To enable the Aurora lights, add the following lines to your `configuration.yaml ```yaml # Example configuration.yaml entry light: - - platform: aurora + - platform: nanoleaf_aurora host: 192.168.1.10 token: xxxxxxxxxxxxxxxxxxxxx ``` From 15aabd066cbf9e0edf85a8d657361c736aac36be Mon Sep 17 00:00:00 2001 From: Yonsm Date: Thu, 12 Apr 2018 21:02:03 +0800 Subject: [PATCH 09/45] Add CO2/PM2.5/Light sensors in HomeKit (#5146) * Add CO2/PM2.5/Light sensors in HomeKit * Added temperature and humidity device classes --- source/_components/homekit.markdown | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index d3ee4c773f5..b752f52622c 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -199,8 +199,11 @@ The following components are currently supported: | cover | WindowCovering | All covers that support `set_cover_position`. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | -| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. | -| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` | +| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | +| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` or `humidity` as their `device_class`. | +| sensor | AirQualitySensor | All sensors that have `pm25` as part of their `entity_id` or `pm25` as their `device_class` | +| sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `co2` as their `device_class` | +| sensor | LightSensor | All sensors that have `lm`/`lux` as their `unit_of_measurement` or `light` as their `device_class` | | switch / remote / input_boolean / script | Switch | All represented as switches. | From 96c997b7e19f1246192d2ad2b8f13a8f7fcaeece Mon Sep 17 00:00:00 2001 From: Mark Coombes Date: Thu, 12 Apr 2018 12:25:35 -0400 Subject: [PATCH 10/45] Add support for Garage Doors in HomeKit (#5155) --- source/_components/homekit.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index b752f52622c..42b3180a00a 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -196,6 +196,7 @@ The following components are currently supported: | alarm_control_panel | SecuritySystem | All security systems. | | binary_sensor | Sensor | Support for `CO2`, `Gas`, `Moisture`, `Motion`, `Occupancy`, `Opening` and `Smoke` device classes. Defaults to the `Occupancy` device class for everything else. | | climate | Thermostat | All climate devices. | +| cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` as their `device_class`. | | cover | WindowCovering | All covers that support `set_cover_position`. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | From 34a0ade3f7f2ef9014dc4d7d6fdb58c3381b509c Mon Sep 17 00:00:00 2001 From: Mark Coombes Date: Fri, 13 Apr 2018 03:02:59 -0400 Subject: [PATCH 11/45] Add deCONZ daylight sensor (#5028) * Add deCONZ daylight sensor * :pencil2: Minor changes * :ambulance: Fixes build issue * :ambulance: Fixes incorrect tag --- source/_components/sensor.deconz.markdown | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/_components/sensor.deconz.markdown b/source/_components/sensor.deconz.markdown index 6844c88d833..46dad20c0e2 100644 --- a/source/_components/sensor.deconz.markdown +++ b/source/_components/sensor.deconz.markdown @@ -43,3 +43,28 @@ Entity ids will be sensor.device_name, where device_name is defined in deCONZ. S - Xiaomi Smart Home Wireless Switch - Temperature Sensor - Xiaomi Temperature/Humidity Sensor + +#### {% linkable_title deCONZ Daylight Sensor %} + +The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from https://github.com/mourner/suncalc, on which the deCONZ implementation is based): + +| Sensor State | Description | +|--------------|-------------| +| sunrise_start | sunrise (top edge of the sun appears on the horizon) | +| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) | +| golden_hour_1 | morning golden hour (soft light, the best time for photography) | +| solar_noon | solar noon (sun is in the highest position) | +| golden_hour_2 | evening golden hour | +| sunset_start | sunset starts (bottom edge of the sun touches the horizon) | +| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) | +| dusk | dusk (evening nautical twilight starts) | +| nautical_dusk | nautical dusk (evening astronomical twilight starts) | +| night_start | night starts (dark enough for astronomical observations) | +| nadir | nadir (darkest moment of the night, the sun is in the lowest position) | +| night_end | night ends (morning astronomical twilight starts) | +| nautical_dawn | nautical dawn (morning nautical twilight starts) | +| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) | + +The sensor also has an attribute called "daylight" that has the value `true` when the sensor's state is `golden_hour_1`, `solar_noon`, or `golden_hour_2`, and `false` otherwise. + +These states can be used in automations as a trigger (e.g., trigger when a certain phase of daylight starts or ends) or condition (e.g., trigger only if in a certain phase of daylight). From 4a9bd5e72020b3dc8efabada9b199622669315ac Mon Sep 17 00:00:00 2001 From: Mohamad Tarbin Date: Fri, 13 Apr 2018 22:03:57 -0400 Subject: [PATCH 12/45] Adding markdown and imagie for USCIS sensor (#5138) * Adding markdown and imagie for USCIS sensor * Update the markdown * Update sensor.uscis.markdown * Update sensor.uscis.markdown * Update sensor.uscis.markdown * Minor changes --- source/_components/sensor.uscis.markdown | 39 +++++++++++++++++++++++ source/images/supported_brands/uscis.png | Bin 0 -> 7836 bytes 2 files changed, 39 insertions(+) create mode 100644 source/_components/sensor.uscis.markdown create mode 100644 source/images/supported_brands/uscis.png diff --git a/source/_components/sensor.uscis.markdown b/source/_components/sensor.uscis.markdown new file mode 100644 index 00000000000..49d55b0416f --- /dev/null +++ b/source/_components/sensor.uscis.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: USCIS Sensor +description: "Instructions on how to set up USCIS within Home Assistant." +date: 2018-03-21 08:00 +sidebar: false +comments: false +sharing: true +footer: true +logo: uscis.jpg +ha_category: Sensor +ha_release: 0.68 +ha_iot_class: "Cloud Polling" +--- + +The `uscis` sensor component allows you get updates on your USCIS case using your case/receipt number. The sensor gets the case information from [USCIS Website]( https://egov.uscis.gov/casestatus/landing.do) + +## Example for `configuration.yaml` : + +```yaml +sensor: + - platform: uscis + case_id: YOUR_CASE_NUMBER + name: OPTIONAL_NAME +``` + +{% configuration %} +friendly_name: + description: Name of the sensor in Home Assistant. + required: false + default: USCIS + type: string +case_id: + description: Case/receipt number used to get the case details from USCIS web client. + required: true + type: string +{% endconfiguration %} + +All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do). diff --git a/source/images/supported_brands/uscis.png b/source/images/supported_brands/uscis.png new file mode 100644 index 0000000000000000000000000000000000000000..2268fb48b11951cd12e73c43eba00c1981484bc2 GIT binary patch literal 7836 zcmb7}MOPdOl!P01*Wff7Jh;2NJHa(TV6?gV#lT!RxJNJC>mLy+J;Z{{CNom2H~ zYjIb%V%1gUFi=TQ0RRAog1ofmf9(IyU}U)el0?U}`ahJZD{IUA$B+M~0D4IPll0Te zdxwmH`e6u-TLrE|QEbiZ^3LC(#Y3g=7Jy}Le#bJuf1O|PxKTnEz$!PscD7+;i`Ko; zIH4=GaX~A({pS9;yl*Y6VruX7#xk`}CZx$DfAr7w<2>Zg%=#&{YkA-7e(MCZbsS28 zIrP76u{|_ZwE!Vk*d@DWR2+*#;_A&QE`-Tm@+fZJ*6qgHyu;4)lsc{Uq3| z%g5OlvBRJ&tZ@i}A!FZcaaw?iaGI=T?pG5Mwdn1O>+4Xbmf!&JM!)D=@AGi?pug`{ zoA>n<*uQt++0|!Lq*cq+-~A!H_Ug}FZectmdvq0R=xrv2U!sN)O}Frhi@Bp&tR;Bh zMGRP0ztf5`KV7kRiR?G0*o?yW(F7ZD!LJ^oCu5d>7A4K6*9 zxD^XbeO~rpeSReo;>UKEli3>ISm3-t#!t)%W5*3Nz#J271a6|`tUKN@3F6D#KY{bU zc4qI@8h>N4Jp_2bpfyP25jnwf`0~?YzV7gG;@Q30>0rPLanVhx!?0%(Wer$;hW7Um{`6kzc$Jzi3GRx`My2C5i(s3H1O zH~$Qp_rrmu&+I26P5I!8X&P=LZ8U{yg}y$e6#mb449Yw=kt}i}Bh!)5v!Px7Dx57W z&O^mMXEBzr=j3D`F>NGDO^7aHt0_1{Ugh#x*q?-2sctSe>%u-{}7RhwK z`v)RwQ(WW;CwxOIGdM=KLZGFnbWnnfLX%Piv$QtB`ZX0E8CA)%`ZvHm>}?aJLn9nu zAP;-mVY7m|P= zA_n0VBJ(65Hxf*ZHrMvCr(-pGHFl!PNg8FE>J!rBey=m0*rmy#J*cl6dJ$(>nkS4T zJg05E(|MML#u%z@sD!ffJdHon(TuGQ`R{%P0h>`wkiEHo^nB@X*aH1x)8Hx8xUX<3oqkcAP(fYu=Ol{s>^r^-BWY#~qhlvDZEU=8C zeO6Hg>6Wn{inz-NC_3{RUi%_11)&sE`S476kRtq^-lj>A6mjBfGikp^z`}iQO$0OFi5LDBEK8Qlje@23n23+ z+Md9jzZp!5!wvNjyE&NC0tyA6W*IJue>c4x2+}wI1)O%{xE2fmNfz$x%P47D%4qCk z>WL!c1gHAPw?BW@GfADUr-JUWpRRl*B1~GYukBkEDQ5G7Fv}j5r|2$*;hKWxT{cMh z5!W~=qSfy}Osi8)*38OHy?8ksG^&~JDwk>th|&$N6{IMi4rzoG$e^JDoK?OQm*)ZW1G~(dh6%p)t50RCas= zq##KnNMz2X{oBPbyqJE#BLCx`mjoKCKpYPFi1+EG>QbVE99P(;%Yi5-?9+QJRdF#h z=~idqX*y)ZV5vI=E%g6A0+C&ydOxh zS?{C5lYQFpdC%xkEK7ZXQ+Sp$ZYpl6gdXwN6^Ah(@dU$*GFweX$uKC8kV2RJS&}K zO<5k6M2KnpWPB%E0RxnS;f^m|WgCX=hFmHR4gHSx>D1IV*Y?QV(d#Fqu%CF6pu1an znJX??aJs^ZDSyT|9Ng5QG|xJXsfyL1{ebPa$uqm^vC@8DyLWSu2rfwWo6se#Ye9gw znHl$kLzPM(v)=VKsNI{^o0Him{jE)`*;Ah8RyJ+Wa|+ksqaOYR2clxk{g0*To&N~e znMS=tW z7&r?Fm3-w1?yGCm8U+t7b-=}-*p4lWs8wZ?D`$g(lsN2xV-EqR-zuC&tjqJKUN;+P3z; z14=nx&hj}2gHmTJ{4k3U@13sN+f9SAO5N3-U{sqC#720SdTa_o$ZkxIc7%F@Uu}rN zg~3!jiZ*cp`B~F<%sO z#P?|)m;UK6|CkzF5HwA$k^wk^rq}}mX6zd!el4e2M0@mwlhIW@Qn<%yx`*5?dZj(?0CFy z5weX;Sy%`+p5IDG9Gyd;n(QaB`snsZ$Q6jfc)vvhGXyDE& z9iO?GIbtuf&`De>Jw^NjCuV?r$AG{=VWlv;GEQ)&udaD6eqqULr&iL%<1Soj#}6m8 z0h}c%7HDLOfDJW6WhD5!LCnh?V(^fhndxH34^bVdpD`IfsT@N+IF>D_IKE_jQFgC4 z`@1joBq)+O@uD(iuLQy5$WH!e)Z-n>^k7(zatFGK@0cU|mV1~xOk)FC@Y&vP$ju^t z&WW+lpNjD$LETdNd|iPjNr-9~-`Qp~^J=_wXe}3<^*za&_B!{xLLodbl}K7ZIjfK` z<}tC5bQ*BGKY#yt_{6jgB7L6y^z$qv2q*TsM>Ey~`E4D|uvWX^m%ZbrTk2Nz5wb2~)P6QUo}I>IS-yDw)75RkZ`ShFxD>9Pu}+}# zjoea&((Cpk8QCW*(B4v_=G<$AYKw^QJ|##kyZtLT;vDVpOlb!PoDyXEmYqxdw&^qU z?B=ZI@R7~Q>&&2sVB&hEtk@*lCQLBJLE>7MN6!kskMKrIj(mK6Zd2-|Ijkl0v+bDh z8;FVX_oYl+`_Z{rM`ORtV!vW41rqewIh&FXarZK<3nar25iY7~%j;CGdo?L0YN0M9 zyyzGgGJbTw?UgOotyRsi0ZFToOG+*zhqZaKXg^*LmOfm)T6bSY9O0>9+ZBmEvmN_A zvL8Ft4LW{0=6E!f9Q0VEnK(}%AQ6tWda^xP{mi@*o&PDI=2(TYA9&jt4;@kad?*;P z=Xa6u`6d3OfzKo8;Y;hQ)T9Ko`7i#AzozFR9<+({`IYRAWw6byQps(Fqr0RVm9g2X zFAx$qHw#su0)NyEZx;RP-rfMj20Lkri0n+Y)*qzX(4pJfGe{&hCYJf%!o)r>z8sOl zEjbQC2ye55QZNzx@%rg*i#jH_lls!Z(diu2 zk6^Yl7_XYSYv1vxvLazia8zOH@b^bTH9ze4oUXcazd*GMir4#aRn=0};<&1w^jdS^ zN_xPxfyRQJp-}|^o27cSXZ@7pF&UVj03}fM^8GGKx65}}B)cNGdv20`y{<`XP5dmJhb5zW$s zn9PowqpW@_(n}2|{YMGk)FRkWI5Oar%98ILSHyM&@QS$7C1s1-?ETLyi3-t$S{M`+ z`0;reml$uNsBHW(=J`pm&O-IH&s36bgtmW*-@#^xpjtw~ z@rM%=n@{9N_!Tk8QDtzkfNF%Xku7aS_8T0rzl>egTwWd54?VJ_rA7}x!xsMVo9Jkv zDvln=iM&MQ&M|%v173!7jr#9O5c+@uT3Z(o^yep9zQ7n5c9Q)wMJ|4i7*a*%DfM9Bb z%v*-?F>=i<#r}++=F1zrZXirRi=0ZPN>m%ro z{LO{|%`B`1%{HDh;qM|t0~Tof>!{z7m=W`%*e-i=_K-dab$DeiZPQg@N`Zhz0ZkAq zKNsgCvI9CIa^xU|QD(i*(Kp$T=8U?5@@R(^)BJ+ew7Dvxw{Ty9n|RM-tn^k##AB;W zlj)=t-kl%iwC*1&^q*5Om}I)@xmDhiC-pp(#vb&J_jCYA0?HjLaw<0ZOGKXbIw3$I)9 zXXozh?XM|6;}gAqRD=}*F-+_G=`+9e7f?DsEx|pt*60}}YpO*dWjClefs?Z2+(vb%`9F2Z5CO#sS;V|Lg(azwbJCi?#yoT5C zUs}Zpu5|gwYU)ptNjneut(0$r@>$hnZy*#~&VtX;&xzulf$h;x4D{Pvt(wD!f(y?oT;o+#O691>{io?ddSH3+io{^M)?40^vYi9l z@M<~4M7TflPnP}xFP#xNy2IFu(r_%{7^_>moI8woC^bdjzZKlrF^M^>HEx^1&|KeUUc56qDZ;$|MLl3}B zsdIYNLGxm%{bLu4;LaDDhq7c3oT%aSaeGqR0h+MZ%6>H+Vhb%~;xH_nMq7e$DdW?vOF``{r=S0oj&oy8uW7*%AwiJ)ukL)n`X)m^PgrXtW{ zUHFS)7>OHP>42?rw;pxx6W$?<&c`qg;zpsr`=ZO;!Q3u;EMKMyo#JBqX%d3`IsmV1WLO0Ztu1HYqJo_pVjg0NMQ=l{q&-ec9L zRU}1ClB3^)sgc7tO3;skTlJD zu^0i(u_Yraa1a0OlLRy8>zs-se`jk@nrn-V4xBbcJJwY^y91nMN`)ccqSr1}iR2IkZYYlr6bQ0Kslfei%*J#tIW5n~&_y{-Sq@rWd z)F7Q+rwD&PbkNlY2ovtYaXI4$Bk^Iv8cS_l-u$kp^}-%HzABXRTN@RWh2k9XRa;XC zk00k6-{>#2Ni;~Ql1QMeHPe3zqs$%G;rC`X@HM^uJvFkX&M%FBo~DR*4PC8*HBCX7 z{;I5w@l{3kiXuFSys2TBw@_4Q^FYy`7$~_ko_b_m4yQ5V96B7qFGCZL4B&h-eD{1_ za}sEqa6A6GjQ6RA%|!qS+DwZ&*G`thyo+Y(awRr8`ra<}$TZ5QsI@glS1XN1E@F5$ z;4&f(BC%*0o<*i9f}l^|`^L#!{aKYt>SOW&+UD&ag@;fb7|w|Cny_Yv=Bz`o(Uf_Q znYZ@kqc#u& z-Xy2wt1omJ9#GoN;yf+~xzoG?pe7TEf!Q_+bOQJoDzbl4rMF|mJga)}SbY{i@M>2) z7jGB^Q8+%BC#!KDSX*ckcbw&2j}|@ed+_gwk10KVSW0c$4c2lKW+ihzJooTQ;#jqU zj60dA=A>A=AU#IKZX#`w^g?)%{RPVq4HDQa?OqOLMBGvRJAo9+S( z)TIaYQ$E2b)d!Bdxbf6nz3>a0P26ue;oVk-56ba9q8ab`W2^7&9tAOle_-1r?|mqK zuWJhtvCI(}Wc>DgaR~~KlgAxV7Q@|ZYGEv^BuOlW$dm!)9@KzRbXeimaV-?%&Q;MH zH%wBQo-sK$;&I*St{(IBsDYIq42y@Tdpr<#r1uD>+1sroGWJ7mT09a3;u;w3;RRaK z>|RJ^&!%lQW-809G2L@ePSUSLwk2=ydCX0BF7Q3Jr78ES8^JuoF(6lRxz9w+U=EO&1Q{j!*p(E zL?MDJ-{;kXnx78Hr~$v!)K0g8!}TZ_dztazzzh;H*nB;H6qSFEC_1b014_2&~A zWOow2TKc3sZ7~R!Ci_N923=YrC5bs-SgIXI1~d==m@&XVKk+DAf_QV!x#WJUb7ViO zqpe>+c^}%ck;ZnA<+5=Fwb(sMA`}{!XJaC*c+4*`A9Rv;q#k!;^qz-<@Y_<**7ErH zPV`fLX4U-`gkA8)cXp<0Yw$Il7^BN=_}u#(Rg)aejyFgD>f~zEd~s&6V&@VJ4P^Bi zQ5%`m-y2|@{LTWjrSD;%P<=G@?%=8+#I@2M$o#5?dj|ZgUI_C-wE2Fmt@p!EH@~Ri zNk+#NLY|ZlYB@0PVvI&7x<$Y1=8xbPx!~KeO&;vs3^`t8QHPr}cfx8?%LjG7p(Tl1 z!cvC(QUy)UEi@n8Z#A?;j~0hKY21U~?p!eb-TXP|nw&w>xP9#uDHaXs7ozNB7o#(L m7r Date: Sat, 14 Apr 2018 11:05:32 +0300 Subject: [PATCH 13/45] Clicksend multiple recipients (#5149) Updated doc to reflect new multiple-recipients feature. --- source/_components/notify.clicksend.markdown | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/_components/notify.clicksend.markdown b/source/_components/notify.clicksend.markdown index f334009e9af..a5f9d587fde 100644 --- a/source/_components/notify.clicksend.markdown +++ b/source/_components/notify.clicksend.markdown @@ -28,6 +28,14 @@ notify: username: CLICKSEND_USERNAME api_key: CLICKSEND_API_KEY recipient: PHONE_NO + +# Multiple recipients +notify: + - platform: clicksend + name: ClickSend + username: CLICKSEND_USERNAME + api_key: CLICKSEND_API_KEY + recipient: [PHONE_NO1, PHONE_NO2] ``` {% configuration %} @@ -44,9 +52,9 @@ api_key: required: true type: string recipient: - description: "Your phone number. This is where you want to send your notification SMS messages, e.g., `09171234567`." + description: "A single or multiple phone numbers. This is where you want to send your SMS notification messages, e.g., `09171234567` or `[09171234567, 09177654321]`." required: true - type: string + type: string or list sender: description: The name or number of the sender. required: false From f3ad3f8ea28ba01df6f71f769ca6818894500ca8 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sat, 14 Apr 2018 02:43:18 -0700 Subject: [PATCH 14/45] Add documentation for homekit controller component (#4966) * Add documentation for homekit controller component * Update docs to match the implementation * :arrow_up: ha_release * :pencil2: Language tweak * :arrow_up: ha_release * :arrow_up: ha_release --- source/_components/discovery.markdown | 9 ++++++ .../_components/homekit_controller.markdown | 31 +++++++++++++++++++ .../light.homekit_controller.markdown | 16 ++++++++++ .../switch.homekit_controller.markdown | 16 ++++++++++ 4 files changed, 72 insertions(+) create mode 100644 source/_components/homekit_controller.markdown create mode 100644 source/_components/light.homekit_controller.markdown create mode 100644 source/_components/switch.homekit_controller.markdown diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 61ea8046b9d..f369ce67c13 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -23,6 +23,7 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi * [DirecTV receivers](/components/media_player.directv/) * [Frontier Silicon internet radios](/components/media_player.frontier_silicon/) * [Google Cast](/components/media_player.cast/) + * [HomeKit](/components/homekit_controller/) * [IKEA Trådfri (Tradfri)](/components/tradfri/) * [Linn / Openhome](/components/media_player.openhome/) * [Logitech Harmony Hub](/components/remote.harmony/) @@ -50,6 +51,8 @@ discovery: ignore: - sonos - samsung_tv + enable: + - homekit ``` Configuration variables: @@ -85,6 +88,12 @@ Valid values for ignore are: * `yamaha`: Yamaha media player * `yeelight`: Yeelight Sunflower bulb +- **enable** (*Optional*): A list of platforms not enabled by default that `discovery` should discover. + +Valid values for enable are: + + * `homekit`: HomeKit accessories +

Home Assistant must be on the same network as the devices for uPnP discovery to work. If running Home Assistant in a [Docker container](/docs/installation/docker/) use switch `--net=host` to put it on the host's network. diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown new file mode 100644 index 00000000000..319f505ef11 --- /dev/null +++ b/source/_components/homekit_controller.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "HomeKit controller support" +description: "Instructions how to integrate your HomeKit devices within Home Assistant." +date: 2018-03-19 21:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Hub +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + +[HomeKit](https://developer.apple.com/homekit/) controller integration for Home Assistant allows you to connect HomeKit accessories to Home Assistant. This component should not be confused with the [HomeKit](homekit) component, which allows you to control Home Assistant devices via HomeKit. + +There is currently support for the following device types within Home Assistant: + +- [Light](../light.homekit_controller) +- [Switch](../switch.homekit_controller) + +The component will be automatically configured if the [`discovery:`](components/discovery/) component is enabled and an enable entry added for HomeKit: + +```yaml +discovery: + enable: + - homekit +``` + +For each detected HomeKit accessory, a configuration prompt will appear in the web front end. Use this to provide the HomeKit PIN. diff --git a/source/_components/light.homekit_controller.markdown b/source/_components/light.homekit_controller.markdown new file mode 100644 index 00000000000..f3f7243a10f --- /dev/null +++ b/source/_components/light.homekit_controller.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "HomeKit Light" +description: "Instructions how to setup HomeKit lights within Home Assistant." +date: 2017-03-19 21:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.68 +--- + +To get your HomeKit lights working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). diff --git a/source/_components/switch.homekit_controller.markdown b/source/_components/switch.homekit_controller.markdown new file mode 100644 index 00000000000..205316bdf27 --- /dev/null +++ b/source/_components/switch.homekit_controller.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "HomeKit Light" +description: "Instructions how to setup HomeKit switches within Home Assistant." +date: 2017-03-19 21:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: apple-homekit.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.68 +--- + +To get your HomeKit switches working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/). From 36a385b5b7b980e5fe20abd895b17926873a7029 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 15 Apr 2018 13:09:30 +0200 Subject: [PATCH 15/45] Added screenshot for binary_sensor device classes icons (#5182) * added screenshot Screenshot of binary_sensors device classes icons added * Added screenshot to docs Screenshot showing icons for binary_sensor device classes added. --- source/_components/binary_sensor.markdown | 5 +++++ .../screenshots/binary_sensor_classes_icons.png | Bin 0 -> 75176 bytes 2 files changed, 5 insertions(+) create mode 100644 source/images/screenshots/binary_sensor_classes_icons.png diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index 588b4df27fb..5826f9c1470 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -39,3 +39,8 @@ The way these sensors are displayed in the frontend can be modified in the [cust - **window**: `On` means open, `Off` means closed For analog sensors please check the [component overview](/components/#sensor). + +

+ +Example of various device classes icons in `On` and `Off` state. +

diff --git a/source/images/screenshots/binary_sensor_classes_icons.png b/source/images/screenshots/binary_sensor_classes_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..53363bcb9906877803ee5ce4afe0cb47cd13aaf6 GIT binary patch literal 75176 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

iwe5xt{z@R*ltliv%V5X>(b;U7h~q5n0is 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 X4=(s1w3=AF4gM)yRh7-WY~uTWr3_w2 literal 0 HcmV?d00001 From ce53c0e9f0e02d02ec827e3e83c1b9c03a3fe372 Mon Sep 17 00:00:00 2001 From: Benedict Aas Date: Sun, 15 Apr 2018 17:52:21 +0100 Subject: [PATCH 16/45] Add more math functions to templates (#5186) Document usage of `sin`, `cos`, `tan`, and `sqrt`, and the `e`, `pi`, and `tau` constants. --- source/_docs/configuration/templating.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 6b3c34b0a0f..9eafdece879 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -80,6 +80,13 @@ Home Assistant adds extensions to allow templates to access all of the current s - `float` will format the output as float. - `strptime(string, format)` will parse a string to a datetime based on a [format][strp-format]. - `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter. +- `sin(value)` will return the sine of the input. Can be used as a filter. +- `cos(value)` will return the cosine of the input. Can be used as a filter. +- `tan(value)` will return the tangent of the input. Can be used as a filter. +- `sqrt(value)` will return the square root of the input. Can be used as a filter. +- `e` mathematical constant, approximately 2.71828. +- `pi` mathematical constant, approximately 3.14159. +- `tau` mathematical constant, approximately 6.28318. - Filter `round(x)` will convert the input to a number and round it to `x` decimals. - Filter `timestamp_local` will convert an UNIX timestamp to local time/data. - Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data. @@ -274,6 +281,10 @@ The following overview contains a couple of options to get the needed values: {% raw %}{{ float(value_json) * (2**10) }}{% endraw %} {% raw %}{{ value_json | log }}{% endraw %} {% raw %}{{ log(1000, 10) }}{% endraw %} +{% raw %}{{ sin(pi / 2) }}{% endraw %} +{% raw %}{{ cos(tau) }}{% endraw %} +{% raw %}{{ tan(pi) }}{% endraw %} +{% raw %}{{ sqrt(e) }}{% endraw %} # Timestamps {% raw %}{{ value_json.tst | timestamp_local }}{% endraw %} From 124a41c3bb84440ef7bb830211e6c6abe9861427 Mon Sep 17 00:00:00 2001 From: GaryOkie <37629938+GaryOkie@users.noreply.github.com> Date: Sun, 15 Apr 2018 13:34:29 -0500 Subject: [PATCH 17/45] Update cover.wink.markdown (#5187) * Update cover.wink.markdown I made a suggestion to W1ll1am to improving the doc to mention availability of the MyQ Cover. He said good call - go for it and edit it. * Remove whitespaces and empty lines --- source/_components/cover.wink.markdown | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/source/_components/cover.wink.markdown b/source/_components/cover.wink.markdown index 8e81d8ac793..8c826341870 100644 --- a/source/_components/cover.wink.markdown +++ b/source/_components/cover.wink.markdown @@ -13,24 +13,20 @@ ha_release: 0.13 ha_iot_class: "Cloud Polling" --- -Wink cover/garage door functionality depends on the product you're using. With GoControl/Linear Home Assistant can open, close, and view state. Chamberlain is currently limited to view only. Meaning Home Assistant will only show the current state of the door and control has been disabled (by Chamberlain). If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control. +Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions. -The following quote is from Wink. - -> As part of our agreement with Chamberlain, third-party access to control Chamberlain garage doors has been restricted. Please contact Chamberlain directly to inquire about permissions. +The [MyQ Cover](/components/cover.myq/) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist. In that case, the semi-functional Wink garage door entity can be hidden via customize.yaml. The requirement is that you have setup [Wink](/components/wink/). - ### {% linkable_title Supported cover devices %} - Bali window treatments - Lutron shades - Pella motorized blinds and shades - GoControl garage door opener -- Chamberlain (Limited functionality) (No Wink hub required) +- Chamberlain MyQ (Limited functionality) (No Wink hub required)

The above devices are confirmed to work, but others may work as well.

- From e607d1bf398628643c56dc0dc6c549a7d039b352 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Mon, 16 Apr 2018 09:50:43 +0200 Subject: [PATCH 18/45] HA category updated (#5194) --- source/_components/device_tracker.xiaomi_miio.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.xiaomi_miio.markdown b/source/_components/device_tracker.xiaomi_miio.markdown index dad5feef5df..ae604043937 100644 --- a/source/_components/device_tracker.xiaomi_miio.markdown +++ b/source/_components/device_tracker.xiaomi_miio.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: xiaomi.png -ha_category: Sensor +ha_category: Presence Detection ha_version: 0.67 ha_iot_class: "Local Polling" --- From 70af38b086588e2b4e1309de0241be3b2401ea34 Mon Sep 17 00:00:00 2001 From: Lincoln Kirchoff Date: Mon, 16 Apr 2018 13:34:50 -0500 Subject: [PATCH 19/45] Add climate.modbus module documentation (#4593) * Added climate.modbus module documentation * Update climate.modbus.markdown Updated IOT class Local Push to Local Polling. * Reviewed comments for changes Added configuration tags, removed optional configuration values, and set the correct release version. * Fixed formatting with the configuration settings * :arrow_up: ha_release -> 0.68 --- source/_components/climate.modbus.markdown | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 source/_components/climate.modbus.markdown diff --git a/source/_components/climate.modbus.markdown b/source/_components/climate.modbus.markdown new file mode 100644 index 00000000000..f489d27a4ba --- /dev/null +++ b/source/_components/climate.modbus.markdown @@ -0,0 +1,70 @@ +--- +layout: page +title: "Modbus" +description: "Instructions how to integrate a Modbus thermostat within Home Assistant." +date: 2018-01-29 9:35 +sidebar: true +comments: false +sharing: true +footer: true +logo: modbus.png +ha_category: Thermostat +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + + +The `modbus` thermostat allows you to use a sensor value (current temperature) +and target value (target temperature) from [Modbus](http://www.modbus.org/) +registers. + +To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file: + +```yaml +climate: + - platform: modbus + name: Watlow F4T + slave: 1 + target_temp_register: 2782 + current_temp_register: 27586 + +``` + +{% configuration %} +name: + description: Name of the device + required: true + type: string +slave: + description: The number of the slave (Optional for tcp and upd Modbus, use 1). + required: true + type: int +target_temp_register: + description: Register number for target temperature (Setpoint). + required: true + type: int +current_temp_register: + description: Register number for current temperature (Process value). + required: true + type: int +data_type: + description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format. + Default float. + required: false + type: string +count: + description: Number of registers to read. + required: false + type: int +precision: + description: Number of valid decimals, default 0. + required: false + type: int +{% endconfiguration %} + + +### {% linkable_title Services %} + +| Service | Description | +| ------- | ----------- | +| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` | From 560108c659bbc1d89c28892ab1180c38917a947b Mon Sep 17 00:00:00 2001 From: Khole Date: Mon, 16 Apr 2018 20:01:43 +0100 Subject: [PATCH 20/45] Hive R3 update (#4974) * R3-Dev * R3 - Sensor Update --- source/_components/binary_sensor.hive.markdown | 2 +- source/_components/sensor.hive.markdown | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/_components/binary_sensor.hive.markdown b/source/_components/binary_sensor.hive.markdown index ef695f46014..ffba6e29d16 100644 --- a/source/_components/binary_sensor.hive.markdown +++ b/source/_components/binary_sensor.hive.markdown @@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling" The 'hive' binary sensor component integrates your Hive sensors into Home Assistant. -The Hive sensor component supports the following Hive products: +The Hive binary sensor component supports the following Hive products: - **Hive Window or Door Sensor** - **Hive Motion Sensor** diff --git a/source/_components/sensor.hive.markdown b/source/_components/sensor.hive.markdown index 3e7350e147c..4fa0221f31a 100644 --- a/source/_components/sensor.hive.markdown +++ b/source/_components/sensor.hive.markdown @@ -14,8 +14,11 @@ ha_iot_class: "Cloud Polling" --- -The 'hive' sensor component can expose as a sensor the current online status of your Hive Hub. +The 'hive' sensor component exposes hive data as a sensor. +The Hive sensor component exposes the following sensors: +- **Hive Hub Online Status** +- **Hive Outside Temperature**

Full configuration details can be found on the main [Hive component](/components/hive/) page. From 078167bb033d76addaf27b8f406474604c07af6f Mon Sep 17 00:00:00 2001 From: Heiko Thiery Date: Tue, 17 Apr 2018 19:06:39 +0200 Subject: [PATCH 21/45] Add documentation for AVM fritzbox smarthome component (#4076) * Add documentation for fritzhome Signed-off-by: Heiko Thiery * change component name and configuration Signed-off-by: Heiko Thiery * followed review comments Signed-off-by: Heiko Thiery * another rename Signed-off-by: Heiko Thiery * remove default from host Signed-off-by: Heiko Thiery * add documentation for device attributes Signed-off-by: Heiko Thiery * bump to ha_release 0.65 Signed-off-by: Heiko Thiery * :pencil2: Some spelling and grammar fixes * :pencil2: Grammar and spelling updates * :pencil2: Small grammar & spelling changes * :arrow_up: ha_release -> 0.68 --- source/_components/climate.fritzbox.markdown | 28 ++++++++++ source/_components/fritzbox.markdown | 54 ++++++++++++++++++++ source/_components/switch.fritzbox.markdown | 31 +++++++++++ 3 files changed, 113 insertions(+) create mode 100644 source/_components/climate.fritzbox.markdown create mode 100644 source/_components/fritzbox.markdown create mode 100644 source/_components/switch.fritzbox.markdown diff --git a/source/_components/climate.fritzbox.markdown b/source/_components/climate.fritzbox.markdown new file mode 100644 index 00000000000..65975ca77c5 --- /dev/null +++ b/source/_components/climate.fritzbox.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Fritzbox Thermostat" +description: "Instructions on how to integrate the AVM Fritzbox thermostat." +date: 2017-11-12 17:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: avm.png +ha_category: Climate +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + +

+To get AVM fritzbox thermostat follow the instructions for the general [Fritzbox](/components/fritzbox/). +

+ +### {% linkable_title Attributes %} + +The are several attributes that can be useful for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `device_locked` | The state of the key lock at the device. +| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. +| `low_battery` | The low battery state indication. diff --git a/source/_components/fritzbox.markdown b/source/_components/fritzbox.markdown new file mode 100644 index 00000000000..8d601368ebd --- /dev/null +++ b/source/_components/fritzbox.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Fritzbox" +description: "Instructions on how to integrate the AVM Fritzbox Smart Home components." +date: 2018-02-18 17:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: avm.png +ha_category: Hub +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + +The [AVM](www.avm.de) Fritzbox component for Home Assistant allows you to integrate the switch and climate devices. + +#### {% linkable_title Tested Devices %} + +- [FRITZ!Box 6490 Cable](https://avm.de/produkte/fritzbox/fritzbox-6490-cable/) +- [FRITZ!DECT 200](https://avm.de/produkte/fritzdect/fritzdect-200/) +- [Eurotronic Comet DECT](https://www.eurotronic.org/produkte/comet-dect.html) + + +## {% linkable_title Setup %} + +```yaml +# Example configuration.yaml entry +fritzbox: + devices: + - host: fritz.box + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +{% configuration %} + devices: + description: A list of Fritzbox devices. + required: true + type: map + keys: + host: + description: The hostname or IP address of the Fritzbox. + required: true + type: optional + username: + description: The username for Smart Home access. + required: true + type: string + password: + description: The password of the user. + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/switch.fritzbox.markdown b/source/_components/switch.fritzbox.markdown new file mode 100644 index 00000000000..83657be0c88 --- /dev/null +++ b/source/_components/switch.fritzbox.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "Fritzbox Switch" +description: "Instructions on how to integrate the AVM Fritzbox switch." +date: 2017-11-12 17:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: avm.png +ha_category: Switch +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + +

+To get AVM Fritzbox switch follow the instructions for the general [Fritzbox](/components/fritzbox/). +

+ +### {% linkable_title Attributes %} + +The are several attributes that can be useful for automations and templates. + +| Attribute | Description | +| --------- | ----------- | +| `device_locked` | The state of the key lock at the device. +| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface. +| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor). +| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor). +| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function). +| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function). From e1747451fce0a1fe71a49dc7200677087c6be2d8 Mon Sep 17 00:00:00 2001 From: ChristianKuehnel Date: Tue, 17 Apr 2018 19:10:16 +0200 Subject: [PATCH 22/45] bmw_connected_drive: added documentation for new services (#5055) * added documentation for the newly implemented services * added documentation for update_state service * improved documentation * :pencil2: Several improvements. --- .../_components/bmw_connected_drive.markdown | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/source/_components/bmw_connected_drive.markdown b/source/_components/bmw_connected_drive.markdown index fe8cabc71ac..fe2d698b94e 100644 --- a/source/_components/bmw_connected_drive.markdown +++ b/source/_components/bmw_connected_drive.markdown @@ -12,7 +12,7 @@ ha_category: Hub ha_release: 0.64 --- -This component lets you retrieve data on your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account and a Connected Drive enabled vehicle for this to work. +This component lets you retrieve data on your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account, and a Connected Drive enabled vehicle for this to work. For compatibility with your BMW vehicle check the [bimmer_connected page](https://github.com/m1n3rva/bimmer_connected) on github. @@ -52,6 +52,38 @@ bmw_connected_drive: type: string {% endconfiguration %} +## {% linkable_title Services %} + +The `bmw_connected_drive` component offers several services. In case you need to provide the vehicle identification number (VIN) as a parameter, you can see the VIN in the attributes of the device tracker for the vehicle. The VIN is a 17 digit alphanumeric string, e.g., `WBANXXXXXX1234567`. + +Using these services will impact the state of your vehicle. So use these services with care! + +### {% linkable_title Locking and unlocking %} + +The vehicle can be locked and unlocked via the lock component that is created automatically for each vehicle. Before invoking these services, make sure it's safe to lock/unlock the vehicle in the current situation. + +### {% linkable_title Air condition %} + +The air condition of the vehicle can be activated with the service `bmw_connected_drive.activate_air_conditioning`. + +What exactly is started here depends on the type of vehicle. It might range from just ventilation over auxiliary heating to real air conditioning. If your vehicle is equipped with auxiliary heating, only trigger this service if the vehicle is parked in a location where it is safe to use it (e.g., not in an underground parking or closed garage). + +The vehicle is identified via the parameter `vin`. + +### {% linkable_title Sound the horn %} + +The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`. + +### {% linkable_title Flash the lights %} + +The service `bmw_connected_drive.light_flash' flashes the lights of the vehicle. The vehicle is identified via the parameter `vin`. + +### {% linkable_title Update the state %} + +The service `bmw_connected_drive.update_state`fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles. + +This service does not require any attributes. + ## {% linkable_title Disclaimer %} This software is not affiliated with or endorsed by BMW Group. From 04560310f95a80d0d060192120ba914bf56902ea Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 17 Apr 2018 18:11:44 +0100 Subject: [PATCH 23/45] Adds Sigfox sensor docs (#5130) * Create sensor.sigfox.markdown * Adds name * Address reviewer comments * Update logo * Add files via upload * :pencil2: Markdown tweak --- source/_components/sensor.sigfox.markdown | 47 ++++++++++++++++++++++ source/images/supported_brands/sigfox.png | Bin 0 -> 334112 bytes 2 files changed, 47 insertions(+) create mode 100644 source/_components/sensor.sigfox.markdown create mode 100644 source/images/supported_brands/sigfox.png diff --git a/source/_components/sensor.sigfox.markdown b/source/_components/sensor.sigfox.markdown new file mode 100644 index 00000000000..f3f0bbb0ea5 --- /dev/null +++ b/source/_components/sensor.sigfox.markdown @@ -0,0 +1,47 @@ +--- +layout: page +title: "Sigfox Sensor" +description: "Display messages from Sigfox devices in Home Assistant." +date: 2018-04-07 12:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: sigfox.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.68 +--- + +[SigFox](https://www.sigfox.com/en) component adding a sensor for each Sigfox device registered with your account. The default name of sensors is `sigfox_{DEVICE_ID}` where `DEVICE_ID` is the devices Sigfox ID. The state of an added Sigfox sensor is the payload of the last message published by that device. Additionally, there are attributes for the latitude and longitude coordinates of the device, as well as the signal-to-noise ratio ( [snr](https://en.wikipedia.org/wiki/Signal-to-noise_ratio)). + +```yaml +# Example configuration.yaml entry +sensor: + - platform: sigfox + api_login: your_api_login + api_password: your_api_password +``` + +{% configuration %} +api_login: + description: Your Sigfox API login. + required: true + type: string +api_password: + description: Your Sigfox API password. + required: true + type: string +name: + description: The name to prepend to the device ID. + required: false + default: "sigfox" + type: string +{% endconfiguration %} + +Note that `your_api_login` and `your_api_password` are your **API access credentials** which can be accessed by following: + +1. Log into [Sigfox backend](https://backend.sigfox.com) +1. Select `GROUP` +1. Select `API ACCESS` +1. Click on `new` and create new access entry diff --git a/source/images/supported_brands/sigfox.png b/source/images/supported_brands/sigfox.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc7200ec810d5e80b21bfe53a70846eeb8b97f3 GIT binary patch literal 334112 zcmeFZcUV(d)ab1d1{4KsfQo>qAkw8KR7FL)f+9#&q)CT_Ud%X(4hSkp4MhGzxv|1l(|tiAU7t+n>r<<416^g4Fph7GhAtk3Hq^)%EGW)5~j zm#;cpF&A>Ta|Ev1utC-x0erMGM_%S~x3jf(LAc9tldnJkpTVz%xw*)fAZ_Hh^)$|M zDLFWsb4dt^3yE;cZ{gzNl6AgnfzUpA`rGZmUvk`5NTee|SlG?YO~_45$idlCSQHM2 z3yT~RK6XqHxI)my!yb9rUC`d;;L1Z*pL5dO#mw2-5ozsU&jmjB@)ZXZQjVJ&e9`xR zD{@{n`~DtBl(Q}QEmzHi&27!?%yF%8$8C|+--6eJ>bA88dl6xK+1^r)+gjQZ@*bk=z3aYkL>uWqUJom6P%)l=W4_W%yS%bm5xiFIxZq{N=a1W*s<@=UAvXyr7Q1LSyL6*9&4aI-yVDNXOE@0 z^&gMba<;a#w!dt9a_!aRo{%_sOhg)fOdKwD;`GTAqM~q7@#E4GaFLT@q7ov~O46$$ z|KNU#cYqKefJ=aWxD0v%c~M#6e|$%AJa4igO*&xNK%^k92Uc;v#C`-bcr4I{2|v3(Xy_Q( zr5$^*=uOZENC}W7Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd} zKomd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd}Komd} zKomd}Komd}Komd}{0~zw*?HD?^(+8L`TxVphZGJe9P;@P1rP-g1rP-g1rP-g1rP-g z1rP-g1^*XOuyLdTO+FXs-m=ZXL;n{E2Axd=9nb`wQUy@}Q23EjGV&t7fVuxz9CX`^u9rHf)w{ zY5!t)XiSWD$H$B}5I*nrra%5USMSMojY0IK_6pPI8ZS631eYTfUls`-Idlc#yNQ3^ zB)Oz@Zs3||o5DsI4LviL;`I&C2S^E!B|sEF6hIU}6hIU}6hIU}6hIU}6hIU}6hIU} z6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6hIU}6s(tmBX?NU zR?h-}w6|XEK^lWJ26cdMkZz$Rr*;bqo!be8DzLG6aR(WJNz`xp{ zW{xu}_qI@iN>h31-m=>Eq%38)3-7$b+g$CS3U)>os#8#~)~sy8KH2B5OkR2YN_$@p zfkoA)^wh93w^8e&inSt|)jgR1qSL_0)E?jzq zl^T8c^owg4!?~f;rTHEQLgsAyM|jHw5bDfL88dw!`~1P?a@6f>Sw>77GZw)4B}}C6 zj&-Q3XUA*~$?dyRAcslUq_T@(hUc-f?&hLH(IM?=ZfQXV7b`r346D!KUQT=+)G_F& zedyEr*bdKxHOWB~8mbm??|GlHSSk=mCE0%?^Eqxy|1xHdS_A0iJ6M9b4skuA1#6Wy`{eBkb3+kF=_0S9=I8yc{kR z&UKqfKj|$Qc_Xb2wk~rNr2)+Gx7d`m(}9+*jvM!m6jz=2nBi7`$nH}7yF;f2B_huc zo@1mvcW%1@4eh0V#<)-C{@~F${%3rAoMUNl@Af)gOv0I*#<1vJL5*8><9oN+?e-D~ zm9axNGK6Xig=L3!N4E_d6g_$;#{aHnZGsW?Q?nfnqoYMgFFILtz8DDDn50xwW3h+ zJ)NEc1EQM5pqC@~ly`BO1*8=5X!(a@;quX%R-WOzW+~4-!k%GZcY0lOAaz`I*@N3n z>#c_8$*S7Tcts}RxS4-g07yijv_?WNo9=L#^>oEasv&z(2lXIjtsN$A|o`N*es z4xJv9n23zQSO?xsV!QDtx{{NdWYgGZ21__R#tzE{l+joFm6q6~2?AJ*IjznyMWs)Lk!M@wWutzy}Mv=Cvn6J;CpmC#S^ILSu=w*1O(96)%?RYyx&3f zW9BOu+^vzd`jk?^yc(Yr{^g_WvF;$2QY%ZhJ}3J?xB3rzn$1Lmzi2lLW^1x%%mkC0 zm0syea0`D?AId4eXjO1~@Kg3dBaEhP>80>$Dpegp`#)c9K4?h_imOQ>nZZ$|TzDkWu1i!Qqi;QJy2Rhx_^74Sla7~?H#U01*kCn{ znTy)Eg>dI6GeUu^WqtWrsh%Z4ug1*qV#|-(bA_WX2G#oT_W+%t1p}33iN%wJ#b3wa zHUz_E6$;g&H|_Y4{qZJ~M%TN_Bn)SVIPrz~3k|yL_)n*{gfdvV_`1bLEN0m_c+a!4 z>R;WvE{1Q@=Oe978iz_!s!*}l3kH`W1`zMy{W<+gWIY<$!{>&g5y2tDFCr?XTP8n& z&=@}}yxDT6Z)!<2*y%a(%@oki;+evI)qQ>{DFsI)h}_}K&1ak`Y=3V1hkW0GuM?~h zT2{{TDNR#Cdpu1QrUrxpu>Lys-N;%E77fH%?KBL!pZwHtx5hK$oDMJE$G; zv_WsGhen}9%q9D`@RH|W?vOT_xp_9Utf)N_Z|uhxD_?|bzNjfX4`t~i(cRoHc=@c>DYa$u%df1-mR^{j+pH%R_74D z$eCS93xAO^_d5n*GSYeZS%BQkr^`cWV}}Qd`h>%hmLD0OnEdFx`Tb4&j>qFI$`2^G zZ{R>D1bNOz-LNm3dSb7tH6~8nj1Oj9PLWII3=SCxE$ezxH#{ca-;ihMx5(Ko%8~56 zg`yYN;HC~@t39JwL}Q3(N}n0crevONKbnDb6>+TO2!7$2^ZU9Rt`ep5$D)mbU1_KE zV#cHNeg{n|NTMVk?40mt_K#4X+)Mmw%-C%_o#a?ZY@F_0UFLU!pENCuH>q$QWo3TI zaL1cM0>DEu!AEZ5X4ExfJNvzz;lq7ZgunWH2V612ehG#m^F=oHg+#mXWRjO(H|hA# zOp3CVBHS>c{d@1TCTdWsAzQUKVD=rJ2cvMrQhur1r82ME37rb174W z4QSO~((D0i?y`af)1jS&z}G-SWG%H-hF&0oNk0R=7}X~%;qkAfh6pudsW{&7^-vijh?<(!ZxR+F4XOm(=WPwI|! z1(t_kU{P&EP#PIm<}w&2k>}@XLrFH(+;oD~how<&Q|1UDn5ec2X8W;c%mWz!5F^R# zA8#7%G*h0%ALNr@eNu#*Z>*P;YBHdVCVC#|1gYZBx0|y<6k6>HwH&lbxWt5J{+@@7 zx_Z5_JOrs4j@-VP(gnO*cfqTY53y@aU*+N7zcJ+m?5dqEu#&0`B3x*G(!r`UDF^N91@Fr zvQYDKI5=F(uSZ&X>3&;^_c?EQH$<6t?OjVB@2gQQM}FRd?-a$Kf-N2HWht>$rW`t8 z&u;FYFne|}F+36DS2me*P19lOloZexn8y!(2^3}&!}ynXq1Ch}`C{TYdJK)I5}3?M z*vH3@2%*iKC6h9GPU^H4(M`qEL!(k9r3>5bUDfLc^{6!a10udR05H}2yBvuPXG$eC zD14=&>1*232&pGLWm%X{p(U|TN(XrcMAHF`f6fNb6~5C}jfs2`;~Fwmv?mpCKp3f_ z=!*}2E1AmpyRJ9~ZP)h=OJdIiU>YGy=E}H*R~PMN=Z6)4LNtZ^KyTer0wPEG7Y-z) zdqYptdy6hx4LzAj#sqf~97YQU?OR8kKMh` z)7-xz@3(7c0I6xW9-vabzzxN^o%mOe+#WuRld?pGGmZ}EjhsT1{5d;7PH@L!+)jge z;5U6&6pzUyJM1cU(HSZhlY3Oat+{)REvo?RF zJfeeX=}l_m9=C1gZc*zIIz?nOC`P1d`ssUqEs&c7Ft>jIWKLZN zy-t&A)4(jyvl%3TsaUVZI(UquaX<64VNNU`9Uw39s)wM_=5}$9Hq-* z+la33SHc}2I;bWGci7|s;i7hj@awik zHFm+Z_3RH?GaeDHv&>5$XXU8J|=@(zRnf#tL z-&Xo~#bTUFT*2gy>}Q4wM9I5-oM+JsS}Wz>%OwX{IQ6Q=Co{&9PV#{{iL zT}kyV$-CW~k)7J;;4TkGQvN=B>G|of*q#>@K6dTqA1EE9coQpN4%l~gXDES6Nm0W^;w>yUjdS7WF{N?0s;SoHkNX26?6y$a z?@!c!9lLQ$K5}rw#)oTk0qs^~ev4N&%+T~Z7b`o{olG(wJ63Nhw~NH)pEgt2vsAY~ zsqkhUTjg*mMP|y3S{yl7f7heSjhuOZ>3rdki0KLAK{#k=S*52WQ-rVQPq0Zj$sEy$ z7(u-7yz$vNY3IXUFQm|icjWg*jY=u-CXy_}t>miz+wLi}4z_p%j9~NEzpNQ7Xt~o$ zy+aFh_{OmC@n;w>bai^=%x@mCe|a7m5REOm;&Zts)&pabv2$$%r*@2mZyV*1CMH>#{Fk%WikJNR4+={;GEkojReeKk*!1-NKsx z`Z!=`EfGJrGa!8}6)Qb}_tuOW#KidK7CaK7DDCJmqWi{XelIUd)s49%v=5Q?yvzwc zoymi~yxl5lvN5&Hr*2PqW3c?1a6j*)z9YaG+sQk%?j%K*p^q~dM*1B^HTqZQrViNd z7q*QQJG%pD1IsV4LQcU$U7zq6-Lr^RP~nwY))qdvR#eH{1&eNtnTzNo7C&8(pMsm0 zG^@Qxk^stlic%6WaU}yCmWw$0$!Dji!s>tXjy(f_Vs*$QI*HOnh@6DA4$vjGO{O%y zzcD>{ZS1h1i@y;fyTeRAxhu1Y-_efXfX=YF7SS;LP+A3%&Xo1U~RlV zsMY&4!MN0-c{Fb+d?MUknC~Iect*P|%xjlSIQ+=3Ap%er06(H~z^Z@9~ncunE*+P$_`IoQ~fH!wbI@hI`K64=y=k*YW-q32|^8 z{>=0q*t{pXC6x9FMBR({hg2AKWwM2YgbiF`5@27|e#SYr2&f=w^=sI6i$9_!Q&%5cn zbI5E08g%K}x#2at;8Khi1guUu*}gE}F#Y8?=bte%55hct19RE@-1N#J*}4ocF^@TAI7Lm)yUUzU$}iMjZCs_^ZtQ9GTJ#y+B`p-= zd)C;mwVr@6(WT*duSuKClX(PfKRfg6HE1b*dB% z4F?)_qxz;&oKQVSVdY^#r%%P<*)?K%Oh9eTDFdjnH3RM%EVR9_cqA8=VE<^b?^~%y z_metG7{xK43by~QlbrBcZ_TH4z-KzlzvMmXob5xZlI|87ey^A`FrxiC{Vd9ZF3i43 zQ4!`Vn~^QvpX{m%qdRgBcLB)BH1j{+%5qS^J`7#+@IP%F4ZXJ(5RFQAQJSG*ydOH1 zG#>uAr!X%wE-rbp~6Fc1X|Pko{oQZbCaU`H{Ga(*lPWbLqg=9NPFU?QhW04m(W z9%}`nPOYxaf|)0n9wQ;nxf?*T`LaOi*ecg(r`_bzuU+9zVPS%o@2sr5VLj21CQK{d z11Hf@Kep)hmTnzrUB~VK3%;9~1*wLJx|Ocq%V1CY8p^aGKd#WHe$hWPYWcpVCa0!`SkKVZmhU*Bw*z%w z*Wo)ccP9Uwn6J@MtzI&=KiM5E>8~B%K@?YTZoX^j=X|6Hw`&~@F?~(5P+fa)`c*dN zSPZ>;_uB%M)+fQC92{Ax!L#YAk#4pti9&bt>zUsvI_O^uja0elYNg0`h$YrbzW_P7 zjX2+E@`TfVEG2oZPIOwW_er+hL?NnGA$fsgTuO})yfxwq+KmafH4_n02$5q(xbjr zF#f55)$(dx`=PW>ms(8a5?DcUF*B@RnI|F#V4!6(c`7CvT>~1#Af&6Oy^DcMiWhynp||wgVVeZhIHd z@EfHLZW)tH^}IeW46B?cF~;)+w-2)vBCYZ&yl)j*js^}y8-V_TA#D$#!u>}vYDTBE zzB9(F6XPr|hOdjp;i4Q`@M{+MafkHK#$?U3*pcEx$qS7<62tzfGF{AUGU$wqNWH0h z)ysYAtT{nlsVJ^r?;;>f#T>V{5T?3=?J{~lak6o-lfnP=SLsWVY=9p|@l-EPk^@w`SI54`Z z6;Z|wiu8+8h2Nc2g;xBYvV-vLR6hz7U~@d|s)$1`$Ij29#*||!-+NRJ?0N1FgqZw` zKsEGxyvb_ds6Ln10L&(?WY7FgNrmBv;KgRpx+?NxS=X}c#il7Sw{fqUu!`;&3mJzq zS`O(?!`E`?t-8JWDLCKw=)w$vqNOXdh7upTMo(W?+@5bf5oP8a`WAj=!Lf*tu=VR-2s%s*z=~F zl{6)q zU_z6R#%x;q&Tv=r)a_i38(?{(5izoJh2slE4Z6%*+Ek|d-vLq4h8B?~S8#(WfMP$< zFscX(?Q}Di&d%SGMbE6~i%t&R_h3nG5j9gzbeK@7E{oZ}YMP@vKNMdcaEfkqD0v!P zxLkQtY1C_3Q+5*OucfP37@x z$qU(|m|#Tk4N_3;|91K@Y-z9H^%~_;cqnlohnPYf*TL1~sXpKFT_GcU4YtO4Qz`{2 z8GK5?-7X(?0u@2Y>155)4=N21EADgH`B(eIfD15Za69-?%o=-u1DsusLD zbd$kf_sQny9bB38Xik19o<+O4;e~gA!PjI9&d1hsH>j@;PHE5e^}5xtm77Orb4r>LQ5t~heE0h?kB=+&AZO2xNmGGL59+PoMZ){4W`BpB^;N*%*nmC<3`)J{o=!f~ zqI}#>MxS`I6vv+udJlLBh7X4En`f2?#^KBTZVcXDzPecpGk zRM_p+Xe`J&Xe2qAjUn0mc_ZM~rKLB$UlRlykP}QMK79rXqV35Iaz9ZcWeZI+VKIN% zTS`%BfNc-DZSwJb;)MjDFrwD`M^isTBi#gVH9==a;+@O4OBDlXJj1ui`FLI%<^^(Y z)=-xs$ET-+d(KtraJlX4DPya@IDDRp5lU-yb*P6WqH z+A5d)DJAMV)Syu&ty$^B0#v)02aV(>wTO#d0gbe?PvlO^t$OA_G`1qgK&!LZclZ<> zwVcaNP_FDf6Qp<@TT0_xIU_o4-uFEOP(J-%#4{C!)f&foP!@DH!t7Y`4{$yhQ|&oQ z<3D!gZPDY&s0(sSMTnYeILb|6H}Ngd>^Oizy22?_zoc%bGnt9huIs1XQ5bJ2qh% zMMthiw`E*A^)D^>Q7(iI+l;*AYFtS%s{>5#-J}^)*W%N0HIdG4@a_W^i`~HXX@@M! z88s{xO_nYw^*M4`ep7QhZ>Duun7;#@4a|!ax{;eope#t?v1c&p?g{5mI5*_w^8}O{}cx8wB4!#&s9e`@Y@Je z@x)}1Sbr{eFu$)CxuD{q>u9N=3?4qLlD+j2qHx3$r-yLmDZR zG_OpQd|x&Lrh|ELa-Rwpo8AIu;d{MN>9FI-tw=g8B*{iq z$DoSv`m99q9vF@8iQWO5+@9hCK;`)26&J6yDXvuj{$2B@Re+&-!es8GDuoizc$R#` zvg6PbwV4k*#_Buzx?dxL-%un2>vvl7DFH5K?5)FZiYo1e-$iRDlPV?y2L?Q&Ru?^p zSfTIQ_?g=!>rWW~wFrK%j6IV}(+3qz-D#ckTt4MU#Z6_DcRZ^5^^V&JD?iY%CrFZN zR(B&z=|F=DFViW`C@w|Q2p|nh@wgCGdoh_r;&1e5W142db-ZUFTcXu{>^bEU@7e*B zfpHu0d0~>F^rQ@a(AT8#@yz&B8kU0%>NWBnqNJMDgyG+{ye4$E5uk6oiBlp(8T zw|isfdBA?rMlhX}cMj??-sW@F3$KuuV>>0dS9?()0jpx&(VvtODVXX|Hl|DS2|XNjyWdUfu74ZS6S`K%!0!r>CA{I28h82Fz#+@Q%$4bYwooo4 zRnExSuBZO27|+|=c))~?$}4B;#H%Qve+Rl?{=nzKrv8A&*)FEAYJXo-g`tP5ZFJqN z>7e6JC95=~yz-$z!noNYPaq8hQcUc$HbvfEb(gOgqM>0cF)|!_jW`ls4D|)0j~5 z$hm{rfcB-)mQUKo@TdCpPXZQ}Sq9U% z=IiZe)4ZMmcRP1OHa@eFG7>T~W6Bvi=s}4*lsjK>E9q1K2EUO;lXZx*M=rx)a zz8E8;j$()r4FYCu!D8rvyyLA?I0HGU0aOoVeb7k3WxnlTdWV(~W?x^v@#<*ZdCvY? z)Ut7lyADvaQO0~<|9x_0dEW&$?-{&?y>F4MpCUVGZKeve_C*%+wf>3D2ZwxH_z(Wg z$o>nlz!F8v5v{@N)IFYwz1UcB%zB)aQP9v1Ea+TA&nII{Ozef`P9TI8GF}Unrr%tt zK*vwPIuOyV^|F3bqj|n5fD0;o_3_oC7C(&*T$xv4{v1*{(_ar8)SjSv!+%SN76n)A zu$7)yrX0N}_P}B$}t%RX+}*Pg~}f61@B z(xq-(fFSpBo2Bb%7|n0|_jG(en7U=}`*r`LXqpYqfL|I{%cGQEj{}_!tWu+Ec}7Fu z2?Tnk@M?eg2X(`x8HVym_HUCnK<*jMq%f6FOi3FbM>d|)s0+4D{#|D$mk2X@WS)JK zQ|{(p7ewSGICau?G1-X{34s)Bc^Fb60I+IP2N+x~3wZr0&+!pX0MDdp$v0vv7n?57 zNTx47%mLP8FGpI+Tnxp@nJs7zo}{7Q8V$_3mDY>e3ZGJ-Y~ZR#U&Wi+gn;E=Kne4y zvA+f7_nB8PhW}gIWs?NB%$Z+wP zcd1qP{Sv&xdg#6auf$F;h--L$ofyADN7>3B3-LW904pEF6FLg(sGX<^4LGvdMw|}C z^~<+bUp`b(QihSC&k-RR3+RJnLRZ{O}wx?Qe50W69}p1&brwTSt?H zfXNH$ifmg+Wizl8w?|!}$2*=Q?3?pX;1?;e9|&#gUp}YlxG)%df&gTunTn-$%`r2} z15))Rc7N0ZT3Uz7Uv5T**_ks?1sALpJ$r1B(A}~5SC8IH-xS)+%w~kH#otOOQ}uhl zIFB@5Lcf>0^-VG8SZu|VSfxW$`$QhF(uXOm>84Vt08rWCLl5}6Wprn2M|XsOSL)9{ zh>U<1IW6@>fwCC_d5W6*!o3)VLBF&erVwpGvcxS%`RI5m8yDT4P5RcCN{2xGWD-*% z6-N3O3V0;6_C9XOK5<=9jn;X{)|U8wfAr5K`0hk9p<4pP^fig;W^V4Fu515832GHiBB(>}!RbmzrLno@YyuKPB${qu(Z`~nn zk>CD)+pi-EWP&scy)B=M8Dc0c)-(}-uc=}h7`9;LX&ANOaSu776k@xhIkSS{9N+qr zUjQ7MRBCGZjP8U>SSDf^O+LEXY5|T84lA&htn=VnPY%cY;c)M=oh$22ij;XHOmMeV zqbQ#44vPSe zdZ=2BDMK*MM)xJF7iim}Fu24%7O{GEO6#ZW_aCT7aUU&Dhr5;K+LALcl)+)cgsVG% z$862RCWVsbabAVXp-}^^I8szMp6=V&3T?hadMq=tw(HKqK$8Yley;?# zY9U9I{PPjff|2+(&EI{=ya! zz~@{;AJncQB+eieFs|Zdz}h!MeXV=noCO1et)YU8H!ne~s)koUwqq-3J7w7Z5!>;` zM;T0h$p}g-r+PKz8^6)9RX1Mj!{`XLa)5!nR@B~SzT&`y33}5`_Y+ZXE`0~NHh zwA_>h9>r9esDAAr-4aLt!wp-|&0wL)f1nyyFq@Jl{X&UcNkDI6mbPCEOWyBox#V3% z%&R_@%4o`$2=pEs0EiZkEau)6zw`zb+fp2t*V`!37~C(ENn$n zKhqO8H-(78S~Z-oRI3olH*95g^&n6LxojY*p)PKTbU~Ou+1m=1HRqVE5JEb`H>%J7 zy2Ah#-^Z}TG@qlg^>~)I#Q3@UU|GV9=W}S&yNgd|`j?~RLl?yyYK+tSK&cg%VU>wE zruJ;#fo34qSF7bP_|Ng4KYkrczZt1hx=f#wdg0f_xQ@kwNwCPZeUzgoQ+nDcCpV*}> zp=Dd+KJ;8d{Y&il5!7fWmI!u2Ih;C$7vQ>wd)6c%QVEh%q1>DAJloKd>{8?x$rIgk zrmVpm z3vn`YEAHf5BhW2dkd2!zdAS0+2;*yE^_nshyNO1#=EP#z_ZIY)poO5FSUNLqCt>?`k#-{hdwMU0Sttr*VriQkkAiR3v{etn-bu2f{Sh)65Ir8F? z6+&vcfqNkO1i4M8Rl#LYOmVSu?aL|}b0LlS)u)w*My59Cybv|5x^(pex@@U%wYvjF8A*A9ORX6&BUJLz#Il?#(-+yDg=At-X z*-Lh-D*}vo=6^QeC*NfD!$Qn%nO{3IFo7_AsC2=Y9&i!RG@NHM3Q5g=fbeg^!-S^s#z^u(!%}8x`i9nFK$YZwS+~}+ZwwKl}iFy?k64~ zdLd>M?&UO5cHhsCBgd~FZ$w-%ip9+fC$CK;<76!Tgi8)`cABKLt*Dzw8>E)ZnQeWo zdVC;>l!9pt7F=Z11sxIF=KeY(Gvr?7^`zJWk>ED9z{V4lea3bi&C_-4cO#of0Hhl% z5$Y)(C?K75A;!#pxzXL}OTM;O9<4E)E1N5WYPF1NT2R32&-U})0lGd&htEX6fSAMXld@F#ElR8)W&^~?Ss zh#(?0fy$T^1sk3i3@MYB3+aVoKk^Y~lH8DS;XKi-i6+-dOP?MMAuAWlO&ioDLh8L^ zzZ8POiLvNkAuH!R?5>*s(e3LR?<6bI(NM++`fNSZV_hwua5CVgk+2iJ*4D~P-kx5* z#|!>=s{bc#8o7(oSgj;A?BF>-^=y`#Ts?zt;8N^Wq$z~=cydi$qf+Tl80iD|Ogs5x z)t#ca5dCIzXKB8*1?VWSvM~Qdo-(--vE{|T#^3HEL|U%Y*K7D!5*J`Sfj^IggWyi4 zXt$Tg!9LJCYkEwo$H?))X0mlrJeaDj6lMu}S{7hU_S2ifUH2))&r~y2o|{hBBl{7$ zqo2iOoJ(z+J4kA{+>v>Ex@RfiPRq0%A6nXqeFqYE?yMzLy@+dgmO!2x4m%f*)9BH! zzzhEE+?W4kgiRl9aaE>Ono3rIyV!7&o%tgr?O4kKX_h`?m6%HNf&I}dtB?DPy@t*G z2#h*iCoBW|R;sr8Z|xdTi<7!*yC}%3sL3nTe5Y>@PwTJ}Dx}j}srC>SDL+qZ4FqPDn_0XBu6UcNUGB~ZnYoKcIwj+53+8ESS)cK(EZY%LHtm~>?300)<;Z&1 zU^bGggzQfhXQD<4>g@icLlU!P$r#3KMgAmk5Duq_3N0;RAHEc_j?6`b5iDH!=M8S9G-hdLbOqDL{q%8{ z0Hp|===Il@GVy%dVPO*9jWH5{vKds#Ya43W0q+x1S{RsW5C!(u^kJaxAEtIh2;Og(m7!*dzc3#)KvrR3EHezn%v7*0{wWEXI?YxY@iA|yE9`Y13fH(^uth1cLr?_03bwg97I zLxo*;t-wjW|JKBs0g3zpV)H8eF*x4)ZbniFrL(+ zTAW#Ny!XT8UFSfrijPM?6{EMaMySIbys+nHAD|p+nf86jvI2K^0MRAezPj8YstTA8 zarQ7&6$-X#?r_rsR`u!j%Fr1pWS3a4Cj|pey#cKDBde(wrDmSzE8_Ya%UgAenYMxI z!ur61hXxkzl-Iq>P$l5+%yZ0<&v>|X4%j=08_rwO#EAm~LgXtE*Qa0^Hv4?9!No+e zv1`P(|NUaPAhT5?N>DoSAdnxKhSKOJhnl#35S;xqWr^=oPH`#$z6Q3f;QZsJ7jZf^ z!kX}sQcS^uO9y!i!q#BLX`i5v9(xe$$dGTH1=bNLebvsUT!n;2GxQ^yu`}7^-Nypp z5K$*Yq2%Mp!k<7@-njeK6${YaFvDsGro@CbvbyR+YdPd@ZyP0NNsC*=OY7eYN6u2% z-*-d&@du!Mv=FbIYMfV2nHU1+Gr)bUIS-Pn@7O8^_D~()zFP+;%Gj5}78dz?f*1jl zZ7?Pm!EJ%nLUAs2e&=_!WM6y*9u^}q3A@PXvzLn> zdFC>GmI>#VBKHrikRT!Fvr2)=W~CoCDfJkt<{(=jlKi1OCQJqZc3VHyV8f^DP^ z?GZG|5$D&xxgLsRL5k~VhNzYf4r-Zl`=pe?vcS~B^d?P9D1&fa=jWD%N82p%bQx!v za)Fv0pi4=PrB8GZ8T{q-7#DLVJeGC$cV7lI@)!oU>>;qdcT2XTMBvALvMQ~q2q;Qm zmeHCw0Uk91ySUBk#vE8ZLU+O7$-HWMW2hZZ*vZ~@ZzFxeU`hJJava+XN2^B!V)=vY z&8f4%=GmEc1L1iYw}>GYgxR-KM`};l-$)-$&im)?8Q+2FEM>#IxI$oqjZ+Eb4ymLb zxhr-h7T|8&v4B4J!0~-$(TBbhT!PIv-T_hat zFlq194kn*jWV%cf6pdKim^E7`7R9qTv6L21P9t>Bn$80|i1f>TpYI??DoXwS-H}ps z5n$IbkH*j5pfph~kt1l~ZPyOYgV$lTw}_XCdz@YByp=_|qgL=N2gF1dSQeER`$5Ca zx86d&d!i{I5jz=e1bT<&6FjP;Pv7Wm^-f6w{k)kGX;()E1 z8dbCYLk*zeJpz|UcRIS+(e`)TgT}EB5dHMnu<0dO5xdj(G|dH zAj=PsVEjBq-#_`e>0P+|XTjOs)&|pyWvA{%0u!mx;Jl`WozE$pcsL6!Yi0hoRItfX8`W1~-rcOV8kN}RYqtX~d3DpMG!&f}%z z2j?dg6ut(NUd%`JgXvH^Fts_F0!(ch`CSfa+!vrUOGqLgoCoBN19e_P`}|#`H?7A= z;GmIU3R}L-7?G_Tdt~#1sf&&EO#8WO`Wa+#t}BLU)`ZMvF?p&j;b|@Q0+$0GEUC3t zHiL+ikJcvXq#^Rbuwc4CTk6rAHvTpEi$c;)$~f^ORZvRGsBSuet-3&2c)5;^*c{4P ztQlP~q8txddCNTazoqya8QcOMDgwm%HfC8kqXZ0^U?*|p?@it$~r(v0_GGvkxLZXQ7S1n7}7M{tym zreOzKE2ke51f<<)-7Wp09GK_@Cgo!D>1_(`#>QQ$G(a^LSOEbJrzA5vCcJ>u$B)ln zAs4lQQ60F2Wph79q3v-W;wYuUDPQmdiv=by0YQ3@TPQ<-$SqhFvCqu?D0wjvx&Wq8 zSIh5EDr(}~&q?sFA@AunEvAv=^c`{n22=qqxZ*-gP0yXc)?w6MP;&?F$?WfG{h;(_ z(|YiR*q3eA{4w24*aly(c4q@m$Bm)#w8lU?Ir+ozi@E(HLO9W~v}s!LU%lc~Udp z41BS)DSBZ!%T3tPRTuy0b8EZU=09wX?L4{hraE`LyUmwdxw-~&c6QA}qH=Z$qbc|H zJm=`p3bxbInqnJ&+U%L~^!n38;~+h|G{M|Twfv`V-*oWGJw5cA;V5kL(bhv*t$D6* z?>%&T5IOQLHga)nMqx2=Uf(OtGL0}>miT26pXViQN}s($g~@H<~PvgDwZN|y#-1d_4{7%zv%+=rRd_W1&@KZh46 znar@&R6geiZmBuS-0`JKpH=?{Jg)Wr-wicW2P@SxPe-+2hh}=0-flmPpXofESE)65 z*r2iF%mG;*#>5P{-jPWR&s5q)7|jr`NbZ$SOs-qE`AA$`ikQ2QaRroo@DVm_*w?eJ zf@91QlYT8&ZS$XBnEr^6kC=yFVfJh!hcfo-id#)&uiK{lx*QwO72x@>PQixc zXu7J+4@^J?FiQ6TSZB;^bxU!}ml?N_GbS=iF+``@LA`Jq`pF{fhbl2n4?@tW$z9Qf z%Vn+4{9J-%A)edZ-L1k7~i!kni5yraN0I?bxI)#h5q%~v30rt&mG(ZL#{>ngpRM@v7w zOQiBxG>nQ|c!tB0{&55Q8M_M9j!qx#tLtcXdVw4$*s~*52cI8Uoi(jnZP+@k(`_pk zMrtmscG?pT&ngf^8cXF|XbtPT)&*XK(KL+VuQcz}FqX0@f+uw5MHf5U?FpYpeHt=E z8K!5{J?uLsIgYtN~vhRJA)x>lmZb zYldGdz1h=D(CwBsZfSgHv)cnVfMA&Za-Sq09`>5xJyY{F!AIbWBmknPQ09>Qa8QuU zCt8obe$_<>pFkpEDT@2U$7~%jxx*u>!Vq3I~{xd zInh^G#|JdQ%p_5N}HLjFxY4JQCja<8GYoW#$G+Dkn`CF<{z%; zU5(8`>``6s)^#>0xEn@W35eVj9;b*_`|GPQ^vdMI$N|Ums>Gg(Zh4QEovq0q{rB(lyet2C+tPbb{9*(rtmZ}ibqzinR z~tKNTeq8(-ul(g~0?7rzH)#?Qm?x#a#nAx6;!^D$}31REo;bFhXq zx2|*~zH>o`tYdy!96aasuJ1w=WvIq(g}L1l# zC_8w1ixEf!@pW^7vtdP7KPoFXTCB>a=pBD+m{WlXZ+hK@O8nfAAzY~MSaOG0Rp(GF z8M%~vjBsDdY)UKnro1!IbJ?@QUG zXPI(xis9dccDHRwTlVdWdtEehe+;ZGjOdtZxW7L>y4$S`ZX!MT%17uJSxrFj_&S#) zNRYo$pBG5!$yXiezXnQ+ok#q}ta5V(DDwivcxzbN=h>v3=iqW5@Jv58lMg|}3D9Ub zutM4ZKkkI!O-QC^5LIyL=k_yV3 zGC5&<-mVI|`YTH|RMEsa;qf)fsBY^v7 zFy25-Oz~t;N5b4Jxg|9ric2yB zmIKx{9ltWnY!h!AUp)(8)tr7a27Jq=<=Ya#*#En7(3^JM{)_3$ey&I4t=RN*{-NC^ z1EV3FaC{6=goB1&T&Fj`&$!su_Ub}0TOX}{Z-d3rL2_-#^YFb(N^#@O#_KxrOk4wy zLc{CR9Mw|2JQ(jE{4P~#T}k@D%4I;hXE4z>%P;Me3$IOeG%7uFsQ~85auvwXgGndrr5v9H6`GP6m88B6EEW~v2#o&wB$SG&I~Pr6_1 zAX|zHt>(3xlX$u%jk$z@9fKIfEE?T3y%~(I>cyMAuU=Tld2|6iVron)pXWiEACGF? zX}hi|G*eKD&*jZ4iz>dM@5yuTRkBxZ_+2vbiuC?}M0C4-GT^P3856YL!wk%$Qg=&1 zxe{HLnh|*>$ z#`jt*ET<9AFz>J{g(C7}2M4L*(p>=TvxnH zqkC8V`P~CCacc6AtkL^`q!5VC!g(Slw>U$TCyUlfET{YCAs06|T9o5=%f2MP0LVWh;s#s15MEIHR>{~n2I zQn8+99Z!vZ0zV=LR&;lRu}J18uxx?#@*yCK~0R7=jASqL`^vvj0a}|C%=&d z9aZ&;CWG!D>)&ggA~&!pm#@6j3f{_O#gu$OH1UNi zedQbG@sNxuIKqSm+2a~SB4m!Uj;U6kuyJnHoLRVZx2{&f!+yMo&~alzex`2Juw&0a zytg0Wcdzio1sN&Cc)yWbdJ!+>`Gn%J%31CNPW+eP ziBqR~Vle8_{swdoh4$4lzAf*jS5gNuo@?HeZ0&=I*b6lg&?BOAgK~ifdZ5auSDS%wa7+;&KwQA3}JE<-}QpC!g5iR!2rrIfI z3`nKSHG$j-fMJX$BRZ!Gb8f6d!x*sj>P3VTDjgxzdXYdj`mWe>1G+N;ASUW>@ZNj0 zYPCvq!Jo9!dZrMDk<~qZ-s6=Iyb_3ise3dRT$?`Ybb6|wiI+PK z6=L{@akiLTOQ-I-(LbH^Ete{W_-`p0dez2NjPI@lYG;Ek=ohqgJ z#cg_~Ry#ylzu16&!<^3}xUKq?;OvQj@@eVPeDN#6Gcq^6JDGG2y%@mjOp)`}@5;W= zZ95-IY9^5fiYpGq{lG*aJfSd`{o=3?sOE1yXg^V?-%+~?Z)(zMWI1OD`-Y0fC4nc?@U05?O#`M-{`C;JfGwixKh z$P+r2<(6y?SKr%!mfxi(=RDw$UEbeA=oyf0_s8?y0WI-26|P%FijR}-a0I*u5BEZ5tIf60R;&W5Ro$I7{x?FK>=w&q(i#L5dj4WC8d#; zl#y6857H`(pD_eXH?#7SWmY$`zhVd#;kwJ4D%lL3o3J< zJI2~74Kejr@nb^y?0As#H(WtE%U~oJuqT#v1Bv+h@+SvUD6Ku5vF^t{14lvksx}}? z-09r64y9KCui2tQdBy0-<+qiTJp9(P*BC77V+#=y`5p91CT`R7GVKrfo()NhrT;e_ zf^|`Y2zRKVK{18e`+a+>I7nnW3xHRtoLZr8Nyl8uhfg+&2!DNI_Yq*JwW|He2oQ(Q zvX`Isr$lAP=|MkqXQ1&UPZ;S2o-2%;@!uxndn@BY&ve5{j`XW+mpQZHDqe-&&v-VtTXL)yikO z4n==of&=EZ9A;B=i_*Tcj>H33RZXik>7bLt}nIxR2;E~ z&PQ)zJ{CNvHE_eJZ;hHRyZ@nFQ5P_3@v5`^bgSf$aG~hJDU7@CLk}A)f5g3qe0?@mY&pC<&lvHeA`8beRb#-#VssL@gQQ$kp6ho|9oy+j zMyF|H#Q0PTTzg_=93J+ToEtGjDWWqJ%6Sk25s0gE-4dJk<)*#t&CDt1Hs`vpF7^2d zS8j8aS(oGE2#RC9PVu{ibtx|yVxlzMWzjZfGU^LOLgHc6S}_>+Lbd`gsbQ&|d498@ z9rTWa@BxQ%zdr#mIKVE6DcH>HKO|YbHd30;20J{GJy7-#eFyI5zK^{}{&(4%SqEV6 z;%Ft;9|im*hMsDJZW|>)XTi^htp0v)5F)XQH9Lkz+KRbgH(WSpU>2Y%%5TZL^fQ7x ztdbzku#C>x@$xQEpMH%Ri>pN*R%n8$tZl{Z_?b$}32H}653W!4QquGHm#+Dke(~&g zcJto_u>=2h;(Hjq6syh?%rDJvmsVn%hk0EwTVqo1rc-LI9Nf=^dDBWW%Iq}SX%uQ6 z`{Ehxd*CvhgSzVQg%Mw&!#h^Lrw(E%19v*s8?OCs!)>L)rNs(WlYjT_ynOvt^uzDl zJE>TwJImtU|C&7nLTL)63cA#Xc04tigT@=zCpC{PsIM#bdylhdZ*VOcc3lQaD?b%S z5<^m0Dk~&y-KFAJJlMcPkX0|psu{E^mqKlH@!s+2f$I8>S+_1+cDRWx@Sv+5CB;m~lVbL2M2sc}bvtY57ndC=0MGCsx`P2H&k zZAdi2d)GyFS|{|Ek=s_kv^4Ukb4WI}BXlqRKJbSw3}F6zY1!@r-&R?`XWJuoT#h1a z78pDDJ&GMn`jR-x43|AQ|9_#7elE4gH?s|s$Sgg=Y$%QkJH(y?w0k9?Ka18z+$b%E z4TC@&ZR$CRJ+TZ}#ypZl``KeX!&@=gErrbzps8#PfokSi4`wIUIXe4{z877|$;w4K zEEQ6ZBPJ~^#4+e1rj;~`$GiS0$>w>y*uY8OWQL1eguPwbSlOVF;9ppqIy|W8K1^&| zDducIy!64IoZh^0GMp*fazoyZ^beQk9}@h$0OXoQJMQfF0-+v6LdmAq8&pHw0(kXb z2arZXpY!Wr`uyvs>KeGnuRjI|6t!QKTQsL;@z&z21pn`&$@IJ4_8yHZNixwM7M7mH z^ATay0l%akUVjeFCfW-SH|A1UBjQFBc%Td(Z%aQ?w0F?A{e@cL#j*o? zyDZ{VF{8_V#$lnsA-JKfa$aSsgEUR~h1mGpu~4$1z@VJk35Z#=H2l-;_W69zgq;R6 z=6=4h9=2GnFEG%Y?*SqoAcU{P1@4X0>u)X=l^SBb7Q^#=$OcCf_n89RGfj50RDpum zkw*Yr*V0!m=sEX)_6B0knM(MFxoj*TznD1R0Rx(3e))~8`E)ytj-GnUk4vi{6CFj93zix$q zb&Df6M<%}Nh?JT;ZabpIn%Dtod0Fmp9i>W z{~!5uL}j*9G3@+gLC@x{z?gS)e$3xuJtJTUrvb3zrV-RH9U;6qDQbBJJVU;Ek2Pua zT!eC{pjoLcq{sEvjP~!y{a2eJBDUnY>vz8h_f*ZT9C1OzP0C z5m?dfyg9PjW=B=8L*;UZbV;;i%EMH-_!|ASkrdRdN32<`?dLTO|7|nk*?zKTsh1Au z)P2r4yaZdCowvWZAKR^FaKGuYlOqHje4N}5pB9I+18a&p(atWC$oiq<`d3_HLuD7C5yR;F^`m%d2{) zHiK4>#zQgENo#QgX6v`Oy%5FdP#cWYhR|2Txg$9?yx1JzAvh78n&d@vG3_|!yABdF z=bFDDt)q)M#q1!1PMKKHPj?%ti5zm#qL@{^_!s#$dik7x>++bO>AU?g&I)UeV1?+y z*1MAkKUlKmlEZZCy!XYRj`@ch*Dqy)rB3q}pfbvTU0c}j!T)6W6z3AtjRF>ERD9X8 z1U4^N`&ahpd#=;G4Y4*zrEpKD*YBlS zF5gYdtB`tf*@KP^PO+xtgoplO+*=JHnNsPuME7e;)_e4DmEs(}BrvUaid`T|&v};H zGG?ds>rgPIxm?dF4y)&oTP(W+GAov8=wZ~C_@aqSO%dDYG3_`9zZUXoa)nBgvjDd@ z^2(~26XS>y^SZ%dv+tfV(MPu?PRqy)t6jM$CAF!j>WzE3?qeX!7_&6>>BM-fY0)@R zOC(?5=V90S>}31dw!;Il-G7lEs5z0IIgjce$DXpFXgjaR%9|FqN736C&d%9zV&t~T zgSygy3`W=70VNGq`YP%p&10=Ao!$4vnE&&9@&B-_E~u=Hs;e<}p+n9Mlrn_bDMa#g zKfHV1^hd*huy^0mBc1J)&FGmZ;P&k@AX>GniMTAf`g#Ym$&$OR1s-ypqJcA5^w~CK zZjgnjr5+9rRrWY9vM zA?=RS(=8C=G#yl$MB+(q2ykXPvi;Il+PMPiDK1>N7{aNc3QQ4?jqy>((j1umMk@uB z?j^5dOX)!MQHn@`$qoI<;SEzs{3t!8oomdGQ|i`TfNEkcRJ=d~0#tPwev}DS%Tsf+ zX83sDXe3bUuNn6{OjEql$}7EF4>xD~>*$?uY%@xe_eaSC3Yiwpfd0gtIfF}en{Zn_ zc{R<#vYcGkld%i*hZr37;S`Vt+C#oqH>_aXc5H^+Q9DeJ!En)P1R|L4Iy72!at?@@%K%>+YFKl)ecH#xg0D9kYmp^nec zd5KGB4mn>4taOwww$ca?2BqtOQ;t`Et%rdftQ~5j+fN*$jH-`|o&(zfr}`1N8f+XL z1m)d`p6Odi@>OuxI+c0jv(H(903em2ZCl+tRV|$qs2vjUdc`p~6NiZ^IH{RdC5PKO zRQN4e`8uMdyEe6XNv6#04qCB%o6=tSHm^y`d-Rk z9oXCyM!$7RRzGIvg|PGVi`XgXUsMxR7lDmCbmV{}*M8?in@G0ta=`@C8h8Vq$z-PO≷!sBkgW~`dmOAH#o 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 Z1LL6VkX_UjMC_$|MN;;+ Date: Wed, 18 Apr 2018 01:21:57 +0800 Subject: [PATCH 24/45] Enable broadcast of Facebook bot messages (#4688) * enable broadcast of FB bot messages this should go together with PR https://github.com/home-assistant/home-assistant/pull/12459 it enables FB messenger broadcast ability to send messages to all people who interacted with the bot previously and have the chat open. * fixes as per request from reviewer. fixes as per request from reviewer. FB -> Facebook fixed indents. (not sure what 2x for each level was), but I fixed it as per sample above. * Update notify.facebook.markdown * :pencil2: Tiny fixes * Update notify.facebook.markdown * Update notify.facebook.markdown * :rocket: Trigger rebuild --- source/_components/notify.facebook.markdown | 24 ++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/source/_components/notify.facebook.markdown b/source/_components/notify.facebook.markdown index beb539c559c..5b4e4979477 100644 --- a/source/_components/notify.facebook.markdown +++ b/source/_components/notify.facebook.markdown @@ -50,7 +50,7 @@ automation: - '+919784516314' ``` -You can also send messages to users that do not have stored their phone number with Facebook, but this requires a bit more work. The Messenger platform uses page specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specific ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID: +You can also send messages to users that do not have stored their phone number on Facebook, but this requires a bit more work. The Messenger platform uses page-specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specific ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID: ```php Date: Tue, 17 Apr 2018 19:39:59 +0200 Subject: [PATCH 25/45] Adds documentation for Kodi discovery (#5144) * describe discovery * :pencil2: Language tweaks --- source/_components/media_player.kodi.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index a59d19fe348..83689d4c1ae 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -17,7 +17,9 @@ ha_iot_class: "Local Push" The `kodi` platform allows you to control a [Kodi](http://kodi.tv/) multimedia system from Home Assistant. -To add Kodi to your installation, add the following to your `configuration.yaml` file: +The preferred way to set up the Kodi platform is by enabling the [discovery component](https://www.home-assistant.io/components/discovery/) which requires enabled [web interface](https://kodi.wiki/view/Web_interface) on your Kodi installation. + +In case the discovery does not work, or you need specific configuration variables, you can add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry From 56f0a1a3c367fb955c271c679b68f1a026efbc97 Mon Sep 17 00:00:00 2001 From: Tod Schmidt Date: Tue, 17 Apr 2018 13:40:16 -0400 Subject: [PATCH 26/45] Added REST API for tts_get_url (#5173) * Added REST API for tts_get_url * :pencil2: Language tweaks --- source/_components/tts.markdown | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/source/_components/tts.markdown b/source/_components/tts.markdown index b1d18991358..5fc0d8de47b 100644 --- a/source/_components/tts.markdown +++ b/source/_components/tts.markdown @@ -88,3 +88,33 @@ data_template: ## {% linkable_title Cache %} The component has two caches. Both caches can be controlled with the `cache` option in the platform configuration or the service call `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period. + +## {% linkable_title REST Api %} + +#### {% linkable_title POST /api/tts_get_url %} + +Returns an URL to the generated TTS file. Platform and message are required. + +```json +{ + "plaform": "amazon_polly", + "message": "I am speaking now" +} +``` + +The return code is 200 if the file is generated. The message body will contain a JSON object with the URL. + +```json +{ + "url": "http://127.0.0.1:8123/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd_en_-_demo.mp3" +} +``` + +Sample `curl` command: + +```bash +$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ + -H "Content-Type: application/json" \ + -d '{"message": "I am speaking now", "platform": "amazon_polly"}' \ + http://localhost:8123/api/tts_get_url +``` From 8f52412ebe00d25b3d024d6e69dc43d37b573f12 Mon Sep 17 00:00:00 2001 From: stephanerosi Date: Tue, 17 Apr 2018 19:55:51 +0200 Subject: [PATCH 27/45] Add examples on changing channel through play_media service (#5200) * Add examples on changing channel service As per following merge request https://github.com/home-assistant/home-assistant/pull/13934 * :pencil2: Language tweak --- .../_components/media_player.webostv.markdown | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown index 707ef55a905..0b1823db00d 100644 --- a/source/_components/media_player.webostv.markdown +++ b/source/_components/media_player.webostv.markdown @@ -96,3 +96,27 @@ Any other [actions](/docs/automation/action/) to power on the device can be conf *Sources* To obtain complete list of available sources currently configured on the TV, once the webOS TV is configured and linked, while its powered on head to the **Developer Tools** > **States**, find your `media_player.` and use the sources listed in `source_list:` remembering to split them per line into your `sources:` configuration. + +### {% linkable_title Change channel through play_media service %} + +The `play_media` service can be used in a script to switch to the specified tv channel. +It selects the best matching cannel according to the `media_content_id` parameter: + 1. Channel number *(i.e. '1' or '6')* + 2. Exact channel name *(i.e. 'France 2' or 'CNN')* + 3. Substring in channel name *(i.e. 'BFM' in 'BFM TV')* + +```yaml +# Example action entry in script to switch to channel number 1 +service: media_player.play_media +data: + entity_id: media_player.lg_webos_smart_tv + media_content_id: 1 + media_content_type: "channel" + +# Example action entry in script to switch to channel including 'TF1' in its name +service: media_player.play_media +data: + entity_id: media_player.lg_webos_smart_tv + media_content_id: "TF1" + media_content_type: "channel" +``` From b2104a977069fa1368b9af289571109252b909e8 Mon Sep 17 00:00:00 2001 From: Nick Whyte Date: Wed, 18 Apr 2018 22:40:53 +1000 Subject: [PATCH 28/45] Doc for covers that only support `open_cover` and `close_cover` HomeKit (#5203) * Documentation for covers that only support `open_cover` and `close_cover` --- source/_components/homekit.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 3b9fb899d54..0d04e5cb237 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -198,6 +198,8 @@ The following components are currently supported: | climate | Thermostat | All climate devices. | | cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` as their `device_class`. | | cover | WindowCovering | All covers that support `set_cover_position`. | +| cover | WindowCovering | All covers that support `open_cover` and `close_cover` through value mapping. (`open` -> `>=50`; `close` -> `<50`) | +| cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | | sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | From 12906f47afdb7954f82c2700330d6ab5522cc505 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 18 Apr 2018 22:30:17 -0400 Subject: [PATCH 29/45] Set published:true for Google Assistant docs --- source/cloud/google_assistant.markdown | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source/cloud/google_assistant.markdown b/source/cloud/google_assistant.markdown index 155b2356a73..2e8661479c6 100644 --- a/source/cloud/google_assistant.markdown +++ b/source/cloud/google_assistant.markdown @@ -7,7 +7,6 @@ sidebar: true comments: false sharing: true footer: true -published: false --- The Google Assistant integration allows users to control the entities via the Home Assistant Smart Home skill for Google Assistant. This means that you can say things like "Ok Google, turn on the kitchen light" to control your local Home Assistant. @@ -86,9 +85,5 @@ google_actions: description: Aliases that can also be used to refer to this entity required: false type: list - type: - description: Override the type of the entity in Google Assistant. [List of available types](https://developers.google.com/actions/smarthome/guides/) - required: false - type: string {% endconfiguration %} From 557867f26e44fdadc94f2eab92bedec465827f28 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Thu, 19 Apr 2018 09:11:52 +0200 Subject: [PATCH 30/45] Support for multiple MAX!Cube LAN gateways (#5078) --- source/_components/maxcube.markdown | 32 +++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/source/_components/maxcube.markdown b/source/_components/maxcube.markdown index c9645e9fc59..69713a6469f 100644 --- a/source/_components/maxcube.markdown +++ b/source/_components/maxcube.markdown @@ -25,13 +25,37 @@ Supported Devices: - MAX! Window Sensor (tested) - MAX! Wall Thermostat (tested) +### {% linkable_title One Gateway %} + A `maxcube` section must be present in the `configuration.yaml` file and contain the following options as required: ```yaml # Example configuration.yaml entry maxcube: - host: 192.168.0.20 + gateways: + - host: 192.168.0.20 ``` -Configuration variables: -- **host** (*Required*): The IP address of the eQ-3 MAX! Cube to use. -- **port** (*Optional*): The UDP port number. Defaults to `62910`. + +### {% linkable_title Multiple Gateways %} + +```yaml +# Example configuration.yaml entry +maxcube: + gateways: + - host: 192.168.0.20 + port: 62910 + - host: 192.168.0.21 + port: 62910 +``` + +{% configuration %} + host: + description: The IP address of the eQ-3 MAX! Cube to use. + required: true + type: string + port: + description: The UDP port number. + required: false + type: int + default: 62910 +{% endconfiguration %} From 7fd2f7da460ab5d3380c2e9b9393d44f3474de0f Mon Sep 17 00:00:00 2001 From: koolsb <14332595+koolsb@users.noreply.github.com> Date: Thu, 19 Apr 2018 04:32:07 -0500 Subject: [PATCH 31/45] Update onkyo media player (#5058) --- .../_components/media_player.onkyo.markdown | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index ca277f77063..0c6dc4d2d3d 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -28,11 +28,24 @@ media_player: pc: 'HTPC' ``` -Configuration variables: - -- **host** (*Optional*): IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers. -- **name** (*Required if host is specified*): Name of the device. -- **sources** (*Optional*): A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified. +{% configuration %} +host: + description: IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers. + required: false + type: string +name: + description: Name of the device. (*Required if host is specified*) + required: false + type: string +sources: + description: A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified. + required: false + type: list +zone2: + description: Enables control for the receiver's second zone. + required: false + type: bool +{% endconfiguration %} List of source names: From 574e2213ba439fa360163d60c777a6d7a1c520d9 Mon Sep 17 00:00:00 2001 From: koolsb <14332595+koolsb@users.noreply.github.com> Date: Thu, 19 Apr 2018 04:35:48 -0500 Subject: [PATCH 32/45] Add blackbird media player component (#5056) --- .../media_player.blackbird.markdown | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 source/_components/media_player.blackbird.markdown diff --git a/source/_components/media_player.blackbird.markdown b/source/_components/media_player.blackbird.markdown new file mode 100644 index 00000000000..99873f1cc04 --- /dev/null +++ b/source/_components/media_player.blackbird.markdown @@ -0,0 +1,70 @@ +--- +layout: page +title: "Blackbird 8x8 HDMI Matrix Switch" +description: "Instructions on how to integrate Monoprice Blackbird 4k 8x8 HDBaseT Matrix Switch into Home Assistant." +date: 2018-03-29 16:35 +sidebar: true +comments: false +sharing: true +footer: true +logo: monoprice.svg +ha_category: Media Player +ha_release: 0.68 +ha_iot_class: "Local Polling" +--- + +The `blackbird` platform allows you to control [Monoprice Blackbird Matrix Switch](https://www.monoprice.com/product?p_id=21819) using a serial connection. + +To add a Blackbird device to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + - platform: blackbird + type: serial + port: /dev/ttyUSB0 + zones: + 1: + name: Living Room + sources: + 3: + name: BluRay +``` + +{% configuration %} +type: + description: The type of device connection - serial or socket + required: true + type: string +port: + description: The serial port to which Blackbird matrix switch is connected. Either port or host must be defined. + required: optional + type: string +host: + description: The IP address of the Blackbird matrix switch. Either port or host must be defined. + required: optional + type: string +zones: + description: This is the list of zones available. Valid zones are 1,2,3,4,5,6,7,8. Each zone must have a name assigned to it. + required: true + type: int + keys: + name: + description: The name of the zone. +sources: + description: The list of sources available. Valid source numbers are 1,2,3,4,5,6,7,8. Each source number corresponds to the input number on the Blackbird matrix switch. Similar to zones, each source must have a name assigned to it. + required: true + type: int + keys: + name: + description: The name of the source. +{% endconfiguration%} + +### {% linkable_title Service `BLACKBIRD_SETALLZONES` %} + +Set all zones to the same input source. This service allows you to immediately synchronize all the TVs in your home. Regardless of `entity_id` provided, all zones will be updated. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String that points at an `entity_id` of a zone. +| `source` | no | String of source name to activate. From 945fb9b69e0336d39cd5fe97771a2bee7ef958e3 Mon Sep 17 00:00:00 2001 From: Viorel Stirbu Date: Thu, 19 Apr 2018 12:38:02 +0300 Subject: [PATCH 33/45] Add docs for Sensirion SHT31 sensor (#4848) --- source/_components/sensor.sht31.markdown | 52 +++++++++++++++++++ source/images/supported_brands/sensirion.png | Bin 0 -> 6578 bytes 2 files changed, 52 insertions(+) create mode 100644 source/_components/sensor.sht31.markdown create mode 100644 source/images/supported_brands/sensirion.png diff --git a/source/_components/sensor.sht31.markdown b/source/_components/sensor.sht31.markdown new file mode 100644 index 00000000000..73660bbbdc1 --- /dev/null +++ b/source/_components/sensor.sht31.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Sensirion SHT31 Sensor" +description: "Instructions on how to integrate SHT31 sensors within Home Assistant." +date: 2018-03-06 19:15 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: DIY +ha_release: 0.68 +logo: sensirion.png +ha_iot_class: "Local Polling" +--- + +The `sht31` sensor platform allows you to get the current temperature and humidity from a Sensirion SHT31 device. + +To use your SHT31 sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: sht31 + name: Bedroom + i2c_address: 0x44 + monitored_conditions: + - temperature + - humidity +``` + +{% configuration %} + name: + description: The name of the sensor. Temperature and Humidity will be added to the name for the sensor name. + required: false + default: SHT31 + type: string + i2c_address: + description: I2C address of the sensor. + required: false + default: "`0x44`" + type: int + monitored_conditions: + description: Conditions to monitor. + required: false + default: All conditions + type: list + keys: + temperature: + description: The current temperature of the SHT31. + humidity: + description: The current humidity of the SHT31. +{% endconfiguration %} diff --git a/source/images/supported_brands/sensirion.png b/source/images/supported_brands/sensirion.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0576cacdaad8b024683c2433ee5216762a8908 GIT binary patch literal 6578 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 Date: Thu, 19 Apr 2018 10:00:24 -0700 Subject: [PATCH 34/45] Update hass.markdown (#5193) --- source/_docs/tools/hass.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_docs/tools/hass.markdown b/source/_docs/tools/hass.markdown index 3ba0896f359..73e0bd68cd2 100644 --- a/source/_docs/tools/hass.markdown +++ b/source/_docs/tools/hass.markdown @@ -39,6 +39,7 @@ optional arguments: specified days --log-file LOG_FILE Log file to write to. If not set, CONFIG/home- assistant.log is used + --log-no-color Disable color logs --runner On restart exit with code 100 --script ... Run one of the embedded scripts --daemon Run Home Assistant as daemon From 952aaf8aa0389e5bbfa540dd0f86a27484695c19 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 20 Apr 2018 14:36:47 -0400 Subject: [PATCH 35/45] Add release blog post --- source/_posts/2018-04-27-release-68.markdown | 489 +++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 source/_posts/2018-04-27-release-68.markdown diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown new file mode 100644 index 00000000000..788e068c7e9 --- /dev/null +++ b/source/_posts/2018-04-27-release-68.markdown @@ -0,0 +1,489 @@ +--- +layout: post +title: "0.68: UPDATE DATE" +description: "UPDATE DATE" +date: 2018-04-20 00:01:00 +date_formatted: "April 27, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-04-0.68/components.png +--- + + + +Highlights: + +- Ability to _control_ HomeKit +- Eufy bulbs + +## New Platforms + +- Add support for Eufy bulbs and switches ([@mjg59] - [#13773]) ([eufy docs]) ([light.eufy docs]) ([switch.eufy docs]) (new-platform) +- Add support for controlling homekit lights and switches ([@mjg59] - [#13346]) ([homekit_controller docs]) ([light.homekit_controller docs]) (new-platform) +- Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform) +- Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform) +- Add AVM fritzbox smarthome component ([@hthiery] - [#10688]) ([fritzbox docs]) ([climate.fritzbox docs]) ([switch.fritzbox docs]) (new-platform) +- Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform) +- Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform) +- Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) +- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) + +## New Features + +- Support binary_sensor and device_tracker in HomeKit ([@Yonsm] - [#13735]) ([homekit docs]) (new-feature) +- Add Homekit locks support ([@philk] - [#13625]) ([homekit docs]) (new-feature) +- Support CO2/PM2.5/Light sensors in HomeKit ([@Yonsm] - [#13804]) ([homekit docs]) (new-feature) +- Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature) +- Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + +## Breaking Changes + +- Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) +- Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) + +## Beta Fixes + +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) + +## All changes + +- Update Homekit to 1.1.9 ([@cdce8p] - [#13716]) ([homekit docs]) +- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([light.aurora docs]) ([sensor.trafikverket_weatherstation docs]) +- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([google docs]) ([calendar.google docs]) +- Allow use of date_string in service call ([@Juggels] - [#13256]) ([calendar.todoist docs]) +- Add timeout / debounce (for brightness and others) ([@cdce8p] - [#13534]) ([homekit docs]) +- added support for smappee water sensors ([@hmn] - [#12831]) ([smappee docs]) ([sensor.smappee docs]) +- Initialise filter_sensor with historical values ([@dgomes] - [#13075]) ([sensor.filter docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Bluesound bugfix status 595 and await ([@thrawnarn] - [#13727]) ([media_player.bluesound docs]) +- Upgrade aiohttp to 3.1.2 ([@fabaff] - [#13732]) +- Upgrade sqlalchemy to 1.2.6 ([@fabaff] - [#13733]) ([sensor.sql docs]) +- Brightness conversion for Abode dimmers ([@shred86] - [#13711]) ([light.abode docs]) +- Update CODEOWNERS (sensor.filter, sensor.upnp) ([@dgomes] - [#13736]) +- Reset permission ([@fabaff] - [#13743]) ([light.abode docs]) +- Throw an error when invalid device_mode is given ([@dangyuluo] - [#13739]) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Upgrade netdisco to 1.3.1 ([@fabaff] - [#13744]) +- Add MQTT Sensor unique_id ([@OttoWinter] - [#13318]) ([sensor.mqtt docs]) +- Prepare entity component for config entries ([@balloob] - [#13730]) +- Check valid file on get_size ([@robmarkcole] - [#13756]) ([sensor.folder docs]) +- Qwikswitch sensors ([@kellerza] - [#13622]) ([sensor.qwikswitch docs]) +- Device type mapping introduced to avoid breaking change ([@syssi] - [#13765]) ([light.yeelight docs]) +- Only flag media position as updated when it really has ([@molobrakos] - [#13737]) ([media_player.squeezebox docs]) +- Support binary_sensor and device_tracker in HomeKit ([@Yonsm] - [#13735]) ([homekit docs]) (new-feature) +- Use config entry to setup platforms ([@balloob] - [#13752]) ([hue docs]) ([light docs]) ([light.hue docs]) +- Add Homekit locks support ([@philk] - [#13625]) ([homekit docs]) (new-feature) +- Snips sounds ([@tschmidty69] - [#13746]) ([snips docs]) +- Add missing DISCHRG state ([@swilson] - [#13787]) ([sensor.nut docs]) +- Improved upgradeability HomeKit security_systems ([@cdce8p] - [#13783]) ([homekit docs]) +- Qwikswitch Entity Register ([@kellerza] - [#13791]) ([qwikswitch docs]) ([sensor.qwikswitch docs]) +- Updated beacontools to 1.2.3 ([@citruz] - [#13792]) ([sensor.eddystone_temperature docs]) +- script/lazytox: Ensure Flake8 passes for tests/ ([@kellerza] - [#13794]) +- Fix bad metrics format for short metrics. ([@michaelkuty] - [#13778]) ([prometheus docs]) +- Update bellows to 0.5.2 ([@rcloran] - [#13800]) ([zha docs]) +- device_tracker.ubus: Handle devices not running DHCP ([@tobygray] - [#13579]) ([device_tracker docs]) +- Update yweather.py ([@wiuwiu] - [#13802]) ([weather.yweather docs]) +- Tibber lib update ([@Danielhiversen] - [#13811]) ([sensor.tibber docs]) +- Update pyhomematic to 0.1.41 ([@danielperna84] - [#13814]) ([homematic docs]) +- Add support for Eufy bulbs and switches ([@mjg59] - [#13773]) ([eufy docs]) ([light.eufy docs]) ([switch.eufy docs]) (new-platform) +- Homekit refactor ([@cdce8p] - [#13707]) ([homekit docs]) +- HomeKit type_cover fix ([@cdce8p] - [#13832]) ([homekit docs]) +- Allow platform unloading ([@balloob] - [#13784]) ([hue docs]) ([light docs]) +- Support CO2/PM2.5/Light sensors in HomeKit ([@Yonsm] - [#13804]) ([homekit docs]) (new-feature) +- Clicksend: Added support for multiple recipients ([@xTCx] - [#13812]) ([notify docs]) +- Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature) +- Abode better events ([@MisterWil] - [#13809]) ([abode docs]) +- UPnP async ([@dgomes] - [#13666]) ([upnp docs]) ([sensor.upnp docs]) +- Update example (fixes #13834) ([@fabaff] - [#13839]) +- Add support for deCONZ daylight sensor ([@marthoc] - [#13479]) ([deconz docs]) ([sensor.deconz docs]) +- initialize queue before filtering ([@dgomes] - [#13842]) ([sensor.filter docs]) +- Extract config flow to own module ([@balloob] - [#13840]) ([config docs]) ([deconz docs]) ([hue docs]) +- Add support for controlling homekit lights and switches ([@mjg59] - [#13346]) ([homekit_controller docs]) ([light.homekit_controller docs]) (new-platform) +- bump python-ecobee-api version to 0.0.18 ([@geekofweek] - [#13854]) ([ecobee docs]) +- Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform) +- Avoid unnecessary cast state updates ([@dersger] - [#13770]) ([media_player.cast docs]) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Update yweather.py ([@TheCellMC] - [#13851]) ([weather.yweather docs]) +- add support for Kodi discovery ([@escoand] - [#13790]) ([media_player.kodi docs]) +- Further untangle data entry flow ([@balloob] - [#13855]) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Added snips service descriptions ([@tschmidty69] - [#13883]) +- Add unique_id for BMW ConnectedDrive ([@gerard33] - [#13888]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) +- Revert "Update yweather.py" ([@pvizeli] - [#13900]) ([weather.yweather docs]) +- Eufy colour bulb updates ([@mjg59] - [#13895]) ([eufy docs]) ([light.eufy docs]) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Fritzbox netmonitor name ([@escoand] - [#13903]) ([sensor.fritzbox_netmonitor docs]) +- Restore typeerror check for units sans energy tracking ([@andersonshatch] - [#13824]) ([switch.edimax docs]) +- Add more math functions to templates ([@Shou] - [#13915]) +- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs]) +- Add extra attributes for device scanner, Nmap and Unifi (IP, SSID, etc.) ([@stephanerosi] - [#13673]) ([device_tracker docs]) +- Fixed Capsman data not being used ([@Marco98] - [#13917]) ([device_tracker docs]) +- Broadlink Sensor - switch to connection-less mode ([@Paxy] - [#13761]) ([sensor.broadlink docs]) +- Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform) +- Hive R3 update ([@KJonline] - [#13357]) ([hive docs]) ([binary_sensor.hive docs]) ([climate.hive docs]) ([light.hive docs]) ([sensor.hive docs]) ([switch.hive docs]) +- Updated foobot_async package version ([@reefab] - [#13942]) ([sensor.foobot docs]) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Upgrade alpha_vantage to 2.0.0 ([@fabaff] - [#13943]) ([sensor.alpha_vantage docs]) +- Cleanup on exit ([@dgomes] - [#13918]) ([media_player.mediaroom docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Add data entry flow helper ([@balloob] - [#13935]) ([config docs]) +- Xiaomi MiIO Device Tracker: Unused variable removed ([@syssi] - [#13948]) ([device_tracker docs]) +- Implement play media to set a channel based on (by priority): ([@stephanerosi] - [#13934]) ([media_player.webostv docs]) +- Update of python-mpd2 ([@karlkar] - [#13921]) ([media_player.mpd docs]) +- Add AVM fritzbox smarthome component ([@hthiery] - [#10688]) ([fritzbox docs]) ([climate.fritzbox docs]) ([switch.fritzbox docs]) (new-platform) +- Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform) +- Upgrade aiohttp to 3.1.3 ([@fabaff] - [#13938]) +- Upgrade youtube_dl to 2018.04.16 ([@fabaff] - [#13937]) ([media_extractor docs]) +- Added FB messenger broadcast api to notify.facebook component ([@B1tMaster] - [#12459]) ([notify.facebook docs]) +- Added web view for TTS to get url ([@tschmidty69] - [#13882]) ([tts docs]) +- Add services for bmw_connected_drive ([@ChristianKuehnel] - [#13497]) ([bmw_connected_drive docs]) ([device_tracker docs]) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Bump deCONZ requirement to v36 ([@Kane610] - [#13960]) ([deconz docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Revert "Upgrade pyqwikswitch to 0.71 ([@balloob] - [#13920]) ([qwikswitch docs]) +- Bump skybellpy version to 0.1.2 ([@MisterWil] - [#13974]) ([skybell docs]) +- Fix typo an coding style ([@stephanerosi] - [#13970]) ([device_tracker docs]) +- Params of the send command can be a list now ([@syssi] - [#13905]) ([vacuum docs]) +- Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature) +- Colorlog windows fix ([@veleek] - [#13929]) ([notify docs]) +- deCONZ migrate setup fully to config entry ([@Kane610] - [#13679]) ([deconz docs]) +- Alexa thermostat fails to properly parse 'value' field for climate ([@no2chem] - [#13958]) ([alexa docs]) +- renaming icons ([@NovapaX] - [#13982]) ([hdmi_cec docs]) ([vacuum docs]) ([vacuum.dyson docs]) ([vacuum.neato docs]) ([vacuum.roomba docs]) ([vacuum.xiaomi_miio docs]) +- Fix for Lokalise backend misinterpretation of keys ([@armills] - [#13986]) +- Bump locationsharinglib to 1.2.1 ([@thelittlefireman] - [#13980]) ([device_tracker docs]) +- Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) +- Add additional receiver for Onkyo zone 2 ([@koolsb] - [#13551]) ([media_player.onkyo docs]) +- Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform) +- Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) +- Useless code removed ([@syssi] - [#13996]) ([maxcube docs]) +- Add Homematic HmIP-SWO-PR weather sensor support ([@pascalhahn] - [#13904]) ([homematic docs]) +- Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) +- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) +- Log an error instead of raising an exception ([@syssi] - [#14006]) ([sensor.sht31 docs]) +- Tibber available ([@Danielhiversen] - [#13865]) ([sensor.tibber docs]) +- Upgrade pylutron-caseta to 0.5.0 to reestablish connections ([@rohankapoorcom] - [#14013]) ([lutron_caseta docs]) +- Add sensor device classes ([@balloob] - [#14010]) ([sensor docs]) ([sensor.ecobee docs]) ([sensor.linux_battery docs]) ([sensor.nest docs]) + +[#10688]: https://github.com/home-assistant/home-assistant/pull/10688 +[#12224]: https://github.com/home-assistant/home-assistant/pull/12224 +[#12459]: https://github.com/home-assistant/home-assistant/pull/12459 +[#12831]: https://github.com/home-assistant/home-assistant/pull/12831 +[#12952]: https://github.com/home-assistant/home-assistant/pull/12952 +[#13075]: https://github.com/home-assistant/home-assistant/pull/13075 +[#13256]: https://github.com/home-assistant/home-assistant/pull/13256 +[#13318]: https://github.com/home-assistant/home-assistant/pull/13318 +[#13346]: https://github.com/home-assistant/home-assistant/pull/13346 +[#13357]: https://github.com/home-assistant/home-assistant/pull/13357 +[#13479]: https://github.com/home-assistant/home-assistant/pull/13479 +[#13497]: https://github.com/home-assistant/home-assistant/pull/13497 +[#13517]: https://github.com/home-assistant/home-assistant/pull/13517 +[#13534]: https://github.com/home-assistant/home-assistant/pull/13534 +[#13549]: https://github.com/home-assistant/home-assistant/pull/13549 +[#13551]: https://github.com/home-assistant/home-assistant/pull/13551 +[#13579]: https://github.com/home-assistant/home-assistant/pull/13579 +[#13622]: https://github.com/home-assistant/home-assistant/pull/13622 +[#13625]: https://github.com/home-assistant/home-assistant/pull/13625 +[#13666]: https://github.com/home-assistant/home-assistant/pull/13666 +[#13673]: https://github.com/home-assistant/home-assistant/pull/13673 +[#13679]: https://github.com/home-assistant/home-assistant/pull/13679 +[#13707]: https://github.com/home-assistant/home-assistant/pull/13707 +[#13711]: https://github.com/home-assistant/home-assistant/pull/13711 +[#13714]: https://github.com/home-assistant/home-assistant/pull/13714 +[#13716]: https://github.com/home-assistant/home-assistant/pull/13716 +[#13720]: https://github.com/home-assistant/home-assistant/pull/13720 +[#13727]: https://github.com/home-assistant/home-assistant/pull/13727 +[#13728]: https://github.com/home-assistant/home-assistant/pull/13728 +[#13730]: https://github.com/home-assistant/home-assistant/pull/13730 +[#13731]: https://github.com/home-assistant/home-assistant/pull/13731 +[#13732]: https://github.com/home-assistant/home-assistant/pull/13732 +[#13733]: https://github.com/home-assistant/home-assistant/pull/13733 +[#13735]: https://github.com/home-assistant/home-assistant/pull/13735 +[#13736]: https://github.com/home-assistant/home-assistant/pull/13736 +[#13737]: https://github.com/home-assistant/home-assistant/pull/13737 +[#13739]: https://github.com/home-assistant/home-assistant/pull/13739 +[#13741]: https://github.com/home-assistant/home-assistant/pull/13741 +[#13743]: https://github.com/home-assistant/home-assistant/pull/13743 +[#13744]: https://github.com/home-assistant/home-assistant/pull/13744 +[#13746]: https://github.com/home-assistant/home-assistant/pull/13746 +[#13752]: https://github.com/home-assistant/home-assistant/pull/13752 +[#13756]: https://github.com/home-assistant/home-assistant/pull/13756 +[#13761]: https://github.com/home-assistant/home-assistant/pull/13761 +[#13764]: https://github.com/home-assistant/home-assistant/pull/13764 +[#13765]: https://github.com/home-assistant/home-assistant/pull/13765 +[#13770]: https://github.com/home-assistant/home-assistant/pull/13770 +[#13773]: https://github.com/home-assistant/home-assistant/pull/13773 +[#13778]: https://github.com/home-assistant/home-assistant/pull/13778 +[#13783]: https://github.com/home-assistant/home-assistant/pull/13783 +[#13784]: https://github.com/home-assistant/home-assistant/pull/13784 +[#13787]: https://github.com/home-assistant/home-assistant/pull/13787 +[#13790]: https://github.com/home-assistant/home-assistant/pull/13790 +[#13791]: https://github.com/home-assistant/home-assistant/pull/13791 +[#13792]: https://github.com/home-assistant/home-assistant/pull/13792 +[#13794]: https://github.com/home-assistant/home-assistant/pull/13794 +[#13796]: https://github.com/home-assistant/home-assistant/pull/13796 +[#13800]: https://github.com/home-assistant/home-assistant/pull/13800 +[#13802]: https://github.com/home-assistant/home-assistant/pull/13802 +[#13804]: https://github.com/home-assistant/home-assistant/pull/13804 +[#13809]: https://github.com/home-assistant/home-assistant/pull/13809 +[#13811]: https://github.com/home-assistant/home-assistant/pull/13811 +[#13812]: https://github.com/home-assistant/home-assistant/pull/13812 +[#13814]: https://github.com/home-assistant/home-assistant/pull/13814 +[#13819]: https://github.com/home-assistant/home-assistant/pull/13819 +[#13824]: https://github.com/home-assistant/home-assistant/pull/13824 +[#13832]: https://github.com/home-assistant/home-assistant/pull/13832 +[#13839]: https://github.com/home-assistant/home-assistant/pull/13839 +[#13840]: https://github.com/home-assistant/home-assistant/pull/13840 +[#13842]: https://github.com/home-assistant/home-assistant/pull/13842 +[#13851]: https://github.com/home-assistant/home-assistant/pull/13851 +[#13854]: https://github.com/home-assistant/home-assistant/pull/13854 +[#13855]: https://github.com/home-assistant/home-assistant/pull/13855 +[#13862]: https://github.com/home-assistant/home-assistant/pull/13862 +[#13865]: https://github.com/home-assistant/home-assistant/pull/13865 +[#13882]: https://github.com/home-assistant/home-assistant/pull/13882 +[#13883]: https://github.com/home-assistant/home-assistant/pull/13883 +[#13884]: https://github.com/home-assistant/home-assistant/pull/13884 +[#13887]: https://github.com/home-assistant/home-assistant/pull/13887 +[#13888]: https://github.com/home-assistant/home-assistant/pull/13888 +[#13889]: https://github.com/home-assistant/home-assistant/pull/13889 +[#13895]: https://github.com/home-assistant/home-assistant/pull/13895 +[#13900]: https://github.com/home-assistant/home-assistant/pull/13900 +[#13903]: https://github.com/home-assistant/home-assistant/pull/13903 +[#13904]: https://github.com/home-assistant/home-assistant/pull/13904 +[#13905]: https://github.com/home-assistant/home-assistant/pull/13905 +[#13906]: https://github.com/home-assistant/home-assistant/pull/13906 +[#13908]: https://github.com/home-assistant/home-assistant/pull/13908 +[#13915]: https://github.com/home-assistant/home-assistant/pull/13915 +[#13917]: https://github.com/home-assistant/home-assistant/pull/13917 +[#13918]: https://github.com/home-assistant/home-assistant/pull/13918 +[#13920]: https://github.com/home-assistant/home-assistant/pull/13920 +[#13921]: https://github.com/home-assistant/home-assistant/pull/13921 +[#13929]: https://github.com/home-assistant/home-assistant/pull/13929 +[#13934]: https://github.com/home-assistant/home-assistant/pull/13934 +[#13935]: https://github.com/home-assistant/home-assistant/pull/13935 +[#13937]: https://github.com/home-assistant/home-assistant/pull/13937 +[#13938]: https://github.com/home-assistant/home-assistant/pull/13938 +[#13940]: https://github.com/home-assistant/home-assistant/pull/13940 +[#13942]: https://github.com/home-assistant/home-assistant/pull/13942 +[#13943]: https://github.com/home-assistant/home-assistant/pull/13943 +[#13946]: https://github.com/home-assistant/home-assistant/pull/13946 +[#13948]: https://github.com/home-assistant/home-assistant/pull/13948 +[#13958]: https://github.com/home-assistant/home-assistant/pull/13958 +[#13960]: https://github.com/home-assistant/home-assistant/pull/13960 +[#13970]: https://github.com/home-assistant/home-assistant/pull/13970 +[#13974]: https://github.com/home-assistant/home-assistant/pull/13974 +[#13980]: https://github.com/home-assistant/home-assistant/pull/13980 +[#13982]: https://github.com/home-assistant/home-assistant/pull/13982 +[#13986]: https://github.com/home-assistant/home-assistant/pull/13986 +[#13996]: https://github.com/home-assistant/home-assistant/pull/13996 +[#14003]: https://github.com/home-assistant/home-assistant/pull/14003 +[#14005]: https://github.com/home-assistant/home-assistant/pull/14005 +[#14006]: https://github.com/home-assistant/home-assistant/pull/14006 +[#14010]: https://github.com/home-assistant/home-assistant/pull/14010 +[#14013]: https://github.com/home-assistant/home-assistant/pull/14013 +[@B1tMaster]: https://github.com/B1tMaster +[@ChristianKuehnel]: https://github.com/ChristianKuehnel +[@Danielhiversen]: https://github.com/Danielhiversen +[@Juggels]: https://github.com/Juggels +[@KJonline]: https://github.com/KJonline +[@Kane610]: https://github.com/Kane610 +[@Kirchoff]: https://github.com/Kirchoff +[@Marco98]: https://github.com/Marco98 +[@MisterWil]: https://github.com/MisterWil +[@NovapaX]: https://github.com/NovapaX +[@OttoWinter]: https://github.com/OttoWinter +[@Paxy]: https://github.com/Paxy +[@Shou]: https://github.com/Shou +[@TheCellMC]: https://github.com/TheCellMC +[@Yonsm]: https://github.com/Yonsm +[@aav7fl]: https://github.com/aav7fl +[@andersonshatch]: https://github.com/andersonshatch +[@armills]: https://github.com/armills +[@balloob]: https://github.com/balloob +[@cdce8p]: https://github.com/cdce8p +[@cgtobi]: https://github.com/cgtobi +[@citruz]: https://github.com/citruz +[@dangyuluo]: https://github.com/dangyuluo +[@danielperna84]: https://github.com/danielperna84 +[@dersger]: https://github.com/dersger +[@dgomes]: https://github.com/dgomes +[@dlbroadfoot]: https://github.com/dlbroadfoot +[@escoand]: https://github.com/escoand +[@fabaff]: https://github.com/fabaff +[@geekofweek]: https://github.com/geekofweek +[@gerard33]: https://github.com/gerard33 +[@hmn]: https://github.com/hmn +[@hthiery]: https://github.com/hthiery +[@karlkar]: https://github.com/karlkar +[@kellerza]: https://github.com/kellerza +[@koolsb]: https://github.com/koolsb +[@marthoc]: https://github.com/marthoc +[@meauxt]: https://github.com/meauxt +[@michaelkuty]: https://github.com/michaelkuty +[@mjg59]: https://github.com/mjg59 +[@molobrakos]: https://github.com/molobrakos +[@nickw444]: https://github.com/nickw444 +[@no2chem]: https://github.com/no2chem +[@pascalhahn]: https://github.com/pascalhahn +[@philk]: https://github.com/philk +[@pvizeli]: https://github.com/pvizeli +[@rcloran]: https://github.com/rcloran +[@reefab]: https://github.com/reefab +[@robmarkcole]: https://github.com/robmarkcole +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@shred86]: https://github.com/shred86 +[@stephanerosi]: https://github.com/stephanerosi +[@swilson]: https://github.com/swilson +[@syssi]: https://github.com/syssi +[@thelittlefireman]: https://github.com/thelittlefireman +[@thrawnarn]: https://github.com/thrawnarn +[@titilambert]: https://github.com/titilambert +[@tobygray]: https://github.com/tobygray +[@tschmidty69]: https://github.com/tschmidty69 +[@veleek]: https://github.com/veleek +[@viorels]: https://github.com/viorels +[@wiuwiu]: https://github.com/wiuwiu +[@xTCx]: https://github.com/xTCx +[abode docs]: /components/abode/ +[alexa docs]: /components/alexa/ +[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ +[binary_sensor.hive docs]: /components/binary_sensor.hive/ +[binary_sensor.maxcube docs]: /components/binary_sensor.maxcube/ +[bmw_connected_drive docs]: /components/bmw_connected_drive/ +[calendar.google docs]: /components/calendar.google/ +[calendar.todoist docs]: /components/calendar.todoist/ +[climate.fritzbox docs]: /components/climate.fritzbox/ +[climate.hive docs]: /components/climate.hive/ +[climate.honeywell docs]: /components/climate.honeywell/ +[climate.maxcube docs]: /components/climate.maxcube/ +[climate.modbus docs]: /components/climate.modbus/ +[config docs]: /components/config/ +[cover.opengarage docs]: /components/cover.opengarage/ +[cover.tahoma docs]: /components/cover.tahoma/ +[deconz docs]: /components/deconz/ +[device_tracker docs]: /components/device_tracker/ +[ecobee docs]: /components/ecobee/ +[eufy docs]: /components/eufy/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[fritzbox docs]: /components/fritzbox/ +[google docs]: /components/google/ +[hdmi_cec docs]: /components/hdmi_cec/ +[hive docs]: /components/hive/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[hue docs]: /components/hue/ +[ihc docs]: /components/ihc/ +[light docs]: /components/light/ +[light.abode docs]: /components/light.abode/ +[light.aurora docs]: /components/light.aurora/ +[light.eufy docs]: /components/light.eufy/ +[light.hive docs]: /components/light.hive/ +[light.homekit_controller docs]: /components/light.homekit_controller/ +[light.hue docs]: /components/light.hue/ +[light.yeelight docs]: /components/light.yeelight/ +[lock.bmw_connected_drive docs]: /components/lock.bmw_connected_drive/ +[lutron_caseta docs]: /components/lutron_caseta/ +[maxcube docs]: /components/maxcube/ +[media_extractor docs]: /components/media_extractor/ +[media_player.blackbird docs]: /components/media_player.blackbird/ +[media_player.bluesound docs]: /components/media_player.bluesound/ +[media_player.cast docs]: /components/media_player.cast/ +[media_player.kodi docs]: /components/media_player.kodi/ +[media_player.mediaroom docs]: /components/media_player.mediaroom/ +[media_player.mpd docs]: /components/media_player.mpd/ +[media_player.onkyo docs]: /components/media_player.onkyo/ +[media_player.squeezebox docs]: /components/media_player.squeezebox/ +[media_player.webostv docs]: /components/media_player.webostv/ +[notify docs]: /components/notify/ +[notify.facebook docs]: /components/notify.facebook/ +[prometheus docs]: /components/prometheus/ +[qwikswitch docs]: /components/qwikswitch/ +[sensor docs]: /components/sensor/ +[sensor.alpha_vantage docs]: /components/sensor.alpha_vantage/ +[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/ +[sensor.broadlink docs]: /components/sensor.broadlink/ +[sensor.deconz docs]: /components/sensor.deconz/ +[sensor.ebox docs]: /components/sensor.ebox/ +[sensor.ecobee docs]: /components/sensor.ecobee/ +[sensor.eddystone_temperature docs]: /components/sensor.eddystone_temperature/ +[sensor.filter docs]: /components/sensor.filter/ +[sensor.folder docs]: /components/sensor.folder/ +[sensor.foobot docs]: /components/sensor.foobot/ +[sensor.fritzbox_netmonitor docs]: /components/sensor.fritzbox_netmonitor/ +[sensor.hive docs]: /components/sensor.hive/ +[sensor.hydroquebec docs]: /components/sensor.hydroquebec/ +[sensor.linux_battery docs]: /components/sensor.linux_battery/ +[sensor.lmsensor docs]: /components/sensor.lmsensor/ +[sensor.miflora docs]: /components/sensor.miflora/ +[sensor.mqtt docs]: /components/sensor.mqtt/ +[sensor.nest docs]: /components/sensor.nest/ +[sensor.nut docs]: /components/sensor.nut/ +[sensor.qwikswitch docs]: /components/sensor.qwikswitch/ +[sensor.sht31 docs]: /components/sensor.sht31/ +[sensor.sigfox docs]: /components/sensor.sigfox/ +[sensor.smappee docs]: /components/sensor.smappee/ +[sensor.sql docs]: /components/sensor.sql/ +[sensor.tibber docs]: /components/sensor.tibber/ +[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/ +[sensor.upnp docs]: /components/sensor.upnp/ +[sensor.uscis docs]: /components/sensor.uscis/ +[skybell docs]: /components/skybell/ +[smappee docs]: /components/smappee/ +[snips docs]: /components/snips/ +[switch.broadlink docs]: /components/switch.broadlink/ +[switch.edimax docs]: /components/switch.edimax/ +[switch.eufy docs]: /components/switch.eufy/ +[switch.fritzbox docs]: /components/switch.fritzbox/ +[switch.hive docs]: /components/switch.hive/ +[switch.vesync docs]: /components/switch.vesync/ +[tts docs]: /components/tts/ +[upnp docs]: /components/upnp/ +[vacuum docs]: /components/vacuum/ +[vacuum.dyson docs]: /components/vacuum.dyson/ +[vacuum.neato docs]: /components/vacuum.neato/ +[vacuum.roomba docs]: /components/vacuum.roomba/ +[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ +[weather.yweather docs]: /components/weather.yweather/ +[zha docs]: /components/zha/ From 21ed92fb92b7b298c08a139842771032b133d46c Mon Sep 17 00:00:00 2001 From: Brian Hanifin Date: Sat, 21 Apr 2018 17:06:31 -0700 Subject: [PATCH 36/45] Change Page Title to "Homekit Switch" (#5222) * Change Page Title to "Homekit Switch" It was left titled "Homekit Light" when first published. * Minor cleanup --- source/_components/switch.homekit_controller.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/switch.homekit_controller.markdown b/source/_components/switch.homekit_controller.markdown index 205316bdf27..43bf3be57b1 100644 --- a/source/_components/switch.homekit_controller.markdown +++ b/source/_components/switch.homekit_controller.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "HomeKit Light" -description: "Instructions how to setup HomeKit switches within Home Assistant." +title: "HomeKit Switch" +description: "Instructions on how to setup HomeKit switches within Home Assistant." date: 2017-03-19 21:08 sidebar: true comments: false From c66272aa851b6e10cde38dd5514b1a677c3f9100 Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Mon, 23 Apr 2018 17:34:20 +0200 Subject: [PATCH 37/45] Fix release notes 0.68.0b0 (#5212) --- source/_posts/2018-04-27-release-68.markdown | 53 ++------------------ 1 file changed, 4 insertions(+), 49 deletions(-) diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index 788e068c7e9..167a264a2a5 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -18,7 +18,7 @@ Highlights: - Ability to _control_ HomeKit - Eufy bulbs -## New Platforms +## {% linkable_title New Platforms %} - Add support for Eufy bulbs and switches ([@mjg59] - [#13773]) ([eufy docs]) ([light.eufy docs]) ([switch.eufy docs]) (new-platform) - Add support for controlling homekit lights and switches ([@mjg59] - [#13346]) ([homekit_controller docs]) ([light.homekit_controller docs]) (new-platform) @@ -30,7 +30,7 @@ Highlights: - Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) - Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) -## New Features +## {% linkable_title New Features %} - Support binary_sensor and device_tracker in HomeKit ([@Yonsm] - [#13735]) ([homekit docs]) (new-feature) - Add Homekit locks support ([@philk] - [#13625]) ([homekit docs]) (new-feature) @@ -47,35 +47,12 @@ Highlights: Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. -## Breaking Changes +## {% linkable_title Breaking Changes %} - Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) - Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) -## Beta Fixes - -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) - -## All changes +## {% linkable_title All changes %} - Update Homekit to 1.1.9 ([@cdce8p] - [#13716]) ([homekit docs]) - Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([light.aurora docs]) ([sensor.trafikverket_weatherstation docs]) @@ -84,7 +61,6 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add timeout / debounce (for brightness and others) ([@cdce8p] - [#13534]) ([homekit docs]) - added support for smappee water sensors ([@hmn] - [#12831]) ([smappee docs]) ([sensor.smappee docs]) - Initialise filter_sensor with historical values ([@dgomes] - [#13075]) ([sensor.filter docs]) -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) - Bluesound bugfix status 595 and await ([@thrawnarn] - [#13727]) ([media_player.bluesound docs]) - Upgrade aiohttp to 3.1.2 ([@fabaff] - [#13732]) - Upgrade sqlalchemy to 1.2.6 ([@fabaff] - [#13733]) ([sensor.sql docs]) @@ -92,7 +68,6 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update CODEOWNERS (sensor.filter, sensor.upnp) ([@dgomes] - [#13736]) - Reset permission ([@fabaff] - [#13743]) ([light.abode docs]) - Throw an error when invalid device_mode is given ([@dangyuluo] - [#13739]) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) - Upgrade netdisco to 1.3.1 ([@fabaff] - [#13744]) - Add MQTT Sensor unique_id ([@OttoWinter] - [#13318]) ([sensor.mqtt docs]) - Prepare entity component for config entries ([@balloob] - [#13730]) @@ -132,18 +107,13 @@ Experiencing issues introduced by this release? Please report them in our [issue - bump python-ecobee-api version to 0.0.18 ([@geekofweek] - [#13854]) ([ecobee docs]) - Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform) - Avoid unnecessary cast state updates ([@dersger] - [#13770]) ([media_player.cast docs]) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) - Update yweather.py ([@TheCellMC] - [#13851]) ([weather.yweather docs]) - add support for Kodi discovery ([@escoand] - [#13790]) ([media_player.kodi docs]) - Further untangle data entry flow ([@balloob] - [#13855]) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) - Added snips service descriptions ([@tschmidty69] - [#13883]) - Add unique_id for BMW ConnectedDrive ([@gerard33] - [#13888]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) - Revert "Update yweather.py" ([@pvizeli] - [#13900]) ([weather.yweather docs]) - Eufy colour bulb updates ([@mjg59] - [#13895]) ([eufy docs]) ([light.eufy docs]) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) - Fritzbox netmonitor name ([@escoand] - [#13903]) ([sensor.fritzbox_netmonitor docs]) - Restore typeerror check for units sans energy tracking ([@andersonshatch] - [#13824]) ([switch.edimax docs]) - Add more math functions to templates ([@Shou] - [#13915]) @@ -154,10 +124,8 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform) - Hive R3 update ([@KJonline] - [#13357]) ([hive docs]) ([binary_sensor.hive docs]) ([climate.hive docs]) ([light.hive docs]) ([sensor.hive docs]) ([switch.hive docs]) - Updated foobot_async package version ([@reefab] - [#13942]) ([sensor.foobot docs]) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) - Upgrade alpha_vantage to 2.0.0 ([@fabaff] - [#13943]) ([sensor.alpha_vantage docs]) - Cleanup on exit ([@dgomes] - [#13918]) ([media_player.mediaroom docs]) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) - Add data entry flow helper ([@balloob] - [#13935]) ([config docs]) - Xiaomi MiIO Device Tracker: Unused variable removed ([@syssi] - [#13948]) ([device_tracker docs]) - Implement play media to set a channel based on (by priority): ([@stephanerosi] - [#13934]) ([media_player.webostv docs]) @@ -169,20 +137,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Added FB messenger broadcast api to notify.facebook component ([@B1tMaster] - [#12459]) ([notify.facebook docs]) - Added web view for TTS to get url ([@tschmidty69] - [#13882]) ([tts docs]) - Add services for bmw_connected_drive ([@ChristianKuehnel] - [#13497]) ([bmw_connected_drive docs]) ([device_tracker docs]) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) - Bump deCONZ requirement to v36 ([@Kane610] - [#13960]) ([deconz docs]) -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) -- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs]) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) -- Revert "Upgrade pyqwikswitch to 0.71 ([@balloob] - [#13920]) ([qwikswitch docs]) - Bump skybellpy version to 0.1.2 ([@MisterWil] - [#13974]) ([skybell docs]) - Fix typo an coding style ([@stephanerosi] - [#13970]) ([device_tracker docs]) - Params of the send command can be a list now ([@syssi] - [#13905]) ([vacuum docs]) From b455d059c8aa664d3e7164d683cfc545becd240e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 23 Apr 2018 13:42:55 -0400 Subject: [PATCH 38/45] Update 2018-04-27-release-68.markdown --- source/_posts/2018-04-27-release-68.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index 167a264a2a5..e8934b6296e 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -17,6 +17,7 @@ Highlights: - Ability to _control_ HomeKit - Eufy bulbs +- Breaking MDI icons? ## {% linkable_title New Platforms %} From 033028b8819940641163f65fa7223cf903ef7866 Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Mon, 23 Apr 2018 23:39:04 +0200 Subject: [PATCH 39/45] Fix release version (#5236) --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 38d26c045e0..36d6b34978f 100644 --- a/_config.yml +++ b/_config.yml @@ -139,9 +139,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 67 +current_minor_version: 68 current_patch_version: 0 -date_released: 2018-04-13 +date_released: 2018-04-27 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. From 5f7f542f680f5e194b156482a8ca54eaca34d687 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 24 Apr 2018 23:30:23 -0400 Subject: [PATCH 40/45] Eufy update dates --- source/_components/eufy.markdown | 2 +- source/_components/light.eufy.markdown | 2 +- source/_components/switch.eufy.markdown | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/eufy.markdown b/source/_components/eufy.markdown index c11870e401e..294dd269026 100644 --- a/source/_components/eufy.markdown +++ b/source/_components/eufy.markdown @@ -2,7 +2,7 @@ layout: page title: "Eufy" description: "Instructions on how to integrate Eufy devices into Home Assistant." -date: 2018-05-09 19:00 +date: 2018-04-09 19:00 sidebar: true comments: false sharing: true diff --git a/source/_components/light.eufy.markdown b/source/_components/light.eufy.markdown index 773d99f4aa2..872526e1eda 100644 --- a/source/_components/light.eufy.markdown +++ b/source/_components/light.eufy.markdown @@ -2,7 +2,7 @@ layout: page title: "EufyLights" description: "Instructions on how to integrate Eufy LED lights into Home Assistant." -date: 2018-05-09 19:00 +date: 2018-04-09 19:00 sidebar: true comments: false sharing: true diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown index 22e56ae38bd..0bfbae81e5d 100644 --- a/source/_components/switch.eufy.markdown +++ b/source/_components/switch.eufy.markdown @@ -2,7 +2,7 @@ layout: page title: "EufySwitch" description: "Instructions on how to integrate Eufy switches into Home Assistant." -date: 2018-05-09 19:00 +date: 2018-04-09 19:00 sidebar: true comments: false sharing: true From 0b948617b99cde82cabd88611b1c0119e692c6ef Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Wed, 25 Apr 2018 08:48:57 +0200 Subject: [PATCH 41/45] Updated release blog post for 0.68.0b1 (rc) (#5246) --- source/_posts/2018-04-27-release-68.markdown | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index e8934b6296e..cc616913a5b 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -30,6 +30,7 @@ Highlights: - Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform) - Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) - Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) +- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -39,6 +40,15 @@ Highlights: - Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature) - Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature) +## {% linkable_title Beta Fixes %} + +- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) +- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) +- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) +- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) +- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) +- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -161,6 +171,12 @@ Experiencing issues introduced by this release? Please report them in our [issue - Tibber available ([@Danielhiversen] - [#13865]) ([sensor.tibber docs]) - Upgrade pylutron-caseta to 0.5.0 to reestablish connections ([@rohankapoorcom] - [#14013]) ([lutron_caseta docs]) - Add sensor device classes ([@balloob] - [#14010]) ([sensor docs]) ([sensor.ecobee docs]) ([sensor.linux_battery docs]) ([sensor.nest docs]) +- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) +- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) +- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) +- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) +- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) +- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) [#10688]: https://github.com/home-assistant/home-assistant/pull/10688 [#12224]: https://github.com/home-assistant/home-assistant/pull/12224 @@ -443,3 +459,22 @@ Experiencing issues introduced by this release? Please report them in our [issue [vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ [weather.yweather docs]: /components/weather.yweather/ [zha docs]: /components/zha/ +[#14008]: https://github.com/home-assistant/home-assistant/pull/14008 +[#14019]: https://github.com/home-assistant/home-assistant/pull/14019 +[#14025]: https://github.com/home-assistant/home-assistant/pull/14025 +[#14027]: https://github.com/home-assistant/home-assistant/pull/14027 +[#14041]: https://github.com/home-assistant/home-assistant/pull/14041 +[#14051]: https://github.com/home-assistant/home-assistant/pull/14051 +[@OttoWinter]: https://github.com/OttoWinter +[@balloob]: https://github.com/balloob +[@kellerza]: https://github.com/kellerza +[@marthoc]: https://github.com/marthoc +[@mjg59]: https://github.com/mjg59 +[@schmittx]: https://github.com/schmittx +[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/ +[config docs]: /components/config/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[media_player.cast docs]: /components/media_player.cast/ +[qwikswitch docs]: /components/qwikswitch/ +[sensor.qwikswitch docs]: /components/sensor.qwikswitch/ From 1fbf09ab66dc51c262e9547962d8de2faaffd00f Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Thu, 26 Apr 2018 22:55:03 +0200 Subject: [PATCH 42/45] Added new device classes to binary_sensor - HomeKit (#5254) --- source/_components/homekit.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 631ddf592c3..d84658d9451 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -194,7 +194,7 @@ The following components are currently supported: | Component | Type Name | Description | | --------- | --------- | ----------- | | alarm_control_panel | SecuritySystem | All security systems. | -| binary_sensor | Sensor | Support for `CO2`, `Gas`, `Moisture`, `Motion`, `Occupancy`, `Opening` and `Smoke` device classes. Defaults to the `Occupancy` device class for everything else. | +| binary_sensor | Sensor | Support for `co2`, `door`, `garage_door`, `gas`, `moisture`, `motion`, `occupancy`, `opening`, `smoke` and `window` device classes. Defaults to the `occupancy` device class for everything else. | | climate | Thermostat | All climate devices. | | cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` as their `device_class`. | | cover | WindowCovering | All covers that support `set_cover_position`. | From 546806f1c6bfb194c3d9486bc159180715e5dd22 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Fri, 27 Apr 2018 21:41:00 +0200 Subject: [PATCH 43/45] Update qwikswitch add binary_sensors (#5210) * Update qwikswitch.markdown * bin --- .../binary_sensor.qwikswitch.markdown | 18 ++++++++++++++++++ source/_components/qwikswitch.markdown | 11 +++++++---- source/_components/sensor.qwikswitch.markdown | 2 +- source/images/supported_brands/qwikswitch.png | Bin 20959 -> 5032 bytes 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 source/_components/binary_sensor.qwikswitch.markdown diff --git a/source/_components/binary_sensor.qwikswitch.markdown b/source/_components/binary_sensor.qwikswitch.markdown new file mode 100644 index 00000000000..e3fd446a3ba --- /dev/null +++ b/source/_components/binary_sensor.qwikswitch.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "QwikSwitch Binary Sensor" +description: "Instructions on how to integrate Qwikswitch dimmers and relays as sensors into Home Assistant." +date: 2016-05-04 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: qwikswitch.png +ha_category: Sensor +ha_iot_class: "Local Push" +ha_release: "0.68" +--- + +The `qwikswitch` binary_sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors within Home Assistant. + +The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/_components/qwikswitch.markdown b/source/_components/qwikswitch.markdown index 8889e29fbc8..e915be3979f 100644 --- a/source/_components/qwikswitch.markdown +++ b/source/_components/qwikswitch.markdown @@ -60,16 +60,19 @@ On some QS Mobile servers button events are only generated for switches added to ### {% linkable_title Qwikswitch Sensors %} -The sensor configuration is a list of sensors. Each sensor is configured with the following parameters: +The sensor configuration is a list of sensors. Depending on the type, it will be a sensor or binary_sensor. Each sensor is configured with the following parameters: - **name** (*Required*): The sensor name from which the entity_id will be derived. - **id** (*Required*): A QS_Id - **type** (*Required*): The Qwikswitch sensor type. These could include: - - imod (up to 6 channels) - - door (single channel) - - qwikcord (Channel1 = CTavg, Channel 2 = CTsum) + - imod (binary_sensor, up to 6 channels) + - door (binary_sensor, single channel) + - qwikcord (Channel 1 = CTavg, Channel 2 = CTsum) - **channel** (*Optional, default=1*): The channel of interest. Refer to type above. +The following parameters are only applicabe to binary_sensors (i.e. door/imod). +- **invert** (*Optional, default=False): Invert the open/close state. +- **class** (*Optional, default=door): The [class](https://www.home-assistant.io/components/binary_sensor) or binary_sensor. Example sensor configuration: diff --git a/source/_components/sensor.qwikswitch.markdown b/source/_components/sensor.qwikswitch.markdown index b2574cdb1d7..afc4fc6cb4c 100644 --- a/source/_components/sensor.qwikswitch.markdown +++ b/source/_components/sensor.qwikswitch.markdown @@ -13,6 +13,6 @@ ha_iot_class: "Local Push" ha_release: "0.67" --- -The `qwikswitch` sensor platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays and dimmers as sensors from within Home Assistant. +The `qwikswitch` sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors in Home Assistant. The platform is configured through the [QwikSwitch component](/components/qwikswitch/). diff --git a/source/images/supported_brands/qwikswitch.png b/source/images/supported_brands/qwikswitch.png index ada6158b54d772df5d1e64ffe38e8a12a014c3c4..0109f03a359ad82fa55a4bdc89c315d63e2244d5 100644 GIT binary patch literal 5032 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 literal 20959 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

eB5EdIu+eFVCBE~6m@4Z0S z@v&KCZsbpuTFh;Sf3^_T{AXpfx@}l0U@HBub|6hIg)m$qqs`6DYKwgx9VW%2nR%<` zE}$?=7X4oYgl%nY<^Q_vh9N8;fMy?a@Ds^cX4Q$|iYaa~)VG)Y% zT12eH!rlSGB1+w>u#X^1tTdrU^#}Q=UL-&<@Ubq~HCU@xpFD(J+X^F&mvQ#;6~fv} zG_ke9#2~1S^DN2=#iY5u1z~UEf`aAm3Bm+@DhRWlMW6P+9W?fZi*F`H7QjtE*kh!u-6b+*KhA*^Y60_W9;=JQvA*6d+C; zsuJ%Wv=HVxKR>5q2xwbXc`9)dca5Zqj}F2-9R$KI8VGZ0JP3qI@%{0~A9IDzAHqZ~ z3m4M4+jEY$_=WQhXSeuLoq}zyuSYh({_buKVXx{F$pInEqK((2E5Ud~HdQi&q_fqP zRkna2QP-pj5XL^5eNwLqx-Nh{IDcq%g&F~oCkIDOdT@=EvK4UH=Cf9#(2=*Z%NoKu zmqS?CwvJ9q3O8`C4qm;n&BEU%h_l3uP;Ne$1$WSr`SZY_~aDwMQdcCUm+HSOp51*1$}WYyWUsWk@X(Rtjx z`qYVq5hs-vvor!J2&7pRLc!|1LV_DW%G7d-Z!X3)qx>IIkmDflNIIU&h>0iW-t|+< zR11KLGZ12)GTXn*5l$gKKQ&YPK~D3|)>(fDD-{S7RZ6eaR-K!*I3o^MN8#?bteAB@ zep;Cq;xN&hW8FMf0B*cJVu+==g(~Nf>m4fn>0NSgA}7;s+?L3D3S1)|MSa33nGLju zoM@ZM{wSGs{7~y8j;Km+_ix`NQ98##fI(@XX}NzMfklp5^HW`E$bJ6fk3R-sj{e02GpRFXap$g-oP0L4yS$$wlNwDoAlXLv2XwOyZylG-~eTHQVrYL%kBROYa{V=W}-`ndhiqTV-^ZT z6N`widZ>_jWy&iHi*b7XNnRFwC#BfsvbVEi=J?L;U`w}d3(?w1q^(yCA)R2hCU*OL zLJtv`%5);`=SM2Dr6Up4`z6m)pKVba$L%MEepwIQ5#lMz-A;{J9n(-bO*Uzjkt#1@MQvx(7@doYyqjZE0uKH$v%f^;?$Q!vePEt9{0=5zZE)x+Ym%g;N)BX_v0000005Ab^ Wyt}0?f55^30000 Date: Fri, 27 Apr 2018 17:05:37 -0400 Subject: [PATCH 44/45] Add blog post --- source/_components/light.eufy.markdown | 2 +- source/_components/sensor.uscis.markdown | 6 +- source/_components/switch.eufy.markdown | 2 +- source/_posts/2018-04-27-release-68.markdown | 124 ++++++++++++------ .../images/blog/2018-04-0.68/components.png | Bin 0 -> 39722 bytes 5 files changed, 87 insertions(+), 47 deletions(-) create mode 100644 source/images/blog/2018-04-0.68/components.png diff --git a/source/_components/light.eufy.markdown b/source/_components/light.eufy.markdown index 872526e1eda..d8596c00487 100644 --- a/source/_components/light.eufy.markdown +++ b/source/_components/light.eufy.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "EufyLights" +title: "Eufy Lights" description: "Instructions on how to integrate Eufy LED lights into Home Assistant." date: 2018-04-09 19:00 sidebar: true diff --git a/source/_components/sensor.uscis.markdown b/source/_components/sensor.uscis.markdown index 49d55b0416f..3d214dc818a 100644 --- a/source/_components/sensor.uscis.markdown +++ b/source/_components/sensor.uscis.markdown @@ -7,7 +7,7 @@ sidebar: false comments: false sharing: true footer: true -logo: uscis.jpg +logo: uscis.png ha_category: Sensor ha_release: 0.68 ha_iot_class: "Cloud Polling" @@ -31,9 +31,9 @@ friendly_name: default: USCIS type: string case_id: - description: Case/receipt number used to get the case details from USCIS web client. + description: Case/receipt number used to get the case details from USCIS web client. required: true type: string {% endconfiguration %} -All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do). +All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do). diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown index 0bfbae81e5d..1a79dbd26bd 100644 --- a/source/_components/switch.eufy.markdown +++ b/source/_components/switch.eufy.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "EufySwitch" +title: "Eufy Switch" description: "Instructions on how to integrate Eufy switches into Home Assistant." date: 2018-04-09 19:00 sidebar: true diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index cc616913a5b..fc39df14051 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -1,8 +1,8 @@ --- layout: post -title: "0.68: UPDATE DATE" -description: "UPDATE DATE" -date: 2018-04-20 00:01:00 +title: "0.68: HomeKit control, Eufy, FritzBox, SigFox sensors" +description: "Enjoy your weekend with this brand new release of Home Assistant." +date: 2018-04-27 00:01:00 date_formatted: "April 27, 2018" author: Paulus Schoutsen author_twitter: balloob @@ -13,11 +13,11 @@ og_image: /images/blog/2018-04-0.68/components.png -Highlights: +Weekend is around the corner and that means that it's time for the next release of Home Assistant. 0.68 brings a ton of great goodies and bug fixes. -- Ability to _control_ HomeKit -- Eufy bulbs -- Breaking MDI icons? +One of the coolest features this release is by [@mjg59]: you are now able to **control** HomeKit devices. Previously, it was possible to control Home Assistant from iOS devices using the HomeKit protocol. With this release, Home Assistant is able to become the controller and use HomeKit to control lights and switches directly. Since HomeKit is vendor agnostic, it means that any HomeKit light or switch will now be compatible with Home Assistant. Very cool. + +Another cool new platform, also by [@mjg59], is support for Eufy devices. Eufy is the Home Automation brand of Anker and they have been producing reasonably priced devices which can now be controlled by Home Assistant too. Thanks for all your contributions [@mjg59] ❤️. ## {% linkable_title New Platforms %} @@ -29,7 +29,6 @@ Highlights: - Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform) - Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform) - Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) -- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) - Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -40,15 +39,6 @@ Highlights: - Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature) - Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature) -## {% linkable_title Beta Fixes %} - -- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) -- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) -- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) -- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) -- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) -- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) - ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -60,18 +50,52 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) -- Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) +- Icons! Material Design Icons has implemented some naming guidelines and this caused 9 icons to change names, 3 of which are home automation icons: `roomba` -> `robot-vacuum`, `nest-protect` -> `smoke-detector`, `nest-thermostat` -> `thermostat` ([see all changes](http://templarian.com/2018/04/18/material-design-icons-v2-3-54/)). +- Support for multiple MAX!Cube LAN gateways caused a slight change to the configuration schema. Make sure to check the docs for the new one. ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) +- Ebox sensor platform has been disabled because the dependency was not compatible with pip 10. ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) + +## {% linkable_title Beta Fixes %} + +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) +- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) +- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) +- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) +- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) +- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) +- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix) +- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix) +- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix) ## {% linkable_title All changes %} - Update Homekit to 1.1.9 ([@cdce8p] - [#13716]) ([homekit docs]) -- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([light.aurora docs]) ([sensor.trafikverket_weatherstation docs]) -- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([google docs]) ([calendar.google docs]) +- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([sensor.trafikverket_weatherstation docs]) +- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([calendar.google docs]) - Allow use of date_string in service call ([@Juggels] - [#13256]) ([calendar.todoist docs]) - Add timeout / debounce (for brightness and others) ([@cdce8p] - [#13534]) ([homekit docs]) - added support for smappee water sensors ([@hmn] - [#12831]) ([smappee docs]) ([sensor.smappee docs]) - Initialise filter_sensor with historical values ([@dgomes] - [#13075]) ([sensor.filter docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) - Bluesound bugfix status 595 and await ([@thrawnarn] - [#13727]) ([media_player.bluesound docs]) - Upgrade aiohttp to 3.1.2 ([@fabaff] - [#13732]) - Upgrade sqlalchemy to 1.2.6 ([@fabaff] - [#13733]) ([sensor.sql docs]) @@ -79,6 +103,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update CODEOWNERS (sensor.filter, sensor.upnp) ([@dgomes] - [#13736]) - Reset permission ([@fabaff] - [#13743]) ([light.abode docs]) - Throw an error when invalid device_mode is given ([@dangyuluo] - [#13739]) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) - Upgrade netdisco to 1.3.1 ([@fabaff] - [#13744]) - Add MQTT Sensor unique_id ([@OttoWinter] - [#13318]) ([sensor.mqtt docs]) - Prepare entity component for config entries ([@balloob] - [#13730]) @@ -118,13 +143,18 @@ Experiencing issues introduced by this release? Please report them in our [issue - bump python-ecobee-api version to 0.0.18 ([@geekofweek] - [#13854]) ([ecobee docs]) - Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform) - Avoid unnecessary cast state updates ([@dersger] - [#13770]) ([media_player.cast docs]) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) - Update yweather.py ([@TheCellMC] - [#13851]) ([weather.yweather docs]) - add support for Kodi discovery ([@escoand] - [#13790]) ([media_player.kodi docs]) - Further untangle data entry flow ([@balloob] - [#13855]) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) - Added snips service descriptions ([@tschmidty69] - [#13883]) - Add unique_id for BMW ConnectedDrive ([@gerard33] - [#13888]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) - Revert "Update yweather.py" ([@pvizeli] - [#13900]) ([weather.yweather docs]) - Eufy colour bulb updates ([@mjg59] - [#13895]) ([eufy docs]) ([light.eufy docs]) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) - Fritzbox netmonitor name ([@escoand] - [#13903]) ([sensor.fritzbox_netmonitor docs]) - Restore typeerror check for units sans energy tracking ([@andersonshatch] - [#13824]) ([switch.edimax docs]) - Add more math functions to templates ([@Shou] - [#13915]) @@ -135,8 +165,10 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform) - Hive R3 update ([@KJonline] - [#13357]) ([hive docs]) ([binary_sensor.hive docs]) ([climate.hive docs]) ([light.hive docs]) ([sensor.hive docs]) ([switch.hive docs]) - Updated foobot_async package version ([@reefab] - [#13942]) ([sensor.foobot docs]) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) - Upgrade alpha_vantage to 2.0.0 ([@fabaff] - [#13943]) ([sensor.alpha_vantage docs]) - Cleanup on exit ([@dgomes] - [#13918]) ([media_player.mediaroom docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) - Add data entry flow helper ([@balloob] - [#13935]) ([config docs]) - Xiaomi MiIO Device Tracker: Unused variable removed ([@syssi] - [#13948]) ([device_tracker docs]) - Implement play media to set a channel based on (by priority): ([@stephanerosi] - [#13934]) ([media_player.webostv docs]) @@ -148,7 +180,20 @@ Experiencing issues introduced by this release? Please report them in our [issue - Added FB messenger broadcast api to notify.facebook component ([@B1tMaster] - [#12459]) ([notify.facebook docs]) - Added web view for TTS to get url ([@tschmidty69] - [#13882]) ([tts docs]) - Add services for bmw_connected_drive ([@ChristianKuehnel] - [#13497]) ([bmw_connected_drive docs]) ([device_tracker docs]) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) - Bump deCONZ requirement to v36 ([@Kane610] - [#13960]) ([deconz docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Revert "Upgrade pyqwikswitch to 0.71 ([@balloob] - [#13920]) ([qwikswitch docs]) - Bump skybellpy version to 0.1.2 ([@MisterWil] - [#13974]) ([skybell docs]) - Fix typo an coding style ([@stephanerosi] - [#13970]) ([device_tracker docs]) - Params of the send command can be a list now ([@syssi] - [#13905]) ([vacuum docs]) @@ -166,7 +211,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Useless code removed ([@syssi] - [#13996]) ([maxcube docs]) - Add Homematic HmIP-SWO-PR weather sensor support ([@pascalhahn] - [#13904]) ([homematic docs]) - Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) -- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) +- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.miflora docs]) - Log an error instead of raising an exception ([@syssi] - [#14006]) ([sensor.sht31 docs]) - Tibber available ([@Danielhiversen] - [#13865]) ([sensor.tibber docs]) - Upgrade pylutron-caseta to 0.5.0 to reestablish connections ([@rohankapoorcom] - [#14013]) ([lutron_caseta docs]) @@ -177,6 +222,9 @@ Experiencing issues introduced by this release? Please report them in our [issue - Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) - Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) - Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) +- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix) +- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix) +- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix) [#10688]: https://github.com/home-assistant/home-assistant/pull/10688 [#12224]: https://github.com/home-assistant/home-assistant/pull/12224 @@ -292,11 +340,21 @@ Experiencing issues introduced by this release? Please report them in our [issue [#14003]: https://github.com/home-assistant/home-assistant/pull/14003 [#14005]: https://github.com/home-assistant/home-assistant/pull/14005 [#14006]: https://github.com/home-assistant/home-assistant/pull/14006 +[#14008]: https://github.com/home-assistant/home-assistant/pull/14008 [#14010]: https://github.com/home-assistant/home-assistant/pull/14010 [#14013]: https://github.com/home-assistant/home-assistant/pull/14013 +[#14019]: https://github.com/home-assistant/home-assistant/pull/14019 +[#14025]: https://github.com/home-assistant/home-assistant/pull/14025 +[#14027]: https://github.com/home-assistant/home-assistant/pull/14027 +[#14041]: https://github.com/home-assistant/home-assistant/pull/14041 +[#14051]: https://github.com/home-assistant/home-assistant/pull/14051 +[#14074]: https://github.com/home-assistant/home-assistant/pull/14074 +[#14080]: https://github.com/home-assistant/home-assistant/pull/14080 +[#14097]: https://github.com/home-assistant/home-assistant/pull/14097 [@B1tMaster]: https://github.com/B1tMaster [@ChristianKuehnel]: https://github.com/ChristianKuehnel [@Danielhiversen]: https://github.com/Danielhiversen +[@GotoCode]: https://github.com/GotoCode [@Juggels]: https://github.com/Juggels [@KJonline]: https://github.com/KJonline [@Kane610]: https://github.com/Kane610 @@ -344,6 +402,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@reefab]: https://github.com/reefab [@robmarkcole]: https://github.com/robmarkcole [@rohankapoorcom]: https://github.com/rohankapoorcom +[@schmittx]: https://github.com/schmittx [@shred86]: https://github.com/shred86 [@stephanerosi]: https://github.com/stephanerosi [@swilson]: https://github.com/swilson @@ -362,6 +421,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ [binary_sensor.hive docs]: /components/binary_sensor.hive/ [binary_sensor.maxcube docs]: /components/binary_sensor.maxcube/ +[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/ [bmw_connected_drive docs]: /components/bmw_connected_drive/ [calendar.google docs]: /components/calendar.google/ [calendar.todoist docs]: /components/calendar.todoist/ @@ -427,7 +487,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.hive docs]: /components/sensor.hive/ [sensor.hydroquebec docs]: /components/sensor.hydroquebec/ [sensor.linux_battery docs]: /components/sensor.linux_battery/ -[sensor.lmsensor docs]: /components/sensor.lmsensor/ [sensor.miflora docs]: /components/sensor.miflora/ [sensor.mqtt docs]: /components/sensor.mqtt/ [sensor.nest docs]: /components/sensor.nest/ @@ -459,22 +518,3 @@ Experiencing issues introduced by this release? Please report them in our [issue [vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ [weather.yweather docs]: /components/weather.yweather/ [zha docs]: /components/zha/ -[#14008]: https://github.com/home-assistant/home-assistant/pull/14008 -[#14019]: https://github.com/home-assistant/home-assistant/pull/14019 -[#14025]: https://github.com/home-assistant/home-assistant/pull/14025 -[#14027]: https://github.com/home-assistant/home-assistant/pull/14027 -[#14041]: https://github.com/home-assistant/home-assistant/pull/14041 -[#14051]: https://github.com/home-assistant/home-assistant/pull/14051 -[@OttoWinter]: https://github.com/OttoWinter -[@balloob]: https://github.com/balloob -[@kellerza]: https://github.com/kellerza -[@marthoc]: https://github.com/marthoc -[@mjg59]: https://github.com/mjg59 -[@schmittx]: https://github.com/schmittx -[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/ -[config docs]: /components/config/ -[homekit docs]: /components/homekit/ -[homekit_controller docs]: /components/homekit_controller/ -[media_player.cast docs]: /components/media_player.cast/ -[qwikswitch docs]: /components/qwikswitch/ -[sensor.qwikswitch docs]: /components/sensor.qwikswitch/ diff --git a/source/images/blog/2018-04-0.68/components.png b/source/images/blog/2018-04-0.68/components.png new file mode 100644 index 0000000000000000000000000000000000000000..57d9fc40b38e933eceb6cad9dfc9f3d0d9cd825b GIT binary patch literal 39722 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 azr?c6h$90 Date: Fri, 27 Apr 2018 17:12:10 -0400 Subject: [PATCH 45/45] Update post --- source/_posts/2018-04-27-release-68.markdown | 21 +------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index fc39df14051..4ac9d1f460b 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -56,26 +56,6 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Beta Fixes %} -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) -- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) -- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) -- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) -- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) -- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) -- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) -- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) -- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) -- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) -- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) - Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) - Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) - HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) @@ -85,6 +65,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix) - Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix) - Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix) +- Change Eufy brightness handling ([@mjg59] - [#14111]) (beta fix) ## {% linkable_title All changes %}