From 75b38fdfdb85e455b5a85b17225cde7784b8bd90 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 30 Jan 2019 17:42:40 -0800 Subject: [PATCH 01/16] Add draft 87 post --- _config.yml | 6 +- source/_posts/2019-02-06-release-87.markdown | 540 +++++++++++++++++++ 2 files changed, 543 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2019-02-06-release-87.markdown diff --git a/_config.yml b/_config.yml index a01e12f706e..bbe95b287f0 100644 --- a/_config.yml +++ b/_config.yml @@ -143,9 +143,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 86 -current_patch_version: 4 -date_released: 2019-01-29 +current_minor_version: 87 +current_patch_version: 0 +date_released: 2019-02-06 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown new file mode 100644 index 00000000000..4118738152f --- /dev/null +++ b/source/_posts/2019-02-06-release-87.markdown @@ -0,0 +1,540 @@ +--- +layout: post +title: "0.87: SmartThings, TBD UPDATE DATE " +description: "TBD UPDATE DATE" +date: 2019-01-30 00:01:03 +date_formatted: "February 6, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-02-release-87/smartthings.png +--- + + + +SmartThings + +## {% linkable_title New Platforms %} + +- Add a Zoneminder availability sensor ([@rohankapoorcom] - [#20184]) ([zoneminder docs]) (new-platform) +- Add platform image_processing.qrcode ([@zhujisheng] - [#20215]) ([image_processing.qrcode docs]) (new-platform) +- Add LCN switch platform ([@alengwenus] - [#20267]) ([lcn docs]) ([switch.lcn docs]) (new-platform) +- Fire events for Lutron RadioRA2 keypad buttons ([@koreth] - [#20090]) ([lutron docs]) ([binary_sensor.lutron docs]) (new-platform) +- Add EverLights light component ([@joncar] - [#19817]) ([light.everlights docs]) (new-platform) +- Add device tracker support for EE Brightbox 2 router ([@krygal] - [#19611]) ([device_tracker docs]) (new-platform) +- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([cover.homematicip_cloud docs]) (new-platform) +- Add Danfoss Air HRV support ([@JonasPed] - [#20138]) ([danfoss_air docs]) ([binary_sensor.danfoss_air docs]) ([sensor.danfoss_air docs]) (new-platform) +- Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) +- Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) +- introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) (new-platform) +- Add nilu air_quality platform ([@hfurubotten] - [#19674]) ([air_pollutants docs]) (new-platform) +- Add Iliad Italy (Mobile Telephony Provider) Sensor ([@eliseomartelli] - [#19645]) ([sensor.iliad_italy docs]) (new-platform) +- Add support for HomeKit motion sensor devices ([@Jc2k] - [#20555]) ([homekit_controller docs]) (new-platform) +- Add an Integration sensor ([@dgomes] - [#19703]) ([sensor.integration docs]) (new-platform) +- Add Synology SRM device tracker ([@aerialls] - [#20320]) ([device_tracker docs]) (new-platform) +- Add Recollect Waste ([@stealthhacker] - [#20121]) ([sensor.recollect_waste docs]) (new-platform) +- New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) +- Add support for FRITZ DECT 100 (temp sensor) ([@choss] - [#20308]) ([fritzbox docs]) ([sensor.fritzbox docs]) (new-platform) +- RFC: Add system health component ([@balloob] - [#20436]) ([system_health docs]) ([updater docs]) (new-platform) +- Add sensor platform for Rova Garbage Collection ([@GidoHakvoort] - [#18868]) ([sensor.rova docs]) (new-platform) +- ZHA component rewrite part 4 - add device module ([@dmulcahey] - [#20469]) ([zha docs]) (new-platform) +- Add SmartThings component and switch platform ([@andrewsayre] - [#20148]) ([smartthings docs]) ([switch.smartthings docs]) (new-platform) + +## {% linkable_title New Features %} + +- Add yeelight start_flow service and ability to declare custom effects ([@zewelor] - [#20107]) ([light.yeelight 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. + + + +## {% linkable_title Breaking Changes %} + +- Fix unused friendly name for SolarEdge sensor ([@LouisMT] - [#20109]) ([sensor.solaredge docs]) (breaking change) +- Fix typo C02 to CO2 ([@reefab] - [#20306]) ([air_quality docs]) (breaking change) +- Remove creation of geolocation default group ([@exxamalte] - [#20338]) ([geo_location docs]) (breaking change) +- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([notify:dovado docs]) ([sensor.dovado docs]) (breaking change) +- Reset Brottsplatskartan incident types every day ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) +- Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) +- New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) + +## {% linkable_title All changes %} + +- Remove color call to set lights to black. ([@boralyl] - [#20176]) ([light.hyperion docs]) +- Embed zoneminder platforms into component ([@rohankapoorcom] - [#20182]) ([zoneminder docs]) +- Add a Zoneminder availability sensor ([@rohankapoorcom] - [#20184]) ([zoneminder docs]) (new-platform) +- Add JSON attribute topic to MQTT cover ([@emontnemery] - [#20190]) ([mqtt docs]) +- Add JSON attribute topic to MQTT light ([@emontnemery] - [#20191]) ([mqtt docs]) +- Add JSON attribute topic to MQTT switch ([@emontnemery] - [#20192]) ([mqtt docs]) +- Log exceptions thrown by signal callbacks ([@emontnemery] - [#20015]) +- Set ehendrix23 as owner for harmony platform ([@ehendrix23] - [#20203]) +- Add platform image_processing.qrcode ([@zhujisheng] - [#20215]) ([image_processing.qrcode docs]) (new-platform) +- Add verify_ssl to restful_command and switch.rest (#20199) ([@rohankapoorcom] - [#20207]) ([rest_command docs]) ([switch.rest docs]) +- Fix unused friendly name for SolarEdge sensor ([@LouisMT] - [#20109]) ([sensor.solaredge docs]) (breaking change) +- Fix for issue #19086 ([@JoakimLindbom] - [#20225]) ([media_player.volumio docs]) +- Use local IP to discover IGD device ([@gorynychzmey] - [#20035]) ([upnp docs]) +- Tibber Pulse for homes without subscriptions ([@Danielhiversen] - [#20246]) ([tibber docs]) ([sensor.tibber docs]) +- Added Search Configuration to IMAP Sensor ([@mwegner] - [#19749]) ([sensor.imap docs]) +- Support for relay ports for LCN light platform ([@alengwenus] - [#19632]) ([lcn docs]) ([light.lcn docs]) +- Add LCN switch platform ([@alengwenus] - [#20267]) ([lcn docs]) ([switch.lcn docs]) (new-platform) +- Updated sense library to 0.6.0 ([@kbickar] - [#20271]) ([sense docs]) +- Fire events for Lutron RadioRA2 keypad buttons ([@koreth] - [#20090]) ([lutron docs]) ([binary_sensor.lutron docs]) (new-platform) +- Update Tibber library ([@Danielhiversen] - [#20273]) ([tibber docs]) +- Make Netatmo battery_percent icon dynamic ([@notoriousbdg] - [#20275]) ([sensor.netatmo docs]) +- Add type hints to helpers.condition ([@scop] - [#20266]) ([zone docs]) +- Add discovery_info check to LCN light platform ([@alengwenus] - [#20280]) ([light.lcn docs]) +- Reduce log noise from Envisalink component ([@koreth] - [#20282]) ([envisalink docs]) +- Print a message when reconnected after a connection failure, requirement for IQS silver ([@rytilahti] - [#20261]) ([media_player.songpal docs]) +- Add JSON attribute topic to MQTT vacuum ([@emontnemery] - [#20242]) ([mqtt docs]) +- Add JSON attribute topic to MQTT lock ([@emontnemery] - [#20241]) ([mqtt docs]) +- Add JSON attribute topic to MQTT fan ([@emontnemery] - [#20240]) ([mqtt docs]) +- Add JSON attribute topic to MQTT climate ([@emontnemery] - [#20239]) ([mqtt docs]) +- Add JSON attribute topic to MQTT alarm ([@emontnemery] - [#20238]) ([mqtt docs]) +- Add EverLights light component ([@joncar] - [#19817]) ([light.everlights docs]) (new-platform) +- Added recursive detection of functools.partial. ([@andrewsayre] - [#20284]) +- Added Xiaomi AirPurifier 2S profile ([@foxel] - [#20285]) ([fan.xiaomi_miio docs]) +- Update Tibber lib ([@Danielhiversen] - [#20289]) ([tibber docs]) ([sensor.tibber docs]) +- Remove trailing slash from base_url and added ability to generate webhook path. ([@andrewsayre] - [#20295]) ([http docs]) ([webhook docs]) +- Add radiotherm is_on method to return on/off ([@TD22057] - [#20283]) ([climate.radiotherm docs]) +- Fix typo C02 to CO2 ([@reefab] - [#20306]) ([air_quality docs]) (breaking change) +- Add git to the development Dockerfile ([@kellerza] - [#20276]) +- Add device tracker support for EE Brightbox 2 router ([@krygal] - [#19611]) ([device_tracker docs]) (new-platform) +- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([cover.homematicip_cloud docs]) (new-platform) +- Upgrade python-nest to 4.1.0 ([@awarecan] - [#20313]) ([nest docs]) +- Upgrade youtube_dl to 2019.01.17 ([@fabaff] - [#20318]) +- Add data/data_template/title to alert component ([@syphernl] - [#17616]) ([alert docs]) +- Remove creation of geolocation default group ([@exxamalte] - [#20338]) ([geo_location docs]) (breaking change) +- Add Octoprint custom path ([@reefab] - [#20302]) +- Update Requirement for PyISY Package in isy994 Component to v1.1.1 ([@shbatm] - [#20349]) ([isy994 docs]) +- Fix mpd logging format string field ([@heytensai] - [#20333]) ([media_player.mpd docs]) +- Add Danfoss Air HRV support ([@JonasPed] - [#20138]) ([danfoss_air docs]) ([binary_sensor.danfoss_air docs]) ([sensor.danfoss_air docs]) (new-platform) +- clean up of islamic_prayer_times ([@Danielhiversen] - [#20352]) ([sensor.islamic_prayer_times docs]) +- Bump homekit==0.12.2 + improve controller reliability ([@Jc2k] - [#20325]) ([homekit_controller docs]) +- Fix entity registry comments ([@balloob] - [#20357]) +- Clean up concord232 ([@Danielhiversen] - [#20353]) ([alarm_control_panel.concord232 docs]) +- Change STATE_UNKOWN to None ([@Danielhiversen] - [#20337]) +- Upgrade TwitterAPI to 2.5.9 ([@fabaff] - [#20372]) ([notify docs]) +- SongPal: do not crash if active_source is not (yet) available - fixes #20343 ([@Censored3] - [#20344]) ([media_player.songpal docs]) +- Add yeelight start_flow service and ability to declare custom effects ([@zewelor] - [#20107]) ([light.yeelight docs]) (new-feature) +- Remove logging from tibber ([@Danielhiversen] - [#20382]) ([sensor.tibber docs]) +- Improve deprecation warnings ([@amelchio] - [#20391]) +- Upgrade emulated_roku to 0.1.8 to fix invalid encodings, fixes #20388 ([@mindigmarton] - [#20390]) ([emulated_roku docs]) +- Upgrade numpy to 1.16.0 ([@fabaff] - [#20396]) ([binary_sensor.trend docs]) ([image_processing.opencv docs]) ([image_processing.tensorflow docs]) ([sensor.pollen docs]) +- Update pyhomematic to 0.1.55 ([@danielperna84] - [#20397]) ([homematic docs]) +- Return windspeed and windgust in km/h instead of m/s. ([@jvanderneutstulen] - [#20340]) ([weather.darksky docs]) +- Update device registry of MQTT Switch ([@emontnemery] - [#19540]) ([mqtt docs]) ([switch.mqtt docs]) +- Cleanup if discovered mqtt light can't be added ([@emontnemery] - [#19740]) ([light.mqtt docs]) +- Add character encoding to MQTT automation. ([@emontnemery] - [#20292]) ([automation.mqtt docs]) +- Add LIFX listen port advanced configuration ([@amelchio] - [#20299]) +- Add time_throttle filter to sensor.filter ([@foxel] - [#20334]) ([sensor.filter docs]) +- Upgrade youtube_dl to 2019.01.24 ([@jonudewux] - [#20408]) ([media_extractor docs]) +- Move homekit_controller entity types under homekit_controller platform ([@Jc2k] - [#20376]) ([homekit_controller docs]) +- Fix cast platform album name property ([@zewelor] - [#20411]) ([media_player.cast docs]) +- Fix minor homematicip cloud binary sensor issues ([@coreGreenberet] - [#20398]) ([binary_sensor.homematicip_cloud docs]) +- Fix homematicip cloud alarm_arm_home ([@coreGreenberet] - [#20321]) ([alarm_control_panel.homematicip_cloud docs]) +- Fix HTTP login attempts check triggering too late ([@LouisMT] - [#20431]) ([http docs]) +- WeMo - Fix device discovery issues ([@sqldiablo] - [#20446]) ([wemo docs]) +- Add alarm type workaround zwave lock Yale YRD240 ([@adrum] - [#20438]) ([lock.zwave docs]) +- Error handling for recorder purge ([@amelchio] - [#20424]) +- ZHA component rewrite part 1 ([@dmulcahey] - [#20456]) +- Upgrade astral to 1.8 ([@fabaff] - [#20459]) +- Correct minor comments from PR#20138. ([@JonasPed] - [#20454]) ([danfoss_air docs]) +- Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) +- Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) +- introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) (new-platform) +- Update device registry of MQTT fan ([@emontnemery] - [#20445]) ([mqtt docs]) +- Update device registry of MQTT climate ([@emontnemery] - [#20444]) ([mqtt docs]) +- Update device registry of MQTT sensor ([@emontnemery] - [#20440]) ([mqtt docs]) +- Update device registry of MQTT alarm ([@emontnemery] - [#20439]) +- Update device registry of MQTT cover ([@emontnemery] - [#20443]) ([mqtt docs]) +- Upgrade sqlalchemy to 1.2.16 ([@fabaff] - [#20474]) ([sensor.sql docs]) +- Upgrade psutil to 5.5.0 ([@fabaff] - [#20462]) ([sensor.systemmonitor docs]) +- Include exception details in the error log ([@shaan7] - [#20461]) ([media_player.firetv docs]) +- Use HASS latitude/longitude as defaults for Lyft ([@bachya] - [#20491]) ([sensor.lyft docs]) +- Upgrade zm-py to 0.3.1 ([@rohankapoorcom] - [#20489]) ([zoneminder docs]) +- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([notify:dovado docs]) ([sensor.dovado docs]) (breaking change) +- Add homekit_controller tests ([@Jc2k] - [#20457]) ([homekit_controller docs]) +- Upgrade to async-upnp-client==0.14.3 ([@StevenLooman] - [#20502]) ([upnp docs]) ([media_player.dlna_dmr docs]) +- Upgrade tibber library ([@Danielhiversen] - [#20504]) ([tibber docs]) +- Update device registry of MQTT Lock ([@emontnemery] - [#20501]) ([mqtt docs]) +- Update device registry of MQTT Vacuum ([@emontnemery] - [#20500]) ([mqtt docs]) +- Small cleanup of MQTT platforms ([@emontnemery] - [#20503]) ([mqtt docs]) +- Upgrade mill library ([@Danielhiversen] - [#20514]) ([climate.mill docs]) +- Add nilu air_quality platform ([@hfurubotten] - [#19674]) ([air_pollutants docs]) (new-platform) +- Add Iliad Italy (Mobile Telephony Provider) Sensor ([@eliseomartelli] - [#19645]) ([sensor.iliad_italy docs]) (new-platform) +- Load/unload geofency entities correctly between component and platform ([@rohankapoorcom] - [#20497]) ([geofency docs]) +- Load/unload locative entities correctly between component and platform ([@rohankapoorcom] - [#20498]) ([locative docs]) +- Load/unload gpslogger entities correctly between component and platform ([@rohankapoorcom] - [#20448]) ([gpslogger docs]) ([device_tracker.gpslogger docs]) +- Use more up-to-date version of pyfoscam library ([@davidlie] - [#20419]) ([camera.foscam docs]) +- Reset Brottsplatskartan incident types every day ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) +- Add more HomeKit controller tests ([@Jc2k] - [#20515]) ([homekit_controller docs]) +- Homekit controller BLE groundwork ([@Jc2k] - [#20538]) ([homekit_controller docs]) +- Homekit controller BLE groundwork (part 2) ([@Jc2k] - [#20548]) ([homekit_controller docs]) +- Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) +- Area registry ([@Kane610] - [#20435]) +- Cleanup if discovered mqtt vacuum can't be added ([@emontnemery] - [#20549]) ([mqtt docs]) +- Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) +- Add discovery update support to MQTT camera ([@emontnemery] - [#20529]) ([mqtt docs]) +- ZHA component rewrite part 3 - update helpers ([@dmulcahey] - [#20463]) ([zha docs]) +- Add missing switch for motion_detect ([@perosb] - [#20540]) ([android_ip_webcam docs]) +- Update device registry of MQTT light ([@emontnemery] - [#20441]) ([mqtt docs]) +- Move CONF_UPDATE_INTERVAL to homeassistant.const ([@rohankapoorcom] - [#20526]) +- Add support for HomeKit motion sensor devices ([@Jc2k] - [#20555]) ([homekit_controller docs]) (new-platform) +- Add an Integration sensor ([@dgomes] - [#19703]) ([sensor.integration docs]) (new-platform) +- Allow usernames to be case-insensitive ([@balloob] - [#20558]) +- Add Synology SRM device tracker ([@aerialls] - [#20320]) ([device_tracker docs]) (new-platform) +- Treat each player as a 'device' for non-client devices. ([@mitchellrj] - [#20074]) ([media_player.plex docs]) +- Add Recollect Waste ([@stealthhacker] - [#20121]) ([sensor.recollect_waste docs]) (new-platform) +- New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) +- Homekit Motion Sensor Review feedback ([@Jc2k] - [#20568]) ([homekit_controller docs]) +- add empy all groups view. Makes Brilliant Lightpad work ([@merc1031] - [#20564]) ([emulated_hue docs]) +- Disable extra=vol.ALLOW_EXTRA for MQTT platforms. ([@emontnemery] - [#20562]) ([mqtt docs]) +- html5 notifications add VAPID support ([@quazzie] - [#20415]) ([notify docs]) +- Bump pymodbus to 1.5.2 ([@mindakas] - [#20582]) ([modbus docs]) +- Change Unifi timeout ([@arsaboo] - [#20606]) ([unifi docs]) +- Fix area registry config being loaded ([@balloob] - [#20598]) ([config docs]) +- Philips Hue: add prompt to update bridge/bulb ([@starkillerOG] - [#20590]) ([hue docs]) +- Add support for FRITZ DECT 100 (temp sensor) ([@choss] - [#20308]) ([fritzbox docs]) ([sensor.fritzbox docs]) (new-platform) +- Add remove commmand to entity registry ([@balloob] - [#20597]) ([config docs]) +- Fix map icons ([@bramkragten] - [#20602]) ([map docs]) +- Fix LIFX for single-zone strip extensions ([@amelchio] - [#20604]) ([light.lifx docs]) +- RFC: Add system health component ([@balloob] - [#20436]) ([system_health docs]) ([updater docs]) (new-platform) +- Update to the newest python-wink and fix push updates! ([@w1ll1am23] - [#20594]) ([wink docs]) +- Add lovelace systeam health ([@balloob] - [#20592]) ([lovelace docs]) +- Add sensor platform for Rova Garbage Collection ([@GidoHakvoort] - [#18868]) ([sensor.rova docs]) (new-platform) +- Added code to Abode Alarm control panel ([@arsaboo] - [#20611]) ([alarm_control_panel.abode docs]) +- ZHA component rewrite part 4 - add device module ([@dmulcahey] - [#20469]) ([zha docs]) (new-platform) +- Fix duplicate luftdaten entities ([@jvanderneutstulen] - [#20226]) ([luftdaten docs]) +- Add SmartThings component and switch platform ([@andrewsayre] - [#20148]) ([smartthings docs]) ([switch.smartthings docs]) (new-platform) +- fix #20571 ([@dgomes] - [#20589]) ([sensor.history_stats docs]) + +[#17616]: https://github.com/home-assistant/home-assistant/pull/17616 +[#18868]: https://github.com/home-assistant/home-assistant/pull/18868 +[#19204]: https://github.com/home-assistant/home-assistant/pull/19204 +[#19230]: https://github.com/home-assistant/home-assistant/pull/19230 +[#19540]: https://github.com/home-assistant/home-assistant/pull/19540 +[#19611]: https://github.com/home-assistant/home-assistant/pull/19611 +[#19632]: https://github.com/home-assistant/home-assistant/pull/19632 +[#19645]: https://github.com/home-assistant/home-assistant/pull/19645 +[#19674]: https://github.com/home-assistant/home-assistant/pull/19674 +[#19703]: https://github.com/home-assistant/home-assistant/pull/19703 +[#19718]: https://github.com/home-assistant/home-assistant/pull/19718 +[#19740]: https://github.com/home-assistant/home-assistant/pull/19740 +[#19749]: https://github.com/home-assistant/home-assistant/pull/19749 +[#19794]: https://github.com/home-assistant/home-assistant/pull/19794 +[#19817]: https://github.com/home-assistant/home-assistant/pull/19817 +[#20015]: https://github.com/home-assistant/home-assistant/pull/20015 +[#20035]: https://github.com/home-assistant/home-assistant/pull/20035 +[#20074]: https://github.com/home-assistant/home-assistant/pull/20074 +[#20090]: https://github.com/home-assistant/home-assistant/pull/20090 +[#20107]: https://github.com/home-assistant/home-assistant/pull/20107 +[#20109]: https://github.com/home-assistant/home-assistant/pull/20109 +[#20117]: https://github.com/home-assistant/home-assistant/pull/20117 +[#20121]: https://github.com/home-assistant/home-assistant/pull/20121 +[#20138]: https://github.com/home-assistant/home-assistant/pull/20138 +[#20148]: https://github.com/home-assistant/home-assistant/pull/20148 +[#20176]: https://github.com/home-assistant/home-assistant/pull/20176 +[#20182]: https://github.com/home-assistant/home-assistant/pull/20182 +[#20184]: https://github.com/home-assistant/home-assistant/pull/20184 +[#20190]: https://github.com/home-assistant/home-assistant/pull/20190 +[#20191]: https://github.com/home-assistant/home-assistant/pull/20191 +[#20192]: https://github.com/home-assistant/home-assistant/pull/20192 +[#20203]: https://github.com/home-assistant/home-assistant/pull/20203 +[#20207]: https://github.com/home-assistant/home-assistant/pull/20207 +[#20215]: https://github.com/home-assistant/home-assistant/pull/20215 +[#20224]: https://github.com/home-assistant/home-assistant/pull/20224 +[#20225]: https://github.com/home-assistant/home-assistant/pull/20225 +[#20226]: https://github.com/home-assistant/home-assistant/pull/20226 +[#20238]: https://github.com/home-assistant/home-assistant/pull/20238 +[#20239]: https://github.com/home-assistant/home-assistant/pull/20239 +[#20240]: https://github.com/home-assistant/home-assistant/pull/20240 +[#20241]: https://github.com/home-assistant/home-assistant/pull/20241 +[#20242]: https://github.com/home-assistant/home-assistant/pull/20242 +[#20246]: https://github.com/home-assistant/home-assistant/pull/20246 +[#20261]: https://github.com/home-assistant/home-assistant/pull/20261 +[#20266]: https://github.com/home-assistant/home-assistant/pull/20266 +[#20267]: https://github.com/home-assistant/home-assistant/pull/20267 +[#20271]: https://github.com/home-assistant/home-assistant/pull/20271 +[#20273]: https://github.com/home-assistant/home-assistant/pull/20273 +[#20275]: https://github.com/home-assistant/home-assistant/pull/20275 +[#20276]: https://github.com/home-assistant/home-assistant/pull/20276 +[#20280]: https://github.com/home-assistant/home-assistant/pull/20280 +[#20282]: https://github.com/home-assistant/home-assistant/pull/20282 +[#20283]: https://github.com/home-assistant/home-assistant/pull/20283 +[#20284]: https://github.com/home-assistant/home-assistant/pull/20284 +[#20285]: https://github.com/home-assistant/home-assistant/pull/20285 +[#20289]: https://github.com/home-assistant/home-assistant/pull/20289 +[#20292]: https://github.com/home-assistant/home-assistant/pull/20292 +[#20295]: https://github.com/home-assistant/home-assistant/pull/20295 +[#20299]: https://github.com/home-assistant/home-assistant/pull/20299 +[#20302]: https://github.com/home-assistant/home-assistant/pull/20302 +[#20306]: https://github.com/home-assistant/home-assistant/pull/20306 +[#20308]: https://github.com/home-assistant/home-assistant/pull/20308 +[#20313]: https://github.com/home-assistant/home-assistant/pull/20313 +[#20318]: https://github.com/home-assistant/home-assistant/pull/20318 +[#20320]: https://github.com/home-assistant/home-assistant/pull/20320 +[#20321]: https://github.com/home-assistant/home-assistant/pull/20321 +[#20325]: https://github.com/home-assistant/home-assistant/pull/20325 +[#20332]: https://github.com/home-assistant/home-assistant/pull/20332 +[#20333]: https://github.com/home-assistant/home-assistant/pull/20333 +[#20334]: https://github.com/home-assistant/home-assistant/pull/20334 +[#20337]: https://github.com/home-assistant/home-assistant/pull/20337 +[#20338]: https://github.com/home-assistant/home-assistant/pull/20338 +[#20339]: https://github.com/home-assistant/home-assistant/pull/20339 +[#20340]: https://github.com/home-assistant/home-assistant/pull/20340 +[#20344]: https://github.com/home-assistant/home-assistant/pull/20344 +[#20349]: https://github.com/home-assistant/home-assistant/pull/20349 +[#20352]: https://github.com/home-assistant/home-assistant/pull/20352 +[#20353]: https://github.com/home-assistant/home-assistant/pull/20353 +[#20357]: https://github.com/home-assistant/home-assistant/pull/20357 +[#20372]: https://github.com/home-assistant/home-assistant/pull/20372 +[#20376]: https://github.com/home-assistant/home-assistant/pull/20376 +[#20382]: https://github.com/home-assistant/home-assistant/pull/20382 +[#20390]: https://github.com/home-assistant/home-assistant/pull/20390 +[#20391]: https://github.com/home-assistant/home-assistant/pull/20391 +[#20396]: https://github.com/home-assistant/home-assistant/pull/20396 +[#20397]: https://github.com/home-assistant/home-assistant/pull/20397 +[#20398]: https://github.com/home-assistant/home-assistant/pull/20398 +[#20408]: https://github.com/home-assistant/home-assistant/pull/20408 +[#20411]: https://github.com/home-assistant/home-assistant/pull/20411 +[#20415]: https://github.com/home-assistant/home-assistant/pull/20415 +[#20419]: https://github.com/home-assistant/home-assistant/pull/20419 +[#20424]: https://github.com/home-assistant/home-assistant/pull/20424 +[#20431]: https://github.com/home-assistant/home-assistant/pull/20431 +[#20435]: https://github.com/home-assistant/home-assistant/pull/20435 +[#20436]: https://github.com/home-assistant/home-assistant/pull/20436 +[#20438]: https://github.com/home-assistant/home-assistant/pull/20438 +[#20439]: https://github.com/home-assistant/home-assistant/pull/20439 +[#20440]: https://github.com/home-assistant/home-assistant/pull/20440 +[#20441]: https://github.com/home-assistant/home-assistant/pull/20441 +[#20443]: https://github.com/home-assistant/home-assistant/pull/20443 +[#20444]: https://github.com/home-assistant/home-assistant/pull/20444 +[#20445]: https://github.com/home-assistant/home-assistant/pull/20445 +[#20446]: https://github.com/home-assistant/home-assistant/pull/20446 +[#20448]: https://github.com/home-assistant/home-assistant/pull/20448 +[#20454]: https://github.com/home-assistant/home-assistant/pull/20454 +[#20456]: https://github.com/home-assistant/home-assistant/pull/20456 +[#20457]: https://github.com/home-assistant/home-assistant/pull/20457 +[#20459]: https://github.com/home-assistant/home-assistant/pull/20459 +[#20460]: https://github.com/home-assistant/home-assistant/pull/20460 +[#20461]: https://github.com/home-assistant/home-assistant/pull/20461 +[#20462]: https://github.com/home-assistant/home-assistant/pull/20462 +[#20463]: https://github.com/home-assistant/home-assistant/pull/20463 +[#20469]: https://github.com/home-assistant/home-assistant/pull/20469 +[#20474]: https://github.com/home-assistant/home-assistant/pull/20474 +[#20489]: https://github.com/home-assistant/home-assistant/pull/20489 +[#20491]: https://github.com/home-assistant/home-assistant/pull/20491 +[#20497]: https://github.com/home-assistant/home-assistant/pull/20497 +[#20498]: https://github.com/home-assistant/home-assistant/pull/20498 +[#20500]: https://github.com/home-assistant/home-assistant/pull/20500 +[#20501]: https://github.com/home-assistant/home-assistant/pull/20501 +[#20502]: https://github.com/home-assistant/home-assistant/pull/20502 +[#20503]: https://github.com/home-assistant/home-assistant/pull/20503 +[#20504]: https://github.com/home-assistant/home-assistant/pull/20504 +[#20514]: https://github.com/home-assistant/home-assistant/pull/20514 +[#20515]: https://github.com/home-assistant/home-assistant/pull/20515 +[#20526]: https://github.com/home-assistant/home-assistant/pull/20526 +[#20529]: https://github.com/home-assistant/home-assistant/pull/20529 +[#20538]: https://github.com/home-assistant/home-assistant/pull/20538 +[#20540]: https://github.com/home-assistant/home-assistant/pull/20540 +[#20548]: https://github.com/home-assistant/home-assistant/pull/20548 +[#20549]: https://github.com/home-assistant/home-assistant/pull/20549 +[#20555]: https://github.com/home-assistant/home-assistant/pull/20555 +[#20558]: https://github.com/home-assistant/home-assistant/pull/20558 +[#20562]: https://github.com/home-assistant/home-assistant/pull/20562 +[#20564]: https://github.com/home-assistant/home-assistant/pull/20564 +[#20568]: https://github.com/home-assistant/home-assistant/pull/20568 +[#20582]: https://github.com/home-assistant/home-assistant/pull/20582 +[#20589]: https://github.com/home-assistant/home-assistant/pull/20589 +[#20590]: https://github.com/home-assistant/home-assistant/pull/20590 +[#20592]: https://github.com/home-assistant/home-assistant/pull/20592 +[#20594]: https://github.com/home-assistant/home-assistant/pull/20594 +[#20597]: https://github.com/home-assistant/home-assistant/pull/20597 +[#20598]: https://github.com/home-assistant/home-assistant/pull/20598 +[#20602]: https://github.com/home-assistant/home-assistant/pull/20602 +[#20604]: https://github.com/home-assistant/home-assistant/pull/20604 +[#20606]: https://github.com/home-assistant/home-assistant/pull/20606 +[#20611]: https://github.com/home-assistant/home-assistant/pull/20611 +[@Censored3]: https://github.com/Censored3 +[@Danielhiversen]: https://github.com/Danielhiversen +[@GidoHakvoort]: https://github.com/GidoHakvoort +[@Jc2k]: https://github.com/Jc2k +[@JoakimLindbom]: https://github.com/JoakimLindbom +[@JonasPed]: https://github.com/JonasPed +[@Kane610]: https://github.com/Kane610 +[@LouisMT]: https://github.com/LouisMT +[@MatteGary]: https://github.com/MatteGary +[@StevenLooman]: https://github.com/StevenLooman +[@TD22057]: https://github.com/TD22057 +[@adrum]: https://github.com/adrum +[@aerialls]: https://github.com/aerialls +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@arsaboo]: https://github.com/arsaboo +[@awarecan]: https://github.com/awarecan +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@boralyl]: https://github.com/boralyl +[@bramkragten]: https://github.com/bramkragten +[@choss]: https://github.com/choss +[@chrillux]: https://github.com/chrillux +[@coreGreenberet]: https://github.com/coreGreenberet +[@danielperna84]: https://github.com/danielperna84 +[@danielsjf]: https://github.com/danielsjf +[@davidlie]: https://github.com/davidlie +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@ehendrix23]: https://github.com/ehendrix23 +[@eliseomartelli]: https://github.com/eliseomartelli +[@emontnemery]: https://github.com/emontnemery +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@foxel]: https://github.com/foxel +[@gorynychzmey]: https://github.com/gorynychzmey +[@heytensai]: https://github.com/heytensai +[@hfurubotten]: https://github.com/hfurubotten +[@joncar]: https://github.com/joncar +[@jonudewux]: https://github.com/jonudewux +[@jvanderneutstulen]: https://github.com/jvanderneutstulen +[@kbickar]: https://github.com/kbickar +[@kellerza]: https://github.com/kellerza +[@koreth]: https://github.com/koreth +[@krygal]: https://github.com/krygal +[@merc1031]: https://github.com/merc1031 +[@mindakas]: https://github.com/mindakas +[@mindigmarton]: https://github.com/mindigmarton +[@mitchellrj]: https://github.com/mitchellrj +[@mwegner]: https://github.com/mwegner +[@mxworm]: https://github.com/mxworm +[@notoriousbdg]: https://github.com/notoriousbdg +[@perosb]: https://github.com/perosb +[@quazzie]: https://github.com/quazzie +[@reefab]: https://github.com/reefab +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@rytilahti]: https://github.com/rytilahti +[@scop]: https://github.com/scop +[@shaan7]: https://github.com/shaan7 +[@shbatm]: https://github.com/shbatm +[@sqldiablo]: https://github.com/sqldiablo +[@starkillerOG]: https://github.com/starkillerOG +[@stealthhacker]: https://github.com/stealthhacker +[@syphernl]: https://github.com/syphernl +[@w1ll1am23]: https://github.com/w1ll1am23 +[@zewelor]: https://github.com/zewelor +[@zhujisheng]: https://github.com/zhujisheng +[air_pollutants docs]: /components/air_pollutants/ +[air_quality docs]: /components/air_quality/ +[alarm_control_panel docs]: /components/alarm_control_panel/ +[alarm_control_panel.abode docs]: /components/alarm_control_panel.abode/ +[alarm_control_panel.concord232 docs]: /components/alarm_control_panel.concord232/ +[alarm_control_panel.homematicip_cloud docs]: /components/alarm_control_panel.homematicip_cloud/ +[alert docs]: /components/alert/ +[ambient_station docs]: /components/ambient_station/ +[android_ip_webcam docs]: /components/android_ip_webcam/ +[automation.mqtt docs]: /docs/automation/trigger/#mqtt-trigger +[binary_sensor.danfoss_air docs]: /components/binary_sensor.danfoss_air/ +[binary_sensor.homematicip_cloud docs]: /components/binary_sensor.homematicip_cloud/ +[binary_sensor.lutron docs]: /components/binary_sensor.lutron/ +[binary_sensor.trend docs]: /components/binary_sensor.trend/ +[camera.foscam docs]: /components/camera.foscam/ +[climate.mill docs]: /components/climate.mill/ +[climate.radiotherm docs]: /components/climate.radiotherm/ +[config docs]: /components/config/ +[cover.homematicip_cloud docs]: /components/cover.homematicip_cloud/ +[danfoss_air docs]: /components/danfoss_air/ +[device_tracker docs]: /components/device_tracker/ +[device_tracker.gpslogger docs]: /components/device_tracker.gpslogger/ +[dovado docs]: /components/dovado/ +[emulated_hue docs]: /components/emulated_hue/ +[emulated_roku docs]: /components/emulated_roku/ +[envisalink docs]: /components/envisalink/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[fritzbox docs]: /components/fritzbox/ +[geo_location docs]: /components/geo_location/ +[geofency docs]: /components/geofency/ +[gpslogger docs]: /components/gpslogger/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[http docs]: /components/http/ +[hue docs]: /components/hue/ +[image_processing.opencv docs]: /components/image_processing.opencv/ +[image_processing.qrcode docs]: /components/image_processing.qrcode/ +[image_processing.tensorflow docs]: /components/image_processing.tensorflow/ +[isy994 docs]: /components/isy994/ +[lcn docs]: /components/lcn/ +[light.everlights docs]: /components/light.everlights/ +[light.hyperion docs]: /components/light.hyperion/ +[light.lcn docs]: /components/light.lcn/ +[light.lifx docs]: /components/light.lifx/ +[light.mqtt docs]: /components/light.mqtt/ +[light.yeelight docs]: /components/light.yeelight/ +[locative docs]: /components/locative/ +[lock.zwave docs]: /components/lock.zwave/ +[lovelace docs]: /components/lovelace/ +[luftdaten docs]: /components/luftdaten/ +[lutron docs]: /components/lutron/ +[map docs]: /components/map/ +[media_extractor docs]: /components/media_extractor/ +[media_player.cast docs]: /components/media_player.cast/ +[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/ +[media_player.firetv docs]: /components/media_player.firetv/ +[media_player.mpd docs]: /components/media_player.mpd/ +[media_player.plex docs]: /components/media_player.plex/ +[media_player.songpal docs]: /components/media_player.songpal/ +[media_player.volumio docs]: /components/media_player.volumio/ +[modbus docs]: /components/modbus/ +[mqtt docs]: /components/mqtt/ +[nest docs]: /components/nest/ +[notify docs]: /components/notify/ +[notify:dovado docs]: /components/notify:dovado/ +[rest_command docs]: /components/rest_command/ +[sense docs]: /components/sense/ +[sensor.ambient_station docs]: /components/sensor.ambient_station/ +[sensor.brottsplatskartan docs]: /components/sensor.brottsplatskartan/ +[sensor.co2signal docs]: /components/sensor.co2signal/ +[sensor.danfoss_air docs]: /components/sensor.danfoss_air/ +[sensor.dovado docs]: /components/sensor.dovado/ +[sensor.filter docs]: /components/sensor.filter/ +[sensor.fritzbox docs]: /components/sensor.fritzbox/ +[sensor.history_stats docs]: /components/sensor.history_stats/ +[sensor.iliad_italy docs]: /components/sensor.iliad_italy/ +[sensor.imap docs]: /components/sensor.imap/ +[sensor.integration docs]: /components/sensor.integration/ +[sensor.islamic_prayer_times docs]: /components/sensor.islamic_prayer_times/ +[sensor.lyft docs]: /components/sensor.lyft/ +[sensor.netatmo docs]: /components/sensor.netatmo/ +[sensor.pollen docs]: /components/sensor.pollen/ +[sensor.recollect_waste docs]: /components/sensor.recollect_waste/ +[sensor.rova docs]: /components/sensor.rova/ +[sensor.solaredge docs]: /components/sensor.solaredge/ +[sensor.sql docs]: /components/sensor.sql/ +[sensor.systemmonitor docs]: /components/sensor.systemmonitor/ +[sensor.tibber docs]: /components/sensor.tibber/ +[sensor.transmission docs]: /components/sensor.transmission/ +[sensor.utility_meter docs]: /components/sensor.utility_meter/ +[smartthings docs]: /components/smartthings/ +[switch.lcn docs]: /components/switch.lcn/ +[switch.mqtt docs]: /components/switch.mqtt/ +[switch.rest docs]: /components/switch.rest/ +[switch.smartthings docs]: /components/switch.smartthings/ +[system_health docs]: /components/system_health/ +[tibber docs]: /components/tibber/ +[transmission docs]: /components/transmission/ +[unifi docs]: /components/unifi/ +[updater docs]: /components/updater/ +[upnp docs]: /components/upnp/ +[weather.darksky docs]: /components/weather.darksky/ +[webhook docs]: /components/webhook/ +[wemo docs]: /components/wemo/ +[wink docs]: /components/wink/ +[zha docs]: /components/zha/ +[zone docs]: /components/zone/ +[zoneminder docs]: /components/zoneminder/ From 5eb4153a7fd3f18b54da76aff8871477ddb85312 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Wed, 30 Jan 2019 19:43:30 -0600 Subject: [PATCH 02/16] New component SmartThings and switch platform (#8184) * Added SmartThings component and switch platform documentation. * Minor changes per style guidelines * Embedded switch platform. * :pencil2: Tweaks --- source/_components/smartthings.markdown | 73 ++++++++++++++++++ .../_components/smartthings.switch.markdown | 19 +++++ .../supported_brands/samsung_smartthings.png | Bin 0 -> 7368 bytes 3 files changed, 92 insertions(+) create mode 100644 source/_components/smartthings.markdown create mode 100644 source/_components/smartthings.switch.markdown create mode 100644 source/images/supported_brands/samsung_smartthings.png diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown new file mode 100644 index 00000000000..961e98c6241 --- /dev/null +++ b/source/_components/smartthings.markdown @@ -0,0 +1,73 @@ +--- +layout: page +title: "SmartThings" +description: "Instructions on setting up Samsung SmartThings within Home Assistant." +date: 2018-01-14 00:00 +sidebar: true +comments: false +sharing: true +footer: true +featured: true +logo: samsung_smartthings.png +ha_category: Hub +ha_release: "" +ha_iot_class: "Cloud Push" +--- + +Samsung SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The SmartThings component is the main component to integrate all SmartThings related platforms. The basic features of this integration include: + +1. Controlling SmartThings devices with pushed state updates from SmartThings. +2. Entities automatically added, removed, or updated when changed in SmartThings (upon Home Assistant restart). +3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration. +4. No brokers, bridges, or additional dependencies. + +## {% linkable_title Basic requirements %} + +1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions). +2. Home Assistant setup for [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.* +3. [`base_url` of the http component](/components/http#base_url) set the URL that Home Assistant is available on the internet. + +## {% linkable_title Setup instructions %} + +### {% linkable_title Create personal access token %} + +1. Log into the [personal access tokens page](https://account.smartthings.com/tokens) and click '[Generate new token](https://account.smartthings.com/tokens/new)' +2. Enter a token name (can be whatever you want), for example, 'Home Assistant' and select the following authorized scopes: + - Devices (all) + - Installed Apps (all) + - Locations (all) + - Apps (all) + - Schedules (all) + - Scenes (all) +3. Click 'Generate token'. When the token is displayed, copy and save it somewhere safe (such as your keystore) as you will not be able to retrieve it again. + +### {% linkable_title Configure Home Assistant %} + +

