diff --git a/source/_components/mailgun.markdown b/source/_components/mailgun.markdown new file mode 100644 index 00000000000..835464dfd06 --- /dev/null +++ b/source/_components/mailgun.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "Mailgun" +description: "Instructions how to add Mailgun mail notifications to Home Assistant." +date: 2017-02-06 16:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: mailgun.png +ha_category: Notifications +ha_release: 0.38 +--- + +The component supports push messages and generates events based on inbound data. To use, add a Route set to Store and Notify with a URL of the following form: `https:///api/mailgun?api_password=` + +To send messages, use the [Mailgun notify platform][notify]. + +[notify]: /components/notify.mailgun/ + +## {% linkable_title Sample configuration %} + +```yaml +# Example configuration.yaml entry +mailgun: + domain: mg.example.com + api_key: token-XXXXXXXXX + sandbox: False +``` + +Configuration variables: + +- **domain** (*Optional*): This is the domain name to be used when sending out mail. Defaults to the first custom domain you have set up. +- **sandbox** (*Optional*): Whether to use the sandboxed domain for outgoing mail. The `domain` item takes precedence over this. Defaults to `False`. +- **api_key** (*Required*): This is the API token that has been generated in your Mailgun account. diff --git a/source/_components/notify.mailgun.markdown b/source/_components/notify.mailgun.markdown index 52f69b5251e..be571eb2c14 100644 --- a/source/_components/notify.mailgun.markdown +++ b/source/_components/notify.mailgun.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Mailgun" +title: "Mailgun Notify" description: "Instructions how to add Mailgun mail notifications to Home Assistant." date: 2017-02-06 16:52 sidebar: true @@ -12,18 +12,23 @@ ha_category: Notifications ha_release: 0.38 --- -The Mailgun notification service allows you to send emails via Mailgun's REST API. +The Mailgun notification service allows you to send emails via Mailgun's REST API. It requires the [Mailgun component] to be set up. + +[Mailgun component]: /components/mailgun/ ## {% linkable_title Sample configuration %} ```yaml # Example configuration.yaml entry +mailgun: + domain: mg.example.com + api_key: token-XXXXXXXXX + sandbox: False + notify: - - name: NOTIFIER_NAME + - name: mailgun platform: mailgun - domain: YOUR_MAILGUN_DOMAIN - token: TOKEN - recipient: RECIPIENT_EMAIL + recipient: me@example.com ``` Configuration variables: @@ -34,21 +39,6 @@ Configuration variables: - **recipient** (*Required*): The email address of the recipient. - **sender** (*Optional*): The sender's email address. Defaults to `hass@DOMAIN`, where `DOMAIN` is outgoint mail domain, as defined by the `domain` and `sanbox` configuration entries. -## {% linkable_title Full configuration %} - -A full configuration example for the Mailgun notifier system can look like this: - -```yaml -# Example configuration.yaml entry -notify: - - name: mailgun - platform: mailgun - domain: mg.example.com - sanbox: False - token: 'token-XXXXXXXXX' - recipient: me@example.com -``` - ## {% linkable_title Example automation %} The following automation reacts to an event by sending out an email with two attachments. diff --git a/source/_components/python_script.markdown b/source/_components/python_script.markdown index 4f950cbb7e0..ddb26a0e7e8 100644 --- a/source/_components/python_script.markdown +++ b/source/_components/python_script.markdown @@ -12,7 +12,16 @@ ha_category: Automation ha_release: 0.47 --- -This component allows you to write Python scripts that are exposed as services in Home Assistant. Each Python file created in the `/python_scripts/` folder will be exposed as a service. The content is not cached so you can easily develop: edit file, save changes, call service. The scripts are run in a sandboxed environment with access to the `hass` object, the service call data as `data` and a logger as `logger`. +This component allows you to write Python scripts that are exposed as services in Home Assistant. Each Python file created in the `/python_scripts/` folder will be exposed as a service. The content is not cached so you can easily develop: edit file, save changes, call service. The scripts are run in a sandboxed environment. The following variables are available in the sandbox: + +| Name | Description | +| ---- | ----------- | +| `hass` | The Home Assistant object. Access is only allowed to call services, set/remove states and fire events. [API reference][hass-api] +| `data` | The data passed to the Python Script service call. +| `logger` | A logger to allow you to log messages: `logger.info()`, `logger.warning()`, `logger.error()`. [API reference][logger-api] + +[hass-api]: https://home-assistant.io/developers/development_hass_object/ +[logger-api]: https://docs.python.org/3.4/library/logging.html#logger-objects ## {% linkable_title Writing your first script %} diff --git a/source/_components/sensor.ecobee.markdown b/source/_components/sensor.ecobee.markdown new file mode 100644 index 00000000000..0ae2be049bc --- /dev/null +++ b/source/_components/sensor.ecobee.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Ecobee Sensor" +description: "Instructions how to setup the Ecobee sensors within Home Assistant." +date: 2015-11-30 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ecobee.png +ha_category: Binary Sensor +ha_release: 0.9 +ha_iot_class: "Local Push" +--- + +To get your Ecobee sensors working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/sensor.moldindicator.markdown b/source/_components/sensor.mold_indicator.markdown similarity index 100% rename from source/_components/sensor.moldindicator.markdown rename to source/_components/sensor.mold_indicator.markdown diff --git a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown index 2f4d7538de2..2276443b8ae 100644 --- a/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown +++ b/source/_posts/2017-05-06-zigbee-opencv-dlib.markdown @@ -11,7 +11,7 @@ categories: Release-Notes og_image: /images/blog/2017-05-0.44/components.png --- - + This release brings some great new integrations. The biggest one is the [native ZigBee integration][zha docs] by [Russell Cloran][@rcloran]. This will allow Home Assistant to natively control Philips Hue lights without the need for a hub! (IKEA Tradfri lights not yet due to implementing a different profile) diff --git a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown index 8102a4451dd..6416d9d9cc1 100644 --- a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown +++ b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown @@ -11,7 +11,7 @@ categories: Release-Notes og_image: /images/blog/2017-05-0.45/components.png --- - + Welcome to another great release of Home Assistant! While some of contributors and users are gathering at PyCon US 2017, we still managed to get a great release together! diff --git a/source/_posts/2017-06-04-release-46.markdown b/source/_posts/2017-06-04-release-46.markdown index f35433957d3..d800401404d 100644 --- a/source/_posts/2017-06-04-release-46.markdown +++ b/source/_posts/2017-06-04-release-46.markdown @@ -11,7 +11,7 @@ categories: Release-Notes og_image: /images/blog/2017-06-0.46/components.png --- - + It's time for 0.46! This release does not have too many new integrations, instead it focussed on bug fixes. diff --git a/source/_posts/2017-06-17-release-47.markdown b/source/_posts/2017-06-17-release-47.markdown new file mode 100644 index 00000000000..8253e92ea8b --- /dev/null +++ b/source/_posts/2017-06-17-release-47.markdown @@ -0,0 +1,522 @@ +--- +layout: post +title: "0.47: Python Scripts, Sesame Smart Lock, Gitter, Onvif cameras" +description: "Use Python to script Hass and enjoy a ton of new integrations. We now passed the 700 integrations!" +date: 2017-06-17 01:04:05 +0000 +date_formatted: "June 17, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-06-0.47/components.png +--- + + + +In this release a ton of new stuff! And who doesn't like new stuff? This release we're passing the 700 integrations for Home Assistant. As of today [we're 1369 days old][first-commit], which means that roughly every two days a new integration gets added! + +## {% linkable_title Python Scripts %} + +The biggest change is a new type of script component: [Python scripts][python_script docs]. This new component will allow you to write scripts to manipulate Home Assistant: call services, set states and fire events. Each Python script is made available as a service. Head over to [the docs][python_script docs] to see how to get started. + +## {% linkable_title Updater %} + +The updater has received a new opt-in option to let us know which components you use. This will allow us to focus development efforts on the components that are popular. + +```yaml +updater: + include_used_components: true +``` + +And as a reminder. We will never share gathered data in a manner that can be used to identify anyone. We do plan on making aggregate data public soon. This will include total number of users and which hardware/software platform people use to run Home Assistant. + +## {% linkable_title Z-Wave %} + +Z-Wave is also getting a big update in this release. The confusing entity_ids will be on their way out. There is a [zwave blog post] that gives more detail, but the upgrade steps will be as follows: + +1. Run Home Assistant as normal and the old IDs will still be used. +2. The new entity IDs will be shown in the more-info dialog for each entity. Check to make sure none of them will have conflicts once the new names are applied. +3. Rename entities using the ui card as described in the blog post to avoid conflicts. Restart Home Assistant to observe the changes. +4. Update all places mentioning IDs (groups, automation, customization, etc.) in configuration.yaml. +5. Add `new_entity_ids: true` to your zwave config. +6. Restart Home Assistant to run with new IDs. +7. The old entity IDs will be available in the more info dialog to trace down any remaining errors. + +## {% linkable_title New platforms %} + +- Added a Taps Aff binary sensor ([@bazwilliams] - [#7880]) ([binary_sensor.tapsaff docs]) (new-platform) +- lock.sesame: New lock platform for Sesame smart locks ([@trisk] - [#7873]) ([lock.sesame docs]) (new-platform) +- Etherscan.io sensor ([@nkgilley] - [#7855]) ([sensor.etherscan docs]) (new-platform) +- blockchain.info sensor ([@nkgilley] - [#7856]) ([sensor.blockchain docs]) (new-platform) +- Add Radarr sensor ([@tboyce021] - [#7318]) ([sensor.radarr docs]) (new-platform) +- Added buienradar sensor and weather ([@mjj4791] - [#7592]) ([sensor.buienradar docs]) ([weather.buienradar docs]) (new-platform) +- Add support for Vanderbilt SPC alarm panels and attached sensors ([@mbrrg] - [#7663]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (new-platform) +- Add raspihats switch ([@florincosta] - [#7665]) ([switch.raspihats docs]) (new-platform) +- Add juicenet platform ([@jesserockz] - [#7668]) ([juicenet docs]) ([sensor.juicenet docs]) (new-platform) +- add ripple sensor ([@nkgilley] - [#7935]) ([sensor.ripple docs]) (new-platform) +- New component: Python Script ([@balloob] - [#7950]) ([python_script docs]) (new-platform) +- Nadtcp component ([@mwsluis] - [#7955]) ([media_player.nadtcp docs]) (new-platform) +- Add Gitter.im sensor ([@fabaff] - [#7998]) ([sensor.gitter docs]) (new-platform) +- Update mailgun ([@happyleavesaoc] - [#7984]) ([mailgun docs]) ([notify.mailgun docs]) (breaking change) (new-platform) +- Add Flexit AC climate platform ([@Sabesto] - [#7871]) ([climate.flexit docs]) (new-platform) + +## {% linkable_title If you need help... %} +...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} +Experiencing issues introduced by this release? Please report them in our [issue tracker][issue]. Make sure to fill in all fields of the issue template. + + +## {% linkable_title Breaking changes %} + +- Update opencv config to match other image processors ([@Teagan42] - [#7864]) ([image_processing.opencv docs]) (breaking change) + +```yaml +image_processing: + - platform: opencv + name: OpenCV + source: + - entity_id: camera.front_door + classifier: + faces: + file: /path/to/classifier + name: Husband + neighbors: 4 + min_size: (40, 40) + scale: 1.1 +``` + +- Lutron: Add configuration check and use default var names ([@fabaff] - [#7963]) ([lutron docs]) ([light.lutron docs]) (breaking change) + +```yaml +lutron: + host: IP_ADDRESS + username: lutron + password: integration +``` + +- Convert mailgun to component ([@happyleavesaoc] - [#7984]) ([mailgun docs]) ([notify.mailgun docs]) (breaking change) (new-platform) + +```yaml +mailgun: + domain: !secret mailgun_domain + api_key: !secret mailgun_api_key + sandbox: False + +notify: + - name: mailgun + platform: mailgun + recipient: !secret mailgun_recipient +``` + +- LIFX: add multiple modes to pulse effect. The `lifx_effect_breathe` call has been deprecated. Use `lifx_effect_pulse` with the new `mode: breathe` attribute instead. ([@amelchio] - [#8016]) ([light.lifx docs]) (breaking change) +- Use standard entity_ids for zwave entities. This also introduces a small API breakage, where `EVENT_SCENE_ACTIVATED` and `EVENT_NODE_EVENT` will no longer supply an `object_id`. They will now be tied to the node entity_id. ([@armills] - [#7786]) ([zwave docs]) ([light.zwave docs]) (breaking change) +- Fix attribute entities. Home Assistant will no longer filter out entities that are 'falsey'. So you might see more entity attributes show up. ([@pvizeli] - [#8066]) (breaking change) + +## {% linkable_title All changes %} + +- Update squeezebox.py ([@molobrakos] - [#7617]) ([media_player.squeezebox docs]) +- Fix html5 unsub ([@balloob] - [#7874]) ([notify.html5 docs]) +- Added effects to Yeelight bulbs ([@Mister-Espria] - [#7152]) ([light.yeelight docs]) +- Enocean Binary Sensor: Handle click of both rockers ([@twendt] - [#7770]) ([binary_sensor.enocean docs]) +- Support for renaming ZWave values ([@armills] - [#7780]) ([zwave docs]) +- Fix telegram_bot ([@balloob] - [#7877]) ([telegram_bot.polling docs]) ([telegram_bot.webhooks docs]) +- [light.lifx] Update aiolifx ([@amelchio] - [#7882]) ([light.lifx docs]) +- Change nad_receiver to pypi ([@joopert] - [#7852]) ([media_player.nad docs]) +- Switch pymyq to pypi ([@andrey-git] - [#7884]) ([cover.myq docs]) +- Use constants ([@fabaff] - [#7888]) ([notify.xmpp docs]) +- Upgrade pyasn1-modules to 0.0.9 ([@fabaff] - [#7887]) ([notify.xmpp docs]) +- Upgrade sendgrid to 4.2.0 ([@fabaff] - [#7886]) ([notify.sendgrid docs]) +- Upgrade python-telegram-bot to 6.0.3 ([@fabaff] - [#7885]) +- Fix MQTT camera test ([@balloob] - [#7878]) +- Added a Taps Aff binary sensor ([@bazwilliams] - [#7880]) ([binary_sensor.tapsaff docs]) (new-platform) +- lock.sesame: New lock platform for Sesame smart locks ([@trisk] - [#7873]) ([lock.sesame docs]) (new-platform) +- Dsmr5 revert ([@aequitas] - [#7900]) ([sensor.dsmr docs]) +- Fix typos in Wunderground component (Percipitation -> Precipitation) ([@mje-nz] - [#7901]) ([sensor.wunderground docs]) +- Add support for the expirationTime parameter. ([@perosb] - [#7895]) ([notify.html5 docs]) +- Etherscan.io sensor ([@nkgilley] - [#7855]) ([sensor.etherscan docs]) (new-platform) +- blockchain.info sensor ([@nkgilley] - [#7856]) ([sensor.blockchain docs]) (new-platform) +- Mqtt cover modifications ([@cribbstechnologies] - [#7841]) ([cover.mqtt docs]) +- Add Radarr sensor ([@tboyce021] - [#7318]) ([sensor.radarr docs]) (new-platform) +- Add service to set nest away/home modes ([@mattsch] - [#7619]) ([nest docs]) +- Added buienradar sensor and weather ([@mjj4791] - [#7592]) ([sensor.buienradar docs]) ([weather.buienradar docs]) (new-platform) +- Add support for Vanderbilt SPC alarm panels and attached sensors ([@mbrrg] - [#7663]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (new-platform) +- Add raspihats switch ([@florincosta] - [#7665]) ([switch.raspihats docs]) (new-platform) +- Add 'icon_template' to switch templates (similar to sensor template) ([@PhracturedBlue] - [#7862]) ([switch.template docs]) +- Fix docstring ([@fabaff] - [#7907]) +- Sync crypto-currency platforms ([@fabaff] - [#7906]) ([sensor.bitcoin docs]) ([sensor.blockchain docs]) ([sensor.coinmarketcap docs]) ([sensor.etherscan docs]) +- Move consts to 'const.py' ([@fabaff] - [#7909]) ([media_player.sonos docs]) ([sensor.imap_email_content docs]) ([sensor.pvoutput docs]) ([sensor.waqi docs]) +- Minor cleanup - Define 'CONF_ICON_TEMPLATE' constant centrally ([@PhracturedBlue] - [#7910]) ([sensor.template docs]) ([switch.template docs]) +- Do not call update() in constructor ([@fabaff] - [#7912]) ([sensor.cpuspeed docs]) ([sensor.cups docs]) ([sensor.currencylayer docs]) ([sensor.fixer docs]) +- Add juicenet platform ([@jesserockz] - [#7668]) ([juicenet docs]) ([sensor.juicenet docs]) (new-platform) +- Bump pyEight version to fix 0hr session errors ([@mezz64] - [#7916]) ([eight_sleep docs]) +- update to pywebpush 1.0.4 which allows install on system with openssl-1.1.0 (cryptography dep) ([@perosb] - [#7915]) ([notify.html5 docs]) +- Do not call update() in constructor ([@fabaff] - [#7917]) ([sensor.dte_energy_bridge docs]) ([sensor.dublin_bus_transport docs]) ([sensor.dweet docs]) ([sensor.ebox docs]) ([sensor.ecobee docs]) ([sensor.hddtemp docs]) ([sensor.mold_indicator docs]) ([sensor.pi_hole docs]) ([sensor.yahoo_finance docs]) +- Fix changes introduced with #7917 ([@fabaff] - [#7930]) ([sensor.waqi docs]) +- Do not call update() in constructor ([@fabaff] - [#7931]) ([sensor.yweather docs]) +- Add service_url config option to volvooncall ([@palp] - [#7919]) ([volvooncall docs]) +- Added 'change' field to statistics sensor ([@jminn] - [#7820]) ([sensor.statistics docs]) +- add ripple sensor ([@nkgilley] - [#7935]) ([sensor.ripple docs]) (new-platform) +- Add Yahoo! weather platform ([@fabaff] - [#7939]) +- [media_player.sonos] Send media_stop on turn_off ([@Juggels] - [#7940]) ([media_player.sonos docs]) +- update to 006 ([@joopert] - [#7945]) ([media_player.nad docs]) +- Update ping.py ([@vrs01] - [#7944]) ([device_tracker.ping docs]) +- Add option to display all input sources / Add support for favourite channels / Treat Marantz SR5008 as Denon AVR-X device ([@scarface-4711] - [#7949]) ([media_player.denonavr docs]) +- [WIP] Fix opencv ([@Teagan42] - [#7864]) ([image_processing.opencv docs]) (breaking change) +- Upgrade coinmarketcap to 3.0.1 ([@fabaff] - [#7951]) ([sensor.coinmarketcap docs]) +- test connection without needing admin rights ([@heinemml] - [#7947]) +- Fix the negative values bug in history_stats ([@bokub] - [#7934]) +- Vera colored light support ([@alanfischer] - [#7942]) ([vera docs]) ([light.vera docs]) +- Fix typos ([@fabaff] - [#7957]) ([http docs]) ([fan.zwave docs]) +- Osram lightify, removed double set to the lightify bridge in case of brightness changes ([@commento] - [#7662]) ([light.osramlightify docs]) +- Add configuration check and use default var names ([@fabaff] - [#7963]) ([lutron docs]) ([light.lutron docs]) (breaking change) +- lock.sesame: Update pysesame, add state attributes ([@trisk] - [#7953]) ([lock.sesame docs]) +- Fixed metadata issue ([@bazwilliams] - [#7932]) ([media_player.openhome docs]) +- Create metoffice.py ([@cyberjacob] - [#7965]) ([sensor.metoffice docs]) +- Prevent Roku doing I/O in event loop ([@balloob] - [#7969]) ([media_player.roku docs]) +- Fix platforms being able to block startup ([@balloob] - [#7970]) +- New component: Python Script ([@balloob] - [#7950]) ([python_script docs]) (new-platform) +- Nadtcp component ([@mwsluis] - [#7955]) ([media_player.nadtcp docs]) (new-platform) +- HomeMatic optimizations and code cleanup ([@danielperna84] - [#7986]) ([homematic docs]) ([binary_sensor.homematic docs]) ([cover.homematic docs]) ([sensor.homematic docs]) ([switch.homematic docs]) +- Update eliqonline.py ([@molobrakos] - [#7977]) ([sensor.eliqonline docs]) +- test that all lights turn off when no entity id is given ([@chilicheech] - [#7981]) +- make `last_name` field optional ([@azogue] - [#7988]) +- Bugfixing with version 0.4.4 of denonavr ([@scarface-4711] - [#7995]) ([media_player.denonavr docs]) +- Upgrade py-cpuinfo to 3.3.0 ([@fabaff] - [#7992]) ([sensor.cpuspeed docs]) +- LIFX: clean up internal color conversions ([@amelchio] - [#7964]) ([light.lifx docs]) +- LIFX: add support for setting infrared level ([@amelchio] - [#8000]) ([light.lifx docs]) +- dismiss service for persistent notifications ([@tedstriker] - [#7996]) ([persistent_notification docs]) +- Add Gitter.im sensor ([@fabaff] - [#7998]) ([sensor.gitter docs]) (new-platform) +- Fixing Client connection error ([@sander76] - [#7991]) ([telegram_bot.polling docs]) +- Additional demo fan with only speed support ([@armills] - [#7985]) +- Update mailgun ([@happyleavesaoc] - [#7984]) ([mailgun docs]) ([notify.mailgun docs]) (breaking change) (new-platform) +- Fixed bug in spotify component. ([@soldag] - [#7976]) ([media_player.spotify docs]) +- fixing potential null issue with optional param being parsed as a script ([@cribbstechnologies] - [#7928]) ([light.template docs]) +- Make it more flexible (fixes #7954) ([@fabaff] - [#8001]) ([image_processing.seven_segments docs]) +- Add Flexit AC climate platform ([@Sabesto] - [#7871]) ([climate.flexit docs]) (new-platform) +- update pyripple ([@nkgilley] - [#8015]) ([sensor.ripple docs]) +- Allow put as method ([@fabaff] - [#8004]) ([switch.rest docs]) +- Configure conversation for custom actions with keywords ([@mjsir911] - [#7734]) ([conversation docs]) +- Remove globally disabled pylint issues ([@fabaff] - [#8005]) ([vera docs]) ([calendar.google docs]) ([climate.wink docs]) ([device_tracker.owntracks docs]) ([media_player.aquostv docs]) ([media_player.plex docs]) ([sensor.openevse docs]) +- entity_id for service fan.turn_off is optional ([@chilicheech] - [#7982]) +- Make percentage string values as floats/ints in InfluxDB ([@philhawthorne] - [#7879]) ([influxdb docs]) +- Take in account Spotify account permissions ([@Tommatheussen] - [#8012]) ([media_player.spotify docs]) +- Add Dyson Pure Cool Link support ([@CharlesBlonde] - [#7795]) +- Allow device_tracker platforms to specify picture and icon upon discovery ([@andrey-git] - [#8018]) +- Discover Z-Wave values by index ([@armills] - [#7853]) ([zwave docs]) +- LIFX: add multiple modes to pulse effect ([@amelchio] - [#8016]) ([light.lifx docs]) (breaking change) +- Do not call update() in constructor ([@fabaff] - [#8048]) ([sensor.snmp docs]) +- Upgrade pysnmp to 4.3.8 ([@fabaff] - [#8044]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) +- Upgrade zeroconf to 0.19.1 ([@fabaff] - [#8043]) ([zeroconf docs]) +- Vera fix for dimmable vs rgb lights ([@alanfischer] - [#8007]) ([vera docs]) ([light.vera docs]) +- Group service / dynamic handling ([@pvizeli] - [#7971]) ([group docs]) +- Adding ssocr to docker to support Seven Segments Display ([@MartyTremblay] - [#8028]) +- Added host variable to Splunk.py and updated tox tests ([@boojew] - [#8052]) ([splunk docs]) +- Restrict Python Script ([@balloob] - [#8053]) ([python_script docs]) +- Fixed the Wind sensor following new release of netatmo-api-python ([@glpatcern] - [#8030]) ([netatmo docs]) ([sensor.netatmo docs]) +- media_player.firetv - Adding support for https. ([@coolcow] - [#8022]) ([media_player.firetv docs]) +- Added ONVIF camera component ([@matt2005] - [#7979]) +- Provide entity_id to avoid sensor mixup (fixes #7636). Use async_dispatcher. Provide icon. ([@molobrakos] - [#7946]) ([volvooncall docs]) +- Updater improvements to send option component information ([@infamy] - [#7720]) ([updater docs]) +- Use standard entity_ids for zwave entities ([@armills] - [#7786]) ([zwave docs]) ([light.zwave docs]) (breaking change) +- Update numpy 1.13.0 ([@pvizeli] - [#8059]) ([image_processing.opencv docs]) +- No update in MQTT Binary Sensor #7478 ([@pezinek] - [#8057]) +- Always enable monkey patch ([@balloob] - [#8054]) +- Add to zwave services descriptions ([@andrey-git] - [#8072]) +- Fix attribute entity ([@pvizeli] - [#8066]) (breaking change) +- Added 'all_plants' group and support for plant groups state. ([@aronsky] - [#8063]) ([group docs]) ([plant docs]) +- Fix EntityComponent handle entities without a name ([@balloob] - [#8065]) +- Update pyunifi component to use APIError passed from pyunifi 2.13. Better accommodate login failures with wrapper in pyunifi 2.13. ([@finish06] - [#7899]) ([device_tracker.unifi docs]) +- bump usps version ([@happyleavesaoc] - [#8074]) ([sensor.usps docs]) +- bump ups ([@happyleavesaoc] - [#8075]) ([sensor.ups docs]) + +[#7152]: https://github.com/home-assistant/home-assistant/pull/7152 +[#7318]: https://github.com/home-assistant/home-assistant/pull/7318 +[#7592]: https://github.com/home-assistant/home-assistant/pull/7592 +[#7617]: https://github.com/home-assistant/home-assistant/pull/7617 +[#7619]: https://github.com/home-assistant/home-assistant/pull/7619 +[#7662]: https://github.com/home-assistant/home-assistant/pull/7662 +[#7663]: https://github.com/home-assistant/home-assistant/pull/7663 +[#7665]: https://github.com/home-assistant/home-assistant/pull/7665 +[#7668]: https://github.com/home-assistant/home-assistant/pull/7668 +[#7720]: https://github.com/home-assistant/home-assistant/pull/7720 +[#7734]: https://github.com/home-assistant/home-assistant/pull/7734 +[#7770]: https://github.com/home-assistant/home-assistant/pull/7770 +[#7780]: https://github.com/home-assistant/home-assistant/pull/7780 +[#7786]: https://github.com/home-assistant/home-assistant/pull/7786 +[#7795]: https://github.com/home-assistant/home-assistant/pull/7795 +[#7820]: https://github.com/home-assistant/home-assistant/pull/7820 +[#7841]: https://github.com/home-assistant/home-assistant/pull/7841 +[#7852]: https://github.com/home-assistant/home-assistant/pull/7852 +[#7853]: https://github.com/home-assistant/home-assistant/pull/7853 +[#7855]: https://github.com/home-assistant/home-assistant/pull/7855 +[#7856]: https://github.com/home-assistant/home-assistant/pull/7856 +[#7862]: https://github.com/home-assistant/home-assistant/pull/7862 +[#7864]: https://github.com/home-assistant/home-assistant/pull/7864 +[#7871]: https://github.com/home-assistant/home-assistant/pull/7871 +[#7873]: https://github.com/home-assistant/home-assistant/pull/7873 +[#7874]: https://github.com/home-assistant/home-assistant/pull/7874 +[#7877]: https://github.com/home-assistant/home-assistant/pull/7877 +[#7878]: https://github.com/home-assistant/home-assistant/pull/7878 +[#7879]: https://github.com/home-assistant/home-assistant/pull/7879 +[#7880]: https://github.com/home-assistant/home-assistant/pull/7880 +[#7882]: https://github.com/home-assistant/home-assistant/pull/7882 +[#7884]: https://github.com/home-assistant/home-assistant/pull/7884 +[#7885]: https://github.com/home-assistant/home-assistant/pull/7885 +[#7886]: https://github.com/home-assistant/home-assistant/pull/7886 +[#7887]: https://github.com/home-assistant/home-assistant/pull/7887 +[#7888]: https://github.com/home-assistant/home-assistant/pull/7888 +[#7895]: https://github.com/home-assistant/home-assistant/pull/7895 +[#7899]: https://github.com/home-assistant/home-assistant/pull/7899 +[#7900]: https://github.com/home-assistant/home-assistant/pull/7900 +[#7901]: https://github.com/home-assistant/home-assistant/pull/7901 +[#7906]: https://github.com/home-assistant/home-assistant/pull/7906 +[#7907]: https://github.com/home-assistant/home-assistant/pull/7907 +[#7909]: https://github.com/home-assistant/home-assistant/pull/7909 +[#7910]: https://github.com/home-assistant/home-assistant/pull/7910 +[#7912]: https://github.com/home-assistant/home-assistant/pull/7912 +[#7915]: https://github.com/home-assistant/home-assistant/pull/7915 +[#7916]: https://github.com/home-assistant/home-assistant/pull/7916 +[#7917]: https://github.com/home-assistant/home-assistant/pull/7917 +[#7919]: https://github.com/home-assistant/home-assistant/pull/7919 +[#7928]: https://github.com/home-assistant/home-assistant/pull/7928 +[#7930]: https://github.com/home-assistant/home-assistant/pull/7930 +[#7931]: https://github.com/home-assistant/home-assistant/pull/7931 +[#7932]: https://github.com/home-assistant/home-assistant/pull/7932 +[#7934]: https://github.com/home-assistant/home-assistant/pull/7934 +[#7935]: https://github.com/home-assistant/home-assistant/pull/7935 +[#7939]: https://github.com/home-assistant/home-assistant/pull/7939 +[#7940]: https://github.com/home-assistant/home-assistant/pull/7940 +[#7942]: https://github.com/home-assistant/home-assistant/pull/7942 +[#7944]: https://github.com/home-assistant/home-assistant/pull/7944 +[#7945]: https://github.com/home-assistant/home-assistant/pull/7945 +[#7946]: https://github.com/home-assistant/home-assistant/pull/7946 +[#7947]: https://github.com/home-assistant/home-assistant/pull/7947 +[#7949]: https://github.com/home-assistant/home-assistant/pull/7949 +[#7950]: https://github.com/home-assistant/home-assistant/pull/7950 +[#7951]: https://github.com/home-assistant/home-assistant/pull/7951 +[#7953]: https://github.com/home-assistant/home-assistant/pull/7953 +[#7955]: https://github.com/home-assistant/home-assistant/pull/7955 +[#7957]: https://github.com/home-assistant/home-assistant/pull/7957 +[#7963]: https://github.com/home-assistant/home-assistant/pull/7963 +[#7964]: https://github.com/home-assistant/home-assistant/pull/7964 +[#7965]: https://github.com/home-assistant/home-assistant/pull/7965 +[#7969]: https://github.com/home-assistant/home-assistant/pull/7969 +[#7970]: https://github.com/home-assistant/home-assistant/pull/7970 +[#7971]: https://github.com/home-assistant/home-assistant/pull/7971 +[#7976]: https://github.com/home-assistant/home-assistant/pull/7976 +[#7977]: https://github.com/home-assistant/home-assistant/pull/7977 +[#7979]: https://github.com/home-assistant/home-assistant/pull/7979 +[#7981]: https://github.com/home-assistant/home-assistant/pull/7981 +[#7982]: https://github.com/home-assistant/home-assistant/pull/7982 +[#7984]: https://github.com/home-assistant/home-assistant/pull/7984 +[#7985]: https://github.com/home-assistant/home-assistant/pull/7985 +[#7986]: https://github.com/home-assistant/home-assistant/pull/7986 +[#7988]: https://github.com/home-assistant/home-assistant/pull/7988 +[#7991]: https://github.com/home-assistant/home-assistant/pull/7991 +[#7992]: https://github.com/home-assistant/home-assistant/pull/7992 +[#7995]: https://github.com/home-assistant/home-assistant/pull/7995 +[#7996]: https://github.com/home-assistant/home-assistant/pull/7996 +[#7998]: https://github.com/home-assistant/home-assistant/pull/7998 +[#8000]: https://github.com/home-assistant/home-assistant/pull/8000 +[#8001]: https://github.com/home-assistant/home-assistant/pull/8001 +[#8004]: https://github.com/home-assistant/home-assistant/pull/8004 +[#8005]: https://github.com/home-assistant/home-assistant/pull/8005 +[#8007]: https://github.com/home-assistant/home-assistant/pull/8007 +[#8012]: https://github.com/home-assistant/home-assistant/pull/8012 +[#8015]: https://github.com/home-assistant/home-assistant/pull/8015 +[#8016]: https://github.com/home-assistant/home-assistant/pull/8016 +[#8018]: https://github.com/home-assistant/home-assistant/pull/8018 +[#8022]: https://github.com/home-assistant/home-assistant/pull/8022 +[#8028]: https://github.com/home-assistant/home-assistant/pull/8028 +[#8030]: https://github.com/home-assistant/home-assistant/pull/8030 +[#8043]: https://github.com/home-assistant/home-assistant/pull/8043 +[#8044]: https://github.com/home-assistant/home-assistant/pull/8044 +[#8048]: https://github.com/home-assistant/home-assistant/pull/8048 +[#8052]: https://github.com/home-assistant/home-assistant/pull/8052 +[#8053]: https://github.com/home-assistant/home-assistant/pull/8053 +[#8054]: https://github.com/home-assistant/home-assistant/pull/8054 +[#8057]: https://github.com/home-assistant/home-assistant/pull/8057 +[#8059]: https://github.com/home-assistant/home-assistant/pull/8059 +[#8063]: https://github.com/home-assistant/home-assistant/pull/8063 +[#8065]: https://github.com/home-assistant/home-assistant/pull/8065 +[#8066]: https://github.com/home-assistant/home-assistant/pull/8066 +[#8072]: https://github.com/home-assistant/home-assistant/pull/8072 +[#8074]: https://github.com/home-assistant/home-assistant/pull/8074 +[#8075]: https://github.com/home-assistant/home-assistant/pull/8075 +[@CharlesBlonde]: https://github.com/CharlesBlonde +[@Juggels]: https://github.com/Juggels +[@MartyTremblay]: https://github.com/MartyTremblay +[@Mister-Espria]: https://github.com/Mister-Espria +[@PhracturedBlue]: https://github.com/PhracturedBlue +[@Sabesto]: https://github.com/Sabesto +[@Teagan42]: https://github.com/Teagan42 +[@Tommatheussen]: https://github.com/Tommatheussen +[@aequitas]: https://github.com/aequitas +[@alanfischer]: https://github.com/alanfischer +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@armills]: https://github.com/armills +[@aronsky]: https://github.com/aronsky +[@azogue]: https://github.com/azogue +[@balloob]: https://github.com/balloob +[@bazwilliams]: https://github.com/bazwilliams +[@bokub]: https://github.com/bokub +[@boojew]: https://github.com/boojew +[@chilicheech]: https://github.com/chilicheech +[@commento]: https://github.com/commento +[@coolcow]: https://github.com/coolcow +[@cribbstechnologies]: https://github.com/cribbstechnologies +[@cyberjacob]: https://github.com/cyberjacob +[@danielperna84]: https://github.com/danielperna84 +[@fabaff]: https://github.com/fabaff +[@finish06]: https://github.com/finish06 +[@florincosta]: https://github.com/florincosta +[@glpatcern]: https://github.com/glpatcern +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@heinemml]: https://github.com/heinemml +[@infamy]: https://github.com/infamy +[@jesserockz]: https://github.com/jesserockz +[@jminn]: https://github.com/jminn +[@joopert]: https://github.com/joopert +[@matt2005]: https://github.com/matt2005 +[@mattsch]: https://github.com/mattsch +[@mbrrg]: https://github.com/mbrrg +[@mezz64]: https://github.com/mezz64 +[@mje-nz]: https://github.com/mje-nz +[@mjj4791]: https://github.com/mjj4791 +[@mjsir911]: https://github.com/mjsir911 +[@molobrakos]: https://github.com/molobrakos +[@mwsluis]: https://github.com/mwsluis +[@nkgilley]: https://github.com/nkgilley +[@palp]: https://github.com/palp +[@perosb]: https://github.com/perosb +[@pezinek]: https://github.com/pezinek +[@philhawthorne]: https://github.com/philhawthorne +[@pvizeli]: https://github.com/pvizeli +[@sander76]: https://github.com/sander76 +[@scarface-4711]: https://github.com/scarface-4711 +[@soldag]: https://github.com/soldag +[@tboyce021]: https://github.com/tboyce021 +[@tedstriker]: https://github.com/tedstriker +[@trisk]: https://github.com/trisk +[@twendt]: https://github.com/twendt +[@vrs01]: https://github.com/vrs01 +[alarm_control_panel.spc docs]: https://home-assistant.io/components/alarm_control_panel.spc/ +[binary_sensor.enocean docs]: https://home-assistant.io/components/binary_sensor.enocean/ +[binary_sensor.homematic docs]: https://home-assistant.io/components/binary_sensor.homematic/ +[binary_sensor.spc docs]: https://home-assistant.io/components/binary_sensor.spc/ +[binary_sensor.tapsaff docs]: https://home-assistant.io/components/binary_sensor.tapsaff/ +[calendar.google docs]: https://home-assistant.io/components/calendar.google/ +[climate.flexit docs]: https://home-assistant.io/components/climate.flexit/ +[climate.wink docs]: https://home-assistant.io/components/climate.wink/ +[conversation docs]: https://home-assistant.io/components/conversation/ +[cover.homematic docs]: https://home-assistant.io/components/cover.homematic/ +[cover.mqtt docs]: https://home-assistant.io/components/cover.mqtt/ +[cover.myq docs]: https://home-assistant.io/components/cover.myq/ +[device_tracker.__init__ docs]: https://home-assistant.io/components/device_tracker.__init__/ +[device_tracker.owntracks docs]: https://home-assistant.io/components/device_tracker.owntracks/ +[device_tracker.ping docs]: https://home-assistant.io/components/device_tracker.ping/ +[device_tracker.snmp docs]: https://home-assistant.io/components/device_tracker.snmp/ +[device_tracker.unifi docs]: https://home-assistant.io/components/device_tracker.unifi/ +[eight_sleep docs]: https://home-assistant.io/components/eight_sleep/ +[fan.__init__ docs]: https://home-assistant.io/components/fan.__init__/ +[fan.demo docs]: https://home-assistant.io/components/fan.demo/ +[fan.zwave docs]: https://home-assistant.io/components/fan.zwave/ +[group docs]: https://home-assistant.io/components/group/ +[homematic docs]: https://home-assistant.io/components/homematic/ +[http docs]: https://home-assistant.io/components/http/ +[image_processing.opencv docs]: https://home-assistant.io/components/image_processing.opencv/ +[image_processing.seven_segments docs]: https://home-assistant.io/components/image_processing.seven_segments/ +[influxdb docs]: https://home-assistant.io/components/influxdb/ +[juicenet docs]: https://home-assistant.io/components/juicenet/ +[light.lifx docs]: https://home-assistant.io/components/light.lifx/ +[light.lutron docs]: https://home-assistant.io/components/light.lutron/ +[light.osramlightify docs]: https://home-assistant.io/components/light.osramlightify/ +[light.template docs]: https://home-assistant.io/components/light.template/ +[light.vera docs]: https://home-assistant.io/components/light.vera/ +[light.yeelight docs]: https://home-assistant.io/components/light.yeelight/ +[light.zwave docs]: https://home-assistant.io/components/light.zwave/ +[lock.sesame docs]: https://home-assistant.io/components/lock.sesame/ +[lutron docs]: https://home-assistant.io/components/lutron/ +[mailgun docs]: https://home-assistant.io/components/mailgun/ +[media_player.aquostv docs]: https://home-assistant.io/components/media_player.aquostv/ +[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/ +[media_player.firetv docs]: https://home-assistant.io/components/media_player.firetv/ +[media_player.nad docs]: https://home-assistant.io/components/media_player.nad/ +[media_player.nadtcp docs]: https://home-assistant.io/components/media_player.nadtcp/ +[media_player.openhome docs]: https://home-assistant.io/components/media_player.openhome/ +[media_player.plex docs]: https://home-assistant.io/components/media_player.plex/ +[media_player.roku docs]: https://home-assistant.io/components/media_player.roku/ +[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/ +[media_player.spotify docs]: https://home-assistant.io/components/media_player.spotify/ +[media_player.squeezebox docs]: https://home-assistant.io/components/media_player.squeezebox/ +[mqtt.__init__ docs]: https://home-assistant.io/components/mqtt.__init__/ +[nest docs]: https://home-assistant.io/components/nest/ +[netatmo docs]: https://home-assistant.io/components/netatmo/ +[notify.html5 docs]: https://home-assistant.io/components/notify.html5/ +[notify.mailgun docs]: https://home-assistant.io/components/notify.mailgun/ +[notify.sendgrid docs]: https://home-assistant.io/components/notify.sendgrid/ +[notify.xmpp docs]: https://home-assistant.io/components/notify.xmpp/ +[opencv docs]: https://home-assistant.io/components/opencv/ +[persistent_notification docs]: https://home-assistant.io/components/persistent_notification/ +[plant docs]: https://home-assistant.io/components/plant/ +[python_script docs]: https://home-assistant.io/components/python_script/ +[sensor.bitcoin docs]: https://home-assistant.io/components/sensor.bitcoin/ +[sensor.blockchain docs]: https://home-assistant.io/components/sensor.blockchain/ +[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/ +[sensor.coinmarketcap docs]: https://home-assistant.io/components/sensor.coinmarketcap/ +[sensor.cpuspeed docs]: https://home-assistant.io/components/sensor.cpuspeed/ +[sensor.cups docs]: https://home-assistant.io/components/sensor.cups/ +[sensor.currencylayer docs]: https://home-assistant.io/components/sensor.currencylayer/ +[sensor.dsmr docs]: https://home-assistant.io/components/sensor.dsmr/ +[sensor.dte_energy_bridge docs]: https://home-assistant.io/components/sensor.dte_energy_bridge/ +[sensor.dublin_bus_transport docs]: https://home-assistant.io/components/sensor.dublin_bus_transport/ +[sensor.dweet docs]: https://home-assistant.io/components/sensor.dweet/ +[sensor.ebox docs]: https://home-assistant.io/components/sensor.ebox/ +[sensor.ecobee docs]: https://home-assistant.io/components/sensor.ecobee/ +[sensor.eliqonline docs]: https://home-assistant.io/components/sensor.eliqonline/ +[sensor.etherscan docs]: https://home-assistant.io/components/sensor.etherscan/ +[sensor.fixer docs]: https://home-assistant.io/components/sensor.fixer/ +[sensor.gitter docs]: https://home-assistant.io/components/sensor.gitter/ +[sensor.hddtemp docs]: https://home-assistant.io/components/sensor.hddtemp/ +[sensor.homematic docs]: https://home-assistant.io/components/sensor.homematic/ +[sensor.imap_email_content docs]: https://home-assistant.io/components/sensor.imap_email_content/ +[sensor.juicenet docs]: https://home-assistant.io/components/sensor.juicenet/ +[sensor.metoffice docs]: https://home-assistant.io/components/sensor.metoffice/ +[sensor.mold_indicator docs]: https://home-assistant.io/components/sensor.mold_indicator/ +[sensor.netatmo docs]: https://home-assistant.io/components/sensor.netatmo/ +[sensor.openevse docs]: https://home-assistant.io/components/sensor.openevse/ +[sensor.pi_hole docs]: https://home-assistant.io/components/sensor.pi_hole/ +[sensor.pvoutput docs]: https://home-assistant.io/components/sensor.pvoutput/ +[sensor.radarr docs]: https://home-assistant.io/components/sensor.radarr/ +[sensor.ripple docs]: https://home-assistant.io/components/sensor.ripple/ +[sensor.snmp docs]: https://home-assistant.io/components/sensor.snmp/ +[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/ +[sensor.template docs]: https://home-assistant.io/components/sensor.template/ +[sensor.ups docs]: https://home-assistant.io/components/sensor.ups/ +[sensor.usps docs]: https://home-assistant.io/components/sensor.usps/ +[sensor.waqi docs]: https://home-assistant.io/components/sensor.waqi/ +[sensor.wunderground docs]: https://home-assistant.io/components/sensor.wunderground/ +[sensor.yahoo_finance docs]: https://home-assistant.io/components/sensor.yahoo_finance/ +[sensor.yweather docs]: https://home-assistant.io/components/sensor.yweather/ +[spc docs]: https://home-assistant.io/components/spc/ +[splunk docs]: https://home-assistant.io/components/splunk/ +[switch.homematic docs]: https://home-assistant.io/components/switch.homematic/ +[switch.raspihats docs]: https://home-assistant.io/components/switch.raspihats/ +[switch.rest docs]: https://home-assistant.io/components/switch.rest/ +[switch.template docs]: https://home-assistant.io/components/switch.template/ +[telegram_bot.__init__ docs]: https://home-assistant.io/components/telegram_bot.__init__/ +[telegram_bot.polling docs]: https://home-assistant.io/components/telegram_bot.polling/ +[telegram_bot.webhooks docs]: https://home-assistant.io/components/telegram_bot.webhooks/ +[updater docs]: https://home-assistant.io/components/updater/ +[vera docs]: https://home-assistant.io/components/vera/ +[volvooncall docs]: https://home-assistant.io/components/volvooncall/ +[weather.buienradar docs]: https://home-assistant.io/components/weather.buienradar/ +[zeroconf docs]: https://home-assistant.io/components/zeroconf/ +[zwave docs]: https://home-assistant.io/components/zwave/ +[zwave blog post]: https://home-assistant.io/blog/2017/06/15/zwave-entity-ids/ +[forum]: https://community.home-assistant.io/ +[gitter]: https://gitter.im/home-assistant/home-assistant +[issue]: https://github.com/home-assistant/home-assistant/issues +[first-commit]: https://home-assistant.io/help/trivia/#first-commit diff --git a/source/images/blog/2017-06-0.47/components.png b/source/images/blog/2017-06-0.47/components.png new file mode 100644 index 00000000000..779ab195340 Binary files /dev/null and b/source/images/blog/2017-06-0.47/components.png differ diff --git a/source/images/supported_brands/onvif.png b/source/images/supported_brands/onvif.png new file mode 100644 index 00000000000..4030b2fe273 Binary files /dev/null and b/source/images/supported_brands/onvif.png differ