-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.51 #8919
0.51 #8919
Conversation
* Support for Wink local control
* Upgrade pushbullet.py to 0.11.0 * Update sensor as well
* Shopping List: edit name / complete status * Change ID to be UUID based
* added scene support * Updated pylutron_caseta version number * Updated pylutron_caseta version number * Fixed lint errors * fix style
* Fixed issue with routers in bridge mode - Router in brdige mode apparently don't report all of the stats - Re-wrote the data_format function so it's a bit easier to follow and able to log keys that aren't supported by a router in a given mode - Changed config so that it properly ignores conditions when not explicitly listed - Added tests to check for the above and also to verify we log that a key doesn't exist rather than throwing an exception * Mistakenly was calling MONITORED_CONDITIONS in data_format - Changed to be the actual config values to prevent log error
* Add new component for TPLink light bulbs. * Update with result of gen_requirements_all. * Add new component light.tplink. * Move I/O outside of properties as per https://goo.gl/Nvioub.
DirectPy, the third party library used for controlling directv boxes, has the ability to accept an ID in order to act as a remote for Genie slaves instead of just the master directv box. This commit adds glue such that one can configure home assistant to interface with these slave genie boxes. Signed-off-by: Nicholas Sielicki <[email protected]>
* Add proxy support for telegram_bot New optional config parameters `proxy_url` and `proxy_params` (a dict) ```yaml telegram_bot: platform: polling api_key: !secret telegram_bot_api_key allowed_chat_ids: - !secret telegram_bot_chatid proxy_url: socks5://proxy_ip:proxy_port proxy_params: username: my-username password: my-secret-password ``` * change `ATTR_` for `CONF_` for config params
Requiring python-insteonplm v0.7.5 (up from 0.7.4) now
…#8448) * New media_player platform for Russound devices using the RIO protocol Auto discovers zones and sources Handles media metadata from sources that support it asyncio implementation Push updates for any zone or source changes so no polling required. * Fixed up linting issues * Addressing PR feedback Updated russound_rio dependency to 0.1.3 Use enumerate_zones and enumerate_sources methods instead of doing it in the platform. Register callbacks in async_added_to_hass coroutine Corrected behavior of async methods
* Catch tradfri timout exception * Remove not needed return statement * Remove test logging * Log warning instead of error
* Add toggle to remotes * Only include activity if specified, and add service description
* added invert_state optional parameter * removed superfluous parens * moved state inversion to the is_closed method * added relay_invert feature * fixed syntax to comply with houndci-bot rules * changed state_invert to invert_state and relay_invert to invert_relay
* Do not call update() in constructor * Fix lint issues
* LIFX: improve performance of multi-light transitions To avoid hub overload, the light.turn_on call will change each light sequentially. As LIFX has no hub we can safely increase performance by starting all light transitions concurrently. * Improve state updates after light changes The light.turn_on call will set a new state and then immediately read it back. However, reading the state of a LIFX light right after a state change can still return the old value. To handle this situation we have previously delayed the update request a little while to allow a potential state change to settle. Because light updates are now run in parallel, this delay might be too short when many lights are set at once. This commit introduces a per-light Lock to make it explicit when the state cannot yet be trusted. We must then do the state update ourselves. This was already done at the end of a long transition and that code can be reused for also doing the update at the start of a transition.
* Add new device tracker for Huawei Routers. This was tested with the HG8247H model, used by Vodafone Portugal for the Fiber service. * add to .coveragerc; remove import and space * add comments and fix lint * rename methods * huawei_router: add constants to scanner class * huawei_router: remove lock; use format() in string * huawei_router: use tupple instead of member only class * huawei_router: reduce min scan time * huawei_router: lint * huawei_router: lint * huawei_router: add missing lines in imports * huawei_router: correctly decode string after router firmware update * Remove things that is done on core now
* Added possibilities to use template in the command_line sensor * Minor style guideline conforms * Minor style guideline conforms * Added new test for template rendering * Minor style guideline conforms * Minor style guideline conforms * Fixed failing testcases * Fix style violations * fix code pretty
* Honor PEP8 naming convention * Update validator
'use strict';var nb="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this; | ||
(function(){function k(){var a=this;this.s={};this.g=document.documentElement;var b=new za;b.rules=[];this.h=t.set(this.g,new t(b));this.i=!1;this.b=this.a=null;ob(function(){a.c()})}function H(){this.customStyles=[];this.enqueued=!1}function pb(){}function ha(a){this.cache={};this.c=void 0===a?100:a}function p(){}function t(a,b,c,d,e){this.G=a||null;this.b=b||null;this.sa=c||[];this.P=null;this.Y=e||"";this.a=this.B=this.K=null}function r(){}function za(){this.end=this.start=0;this.rules=this.parent= | ||
this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}function $c(a){function b(b,c){Object.defineProperty(b,"innerHTML",{enumerable:c.enumerable,configurable:!0,get:c.get,set:function(b){var d=this,e=void 0;m(this)&&(e=[],J(this,function(a){a!==d&&e.push(a)}));c.set.call(this,b);if(e)for(var f=0;f<e.length;f++){var g=e[f];1===g.__CE_state&&a.disconnectedCallback(g)}this.ownerDocument.__CE_hasRegistry?a.c(this):a.j(this); | ||
return b}})}function c(b,c){u(b,"insertAdjacentElement",function(b,d){var e=m(d);b=c.call(this,b,d);e&&a.a(d);m(b)&&a.b(d);return b})}qb?u(Element.prototype,"attachShadow",function(a){return this.__CE_shadowRoot=a=qb.call(this,a)}):console.warn("Custom Elements: `Element#attachShadow` was not patched.");if(Aa&&Aa.get)b(Element.prototype,Aa);else if(Ba&&Ba.get)b(HTMLElement.prototype,Ba);else{var d=Ca.call(document,"div");a.u(function(a){b(a,{enumerable:!0,configurable:!0,get:function(){return rb.call(this, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing semicolon.
Expected an assignment or function call and instead saw an expression.
Too many errors. (17% scanned).
*/ | ||
'use strict';var nb="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this; | ||
(function(){function k(){var a=this;this.s={};this.g=document.documentElement;var b=new za;b.rules=[];this.h=t.set(this.g,new t(b));this.i=!1;this.b=this.a=null;ob(function(){a.c()})}function H(){this.customStyles=[];this.enqueued=!1}function pb(){}function ha(a){this.cache={};this.c=void 0===a?100:a}function p(){}function t(a,b,c,d,e){this.G=a||null;this.b=b||null;this.sa=c||[];this.P=null;this.Y=e||"";this.a=this.B=this.K=null}function r(){}function za(){this.end=this.start=0;this.rules=this.parent= | ||
this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}function $c(a){function b(b,c){Object.defineProperty(b,"innerHTML",{enumerable:c.enumerable,configurable:!0,get:c.get,set:function(b){var d=this,e=void 0;m(this)&&(e=[],J(this,function(a){a!==d&&e.push(a)}));c.set.call(this,b);if(e)for(var f=0;f<e.length;f++){var g=e[f];1===g.__CE_state&&a.disconnectedCallback(g)}this.ownerDocument.__CE_hasRegistry?a.c(this):a.j(this); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If a strict mode function is executed using function invocation, its 'this' value will be undefined.
Missing semicolon.
Expected an assignment or function call and instead saw an expression.
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt | ||
*/ | ||
'use strict';var nb="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this; | ||
(function(){function k(){var a=this;this.s={};this.g=document.documentElement;var b=new za;b.rules=[];this.h=t.set(this.g,new t(b));this.i=!1;this.b=this.a=null;ob(function(){a.c()})}function H(){this.customStyles=[];this.enqueued=!1}function pb(){}function ha(a){this.cache={};this.c=void 0===a?100:a}function p(){}function t(a,b,c,d,e){this.G=a||null;this.b=b||null;this.sa=c||[];this.P=null;this.Y=e||"";this.a=this.B=this.K=null}function r(){}function za(){this.end=this.start=0;this.rules=this.parent= |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If a strict mode function is executed using function invocation, its 'this' value will be undefined.
Missing '()' invoking a constructor.
Missing semicolon.
Code distributed by Google as part of the polymer project is also | ||
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt | ||
*/ | ||
'use strict';var nb="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use '!==' to compare with 'null'.
} | ||
fetch('/api/notify.html5/callback', { | ||
method: 'POST', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'Headers' is not defined.
// If we don't have a key matching url in the cache already, add it. | ||
if (!cachedUrls.has(cacheKey)) { | ||
var request = new Request(cacheKey, {credentials: 'same-origin'}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'fetch' is not defined.
Array.from(urlsToCacheKeys.values()).map(function(cacheKey) { | ||
// If we don't have a key matching url in the cache already, add it. | ||
if (!cachedUrls.has(cacheKey)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'Request' is not defined.
// event.respondWith(), using the appropriate cache key. | ||
if (shouldRespond) { | ||
event.respondWith( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'caches' is not defined.
var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); | ||
|
||
event.waitUntil( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'caches' is not defined.
|
||
self.addEventListener('install', function(event) { | ||
event.waitUntil( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'caches' is not defined.
Docs update: home-assistant/home-assistant.io#3167 |
* This will ensure no I/O in entity properties.
* fixing emulated hue issue and testing it * fixing hound issues * I should probably stop using vim * Check against dict directly instead of items.
* Require either temperature or high/low target temperatures. * Add tests.
This release contains a migration which can take a long time (20 minutes). Do not stop Home Assistant while it is in progress.
Release 0.51 is around the corner and it contains some really great updates.
Database speed up
The first one is the database updates #8748 by @OverloadUT. Every query that has been tested executes in well under 1 second, even on a RPi using MySQL with 6 million rows and around 300 entities. This is true even when you're getting an unrealistically huge date range!
Updating the database will take some time when you start Home Assistant. During that time, Home Assistant is not usable. Please let it complete and do not turn Home Assistant off.
Frontend update
We have finished the migration of our frontend to be powered by Polymer 2. This has given us a big speed boost on Safari/iOS devices and has fixed a wide range of bugs.
We have also finished the automation editor. All triggers and actions are now implemented and so are most conditions (missing are
and
,or
). The automation editor is also no longer Chrome only, it can now also be used in Safari.Another change to the frontend is that we have reorganized the panels. The Z-Wave and automation configuration panels have been merged into the configuration panel.
https://www.youtube.com/watch?v=f3isVVpmiq4&feature=youtu.be
Vacuum cleaners
As we have seen more vacuum cleaners land in Home Assistant, it was time to create an official component for them. That's why @azogue introduced the new vacuum cleaner component in #8623. This allows first class integration of vacuum cleaners in Home Assistant. Out of the box we will have Dyson, Xiamo and Roomba as supported platforms.
New Platforms
vacuum
component derived from ToggleEntity, and services (@azogue - #8623) (switch.xiaomi_vacuum docs) (breaking change) (new-platform)Breaking Changes
vacuum
component derived from ToggleEntity, and services (@azogue - #8623) (switch.xiaomi_vacuum docs) (breaking change) (new-platform)All changes
vacuum
component derived from ToggleEntity, and services (@azogue - #8623) (switch.xiaomi_vacuum docs) (breaking change) (new-platform)clean_spot
to vacuums (@azogue - #8862) (vacuum docs) (vacuum.demo docs) (vacuum.xiaomi docs)