+The SmartThings component is configured exclusively through the front-end. Manual setup through `configuration.yaml` is not available at this time. +

+ +1. From the Home Assistant front-end, navigate to 'Configuration' then 'Integrations'. Under 'Set up a new integration' locate 'SmartThings' and click 'Configure'. +2. Enter the personal access token created above and click 'Submit' +3. When prompted, install the SmartApp: + 1. Open the SmartThings mobile app. Navigate to 'Automation' and select the 'SmartApps' tab. + 2. Click 'Add a SmartApp', scroll to the bottom, and select 'My Apps', then choose 'Home Assistant'. + 3. Optionally change the display name and press 'Done' + 4. Authorize the app by pressing 'Allow' +4. Return to Home Assistant and click 'Submit'. + +

+Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that. +

+ +## {% linkable_title Additional information %} + +### Supported capabilities/device mapping + +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component follows the following rules to represent those as entities in Home Assistant: + +| Capability |Platform +|-------------------|------------------------------------------------------------| +| [switch](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) | [switch](/components/smartthings.switch) + +Support for additional capabilities will be added in the future. diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown new file mode 100644 index 00000000000..0727e9f4a75 --- /dev/null +++ b/source/_components/smartthings.switch.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "SmartThings Switch" +description: "Instructions on setting up Samsung SmartThings switches within Home Assistant." +date: 2018-01-14 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung_smartthings.png +ha_category: Switch +ha_release: "" +ha_iot_class: "Cloud Push" +--- + +The SmartThings switch platform lets you control Samsung SmartThings connected devices that have the [switch capability](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch). + +

+Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.

\ No newline at end of file diff --git a/source/images/supported_brands/samsung_smartthings.png b/source/images/supported_brands/samsung_smartthings.png new file mode 100644 index 0000000000000000000000000000000000000000..585c1db0d9c0de7b5d7c1ad3f93f7212c73dd306 GIT binary patch literal 7368 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 Date: Wed, 30 Jan 2019 21:47:49 -0800 Subject: [PATCH 03/16] Add MDI link --- source/_posts/2019-02-06-release-87.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown index 4118738152f..5b0fb71821b 100644 --- a/source/_posts/2019-02-06-release-87.markdown +++ b/source/_posts/2019-02-06-release-87.markdown @@ -15,6 +15,12 @@ og_image: /images/blog/2019-02-release-87/smartthings.png SmartThings +Areas + +Entity Registry UI + +Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesignicons.com/upgrade + ## {% linkable_title New Platforms %} - Add a Zoneminder availability sensor ([@rohankapoorcom] - [#20184]) ([zoneminder docs]) (new-platform) From 147bc4e26c564e62bc4cfbb492151eeb9bd65ba9 Mon Sep 17 00:00:00 2001 From: Gido Date: Thu, 31 Jan 2019 03:48:10 +0100 Subject: [PATCH 04/16] Added documentation for ROVA sensor (#7780) * Added documentation for ROVA sensor * Update source/_components/sensor.rova.markdown Fixed example configuration Co-Authored-By: GidoHakvoort * Update sensor.rova.markdown * Update sensor.rova.markdown * Update sensor.rova.markdown * :pencil2: Tweak * Update sensor.rova.markdown Update ha_release --- source/_components/sensor.rova.markdown | 99 ++++++++++++++++++++++++ source/images/supported_brands/rova.jpg | Bin 0 -> 12391 bytes 2 files changed, 99 insertions(+) create mode 100644 source/_components/sensor.rova.markdown create mode 100644 source/images/supported_brands/rova.jpg diff --git a/source/_components/sensor.rova.markdown b/source/_components/sensor.rova.markdown new file mode 100644 index 00000000000..3ccc888443e --- /dev/null +++ b/source/_components/sensor.rova.markdown @@ -0,0 +1,99 @@ +--- +layout: page +title: "ROVA Sensor" +description: "Instructions on how to integrate ROVA sensor within Home Assistant." +date: 2018-12-08 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rova.jpg +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Cloud Polling" +--- + +[ROVA](https://rova.nl) is a waste collection company that operates in the center and east of the Netherlands. The `rova` platform uses an unofficial [ROVA](https://rova.nl) API to allow you to get your waste collection schedule and integrate this in your Home Assistant installation. + +## {% linkable_title Configuration %} + +To use the ROVA sensor in your installation, add the following to your configuration.yaml file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER +``` + +{% configuration %} +zip_code: + description: Your zip code. + required: true + type: string +house_number: + description: Your house number. + required: true + type: string +name: + description: Let you overwrite the name of the device in the frontend. + required: false + default: Rova + type: string +monitored_conditions: + description: ROVA information to be monitored. The following collection dates can be monitored. + required: false + type: list + keys: + bio: + description: Upcoming collection date of your biodegradable waste + paper: + description: Upcoming collection date of your paper waste + plastic: + description: upcoming collection date of your plastic waste + residual: + description: Upcoming collection date of your general waste +{% endconfiguration %} + +If no **monitored_conditions** are specified, only **bio** will be enabled. + +### {% linkable_title Full configuration sample %} + +A full configuration entry would look like the sample below. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: rova + zip_code: ZIP_CODE + house_number: HOUSE_NUMBER + name: Rova + monitored_conditions: + - bio + - paper + - plastic + - residual +``` + +To have your Home Assistant installation remind you of upcoming waste collections, combine the `rova` platform with some [Automations](/docs/automation/) and a [notification platform](/components/notify/). + +{% raw %} +```yaml +# Example configuration.yaml entry for Rova waste collection reminder +automation: + - id: rova-garbage-bio-reminder + alias: 'Send Rova Bio waste collection reminder' + hide_entity: true + trigger: + - platform: time + at: '19:00:00' + condition: + - condition: template + value_template: "{% if (as_timestamp(states.sensor.rova_garbage_gft.state) - as_timestamp(now())) < 43200 %}true{% endif %}" + action: + - service: NOTIFICATION_SERVICE + data: + message: 'Reminder: put out biowaste bin' +``` +{% endraw %} diff --git a/source/images/supported_brands/rova.jpg b/source/images/supported_brands/rova.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ead2f2b7cfec7754a7340a5a72bf7c722e7e53b2 GIT binary patch literal 12391 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 literal 0 HcmV?d00001 From e324c3f7da264d589574840834172092ea7f2e19 Mon Sep 17 00:00:00 2001 From: choss Date: Thu, 31 Jan 2019 03:58:20 +0100 Subject: [PATCH 05/16] adding documentation for fritz.dect 100 sensor component (#8242) * adding documentation for new sensor component * :pencil2: Tweak * :pencil2: Add HA Release --- source/_components/sensor.fritzbox.markdown | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 source/_components/sensor.fritzbox.markdown diff --git a/source/_components/sensor.fritzbox.markdown b/source/_components/sensor.fritzbox.markdown new file mode 100644 index 00000000000..fdf6ca7dcba --- /dev/null +++ b/source/_components/sensor.fritzbox.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "Fritzbox temperature sensor" +description: "Instructions on how to integrate the AVM Fritzbox temperature sensor." +date: 2019-01-22 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: avm.png +ha_category: Sensor +ha_release: 0.87 +ha_iot_class: "Local Polling" +--- + +To get AVM Fritzbox temperature sensor (e.g. FRITZ!DECT Repeater 100) follow the instructions for the [Fritzbox component](/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. +| `temperature` | The current temperature sensor reading. From 1be4adde4d847709dc8e612a65ef21d679704859 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Wed, 30 Jan 2019 21:26:48 -0600 Subject: [PATCH 06/16] Add ha_version for SmartThings component and switch (#8355) --- source/_components/smartthings.markdown | 2 +- source/_components/smartthings.switch.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index 961e98c6241..1b17d6fc63a 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -10,7 +10,7 @@ footer: true featured: true logo: samsung_smartthings.png ha_category: Hub -ha_release: "" +ha_release: "0.87" ha_iot_class: "Cloud Push" --- diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown index 0727e9f4a75..b7e77915ba6 100644 --- a/source/_components/smartthings.switch.markdown +++ b/source/_components/smartthings.switch.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: samsung_smartthings.png ha_category: Switch -ha_release: "" +ha_release: "0.87" ha_iot_class: "Cloud Push" --- From 88a61503dc47ac29b648ab9f3e03a732fde3d7d2 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Thu, 31 Jan 2019 15:29:35 +0100 Subject: [PATCH 07/16] =?UTF-8?q?=F0=9F=9A=9C=20Merges/Redirect=20SmartThi?= =?UTF-8?q?ngs=20component=20pages=20(#8357)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_components/smartthings.markdown | 11 ++++++++++- .../_components/smartthings.switch.markdown | 19 ------------------- 2 files changed, 10 insertions(+), 20 deletions(-) delete mode 100644 source/_components/smartthings.switch.markdown diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index 1b17d6fc63a..e82b4c3c7fc 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -9,9 +9,14 @@ sharing: true footer: true featured: true logo: samsung_smartthings.png -ha_category: Hub +ha_category: + - Hub + - Switch ha_release: "0.87" ha_iot_class: "Cloud Push" +redirect_from: + - /components/smartthings.switch/ + - /components/switch.smartthings/ --- Samsung SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The SmartThings component is the main component to integrate all SmartThings related platforms. The basic features of this integration include: @@ -21,6 +26,10 @@ Samsung SmartThings is integrated into Home Assistant through the SmartThings Cl 3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration. 4. No brokers, bridges, or additional dependencies. +There is currently support for the following device types within Home Assistant: + +- Switch ([SmartThings switch platform](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch)) + ## {% linkable_title Basic requirements %} 1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions). diff --git a/source/_components/smartthings.switch.markdown b/source/_components/smartthings.switch.markdown deleted file mode 100644 index b7e77915ba6..00000000000 --- a/source/_components/smartthings.switch.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: "SmartThings Switch" -description: "Instructions on setting up Samsung SmartThings switches within Home Assistant." -date: 2018-01-14 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: samsung_smartthings.png -ha_category: Switch -ha_release: "0.87" -ha_iot_class: "Cloud Push" ---- - -The SmartThings switch platform lets you control Samsung SmartThings connected devices that have the [switch capability](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch). - -

-Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.

\ No newline at end of file From 253a13e025cad8a8aab3f0d0bab8d5127073cac7 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Sat, 2 Feb 2019 09:48:00 -0600 Subject: [PATCH 08/16] Add SmartThings Light platform (#8365) * Add SmartThings Light platform docs * Minor tweaks * Specify the classic ST mobile app * Updated ha_version --- source/_components/smartthings.light.markdown | 27 +++++++++++++++++++ source/_components/smartthings.markdown | 7 ++--- 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 source/_components/smartthings.light.markdown diff --git a/source/_components/smartthings.light.markdown b/source/_components/smartthings.light.markdown new file mode 100644 index 00000000000..6c9723b2c79 --- /dev/null +++ b/source/_components/smartthings.light.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "SmartThings Light" +description: "Instructions on setting up Samsung SmartThings lights within Home Assistant." +date: 2018-01-30 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung_smartthings.png +ha_category: Light +ha_release: "0.87" +ha_iot_class: "Cloud Push" +--- + +The SmartThings light platform lets you control Samsung SmartThings connected devices that have light-control related capabilities. + +| Capability |Light Features +|-------------------|------------------------------------------------------------| +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` +| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` +| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` + +For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities above in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +

+Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.

\ No newline at end of file diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index e82b4c3c7fc..e622cf93361 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -59,7 +59,7 @@ The SmartThings component is configured exclusively through the front-end. Manua 1. From the Home Assistant front-end, navigate to 'Configuration' then 'Integrations'. Under 'Set up a new integration' locate 'SmartThings' and click 'Configure'. 2. Enter the personal access token created above and click 'Submit' 3. When prompted, install the SmartApp: - 1. Open the SmartThings mobile app. Navigate to 'Automation' and select the 'SmartApps' tab. + 1. Open the SmartThings Classic mobile app. Navigate to 'Automation' and select the 'SmartApps' tab. 2. Click 'Add a SmartApp', scroll to the bottom, and select 'My Apps', then choose 'Home Assistant'. 3. Optionally change the display name and press 'Done' 4. Authorize the app by pressing 'Allow' @@ -75,8 +75,9 @@ Advanced: If you have multiple locations in SmartThings, each can be integrated SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component follows the following rules to represent those as entities in Home Assistant: -| Capability |Platform +| Capabilities |Platform |-------------------|------------------------------------------------------------| -| [switch](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) | [switch](/components/smartthings.switch) +| `switchLevel`, `colorControl` and `colorTemperature` | [light](/components/smartthings.light) +| `switch` | [switch](/components/smartthings.switch) Support for additional capabilities will be added in the future. From 74bd9dc978d49d75a5207129ed74f097d345a659 Mon Sep 17 00:00:00 2001 From: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com> Date: Tue, 5 Feb 2019 11:13:32 -0600 Subject: [PATCH 09/16] Add SmartThings event and platform docs (#8392) * Conslidated SmartThings platforms docs * Tweaks * Added button event docs * Fixed event table * Clarifications * Clean-up --- source/_components/smartthings.light.markdown | 27 ------ source/_components/smartthings.markdown | 90 ++++++++++++++++--- 2 files changed, 79 insertions(+), 38 deletions(-) delete mode 100644 source/_components/smartthings.light.markdown diff --git a/source/_components/smartthings.light.markdown b/source/_components/smartthings.light.markdown deleted file mode 100644 index 6c9723b2c79..00000000000 --- a/source/_components/smartthings.light.markdown +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: "SmartThings Light" -description: "Instructions on setting up Samsung SmartThings lights within Home Assistant." -date: 2018-01-30 00:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: samsung_smartthings.png -ha_category: Light -ha_release: "0.87" -ha_iot_class: "Cloud Push" ---- - -The SmartThings light platform lets you control Samsung SmartThings connected devices that have light-control related capabilities. - -| Capability |Light Features -|-------------------|------------------------------------------------------------| -| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` -| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` -| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` - -For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities above in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. - -

-Entities for this platform are loaded automatically when you configure the [SmartThings component](/components/smartthings). This platform cannot be manually configured.

\ No newline at end of file diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown index e622cf93361..c3301c68331 100644 --- a/source/_components/smartthings.markdown +++ b/source/_components/smartthings.markdown @@ -10,11 +10,20 @@ footer: true featured: true logo: samsung_smartthings.png ha_category: + - Binary Sensor + - Fan - Hub + - Light - Switch ha_release: "0.87" ha_iot_class: "Cloud Push" redirect_from: + - /components/smartthings.binary_sensor/ + - /components/binary_sensor.smartthings/ + - /components/smartthings.fan/ + - /components/fan.smartthings/ + - /components/smartthings.light/ + - /components/light.smartthings/ - /components/smartthings.switch/ - /components/switch.smartthings/ --- @@ -26,10 +35,6 @@ Samsung SmartThings is integrated into Home Assistant through the SmartThings Cl 3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration. 4. No brokers, bridges, or additional dependencies. -There is currently support for the following device types within Home Assistant: - -- Switch ([SmartThings switch platform](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch)) - ## {% linkable_title Basic requirements %} 1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions). @@ -69,15 +74,78 @@ The SmartThings component is configured exclusively through the front-end. Manua Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that.

-## {% linkable_title Additional information %} +## {% linkable_title Events %} -### Supported capabilities/device mapping +The SmartThings component triggers events for select device capabilities. -SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component follows the following rules to represent those as entities in Home Assistant: +### {% linkable_title smartthings.button %} -| Capabilities |Platform -|-------------------|------------------------------------------------------------| -| `switchLevel`, `colorControl` and `colorTemperature` | [light](/components/smartthings.light) -| `switch` | [switch](/components/smartthings.switch) +The component will trigger an event when a device with the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability is actuated and can be used to trigger automations within Home Assistant. Below is an example of the data payload: + +```json +{ + "component_id": "main", + "device_id": "42a16cf2-fef7-4ee8-b4a6-d32cb65474b7", + "location_id": "2a54b9fa-f66c-42d9-8488-d8f036b980c8", + "value": "pushed", + "name": "Scene Button" +} +``` + +| Attribute | Description +|---------------------------|------------------------------------------------------------------| +`component_id` | Describes which component of the device triggered the event. `main` represents the parent device. For devices with child-devices, this attribute identifies the child that raised the event. +`device_id` | The unique id of the device in SmartThings. This can be located in the HASS device registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`location_id` | The unique id of the location the device is part of. This can be found in the config entry registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/). +`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device). +`name` | The name given to the device in SmartThings. + +## {% linkable_title Platforms %} + +SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component mapps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms. + +| Platform |Capabilities +|---------------------------------|--------------------------------------------------------------------------------------------| +[binary_sensor](#binary-sensor) | `accelerationSensor`, `contactSensor`, `filterStatus`, `motionSensor`, `presenceSensor`, `tamperAlert`, `valve` and `waterSensor` +[fan](#fan) | `fanSpeed` and `switch` +[light](#light) | `colorControl`, `colorTemperature`, `switch` and `switchLevel` +[switch](#switch) | `switch` Support for additional capabilities will be added in the future. + +### {% linkable_title Binary Sensor %} + +The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device. + +| Capability |Attribute |On-Value |Binary Sensor Device Class +|-------------------|--------------|----------------|---------------------------------| +| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active` | `moving` +| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open` | `opening` +| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace` | `problem` +| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active` | `motion` +| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present` | `presence` +| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected` | `problem` +| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open` | `opening` +| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet` | `moisture` + +### {% linkable_title Fan %} + +The SmartThings fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Fan Features +|-------------------|------------------------------------------------------------| +| [`fanSpeed`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Fan-Speed) | `speed` (`off`, `low`, `medium`, and `high`) + +### {% linkable_title Light %} + +The SmartThings light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability. + +| Capability |Light Features +|-------------------|------------------------------------------------------------| +| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition` +| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color` +| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp` + +### {% linkable_title Switch %} + +The SmartThings switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. \ No newline at end of file From 521d2b0126166890efb39be8ad35ecf2785aede0 Mon Sep 17 00:00:00 2001 From: codedmind Date: Tue, 5 Feb 2019 15:23:56 +0000 Subject: [PATCH 10/16] Update utility_meter.markdown (#8409) --- source/_components/utility_meter.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/utility_meter.markdown b/source/_components/utility_meter.markdown index 0007d552880..3e4b5a3b2a3 100644 --- a/source/_components/utility_meter.markdown +++ b/source/_components/utility_meter.markdown @@ -89,7 +89,7 @@ The following configuration shows an example where 2 utility_meters (`daily_ener Both track the same sensor (`sensor.energy`) which continously monitors the energy consumed. 4 different sensors will be created, 2 per utility meter and corresponding to each tariff. -Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_peak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle. +Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_offpeak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle. `utility_meter.daily_energy` and `utility_meter.monthly_energy` entities will track the current tariff and provide a service to change the tariff. From 5735528bf37668879eb329c1cbcca48a0579ee65 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 5 Feb 2019 09:19:50 -0800 Subject: [PATCH 11/16] Update release notes --- source/_posts/2019-02-06-release-87.markdown | 109 +++++++++++++++++-- 1 file changed, 100 insertions(+), 9 deletions(-) diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown index 5b0fb71821b..73f62cdbf13 100644 --- a/source/_posts/2019-02-06-release-87.markdown +++ b/source/_posts/2019-02-06-release-87.markdown @@ -26,14 +26,12 @@ Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesi - Add a Zoneminder availability sensor ([@rohankapoorcom] - [#20184]) ([zoneminder docs]) (new-platform) - Add platform image_processing.qrcode ([@zhujisheng] - [#20215]) ([image_processing.qrcode docs]) (new-platform) - Add LCN switch platform ([@alengwenus] - [#20267]) ([lcn docs]) ([switch.lcn docs]) (new-platform) -- Fire events for Lutron RadioRA2 keypad buttons ([@koreth] - [#20090]) ([lutron docs]) ([binary_sensor.lutron docs]) (new-platform) - Add EverLights light component ([@joncar] - [#19817]) ([light.everlights docs]) (new-platform) - Add device tracker support for EE Brightbox 2 router ([@krygal] - [#19611]) ([device_tracker docs]) (new-platform) - HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([cover.homematicip_cloud docs]) (new-platform) - Add Danfoss Air HRV support ([@JonasPed] - [#20138]) ([danfoss_air docs]) ([binary_sensor.danfoss_air docs]) ([sensor.danfoss_air docs]) (new-platform) - Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) - Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) -- introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) (new-platform) - Add nilu air_quality platform ([@hfurubotten] - [#19674]) ([air_pollutants docs]) (new-platform) - Add Iliad Italy (Mobile Telephony Provider) Sensor ([@eliseomartelli] - [#19645]) ([sensor.iliad_italy docs]) (new-platform) - Add support for HomeKit motion sensor devices ([@Jc2k] - [#20555]) ([homekit_controller docs]) (new-platform) @@ -44,8 +42,10 @@ Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesi - Add support for FRITZ DECT 100 (temp sensor) ([@choss] - [#20308]) ([fritzbox docs]) ([sensor.fritzbox docs]) (new-platform) - RFC: Add system health component ([@balloob] - [#20436]) ([system_health docs]) ([updater docs]) (new-platform) - Add sensor platform for Rova Garbage Collection ([@GidoHakvoort] - [#18868]) ([sensor.rova docs]) (new-platform) -- ZHA component rewrite part 4 - add device module ([@dmulcahey] - [#20469]) ([zha docs]) (new-platform) - Add SmartThings component and switch platform ([@andrewsayre] - [#20148]) ([smartthings docs]) ([switch.smartthings docs]) (new-platform) +- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -69,7 +69,33 @@ Experiencing issues introduced by this release? Please report them in our [issue - Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([notify:dovado docs]) ([sensor.dovado docs]) (breaking change) - Reset Brottsplatskartan incident types every day ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) - Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) +- Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) (breaking change) - New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) +- Disable extra=vol.ALLOW_EXTRA for MQTT platforms. ([@emontnemery] - [#20562]) ([mqtt docs]) (breaking change) + +## {% linkable_title Beta Fixes %} + +- Fix pjlink issue ([@emkay82] - [#20510]) ([media_player.pjlink docs]) (beta fix) +- Fix geofency requiring a configuration.yaml entry ([@balloob] - [#20631]) ([geofency docs]) (beta fix) +- Upgrade blinkpy to re-enable motion detection ([@fronzbot] - [#20651]) ([blink docs]) (beta fix) +- Fix parsing yeelight custom effects, when not present in config ([@zewelor] - [#20658]) ([light.yeelight docs]) (beta fix) +- Add PLATFORM_SCHEMA_BASE support to check_config.py ([@emontnemery] - [#20663]) (beta fix) +- InfluxDB - change connection test method ([@magenbrot] - [#20666]) ([sensor.influxdb docs]) (beta fix) +- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) +- Fix allow extra in locative webhook schema validation ([@rohankapoorcom] - [#20657]) ([locative docs]) (beta fix) +- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) +- Add entity_namespace to PLATFORM_SCHEMA ([@emontnemery] - [#20693]) (beta fix) +- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) +- fix test commented in #20678 ([@dgomes] - [#20680]) (beta fix) +- Add SmartThings button support via events ([@andrewsayre] - [#20707]) ([smartthings docs]) (beta fix) +- Fix temperature unit conversion in Ambient PWS ([@bachya] - [#20723]) ([ambient_station docs]) (beta fix) +- Revert pyfoscam back to libpyfoscam ([@davidlie] - [#20727]) ([camera.foscam docs]) (beta fix) +- Fix ffmpeg v4 stream issue ([@awarecan] - [#20314]) ([ffmpeg docs]) ([camera.amcrest docs]) ([camera.arlo docs]) ([camera.canary docs]) ([camera.ffmpeg docs]) ([camera.onvif docs]) ([camera.ring docs]) ([camera.xiaomi docs]) ([camera.yi docs]) (beta fix) +- Improve cloud error handling ([@balloob] - [#20729]) ([cloud docs]) (beta fix) +- Fix cloud webhook body ([@pvizeli] - [#20739]) ([cloud docs]) (beta fix) (new-platform) +- Fix the line reference in config error message ([@awarecan] - [#20743]) (beta fix) +- Upgrade to async_upnp_client==0.14.4 ([@StevenLooman] - [#20751]) ([upnp docs]) ([media_player.dlna_dmr docs]) (beta fix) +- Keep cloud tokens always valid ([@balloob] - [#20762]) ([cloud docs]) (beta fix) ## {% linkable_title All changes %} @@ -91,7 +117,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Support for relay ports for LCN light platform ([@alengwenus] - [#19632]) ([lcn docs]) ([light.lcn docs]) - Add LCN switch platform ([@alengwenus] - [#20267]) ([lcn docs]) ([switch.lcn docs]) (new-platform) - Updated sense library to 0.6.0 ([@kbickar] - [#20271]) ([sense docs]) -- Fire events for Lutron RadioRA2 keypad buttons ([@koreth] - [#20090]) ([lutron docs]) ([binary_sensor.lutron docs]) (new-platform) +- Fire events for Lutron RadioRA2 keypad buttons ([@koreth] - [#20090]) ([lutron docs]) - Update Tibber library ([@Danielhiversen] - [#20273]) ([tibber docs]) - Make Netatmo battery_percent icon dynamic ([@notoriousbdg] - [#20275]) ([sensor.netatmo docs]) - Add type hints to helpers.condition ([@scop] - [#20266]) ([zone docs]) @@ -154,7 +180,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Correct minor comments from PR#20138. ([@JonasPed] - [#20454]) ([danfoss_air docs]) - Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) - Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) -- introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) (new-platform) +- introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) - Update device registry of MQTT fan ([@emontnemery] - [#20445]) ([mqtt docs]) - Update device registry of MQTT climate ([@emontnemery] - [#20444]) ([mqtt docs]) - Update device registry of MQTT sensor ([@emontnemery] - [#20440]) ([mqtt docs]) @@ -186,7 +212,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) - Area registry ([@Kane610] - [#20435]) - Cleanup if discovered mqtt vacuum can't be added ([@emontnemery] - [#20549]) ([mqtt docs]) -- Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) +- Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) (breaking change) - Add discovery update support to MQTT camera ([@emontnemery] - [#20529]) ([mqtt docs]) - ZHA component rewrite part 3 - update helpers ([@dmulcahey] - [#20463]) ([zha docs]) - Add missing switch for motion_detect ([@perosb] - [#20540]) ([android_ip_webcam docs]) @@ -199,9 +225,10 @@ Experiencing issues introduced by this release? Please report them in our [issue - Treat each player as a 'device' for non-client devices. ([@mitchellrj] - [#20074]) ([media_player.plex docs]) - Add Recollect Waste ([@stealthhacker] - [#20121]) ([sensor.recollect_waste docs]) (new-platform) - New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) +- Fixing the openssl issue ([@kennedyshead] - [#20570]) ([asuswrt docs]) ([sensor.asuswrt docs]) - Homekit Motion Sensor Review feedback ([@Jc2k] - [#20568]) ([homekit_controller docs]) - add empy all groups view. Makes Brilliant Lightpad work ([@merc1031] - [#20564]) ([emulated_hue docs]) -- Disable extra=vol.ALLOW_EXTRA for MQTT platforms. ([@emontnemery] - [#20562]) ([mqtt docs]) +- Disable extra=vol.ALLOW_EXTRA for MQTT platforms. ([@emontnemery] - [#20562]) ([mqtt docs]) (breaking change) - html5 notifications add VAPID support ([@quazzie] - [#20415]) ([notify docs]) - Bump pymodbus to 1.5.2 ([@mindakas] - [#20582]) ([modbus docs]) - Change Unifi timeout ([@arsaboo] - [#20606]) ([unifi docs]) @@ -216,10 +243,32 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add lovelace systeam health ([@balloob] - [#20592]) ([lovelace docs]) - Add sensor platform for Rova Garbage Collection ([@GidoHakvoort] - [#18868]) ([sensor.rova docs]) (new-platform) - Added code to Abode Alarm control panel ([@arsaboo] - [#20611]) ([alarm_control_panel.abode docs]) -- ZHA component rewrite part 4 - add device module ([@dmulcahey] - [#20469]) ([zha docs]) (new-platform) +- ZHA component rewrite part 4 - add device module ([@dmulcahey] - [#20469]) ([zha docs]) - Fix duplicate luftdaten entities ([@jvanderneutstulen] - [#20226]) ([luftdaten docs]) - Add SmartThings component and switch platform ([@andrewsayre] - [#20148]) ([smartthings docs]) ([switch.smartthings docs]) (new-platform) - fix #20571 ([@dgomes] - [#20589]) ([sensor.history_stats docs]) +- Fix pjlink issue ([@emkay82] - [#20510]) ([media_player.pjlink docs]) (beta fix) +- Fix geofency requiring a configuration.yaml entry ([@balloob] - [#20631]) ([geofency docs]) (beta fix) +- Upgrade blinkpy to re-enable motion detection ([@fronzbot] - [#20651]) ([blink docs]) (beta fix) +- Fix parsing yeelight custom effects, when not present in config ([@zewelor] - [#20658]) ([light.yeelight docs]) (beta fix) +- Add PLATFORM_SCHEMA_BASE support to check_config.py ([@emontnemery] - [#20663]) (beta fix) +- InfluxDB - change connection test method ([@magenbrot] - [#20666]) ([sensor.influxdb docs]) (beta fix) +- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) +- Fix allow extra in locative webhook schema validation ([@rohankapoorcom] - [#20657]) ([locative docs]) (beta fix) +- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) +- Add entity_namespace to PLATFORM_SCHEMA ([@emontnemery] - [#20693]) (beta fix) +- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) +- Remove fingerprint middleware ([@balloob] - [#20682]) ([http docs]) +- fix test commented in #20678 ([@dgomes] - [#20680]) (beta fix) +- Add SmartThings button support via events ([@andrewsayre] - [#20707]) ([smartthings docs]) (beta fix) +- Fix temperature unit conversion in Ambient PWS ([@bachya] - [#20723]) ([ambient_station docs]) (beta fix) +- Revert pyfoscam back to libpyfoscam ([@davidlie] - [#20727]) ([camera.foscam docs]) (beta fix) +- Fix ffmpeg v4 stream issue ([@awarecan] - [#20314]) ([ffmpeg docs]) ([camera.amcrest docs]) ([camera.arlo docs]) ([camera.canary docs]) ([camera.ffmpeg docs]) ([camera.onvif docs]) ([camera.ring docs]) ([camera.xiaomi docs]) ([camera.yi docs]) (beta fix) +- Improve cloud error handling ([@balloob] - [#20729]) ([cloud docs]) (beta fix) +- Fix cloud webhook body ([@pvizeli] - [#20739]) ([cloud docs]) (beta fix) (new-platform) +- Fix the line reference in config error message ([@awarecan] - [#20743]) (beta fix) +- Upgrade to async_upnp_client==0.14.4 ([@StevenLooman] - [#20751]) ([upnp docs]) ([media_player.dlna_dmr docs]) (beta fix) +- Keep cloud tokens always valid ([@balloob] - [#20762]) ([cloud docs]) (beta fix) [#17616]: https://github.com/home-assistant/home-assistant/pull/17616 [#18868]: https://github.com/home-assistant/home-assistant/pull/18868 @@ -284,6 +333,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20306]: https://github.com/home-assistant/home-assistant/pull/20306 [#20308]: https://github.com/home-assistant/home-assistant/pull/20308 [#20313]: https://github.com/home-assistant/home-assistant/pull/20313 +[#20314]: https://github.com/home-assistant/home-assistant/pull/20314 [#20318]: https://github.com/home-assistant/home-assistant/pull/20318 [#20320]: https://github.com/home-assistant/home-assistant/pull/20320 [#20321]: https://github.com/home-assistant/home-assistant/pull/20321 @@ -344,6 +394,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20502]: https://github.com/home-assistant/home-assistant/pull/20502 [#20503]: https://github.com/home-assistant/home-assistant/pull/20503 [#20504]: https://github.com/home-assistant/home-assistant/pull/20504 +[#20510]: https://github.com/home-assistant/home-assistant/pull/20510 [#20514]: https://github.com/home-assistant/home-assistant/pull/20514 [#20515]: https://github.com/home-assistant/home-assistant/pull/20515 [#20526]: https://github.com/home-assistant/home-assistant/pull/20526 @@ -357,6 +408,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20562]: https://github.com/home-assistant/home-assistant/pull/20562 [#20564]: https://github.com/home-assistant/home-assistant/pull/20564 [#20568]: https://github.com/home-assistant/home-assistant/pull/20568 +[#20570]: https://github.com/home-assistant/home-assistant/pull/20570 [#20582]: https://github.com/home-assistant/home-assistant/pull/20582 [#20589]: https://github.com/home-assistant/home-assistant/pull/20589 [#20590]: https://github.com/home-assistant/home-assistant/pull/20590 @@ -368,6 +420,26 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20604]: https://github.com/home-assistant/home-assistant/pull/20604 [#20606]: https://github.com/home-assistant/home-assistant/pull/20606 [#20611]: https://github.com/home-assistant/home-assistant/pull/20611 +[#20631]: https://github.com/home-assistant/home-assistant/pull/20631 +[#20651]: https://github.com/home-assistant/home-assistant/pull/20651 +[#20652]: https://github.com/home-assistant/home-assistant/pull/20652 +[#20657]: https://github.com/home-assistant/home-assistant/pull/20657 +[#20658]: https://github.com/home-assistant/home-assistant/pull/20658 +[#20663]: https://github.com/home-assistant/home-assistant/pull/20663 +[#20666]: https://github.com/home-assistant/home-assistant/pull/20666 +[#20680]: https://github.com/home-assistant/home-assistant/pull/20680 +[#20681]: https://github.com/home-assistant/home-assistant/pull/20681 +[#20682]: https://github.com/home-assistant/home-assistant/pull/20682 +[#20693]: https://github.com/home-assistant/home-assistant/pull/20693 +[#20699]: https://github.com/home-assistant/home-assistant/pull/20699 +[#20707]: https://github.com/home-assistant/home-assistant/pull/20707 +[#20723]: https://github.com/home-assistant/home-assistant/pull/20723 +[#20727]: https://github.com/home-assistant/home-assistant/pull/20727 +[#20729]: https://github.com/home-assistant/home-assistant/pull/20729 +[#20739]: https://github.com/home-assistant/home-assistant/pull/20739 +[#20743]: https://github.com/home-assistant/home-assistant/pull/20743 +[#20751]: https://github.com/home-assistant/home-assistant/pull/20751 +[#20762]: https://github.com/home-assistant/home-assistant/pull/20762 [@Censored3]: https://github.com/Censored3 [@Danielhiversen]: https://github.com/Danielhiversen [@GidoHakvoort]: https://github.com/GidoHakvoort @@ -400,10 +472,12 @@ Experiencing issues introduced by this release? Please report them in our [issue [@dmulcahey]: https://github.com/dmulcahey [@ehendrix23]: https://github.com/ehendrix23 [@eliseomartelli]: https://github.com/eliseomartelli +[@emkay82]: https://github.com/emkay82 [@emontnemery]: https://github.com/emontnemery [@exxamalte]: https://github.com/exxamalte [@fabaff]: https://github.com/fabaff [@foxel]: https://github.com/foxel +[@fronzbot]: https://github.com/fronzbot [@gorynychzmey]: https://github.com/gorynychzmey [@heytensai]: https://github.com/heytensai [@hfurubotten]: https://github.com/hfurubotten @@ -412,8 +486,10 @@ Experiencing issues introduced by this release? Please report them in our [issue [@jvanderneutstulen]: https://github.com/jvanderneutstulen [@kbickar]: https://github.com/kbickar [@kellerza]: https://github.com/kellerza +[@kennedyshead]: https://github.com/kennedyshead [@koreth]: https://github.com/koreth [@krygal]: https://github.com/krygal +[@magenbrot]: https://github.com/magenbrot [@merc1031]: https://github.com/merc1031 [@mindakas]: https://github.com/mindakas [@mindigmarton]: https://github.com/mindigmarton @@ -422,6 +498,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@mxworm]: https://github.com/mxworm [@notoriousbdg]: https://github.com/notoriousbdg [@perosb]: https://github.com/perosb +[@pvizeli]: https://github.com/pvizeli [@quazzie]: https://github.com/quazzie [@reefab]: https://github.com/reefab [@rohankapoorcom]: https://github.com/rohankapoorcom @@ -445,14 +522,24 @@ Experiencing issues introduced by this release? Please report them in our [issue [alert docs]: /components/alert/ [ambient_station docs]: /components/ambient_station/ [android_ip_webcam docs]: /components/android_ip_webcam/ +[asuswrt docs]: /components/asuswrt/ [automation.mqtt docs]: /docs/automation/trigger/#mqtt-trigger [binary_sensor.danfoss_air docs]: /components/binary_sensor.danfoss_air/ [binary_sensor.homematicip_cloud docs]: /components/binary_sensor.homematicip_cloud/ -[binary_sensor.lutron docs]: /components/binary_sensor.lutron/ [binary_sensor.trend docs]: /components/binary_sensor.trend/ +[blink docs]: /components/blink/ +[camera.amcrest docs]: /components/camera.amcrest/ +[camera.arlo docs]: /components/camera.arlo/ +[camera.canary docs]: /components/camera.canary/ +[camera.ffmpeg docs]: /components/camera.ffmpeg/ [camera.foscam docs]: /components/camera.foscam/ +[camera.onvif docs]: /components/camera.onvif/ +[camera.ring docs]: /components/camera.ring/ +[camera.xiaomi docs]: /components/camera.xiaomi/ +[camera.yi docs]: /components/camera.yi/ [climate.mill docs]: /components/climate.mill/ [climate.radiotherm docs]: /components/climate.radiotherm/ +[cloud docs]: /components/cloud/ [config docs]: /components/config/ [cover.homematicip_cloud docs]: /components/cover.homematicip_cloud/ [danfoss_air docs]: /components/danfoss_air/ @@ -463,6 +550,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [emulated_roku docs]: /components/emulated_roku/ [envisalink docs]: /components/envisalink/ [fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[ffmpeg docs]: /components/ffmpeg/ [fritzbox docs]: /components/fritzbox/ [geo_location docs]: /components/geo_location/ [geofency docs]: /components/geofency/ @@ -493,6 +581,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/ [media_player.firetv docs]: /components/media_player.firetv/ [media_player.mpd docs]: /components/media_player.mpd/ +[media_player.pjlink docs]: /components/media_player.pjlink/ [media_player.plex docs]: /components/media_player.plex/ [media_player.songpal docs]: /components/media_player.songpal/ [media_player.volumio docs]: /components/media_player.volumio/ @@ -504,6 +593,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [rest_command docs]: /components/rest_command/ [sense docs]: /components/sense/ [sensor.ambient_station docs]: /components/sensor.ambient_station/ +[sensor.asuswrt docs]: /components/sensor.asuswrt/ [sensor.brottsplatskartan docs]: /components/sensor.brottsplatskartan/ [sensor.co2signal docs]: /components/sensor.co2signal/ [sensor.danfoss_air docs]: /components/sensor.danfoss_air/ @@ -513,6 +603,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.history_stats docs]: /components/sensor.history_stats/ [sensor.iliad_italy docs]: /components/sensor.iliad_italy/ [sensor.imap docs]: /components/sensor.imap/ +[sensor.influxdb docs]: /components/sensor.influxdb/ [sensor.integration docs]: /components/sensor.integration/ [sensor.islamic_prayer_times docs]: /components/sensor.islamic_prayer_times/ [sensor.lyft docs]: /components/sensor.lyft/ From 23164a496a101eeb4438bcff476f034504b2a057 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 12:56:57 -0800 Subject: [PATCH 12/16] Update cover.homematicip_cloud.markdown --- source/_components/cover.homematicip_cloud.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/cover.homematicip_cloud.markdown b/source/_components/cover.homematicip_cloud.markdown index c1a6a98361d..439fe4cf6ff 100644 --- a/source/_components/cover.homematicip_cloud.markdown +++ b/source/_components/cover.homematicip_cloud.markdown @@ -2,7 +2,7 @@ layout: page title: "HomematicIP Cloud Cover" description: "Instructions on how to integrate HomematicIP covers within Home Assistant." -date: 2019-04-13 13:40 +date: 2019-01-13 13:40 sidebar: true comments: false sharing: true From e762622b08d823efb50958247cfdaaad178f25da Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 13:09:27 -0800 Subject: [PATCH 13/16] Update ambient_station.markdown --- source/_components/ambient_station.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/ambient_station.markdown b/source/_components/ambient_station.markdown index 0c1568f76fb..97d072abebd 100644 --- a/source/_components/ambient_station.markdown +++ b/source/_components/ambient_station.markdown @@ -9,6 +9,8 @@ logo: ambient_weather.png ha_category: Weather ha_release: "0.85" ha_iot_class: "Cloud Push" +redirect_from: + - /components/sensor.ambient_station/ --- The `Ambient Weather Station` component retrieves local weather information From dede4a11b18d3ddbe212dc937c91a3ffa0d8c7d9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 13:51:26 -0800 Subject: [PATCH 14/16] Remove external images --- ...-things-that-cant-track-themselves-part-ii.markdown | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown b/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown index f1baf86794e..8d8d73cf480 100644 --- a/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown +++ b/source/_posts/2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown @@ -124,16 +124,6 @@ script: ### {% linkable_title Using both types of iBeacons at the same time %} Of course you can use both fixed and mobile beacons at the same time. I want my gates to open when I arrive home in the car - so I use an iBeacon in the car so that I can track the car, and an iBeacon on my drive so that a location update is triggered when I arrive. I've been experimenting with a high power beacon in a waterproof box on my drive which seems to work well to notice when I get home. -

- -

-Long range / High power beacon - -

- -

-Waterproof beacon - ### {% linkable_title Buying Beacons %} This isn’t a buyer's guide, but I just wanted to mention the iBeacons I’ve been using. I think you should be able to use any iBeacon with HA and OwnTracks. You generally can’t buy beacons in your local electronics shop - so I just wanted to briefly mention the two suppliers I’ve used so far. From 1f4b494ac7eeac7c83c65394b76b5783d10c2cbb Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 14:31:04 -0800 Subject: [PATCH 15/16] Update release notes --- source/_components/ambient_station.markdown | 8 +-- source/_components/system_health.markdown | 18 ++++++ source/_posts/2019-02-06-release-87.markdown | 59 +++++++++++------- .../blog/2019-02-release-87/components.png | Bin 0 -> 69122 bytes 4 files changed, 57 insertions(+), 28 deletions(-) create mode 100644 source/_components/system_health.markdown create mode 100644 source/images/blog/2019-02-release-87/components.png diff --git a/source/_components/ambient_station.markdown b/source/_components/ambient_station.markdown index 97d072abebd..079d57f9f96 100644 --- a/source/_components/ambient_station.markdown +++ b/source/_components/ambient_station.markdown @@ -62,7 +62,7 @@ monitored_conditions: dailyrainin: description: Daily rain accumulation dewPoint: - description: Dewpoint temperature + description: Dewpoint temperature eventrainin: description: Event Rain accumulation feelsLike: @@ -80,9 +80,9 @@ monitored_conditions: monthlyrainin: description: Monthly rain accumulation solarradiation: - description: Solar radiation + description: Solar radiation tempf: - description: Outdoor temperature + description: Outdoor temperature tempinf: description: Indoor temperature totalrainin: @@ -94,7 +94,7 @@ monitored_conditions: winddir: description: Wind direction winddir_avg10m: - description: Wind direction, 10m moving average + description: Wind direction, 10m moving average winddir_avg2m: description: Wind direction, 2m moving average windgustdir: diff --git a/source/_components/system_health.markdown b/source/_components/system_health.markdown new file mode 100644 index 00000000000..c17842e8957 --- /dev/null +++ b/source/_components/system_health.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "System Health" +description: "Systeam Health component will report system info and allow to run system diagnostics." +date: 2019-02-06 13:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: "Other" +ha_qa_scale: internal +ha_release: 0.87 +--- + +The System Health component provides an API to offer information on the system and it's components. It also allows to run diagnostic tools to diagnose problems. + +The system health component data can be viewed in the developer tools under service developer tool icon. diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown index 73f62cdbf13..6e784b13233 100644 --- a/source/_posts/2019-02-06-release-87.markdown +++ b/source/_posts/2019-02-06-release-87.markdown @@ -1,7 +1,7 @@ --- layout: post -title: "0.87: SmartThings, TBD UPDATE DATE " -description: "TBD UPDATE DATE" +title: "0.87: SmartThings, Areas and Entity Registry UI." +description: "Integrate SmartThings without issues" date: 2019-01-30 00:01:03 date_formatted: "February 6, 2019" author: Paulus Schoutsen @@ -13,13 +13,19 @@ og_image: /images/blog/2019-02-release-87/smartthings.png
-SmartThings +Today we're releasing Home Assistant 0.87, our third release of the year. Besides a bunch of bugs squashing and performance improvements, we got some cool new features too. -Areas +Let's start with the big one: we now support SmartThings. Via a custom app that can be installed inside SmartThings, you can now push the state of each device, as soon as it changes, to Home Assistant. No more fiddling with MQTT bridges or other solutions. Big shoutout to [@andrewsayre] for making this possible. Have a look at the [SmartThings docs] to get started. -Entity Registry UI +New in this release is a new area feature thanks to [@Kane610]. Areas will allow users to organize their devices by their physical area, like kitchen or living room. This will unlock a whole new range of possible new features (of which none are implemented yet). With this release, users will just be able to manage areas in the configuration panel and place devices in areas via the integration page. In the future, we're planning to add area based user permissions and a Lovelace area card. If you can't wait to start leveraging areas today, [@thomasloven] has created [a custom Lovelace card](https://github.com/thomasloven/lovelace-auto-entities) that can leverage areas. -Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesignicons.com/upgrade +This release also includes a UI to manage the entity registry. The entity registry contains all entities with unique IDs that Home Assistant has ever seen. It will allow users to quickly rename entities, change entity IDs or have Home Assistant forget entities that are no longer active. + +We didn't forget about the frontend in this release. In the last release we introduced Lovelace, so for this release we focused on bug squashing, performance improvements and usability. The YAML editor is now rendered using a full editor including line numbers thanks to [@bramkragten]. There is also a new system health component that will help users diagnose problems from the "info" developer tool. [See changelog for the frontend.](https://github.com/home-assistant/home-assistant-polymer/releases/tag/20190130.1) + +In this release we have also upgraded the Material Design Icons to 3.3.92, which renames some icons. Make sure to check [their changelog](https://dev.materialdesignicons.com/upgrade). + +If you prefer a podcast over release notes, check out [the Hass Podcast](https://hasspodcast.io/ha043/) in which Phil and Rohan discuss each new Home Assistant release and keep a tap on what's happening in the home automation space. ## {% linkable_title New Platforms %} @@ -28,9 +34,9 @@ Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesi - Add LCN switch platform ([@alengwenus] - [#20267]) ([lcn docs]) ([switch.lcn docs]) (new-platform) - Add EverLights light component ([@joncar] - [#19817]) ([light.everlights docs]) (new-platform) - Add device tracker support for EE Brightbox 2 router ([@krygal] - [#19611]) ([device_tracker docs]) (new-platform) -- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([cover.homematicip_cloud docs]) (new-platform) +- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([homematicip_cloud docs]) (new-platform) - Add Danfoss Air HRV support ([@JonasPed] - [#20138]) ([danfoss_air docs]) ([binary_sensor.danfoss_air docs]) ([sensor.danfoss_air docs]) (new-platform) -- Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) +- Utility meter ([@dgomes] - [#19718]) ([utility_meter docs]) (new-platform) - Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) - Add nilu air_quality platform ([@hfurubotten] - [#19674]) ([air_pollutants docs]) (new-platform) - Add Iliad Italy (Mobile Telephony Provider) Sensor ([@eliseomartelli] - [#19645]) ([sensor.iliad_italy docs]) (new-platform) @@ -43,9 +49,7 @@ Material Design Icons upgraded to 3.3.92, some renames: https://dev.materialdesi - RFC: Add system health component ([@balloob] - [#20436]) ([system_health docs]) ([updater docs]) (new-platform) - Add sensor platform for Rova Garbage Collection ([@GidoHakvoort] - [#18868]) ([sensor.rova docs]) (new-platform) - Add SmartThings component and switch platform ([@andrewsayre] - [#20148]) ([smartthings docs]) ([switch.smartthings docs]) (new-platform) -- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) -- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) -- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) +- Fix cloud webhook body ([@pvizeli] - [#20739]) ([cloud docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -66,7 +70,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix unused friendly name for SolarEdge sensor ([@LouisMT] - [#20109]) ([sensor.solaredge docs]) (breaking change) - Fix typo C02 to CO2 ([@reefab] - [#20306]) ([air_quality docs]) (breaking change) - Remove creation of geolocation default group ([@exxamalte] - [#20338]) ([geo_location docs]) (breaking change) -- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([notify:dovado docs]) ([sensor.dovado docs]) (breaking change) +- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([sensor.dovado docs]) (breaking change) - Reset Brottsplatskartan incident types every day ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) - Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) - Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) (breaking change) @@ -81,11 +85,11 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix parsing yeelight custom effects, when not present in config ([@zewelor] - [#20658]) ([light.yeelight docs]) (beta fix) - Add PLATFORM_SCHEMA_BASE support to check_config.py ([@emontnemery] - [#20663]) (beta fix) - InfluxDB - change connection test method ([@magenbrot] - [#20666]) ([sensor.influxdb docs]) (beta fix) -- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) - Fix allow extra in locative webhook schema validation ([@rohankapoorcom] - [#20657]) ([locative docs]) (beta fix) -- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) - Add entity_namespace to PLATFORM_SCHEMA ([@emontnemery] - [#20693]) (beta fix) -- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) - fix test commented in #20678 ([@dgomes] - [#20680]) (beta fix) - Add SmartThings button support via events ([@andrewsayre] - [#20707]) ([smartthings docs]) (beta fix) - Fix temperature unit conversion in Ambient PWS ([@bachya] - [#20723]) ([ambient_station docs]) (beta fix) @@ -96,6 +100,8 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix the line reference in config error message ([@awarecan] - [#20743]) (beta fix) - Upgrade to async_upnp_client==0.14.4 ([@StevenLooman] - [#20751]) ([upnp docs]) ([media_player.dlna_dmr docs]) (beta fix) - Keep cloud tokens always valid ([@balloob] - [#20762]) ([cloud docs]) (beta fix) +- Fix tellduslive responsiveness ([@fredrike] - [#20603]) ([tellduslive docs]) (beta fix) +- Make sure Locative doesn't submit invalid device IDs ([@balloob] - [#20784]) ([locative docs]) (beta fix) ## {% linkable_title All changes %} @@ -138,7 +144,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix typo C02 to CO2 ([@reefab] - [#20306]) ([air_quality docs]) (breaking change) - Add git to the development Dockerfile ([@kellerza] - [#20276]) - Add device tracker support for EE Brightbox 2 router ([@krygal] - [#19611]) ([device_tracker docs]) (new-platform) -- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([cover.homematicip_cloud docs]) (new-platform) +- HomematicIP add cover FROLL and BROLL devices ([@mxworm] - [#19794]) ([homematicip_cloud docs]) (new-platform) - Upgrade python-nest to 4.1.0 ([@awarecan] - [#20313]) ([nest docs]) - Upgrade youtube_dl to 2019.01.17 ([@fabaff] - [#20318]) - Add data/data_template/title to alert component ([@syphernl] - [#17616]) ([alert docs]) @@ -178,7 +184,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - ZHA component rewrite part 1 ([@dmulcahey] - [#20456]) - Upgrade astral to 1.8 ([@fabaff] - [#20459]) - Correct minor comments from PR#20138. ([@JonasPed] - [#20454]) ([danfoss_air docs]) -- Utility meter ([@dgomes] - [#19718]) ([sensor.utility_meter docs]) (new-platform) +- Utility meter ([@dgomes] - [#19718]) ([utility_meter docs]) (new-platform) - Add Co2signal sensor ([@danielsjf] - [#19204]) ([sensor.co2signal docs]) (new-platform) - introduce gateway ([@dmulcahey] - [#20460]) ([zha docs]) - Update device registry of MQTT fan ([@emontnemery] - [#20445]) ([mqtt docs]) @@ -191,7 +197,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Include exception details in the error log ([@shaan7] - [#20461]) ([media_player.firetv docs]) - Use HASS latitude/longitude as defaults for Lyft ([@bachya] - [#20491]) ([sensor.lyft docs]) - Upgrade zm-py to 0.3.1 ([@rohankapoorcom] - [#20489]) ([zoneminder docs]) -- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([notify:dovado docs]) ([sensor.dovado docs]) (breaking change) +- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([sensor.dovado docs]) (breaking change) - Add homekit_controller tests ([@Jc2k] - [#20457]) ([homekit_controller docs]) - Upgrade to async-upnp-client==0.14.3 ([@StevenLooman] - [#20502]) ([upnp docs]) ([media_player.dlna_dmr docs]) - Upgrade tibber library ([@Danielhiversen] - [#20504]) ([tibber docs]) @@ -253,11 +259,11 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix parsing yeelight custom effects, when not present in config ([@zewelor] - [#20658]) ([light.yeelight docs]) (beta fix) - Add PLATFORM_SCHEMA_BASE support to check_config.py ([@emontnemery] - [#20663]) (beta fix) - InfluxDB - change connection test method ([@magenbrot] - [#20666]) ([sensor.influxdb docs]) (beta fix) -- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Light platform ([@andrewsayre] - [#20652]) ([smartthings docs]) (beta fix) - Fix allow extra in locative webhook schema validation ([@rohankapoorcom] - [#20657]) ([locative docs]) (beta fix) -- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Fan platform ([@andrewsayre] - [#20681]) ([smartthings docs]) (beta fix) - Add entity_namespace to PLATFORM_SCHEMA ([@emontnemery] - [#20693]) (beta fix) -- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) (new-platform) +- Add SmartThings Binary Sensor platform ([@andrewsayre] - [#20699]) ([smartthings docs]) (beta fix) - Remove fingerprint middleware ([@balloob] - [#20682]) ([http docs]) - fix test commented in #20678 ([@dgomes] - [#20680]) (beta fix) - Add SmartThings button support via events ([@andrewsayre] - [#20707]) ([smartthings docs]) (beta fix) @@ -269,6 +275,8 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix the line reference in config error message ([@awarecan] - [#20743]) (beta fix) - Upgrade to async_upnp_client==0.14.4 ([@StevenLooman] - [#20751]) ([upnp docs]) ([media_player.dlna_dmr docs]) (beta fix) - Keep cloud tokens always valid ([@balloob] - [#20762]) ([cloud docs]) (beta fix) +- Fix tellduslive responsiveness ([@fredrike] - [#20603]) ([tellduslive docs]) (beta fix) +- Make sure Locative doesn't submit invalid device IDs ([@balloob] - [#20784]) ([locative docs]) (beta fix) [#17616]: https://github.com/home-assistant/home-assistant/pull/17616 [#18868]: https://github.com/home-assistant/home-assistant/pull/18868 @@ -417,6 +425,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20597]: https://github.com/home-assistant/home-assistant/pull/20597 [#20598]: https://github.com/home-assistant/home-assistant/pull/20598 [#20602]: https://github.com/home-assistant/home-assistant/pull/20602 +[#20603]: https://github.com/home-assistant/home-assistant/pull/20603 [#20604]: https://github.com/home-assistant/home-assistant/pull/20604 [#20606]: https://github.com/home-assistant/home-assistant/pull/20606 [#20611]: https://github.com/home-assistant/home-assistant/pull/20611 @@ -440,6 +449,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#20743]: https://github.com/home-assistant/home-assistant/pull/20743 [#20751]: https://github.com/home-assistant/home-assistant/pull/20751 [#20762]: https://github.com/home-assistant/home-assistant/pull/20762 +[#20784]: https://github.com/home-assistant/home-assistant/pull/20784 [@Censored3]: https://github.com/Censored3 [@Danielhiversen]: https://github.com/Danielhiversen [@GidoHakvoort]: https://github.com/GidoHakvoort @@ -477,6 +487,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@exxamalte]: https://github.com/exxamalte [@fabaff]: https://github.com/fabaff [@foxel]: https://github.com/foxel +[@fredrike]: https://github.com/fredrike [@fronzbot]: https://github.com/fronzbot [@gorynychzmey]: https://github.com/gorynychzmey [@heytensai]: https://github.com/heytensai @@ -541,7 +552,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [climate.radiotherm docs]: /components/climate.radiotherm/ [cloud docs]: /components/cloud/ [config docs]: /components/config/ -[cover.homematicip_cloud docs]: /components/cover.homematicip_cloud/ [danfoss_air docs]: /components/danfoss_air/ [device_tracker docs]: /components/device_tracker/ [device_tracker.gpslogger docs]: /components/device_tracker.gpslogger/ @@ -557,6 +567,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [gpslogger docs]: /components/gpslogger/ [homekit_controller docs]: /components/homekit_controller/ [homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ [http docs]: /components/http/ [hue docs]: /components/hue/ [image_processing.opencv docs]: /components/image_processing.opencv/ @@ -589,7 +600,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [mqtt docs]: /components/mqtt/ [nest docs]: /components/nest/ [notify docs]: /components/notify/ -[notify:dovado docs]: /components/notify:dovado/ [rest_command docs]: /components/rest_command/ [sense docs]: /components/sense/ [sensor.ambient_station docs]: /components/sensor.ambient_station/ @@ -616,18 +626,19 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.systemmonitor docs]: /components/sensor.systemmonitor/ [sensor.tibber docs]: /components/sensor.tibber/ [sensor.transmission docs]: /components/sensor.transmission/ -[sensor.utility_meter docs]: /components/sensor.utility_meter/ [smartthings docs]: /components/smartthings/ [switch.lcn docs]: /components/switch.lcn/ [switch.mqtt docs]: /components/switch.mqtt/ [switch.rest docs]: /components/switch.rest/ [switch.smartthings docs]: /components/switch.smartthings/ [system_health docs]: /components/system_health/ +[tellduslive docs]: /components/tellduslive/ [tibber docs]: /components/tibber/ [transmission docs]: /components/transmission/ [unifi docs]: /components/unifi/ [updater docs]: /components/updater/ [upnp docs]: /components/upnp/ +[utility_meter docs]: /components/utility_meter/ [weather.darksky docs]: /components/weather.darksky/ [webhook docs]: /components/webhook/ [wemo docs]: /components/wemo/ diff --git a/source/images/blog/2019-02-release-87/components.png b/source/images/blog/2019-02-release-87/components.png new file mode 100644 index 0000000000000000000000000000000000000000..7657342584b645fb618fdfdfd8486e635e9fe981 GIT binary patch literal 69122 zcmYhibyOAK_XbRtQddB_9JrK7cZV=^heabG-6-9cW-i?&jUXc3eMOLxE&(a&F6HI( z{k`j5@BA_AoH=_x=Q+=wIcx1bGYBmWB|-vf0yH!4#KXM5QsZZw zeBZgyQqxoX`}gnN-QC&Q*~!Vt>FMdg!2vot`p(YI;^Lw?mB`W2(Z9B<=<~=*EctRQ6PF&*4|^rPoF;hTKP3KH8nRo z_x<~K0e=4Vwe>|cF+xJZ(b3U{hK9Dbw!y){{U;oCbzji~raphJ?dj=ZXJdQw`VAEo zRexWfLD#VrotP7sa(H;SY}=V(2^bU<)X~xL@9(vno7?j8vYecpx0lzmr`%m#T|$C_ z2bVX0uP&35lVf6H9335{Bqi&&MYIU2oj2zFFQswF6|YSJ(cXjZ91|+;sLRIMkk4*ovgITqGnPNh`m#3!9!< z5fXWm2$hWQUJ4er->o}e<`!MeEp+$%xc>YlASi9Gr{8zr4@ye$m5FcF?6Hi`*Z$g; z^`mv^>R**rZBjCpM1BHN;f)g;dwkVhEqN76O?zi9UKZ4%cBs>TM>WU#um4>xl=aS? zeF);@)>qSTj(*{2(tB+E$>`th;Z8%#zk`Y;MC|P7^{omIza)#A)lcrBQ##VXwjk6jj+E+In`oFi% zcbJD&ag>$2*V|^G((3E`KFAs0bbwK#QkZ8%8HxW89&EqGn^n@%?&vNIq!xBYH6Sx&*`C{0l_t&_F!_?cPy zMWs?e6T}_`J`9`D^DPsru7M{mh$D^6OMTv!e=96*P|vo>$g27A0nzJ!R*8mA&<`re z>Uq!Y&S*!4$dD+G?I6r~{3C8H;j?$mtcw{U==jRSY~GFzGTiayZwH9cCe4v(H6Yq9 zdL~w&I)*9n41o5}3n`#fV#F9qEH`x%DXpWSRMN=wf1T81-T3x^=Kp#IS8Tm6RmJm$ zt?_<^B*hsL8K0`UgD7*1HX=egg> z?##8PhngNUF=8AK4-BwUasOJEfOE?)$H)oYrAVqB{Wq|v#M+;mxxc?ow!iqLDpv0B zKl55OYQOK9MSJwz8tF>YIT`oJ4aDfA3BM7$Yi`J_?5u9lXsWQ4-|{k8mWcw_mkWS~ zM!G1QZ>t~PAe1mHZFPf^a)-f{;G_v0I$MAkLW7y{YavoZR16WQhiv^{!wcFO1G8we z6=cf6CD0xAUqcD*;_41VFJtxjU*iDy`TukJ4=3=p)=R3&HpGSY&MJUyQNr*YWyo35 z+9+}!j1OrG3(aY@B;*9K-r<`&#;(s~s~|{7-qRE*Yn~VP$X7K4&s5+(YY&t}7$ZyP zV_+vXCq8*E_D+D_)65?yLti|8Q;34@C`1+@CTkFm*Q8NPUEw6%ysp+T2nwBJea3&g z#w3o~Hum)y(J?nNl?#^D$6Z&##m(}&E{s>yjeE8bj)s$2eky<4#TRZ&x*>=IS zjkQ@7$z2%|E8F5o-}wDRrU%NnU`*%rXt~sT1r5Fihwk^#1GrKaSCi2nsn9*30*;cX z--o_neI(F?S}`aRk>0blkBWYRBl#1-XTKCw)`6G50j*M9Kn3>G>&HE92h6NqBFI>5 z_{>i#5ozDe@)m!FkEM`p%(x~pt9QsCo6$2N)Q&|#58ibLt#zO?ZMWth0{SI>UU6BL z<-fSA`ZSKK-KX?9yHH?rPY}vkWM^MV14AZNWrzmR$tl1I)e;EZ)0hc=)XO@i{4b=R zz7i9oL=3z*>ip$0(>D$V8p#(L>+{yR8ozLKlc~Y@==`cr2MUajkoq(@nDyn=c7L<`b*ko3 znkd-dr11_X9`_Bs(&AGO=;0Ig=f(+E^h{CA@d;M4#mbLD!aolFWdDpt1(I>n&R_*d z`1`3p9YKKv;u_;pUOUte;NU{bw~DP6m+Fb_m_@;v8!RlsAj52cJ|GKgz=l;de0~E! zOE1@XtmUgkCd$x8P%}9grOYA9hB8P5R@Q#mpASt>?wc18RnzZlcpep`v|oEBpZ{bL zoCYHW8!9W7#BdsOb=`(>+8;IEt0$5^7IPl)cbjY5F&W8I-Y-td$52(bFqUemQxZf` z%11bYht5DO4MP5xmnWB>>Z8fa{tV3zRnVCD)i^`GKfX#y{UTGReeZ)uiP0d2pRqKP zJmu)cQ^;~N{|i84Q7jq6UinFT$&fP!Mqz8fhq7kpeL^g9{Cg7!ak^chxwEV2$D4*_ zud_-&#xJ*d2V@;5I~j?f6kWf8)=hZVsg%-i*@;a2kjsD0&F5kZIB=9PZ!KGL)*T@w znQ;kKHeX2ZZ{U?8z-g*IuBGxhUlhEaSGt7&53hf}&h|obxzj{I&TUV~{>!Xw{rvEo zam5G0VV%_)s|&c#KlAeUP`UFuL&-R`{<&}S*|gUkS`Rq=585pC(#dAaWo&5!hd@`4 zBoixf-BI0i!eMaq=iSc{QtL07rwzH{;+uy4&8Dk>dOVV`HbFVh@U;Nu5;kqN<)tO# zlOdJXhv&kJAYdk@pzwxmnp~eFi87;DRX^;a^=XiFxfN7d!RKU&7U-O%Ao%DT+9QL8 zD4u*#)S1=p?;jDT+y=Dt0g--EVy6?>kKitEpW`y-b__m_zN!}nF~T})G++#8i!4*= zY*gU~0B3B^Bq&@^Ih~BL_d4l$#$oLqE5@FaOC=MO)IUVPNDD`2)3vD_*DW2?Vda9C zNiMXc^3 z*Y#%gHOU3Seiz^6*~!)~=@O6!F{|q>)8w(e{x*yGFX(yo1MC{D??<+HL!d_7Qk(Y& z-^ls(4L`08H`fpZk_@?Y2B3_iNC2!956Ev?1xmazSrsX+?ec)2bIT`e&k00-;F`(O z0Kw(_hi~&M_BSz0Q-(heoe#=9R^iF#K=QroFk-qQz|60LH;D)Q#pyu}&(F*kiktZH zlp)u}KSgm`&ZDTru4KH>G~o#1*0LaL@i*Z#yFeDloS4ohoM4L?rOC{FYL7GPbQ>IFf48ZRu)`OS>yVO}y`f zc{`565lF5&zNa#H5`TcBu}O#JUv){n!VMb1F60EziCiSA_inN`!P|~8xhsroyl~_>ie^#Q0r*Vwo~q# z=xA|mrB9DxPC_p0uX;yRV|v)v584N(y)0O=XxM9wHrX`sWij$`&&F=@-zAb@yjU>R zt~NWc7NTdk)@CPDMDBXJwD|?x{DXV9-Pu7!HB#W5g`dc>@N4ND>;3RVGN+*@Wa`1W ze=X6SDnX3mq$uEkN1qo%HQ}kERRk=9!pwV4dHmOxt^tgJN%g)_E|ai)QWd;yokVju*c-ETtLu{kcfA&B3>RNY=FOxj5UhrihbcdeXIq&@sAd=@6+my1~F8EBW>lv z@0qa#3grz|+(21hn6rvZ(&*8LPuyUl0Db~?E6?Zv@dZ0NhK1LMiOiG5X@m{Tc;b@c z7iko07nP~iH~S#3^ig^*fyBeXLBpTTM-k%>?jwjY5Q8LbkTf_N6Z&Qeo4O zKi_^iZ}}*ft*5oft`u}x!5jt$QfY=|!D`d+W`0U85M;$ZDVd22=9iO@J|5Z;I=3VR4{x!a&uBT)aL|&} zpo}qOZ5Dye5Ou{R68D8G))}!Fq!_rhhFmfRDpY^%8o=WC=$z+Xv8-}M3kJhbuwADJlCv)%Hu-2~jvO&l6!WNzV*(&PwO}g_o z+#Hfwt^f7??MjLPr(v9GQ(8-@9*tut^jxED$!Ki#`dwbpi?4Eo&e;|3J;t0UM&Vs8 z7!&Ehzzu~elBDH{ixmC2ePVlylPML+?duE6V*HO)Ts_W9gjk*Ano8I*tfzSu=o>j96O zaid#eFmHqBpWhEkR38{Q(K_qOB%O-uzt{uaLaOFBTnT?jtBFsU3l(&|vp*_;62C-! z$?uEJeRdQ5~Xm)(=-m_9#tEe$kVNv^gVf`!};z3`U9sGXyx>?UEoKR>yB=qpY|7w zf`4>O_H|lq0&_o><)B(lQ|87-!5i^9YDWpL5q~2Gk@t7C{|a7t70%8%Fa`)cNr;v) zW31}(&_0s9tQClK#Qd23)>-cBgoDnSwM9cvlvC=Y3Ek_dozxTNYhXHpcAB;VBq#>o zpy{X`n=d~`pAbZX8f7_vRs1dj)}>_5bo7kJsfJ<{M=UTB>m?(X-PtZFbC-F@*WX|y z?k)ZkZ=;OCU_wVu`IMs-)3Pwa*O9`6Qp-}G%o(IxBGN2946rHk%!N994LmoFdgfjF z{Bn$lP5s?x>7+NWqjwaYS|zjyrprv4R$YlEzlhZ=M7(Pjw8`+~Ss}PCC(}mCv`Nqf z@cHEHiR1zwdH5hfhLIl(1cl(gAuAor96ps7r3C7W=^k~Ys+Sn?wmrSu)bWbrtNe*Z zdyQ6OdgJ=`nMP{g0XtLd@`6OVIubo>{T6Kb6n*u@lyusElH+PRZPWt9e5fzAG<5r? zQE8S!IH`5Dl#%g>0>r|EhDnwgYm?X@aMG6o%Cyij5|Hwuvgm8aZCC?k``Epq^;$P-f5d|p+ol%O)E&-0-r!XvMq2m=NofzPK1SfHgTuJ>d13@>`fywipxO^~IkPE&l2O9{(!@u5{Eo`FL>KMg;=#wP?&QMJ~q$LPD=4MxR!h15zhp{NEug28= zI8^FWt`fCk1n)#WnY8Ix0!c2GMVE~^GYE?&l>HJY_M+^$T`NzzTFDb|TwoZ-D8-6$ zYW*_95=HmcvuBtWN#a$HLsp~8vi9|XEoF^Bil!xWeNhGat9y|LreNH>#&(q{^OnLV z!SG?RKRzN&4m5O4O=^Qg+`Cf+K{H=yz%s{ogH)U?AD1?GYUQdqn2S_Bfr?9<>-m&3 zM*nF<&W0==w^uF}R|S^PGC?9RrnA6{zKS*_lSGP>Q-bNcYx<~ISAKxK}J!=K9OAJ%F+=+_oMEGqt;O{Q^qd9^BI^}>nUdeO$q z6BEnbpm3T0lUha9H7Sc+%=<>ZD(8%KcDj7GMu$W}{O8A_7Sfs$n^(#O8fr*ORhTiK zd)jz!v}ei8j&dXxN&gQ&5r-3Myo4!FCPo+|WKGk_AZ1OIqUfZF``z()9LSpaBh%eS zrHgI6zwVr4q_y~>W)hPY1;lqiKYaTYu$h8fiJ7vR|$^cAFZURBA-T0NhwCO z4w^_CejXX+l5D9OoIsVH&MTp;>8w(7ta z3iBwQm&|6;UJ;Km+_q?3OpxBnIl)i=Z1*0CbTU+m36NtikY;!GbUtDbnVtOVsqq(V z#H-RSb7ynjT=Qt{jfbIeUUF1}r1<%e@YgRp-7X*Y%MCucFJu$&w+25uc~SjrbJ)`J z#CK8t!hV#R>eLK-xm=CdrW4g^`s$b6D~7!+kL)J5sWGRQuhb!YzFZKUAHNIV78<9| zNI5Ic?KlpW5ea9QHOS-qY}TwvQ@r{?mV`RRYCc0CLjz6jp;WB5 zGxK1R4OCRo`Ncl)9V*r=PDixxc@j;9y9JE2Nck+n^`njt4u8TMIba4-taDFsNmr4! zhK}`#f7U2UPWlD94m~JE!X0qgNM&LZyt&^5K=8c{AN&9IsVs)h2cs-4mci`{k_FJj zA$Tr;!lT6eP?~}vc*sZPAZuqx7z%umuhj41*QYp)6nEEDl9ytBKsDNL!>g&_C^?Za zX8P0Ca_!r;oT-4bm|+s$DVPx>KSxCnR0}$-?8yNdf%+fryrtmYWZkYrocTm5DKv zvszirls}f657mDD0y@nbJk}|k0ji+t{Z?vLnj|^wnE3; zU_2kf2#jX8BNxnRD%|lN)dlUPwk6uvj-GsH)>c93K&hMw!Uj3O4J9+3~-YuwMP_4pbR zm3Y1&URG+zDeCL%UC_UnODb_j+kTd((NPQJzk^=!$_vPd;JD!Vh92KK;e8^>Sf|fxy$AOCQdM3u~6;FZ~3Jy|{$9|J;F?lZu_`ryAh zezl7z!&IJlBSvN4*wFE-CvDL@OOe6MV0*phG5>bDXI2F5$pF`^miGbMt!zEs-*1co z@|Uku!$yJcP7UH}$7?OA9qoP}-2QS?wMu%5g4;KTAli(lq@X&i16AL&rxMyV-;c-Q z{WRB#JY;z{naC=h7VyYJBZ@4g3=QzbI^2dYNb*JxYG&zWRc2Z9L(vK zi+ePe0Lw-|jME&y1N?Wi(BnI->g=zb4FjK8+5Lp2P*>m-@^*NMs*?2~mYMe^3r4$2 z{JHG+vBFdeCd#78%*cZkc|6g5UOA0xRw)@Tzzn}-LWhs&k?>u>j$X!7*0ogWKiqjP zx)~8Q@7(zfG{twHyi`+OF;R2vWVfMN?TY0>7R@M?t|%{1)f4LI_xlodkRfBvW(k>5 z^6+UaXT`#k)OSxBg=F@FuuxaR5xX?3R1@H*^MN;JbrLcr8FWU!GGNHP z?0bDtIAq+>;B(L)E(6uzgkq-yuYr6`5}#?pS!KI@Rc~{czS=mxi)9;+B%=%SoT66r z11vYlJrV1a2f0 zezT(uvzg>*FTin6MX(zi-BaZ6-$p5}rN7U*6x>J-iQe_*-vi@=dOV0BmGYN7s_i@H z$Lo*SM!@qgW^?=x8I`<8~4waph=9az)SYuCG+Gz5+-!t_N^YqT7@zy06M5B@cOaJN*0 zAHEJ8T4uURhbpW5BR#H8f4&y-LwQvTM)1%3U06C`42<;yrS`^?=kLFIeE$BvMZ(os z5E&!;Pr*zPV!Sj>D<-HFMTG)lX;`CVN459@o4}SVhU3X5aLRL2f;M3IHuOJP$If>9 z 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
BvDmZ^mW&o|4QU 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

3rK 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 VL9b-(4$lAp002ovPDHLkV1g{oiHQIJ literal 0 HcmV?d00001 From 8106ef09ccb42423864190ed1b3b6236d0f29309 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 6 Feb 2019 14:52:05 -0800 Subject: [PATCH 16/16] Update breaking changes --- source/_posts/2019-02-06-release-87.markdown | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown index 6e784b13233..488c7514301 100644 --- a/source/_posts/2019-02-06-release-87.markdown +++ b/source/_posts/2019-02-06-release-87.markdown @@ -67,15 +67,14 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Fix unused friendly name for SolarEdge sensor ([@LouisMT] - [#20109]) ([sensor.solaredge docs]) (breaking change) -- Fix typo C02 to CO2 ([@reefab] - [#20306]) ([air_quality docs]) (breaking change) -- Remove creation of geolocation default group ([@exxamalte] - [#20338]) ([geo_location docs]) (breaking change) -- Split out dovado to a component and sensor platform ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([sensor.dovado docs]) (breaking change) -- Reset Brottsplatskartan incident types every day ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) -- Make Ambient PWS async and cloud-push ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) -- Add COMPONENT_SCHEMA and use it in alarm_control_panel ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) (breaking change) -- New Transmission component ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) -- Disable extra=vol.ALLOW_EXTRA for MQTT platforms. ([@emontnemery] - [#20562]) ([mqtt docs]) (breaking change) +- SolarEdge sensors: This PR changes the **entity names** of this sensor and the **monitoring condition keys** in the configuration: `sensor.solaredge_current_power` -> `sensor.solaredge_current_power`, `sensor.solaredge_last_day_data` -> `sensor.solaredge_energy_today`, `sensor.solaredge_last_month_data` -> `sensor.solaredge_energy_this_month`, `sensor.solaredge_last_year_data` -> `sensor.solaredge_energy_this_year`, `sensor.solaredge_life_time_data` -> `sensor.solaredge_lifetime_energy`, ([@LouisMT] - [#20109]) ([sensor.solaredge docs]) (breaking change) +- Geolocation is no longer creating a default group. ([@exxamalte] - [#20338]) ([geo_location docs]) (breaking change) +- The Dovado sensor platform has been broken up into a Dovado component with sensor and notify platforms. The configuration variables have been changed. Please refer to the documentation for the correct configuration. ([@rohankapoorcom] - [#20339]) ([dovado docs]) ([sensor.dovado docs]) (breaking change) +- Brottsplatskartan: The incident type count is reset every day. Before this change, it didn't reset until you restarted Home assistant. ([@chrillux] - [#20117]) ([sensor.brottsplatskartan docs]) (breaking change) +- Ambient PWS has new configuration and entity IDs will change. Configure it now via the integrations page. ([@bachya] - [#20332]) ([ambient_station docs]) ([sensor.ambient_station docs]) (breaking change) +- New Transmission component. With the introduction of the Transmission component, the configuration for Transmission sensor and switch has been moved to the component configuration. Configuration must be changed accordingly. ([@MatteGary] - [#19230]) ([transmission docs]) ([sensor.transmission docs]) (breaking change) (new-platform) +- The alarm control panel will now flag mistyped configs from `configuration.yaml` correctly as invalid, instead of just ignoring them. ([@emontnemery] - [#20224]) ([alarm_control_panel docs]) (breaking change) +- MQTT platforms will now flag mistyped configs from `configuration.yaml` correctly as invalid, instead of just ignoring them. ([@emontnemery] - [#20562]) ([mqtt docs]) (breaking change) ## {% linkable_title Beta Fixes %}