From 8523aaca64704b8a1a34368e24dd51e4d71c3354 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 10 Aug 2017 23:26:19 +0200 Subject: [PATCH 01/16] Prepare for release --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 85846e32f59..93bdb947afc 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -2,7 +2,7 @@ """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 MINOR_VERSION = 51 -PATCH_VERSION = '0.dev0' +PATCH_VERSION = '0' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) REQUIRED_PYTHON_VER = (3, 4, 2) From 956543ae1eb89bc546930a0f6c8089f37de7d7e8 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Sat, 12 Aug 2017 04:55:57 +0200 Subject: [PATCH 02/16] Remove not needed call to update (#8930) * This will ensure no I/O in entity properties. --- homeassistant/components/switch/rachio.py | 1 - 1 file changed, 1 deletion(-) diff --git a/homeassistant/components/switch/rachio.py b/homeassistant/components/switch/rachio.py index 547442a4233..c9b6011bcbd 100644 --- a/homeassistant/components/switch/rachio.py +++ b/homeassistant/components/switch/rachio.py @@ -199,7 +199,6 @@ class RachioZone(SwitchDevice): @property def is_on(self): """Whether the zone is currently running.""" - self._device.update() schedule = self._device.current_schedule return self.zone_id == schedule.get('zoneId') From daf7d9ea7fa892cee5e74339ca92036bece0bc90 Mon Sep 17 00:00:00 2001 From: cribbstechnologies Date: Sat, 12 Aug 2017 11:50:02 -0400 Subject: [PATCH 03/16] fixing emulated hue issue and testing it (#8928) * fixing emulated hue issue and testing it * fixing hound issues * I should probably stop using vim * Check against dict directly instead of items. --- .../components/emulated_hue/__init__.py | 4 +- tests/components/emulated_hue/test_init.py | 59 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/emulated_hue/__init__.py b/homeassistant/components/emulated_hue/__init__.py index 315fc564999..ae0a26aaea4 100644 --- a/homeassistant/components/emulated_hue/__init__.py +++ b/homeassistant/components/emulated_hue/__init__.py @@ -193,7 +193,9 @@ class Config(object): if entity_id == ent_id: return number - number = str(max(int(k) for k in self.numbers) + 1) + number = '1' + if self.numbers: + number = str(max(int(k) for k in self.numbers) + 1) self.numbers[number] = entity_id self._save_numbers_json() return number diff --git a/tests/components/emulated_hue/test_init.py b/tests/components/emulated_hue/test_init.py index 8c0a6dc4f60..2dcb9ecbf21 100755 --- a/tests/components/emulated_hue/test_init.py +++ b/tests/components/emulated_hue/test_init.py @@ -36,6 +36,65 @@ def test_config_google_home_entity_id_to_number(): assert entity_id == 'light.test2' +def test_config_google_home_entity_id_to_number_altered(): + """Test config adheres to the type.""" + conf = Config(Mock(), { + 'type': 'google_home' + }) + + mop = mock_open(read_data=json.dumps({'21': 'light.test2'})) + handle = mop() + + with patch('homeassistant.components.emulated_hue.open', mop, create=True): + number = conf.entity_id_to_number('light.test') + assert number == '22' + assert handle.write.call_count == 1 + assert json.loads(handle.write.mock_calls[0][1][0]) == { + '21': 'light.test2', + '22': 'light.test', + } + + number = conf.entity_id_to_number('light.test') + assert number == '22' + assert handle.write.call_count == 1 + + number = conf.entity_id_to_number('light.test2') + assert number == '21' + assert handle.write.call_count == 1 + + entity_id = conf.number_to_entity_id('21') + assert entity_id == 'light.test2' + + +def test_config_google_home_entity_id_to_number_empty(): + """Test config adheres to the type.""" + conf = Config(Mock(), { + 'type': 'google_home' + }) + + mop = mock_open(read_data='') + handle = mop() + + with patch('homeassistant.components.emulated_hue.open', mop, create=True): + number = conf.entity_id_to_number('light.test') + assert number == '1' + assert handle.write.call_count == 1 + assert json.loads(handle.write.mock_calls[0][1][0]) == { + '1': 'light.test', + } + + number = conf.entity_id_to_number('light.test') + assert number == '1' + assert handle.write.call_count == 1 + + number = conf.entity_id_to_number('light.test2') + assert number == '2' + assert handle.write.call_count == 2 + + entity_id = conf.number_to_entity_id('2') + assert entity_id == 'light.test2' + + def test_config_alexa_entity_id_to_number(): """Test config adheres to the type.""" conf = Config(None, { From 5814fdadd0e4df5e86281534188de5b69be2a4cb Mon Sep 17 00:00:00 2001 From: Philipp Schmitt Date: Fri, 11 Aug 2017 11:22:22 +0200 Subject: [PATCH 04/16] Update roombapy to 1.3.1 to avoid installing all the mapping dependencies (#8925) --- homeassistant/components/vacuum/roomba.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/vacuum/roomba.py b/homeassistant/components/vacuum/roomba.py index b6dcda4bcaa..cf9ee064283 100644 --- a/homeassistant/components/vacuum/roomba.py +++ b/homeassistant/components/vacuum/roomba.py @@ -17,7 +17,7 @@ from homeassistant.const import ( import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['roombapy==1.3.0'] +REQUIREMENTS = ['roombapy==1.3.1'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 91be5eb7be3..ad38eb8aa05 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -838,7 +838,7 @@ rflink==0.0.34 ring_doorbell==0.1.4 # homeassistant.components.vacuum.roomba -roombapy==1.3.0 +roombapy==1.3.1 # homeassistant.components.switch.rpi_rf # rpi-rf==0.9.6 From 08899ade0029364ba10e161638237927522bbfad Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Fri, 11 Aug 2017 02:35:45 -0400 Subject: [PATCH 05/16] Update python-wink version to fix Dome water valve bug. (#8923) --- homeassistant/components/switch/wink.py | 3 ++- homeassistant/components/wink.py | 2 +- requirements_all.txt | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/switch/wink.py b/homeassistant/components/switch/wink.py index ec9311ac9e9..aa33c2f7132 100644 --- a/homeassistant/components/switch/wink.py +++ b/homeassistant/components/switch/wink.py @@ -65,7 +65,8 @@ class WinkToggleDevice(WinkDevice, ToggleEntity): attributes = super(WinkToggleDevice, self).device_state_attributes try: event = self.wink.last_event() - attributes["last_event"] = event + if event is not None: + attributes["last_event"] = event except AttributeError: pass return attributes diff --git a/homeassistant/components/wink.py b/homeassistant/components/wink.py index 316c939492b..8d40f5dad48 100644 --- a/homeassistant/components/wink.py +++ b/homeassistant/components/wink.py @@ -25,7 +25,7 @@ from homeassistant.const import ( from homeassistant.helpers.entity import Entity import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['python-wink==1.4.2', 'pubnubsub-handler==1.0.2'] +REQUIREMENTS = ['python-wink==1.5.1', 'pubnubsub-handler==1.0.2'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index ad38eb8aa05..07bb6846c61 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -775,7 +775,7 @@ python-velbus==2.0.11 python-vlc==1.1.2 # homeassistant.components.wink -python-wink==1.4.2 +python-wink==1.5.1 # homeassistant.components.zwave python_openzwave==0.4.0.31 From eef3dda1e92b68119107b41f3ecbb2af7b6fc5d2 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Sat, 12 Aug 2017 18:39:05 +0200 Subject: [PATCH 06/16] Fix SET_TEMPERATURE_SCHEMA in climate component (#8879) * Require either temperature or high/low target temperatures. * Add tests. --- homeassistant/components/climate/__init__.py | 18 +++++---- tests/common.py | 5 ++- tests/components/climate/test_init.py | 40 ++++++++++++++++++++ 3 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 tests/components/climate/test_init.py diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py index 6dd66817d43..1f919301254 100644 --- a/homeassistant/components/climate/__init__.py +++ b/homeassistant/components/climate/__init__.py @@ -86,13 +86,17 @@ SET_AUX_HEAT_SCHEMA = vol.Schema({ vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, vol.Required(ATTR_AUX_HEAT): cv.boolean, }) -SET_TEMPERATURE_SCHEMA = vol.Schema({ - vol.Exclusive(ATTR_TEMPERATURE, 'temperature'): vol.Coerce(float), - vol.Inclusive(ATTR_TARGET_TEMP_HIGH, 'temperature'): vol.Coerce(float), - vol.Inclusive(ATTR_TARGET_TEMP_LOW, 'temperature'): vol.Coerce(float), - vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, - vol.Optional(ATTR_OPERATION_MODE): cv.string, -}) +SET_TEMPERATURE_SCHEMA = vol.Schema(vol.All( + cv.has_at_least_one_key( + ATTR_TEMPERATURE, ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW), + { + vol.Exclusive(ATTR_TEMPERATURE, 'temperature'): vol.Coerce(float), + vol.Inclusive(ATTR_TARGET_TEMP_HIGH, 'temperature'): vol.Coerce(float), + vol.Inclusive(ATTR_TARGET_TEMP_LOW, 'temperature'): vol.Coerce(float), + vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, + vol.Optional(ATTR_OPERATION_MODE): cv.string, + } +)) SET_FAN_MODE_SCHEMA = vol.Schema({ vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, vol.Required(ATTR_FAN_MODE): cv.string, diff --git a/tests/common.py b/tests/common.py index 5e328959a7a..5fdec2fc411 100644 --- a/tests/common.py +++ b/tests/common.py @@ -174,7 +174,7 @@ def get_test_instance_port(): @ha.callback -def async_mock_service(hass, domain, service): +def async_mock_service(hass, domain, service, schema=None): """Set up a fake service & return a calls log list to this service.""" calls = [] @@ -183,7 +183,8 @@ def async_mock_service(hass, domain, service): """Mock service call.""" calls.append(call) - hass.services.async_register(domain, service, mock_service_log) + hass.services.async_register( + domain, service, mock_service_log, schema=schema) return calls diff --git a/tests/components/climate/test_init.py b/tests/components/climate/test_init.py new file mode 100644 index 00000000000..2e942c5988c --- /dev/null +++ b/tests/components/climate/test_init.py @@ -0,0 +1,40 @@ +"""The tests for the climate component.""" +import asyncio + +from homeassistant.components.climate import SET_TEMPERATURE_SCHEMA +from tests.common import async_mock_service + + +@asyncio.coroutine +def test_set_temp_schema_no_req(hass, caplog): + """Test the set temperature schema with missing required data.""" + domain = 'climate' + service = 'test_set_temperature' + schema = SET_TEMPERATURE_SCHEMA + calls = async_mock_service(hass, domain, service, schema) + + data = {'operation_mode': 'test', 'entity_id': ['climate.test_id']} + yield from hass.services.async_call(domain, service, data) + yield from hass.async_block_till_done() + + assert len(calls) == 0 + assert 'ERROR' in caplog.text + assert 'Invalid service data' in caplog.text + + +@asyncio.coroutine +def test_set_temp_schema(hass, caplog): + """Test the set temperature schema with ok required data.""" + domain = 'climate' + service = 'test_set_temperature' + schema = SET_TEMPERATURE_SCHEMA + calls = async_mock_service(hass, domain, service, schema) + + data = { + 'temperature': 20.0, 'operation_mode': 'test', + 'entity_id': ['climate.test_id']} + yield from hass.services.async_call(domain, service, data) + yield from hass.async_block_till_done() + + assert len(calls) == 1 + assert calls[-1].data == data From 46d9d77d03b91b3c57e4b712c088e3975d8ea1cc Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Aug 2017 14:54:50 -0700 Subject: [PATCH 07/16] Update frontend --- homeassistant/components/frontend/version.py | 2 +- .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 20661 -> 20665 bytes 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 001e369602b..59b09aa4ca1 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -6,7 +6,7 @@ FINGERPRINTS = { "frontend.html": "fb225cfababf965f8e19a8eb5c5a2a7e", "mdi.html": "e91f61a039ed0a9936e7ee5360da3870", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "878fd176dad70fe5cb8fc3c4ca72145c", + "panels/ha-panel-config.html": "ec48185c79000d0cfe5bbf38c7974944", "panels/ha-panel-dev-event.html": "d409e7ab537d9fe629126d122345279c", "panels/ha-panel-dev-info.html": "b0e55eb657fd75f21aba2426ac0cedc0", "panels/ha-panel-dev-mqtt.html": "94b222b013a98583842de3e72d5888c6", diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index a51b9c1eb5a..823a6996708 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit a51b9c1eb5aecd119706a64c353b5df1de0af8cd +Subproject commit 823a6996708d5b85097fb1db0defbc03516e77bf diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 98742c6ac29..d645ff87f8e 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ - \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz index 775e05b4a0207047491e526b6172a078c99639a2..e794d3735977c39139d3b34360a40ad42c371c37 100644 GIT binary patch delta 7808 zcmdnGka6ci#trpG^+q;|JC7W@y7F$j(WiZ9iu6L`ye{$n4P9>YYh}XWg_$f9-pn$T z_jxl_L+8TOC$-Jb^Mn7MTj6qj((!Dyzv~WuWSVy;+_sWcc|zK=%%{&j{@P#B`Mr_v zs{8zExsF%Cb+b=Y@A|p0ivKtrBb=bgKD>!+9%eP@+*=SjLP?fbju!H4Jr<+pjxho4UuE;#GB z$Ljocb@RK7H|||Cb>@6KXZhl~?bG`%tzqu#x}FugKNr${6AofZtXQ+BxU zQ*SBE`#9COZ^G3_Nk=v~uC!J)B#A#ia|b zwgUVy8*&y_7adCd_T|dfRiC!MTlY^d`dSr3_hO}!mqczqxPSG5MUu?^18x<67<(;D zQoi)@%k8;TB3#e0y~sx7xL}FJBKb)@KRhqHP8N!~W7?VAyQ}rvv}?@^PVdO8nctUp zT<3F|VGGaJF2flgqV1BVm8UuL=%$tYGCj}VFms8axc>geiHU(m{6z)f_nLBUy?4#n zxRE()){5+dLh(DL)Rj!HJ)5?B=eBokv2HtDBadJBXq3XbqT(idy~lAy?XSmIq))jh zs#){M^hfS3M!C24M}IPe+a%6;`qHhIhpW?ED*DmU!>| zktjUlx|c(uV|JL!-bCJ%(1PO4=hUjp6yy84Gs2s-|IFNRV=2!y;|sjpeRAo%b&DnU zZpeRUHT#mS)GIghGoCY*Ekl#C6-4%+^;DvUw$h1RCc{k z^*h#gamAMV(gf7*?Ktn{@W*UNNoRV{BNy36Y46eli=Qvwaq^dFPy0HN)l1%b*4#RJ z`|-EUI=ga@TmJnjac_6?eWyJkIq#xFZgXaN#4KEBZ@%Nm`vz^5WsQ~>wXR%UTK|zN z+Wy8d!xg96jxuF&WEoD@KDuC2@(at-BS$^Iu9*;=Y^uKFuTo-3QrZUp=f1MvmNJ9| zY@IoEv3goZ)(f$W-(eHwUup16pVjm$-HO$jr|_nUV=do7Ez^0<5^B$uefp##I(Npl z=fBF!83aW>{#evo-=;G|((CezO4C`Fg!DosY9F5eykL{0-Z13Ofe7AXeMIz6Ut@G|{8ZOX{zbhrlIzM;jgjsXK#R7}pm`u+4($M|X zqvN;hPgNZoy~Q)Hug$uh;kz+aan1q0GsOp!pKS}%yY@lXl1Jy|!sxj^tdU#JU;dX{ zedd$Ru7(fwCxsqXCP>J6^L(9~)}%e5O1`V&ikRsN>y-5ci&6^}RGl*JUcAb@GWPb} z84uK+`5aR&U3VhqM6>3e++|N*r7c)F!}o-zPxYv@yOQTh1Rp@ z24==gH=Vy*M$S5%AWZ&Inzoon1`uduuNqR4ut}?49FF1T$ zxJ&QVF{#6%PCWl_{kZkQEb+C6*Y*UC58a->cHR3>mfK!wdw-`Ecj*1d9}5p6hqIIq+j*!UU@Y;`A4h0*F4v&y;rMjzHe}T zaoo)EHn*1ayaG83v!D;rUj+_kAJg1ymV{hN_`RQ6BXf;PO z-adU&z^^s)o(fK$%sy}Hy&~Rc=CzaK9_yA{e*UAtwRg)hw_6d;XC3!0@amDN{s|2w_;-n3m;bhqcoX()8a#=Ux_ zV%KsC{eh>R&&f-Nb|37x zYvEQDmKN6AQon4b|LT*gK24gNyUFUq>t#pvcl|zXmYO{E^+HCA8D)%8ZSQu^uP?gC z@F*-S^MsqQSNx&Zo^5v+{x%0qi8~~&)SUcmL(fvhbva%tcQ$e4zhQa2a+9;9bc3gC z&|&)z=`$53WtvS?zGSgJ{lSw4ozv`{eK%hU%$t2sk>6z5)C$*-dfvO{nu3=b#rd|} z%-eoS!eY z@%4t~vHBan9uD}Jz0*m|=Bbylz$31Gn^oR!-aO~)GD(wu?Y(>tTZ>)vPt>l>Y>-;F z@b6yfvL7dE79J8f?4V)4YuQ2f#SQO%P5%D#a;aJJ<1byE|Nc4H&)ar7t@-==uTHC< z)^qfJDM)3hL*JJmruIC*m?2E^4Aqs8s`pFCMP8JKe+jm zasK>umv`;-zn0qJz-wmT7VmF&Eo?IXRm<;X-*eyBm(RQ$e`rnSy)rot_0^AlO=oD4 zF3k@wynb-r)<-PMJ6FAYas1ou+pA1}@`l@WTs8V$`s(b0w=LDHf4=1OSDb&Y;2ryU zM&Dnux6YPLblu)IJ7zcAqI2bH{-3rwE}xq0-zda3--^fglEuy=>~mka-AZ8o{e^Av z-5KpG`MsnsA1h6$U$xZOEKyK{GltPcNv-^GqW<@8rN@#_Y(#|H!{V<>9LkQ-W!Y#s z_0Wkqb>Y|RXY^023FTU+k(#<}>k;1lw<06=x-sm3naYv2-L>`b%O7)6otUDnwL?|A zX7Zk6t`_m?w*B$^l!=!A!bvj0;%4U2*3yX?xo027`yFAc>}{IqQqQaLHuI_VYvH*{ ziYMpols#S>Hlz6A)OW2)$uG}`2WYwM{qxy}@r&fjIy-UW-~3h|k2H47S^q!t<=uw5 z?Vl#i}Qr2HP&jHgdKV+2?Ixt61<@I5rb{!`SfWigc#mq+(XHDo!zaGNYz31333qfz=*N024q)RT+F!<9ax++7qDw<8Kzg}R< z<3sB$4~4NXyG_C{ttNa`9Y}y&xyUxu*R3 zEzYC6)F(?lvJJjj?YDUrZ$-k&=_;=*ckK{yyIp_!-sRn!UtO}yI9$RM(JMUR@rFsl z4!2p0D_O31*4J5u?_+RxSl6=oM(7WNxUb#u`*$q!`;qP8bLDo1QubEUImhR48kK~7 zovd>ANUrIoWeNRR%F8|6_mxat`-t`8SLXT($NBfT7d0M8^r$XWS^NI4jZ#zik{#<; zow#)I@lUtoTP|}PT>nBruzC97El>G`rv6zWH|bsEQQu4Rwf0?-s!w*>{?z84hrkX| z_QviXw-!72+Pn)`vu&AAKi9$lNr9?pN$z5!c}joE6Eciu<(>Sw?2N^8r)v{68=fxl z7G&F69&!96?@ZRqz1qHlAscF>?>^Y(sQN|7(w&KYYet>Ey1^{l@2(<#LBh|ZFQgYS zK5AAgIdNg0q}7^>`dt|ie@bVG#a>wVr_oJXou@yz-Akuni|JSU?e9L^ zv|Q|-f+LYtC=YzrJRlPUsqj|7#W*Ib~&rgekf;zpp=g zByHZM4Ia;TA7M!fT%NVmMC)nZC$XBFG1oovi|$?DD7hs+i?h@uu&}(G>0HF2JHc18 zI**5Chq`!#D=k}l_+U=F?z}17k>9)gSSK!B`2JEY%bDX1Gg2fE-_1J1G~ZjkZtkWx zV*2xUCWLv!l-j&%F6_vykegxJax~OFZ|RL0^^yuY%O5YCSlV1`;D1>w>yfA3E+L;_ zV}5Q8-oAs`k2(v|PcO*)b?wlTf1#a@i5I?bIj&=TH#PZzfPG?LqjJDG!x_ttuddU4 zF7awrP(z!OZr8EYD4Y*l)O><5zidRMMDb&(f#G%rbIIx7(a94B&Wn`JlqSgSGCK zhwm=lxi{cZp&DO9`+18~y@d?Nukf(+*a_`&UsF)A(zNF9@1-(7cJ8g%AQX|kr~kvn zP5d&SsyQo;+OVV_+WJ{w=`p*gB8_w2y5T~COW!wser|r@+5CF>NoqpLWubE~Z#kN5 z#@zVYTja}}r_RSq=H5KdX7ne+x9b|;X0I7FTjpGkS7U8C_w_O_<_$%58$#Ciw68Ru zEi^Gyb=Qt1s&1>7vGKoI#u3g2Z>cX&a$3c_|+G9Zam@Q(5Z2p2|+ti+&@gf9CP@k}A&H$wAld94vpa z&f=oz37&h(iK*+wS1gZm35!}D9JYI@jm=z9#b1YI#Xlt;s4l#%R6n)4n_}m5HOE;~E+_$6i zbK=DuyLze3tF$Vkk|hpLvk+O86n$lS>k$rrzvk4Ewdr+R?4Df=T~-_v&zyAN7uSQ& z*TOp{FFSX2n!EpvoP(coXSrHbEC|ujSRB)o)^c8hhg*t$$2z`~$v7;3sok!<^!LS&@lJVlkK&vaZWx@cPxVTgYp|eg*Y4XlG`!}n z)XtW8?izXc>oQ^8`LE-OLw^PAIzE4O*PETIJkEx?9*db;YxE?^b>{@$Kc(ld&1mAk zbC~bH;rq)L?~Bi8%BZY8oLT)pN9w>ql^c)GvehuG;R}lwwh}#hJ$|Bw^eOvCG7UMK zC*7VT|8An#KZW+f%y;4SW=U!FKPU0&sA_W79g?25;?Mgs=T+Y?ZpzX~U%F(L$gg85 zvz8^Bwx)dz(wlaB`?Y_GVQ-r=9$)OU*Z8`a{bBt#3)_ivABf+O{QE#Z?8T|eDr{Tx z_8p(JpY`nWyzT~IZ;i*TWEl;XzhZs*0bFaPi*6Zh@FMfKLt=qEdvrl{o z2@MSX)p)hqWmV_bnuTmh;mL1`9yy0?DCc-?^=av)uHr4x?L1xEqk3%PV?r}F2i^#o znC-UUN@B^2r~l$~tqx_ES#$4uW_3JJ`R%gs+4?>PIU9EII9=E-#JS*wf!cAFSbG+G z%RTijcNYuK`*3O2t#hnFf2?Z@grB~hwW$8BdX9K)(9@9Xn;#xpDD<39@B6N)Rn=0* zcRMs*?JHj>^Zro59?|%=r2$)19OB*{H{FxFLFUf~AIr;|m*ww$@NK4P&68iLz7;PV zPtTaU_Rxgz^LpPm9sPNse(`7XC!IxeFHJ0peSKw*>D^!P%PIx=ldgT=UHtC9uKk8} zulzFq|E;T^_wyvD?FG%_&s4VWahYzGccJ5WmZ9;_dEdX^i5L98=Ee5Y%j`dv={4^- zl6u4O!?TWE+%}buuiW@POW&5IP~}4L>I1xDagu)$e@$Yu)n~N#k@a*+Z%E&pV=;Hy z_D4)S%>OR7tgF;te9m*)=l)km#3WV)HZp`{7CZ0N*qdFu?p=Mn)>?G~etn}4zr-AF zcubsi$o!R+?C1NU{>u#WPd)sT)qTW^xq8e0$E!annsTq;-NxFl;q*D`6Mc)y?&#s&9K30b&Rdxm6fNYdd?U+zQ46fqa-1AtDt@Aji;XVDIwCI zrn4RtIAWzyalz)=ZH?>By4zPU<)09c{JlxWw#|q!&#-ZQ>+)xZl;tvWmHiI=d;Ic? z(uOYQvY^9E%YU_eWl&oFjiIgM+=>scW;lqq)g5_I8zG>3#jBh5?I;X7{A6Fgs8Q9vwa@p(Zd?0juTJi&&B@m@Pa7n! zWoYqJsSg!*i;7#(+dLyX<1g>8w0oCtq)eCYIA2^m=d!#_=A$X?ThdlJ3VWP4=#V9*P^>zWzWf-<2W%)5F}5H!oH!^KEB$ zQ_8D4ufM;fAeQIeiO8aTYy9pQ$2~G|abBNlee6|IS4Ld@GQUY;=UBQd?`_L>w?1Zk z=wS8Y&C$y{8e{IA^GeOUK5fOvJt2?ht!@r4lv*vbOQ-aV5C7RZ&9;R#>r-rN-^v)r ze+j>~;L@@pj>N=OxtBMuJT2L28Ksx9CqMmIZ~e2gDo=0!d$jGU{D#$r^`J7A^U3w1 z_60Xu_FDy?sVaA$UO($fGWkNgWgB6r!o&?ER@ivRsS?=?S z6GdwLmrnlNdQW8Sh1@#VS1}uyO#Qv4*Qgf;-mwyw{QGb+V`cQZ<@)UP2~#sQU(T5_ zSvN^5{^cg-o&8<&g>x96uFv^&x0-dQ%=%QO`0A%C3pI0MEg~X0|9VXc5)YU;ckOQB zvSo)>s@ZPMdb8Q-Mw9j3yXoEULk_LhIEmKU0QeAU--`Mb^8+7A!i zcL=WIDmlDsYUlGzGxOMqACH}$cZR8+q0`S>_d8d7U2(T;{MSVe8_zxpmOZuSo8GPe zH@n^CUQ10ozEAF1@t$RW-pGBQ!u|L_{=AdZ;sfKZ&iGm`KJAOG!^&$p5rQdmZ^xDQ z2P)^pEzoaS_uu<1HqVrQ|7rRB!prYJZrFV*`Q4YcU#iz@ zA34;&>iw?q@r2I`F_|FqzMda*=RTh-9kZ*M*P_#6$_K5q>wJ&=^;vG~+w|7{+;ZZQ zp6$&xC&QJxd3Q1+3`=foi1K)-{;sV0)$T^0kkjS?D*|gD?ViB)KzQ@N=9fp$`zlAs zKXp^(e(UdGJ*%Te=aJxsewV#cN9?VB9tia8Vh?(2TYsn`DrsiMI{(F2)k3rVvMpI^ zeRf$yR!p-ltKGWzPU=Z1+dm@gJN0F+&q}_t_S}r+JM1@_NO0I6;#mJs^rVN#Wa$zi zE%!$o_bln(Jb@+ZC(Avd_t8gp3K*}EKfX61Db$g9I`@Caq^QtjwoR9=KUhES&g}^^ z?Ax4HM<;xhm@d^>KV?;^yr6pj=JlIYv+oy%u$T5KyI3&!*POptRjy#$q#Rdodg;*W zeHv>vJ<{f!#x*^^ZI#P4whhPmw9j~3XieH^cdu{9kpp`o-M+T&ubd_K;qpJZ#q5td zTs~hZyvqFVS!PwjoQh8pcQ0supEogQy~)<7__P_u?kBQd8n0}+)Ynu0OSa_n@21vh z+n={?#cbU)X9e5rb9|Rpg~v$b-G3H$)~?fkciOizUYzS}`7@W!T5T+pl;z;#dcw2g z)kCwXmF#s_HqR-Ec-y3S?9;i<+Yi29xbwg%o!LKq zg<)Lx@6wR90cBBlex2@m#iyWO{jL65)c#j`OP@9ei`{v4we!%@OgrymDcg6+T3mb9 z{Ojj}LpRnbKWpyV^;4lX#BlX&{-ml;Vh_akEBao5 z%ypwxS$XwTy~rb)>t}59y?Kba@5#Tu=%?k8?s6-aF0cP)x?;=PwSEh)-fx?A{a)Lw z)7k#^{}2CdoRj@PIV?=U=(*R`)k~ zN7mAmJUKhHuRr$s%LR+2=NIlSX_T?Qy+O18*NXJ+liaVHRQ=MFU%u31xw_lW^~n|W z3}=6j>-Qr1(>T)DJg;_*dhx9P$XZqrm3?!M|M zuwX6DU#>9Cd_|)?ULFF_YeC&Yee5*2)uBjd;XjZp)DVk zRX;SmESwnSJ^ir1uH9=RhU6}0?R}R%Nf<=y-qOf$`Q%mN^j+)R{ zZt{4^(lW0C)pQ~Gb#o&&mbfG*sV=-4s?aX9Xe9kmi>Ea{B(^+;C z^VgM~wdqsrd=>k4)n%`yho)0MsqAY^Zg^z>qEBb_mdXRpQWAmR<8EoHd@Fr8t^4-= z28(6=^ooV0zML$#hq+w(Wu`FqQL%?<2ar<#A==SOVwW!67C)>nPva#J{aX7Z`Ci@(-?6nf7ryQ2T! zHyeSg%m1iN{9f|f`Q?<)@ixk{4Bt=U_+Tt|?0&7H)xO`0=J!P>ONdWcTfam8(TQxS z?Gg*0Svi=8`7BD3*wvO)S{{GG=gB*6t1bzbZRWGSNgjM?-tc~#&Z|9`)|^o~ zFW*0J7xRYQYqQ%f-L&*~|C^^TyEKx0j>!6}yF4y;3uYhOv2EYId*60{-ez!F$nCWa z>-zdLj%T+nJ+4vN)Oqf6;H}*)RY9Vx_5V*V{4ZR1CWj|k);VXMpVivA`xOL2uUvfK zwY5iIjUh0eO}$TY`V@gfXH3t#msFM5u$TF&S)?Vj?402CywYmcqsF%kb-TT-c>evn z_UPl)KG!v#V$4R{r-cyP{JSHK0U)3_t+;;nD<(2UUemddr@c6+Wn7Sh(=D~(72Yq{BLUBmQtlD=U@8p{S99w zT4mC8$<}PS@$Ri}-^o{d)U_VPuQll z)zRj$cDjt>>Z3HCwG({Em`%np5;e>e7T?6x&u8N}ROCoR?7c5wgdgM~*d>Kc1L++da}%sBBv zR^Fy!=}R?%yr=aQ3Vq5i3S8_}BtK4G)~%+xWknaXOoW9)qOF}>>-(=en`_*nNRScIl)Lc5qm~?{0L( z{adAGORY_=o)iQt14WBb`?B(a7m8n1bWeU|skr=@*SX2TGbh;^Zoa$j{)=hpMg|J!WS zD&=Awex!7MsJAiT=~r$0WoLX))MGEdt4&t7)D_uH;T9)1SxgX8-16?ltHvwq-sbrf zFc+&mo@f=GV)o>q$UT$bqEh1vA!ioWUp%~s{mTXhUJm91Cm(%zKcnK&u9X+&o;|n1 zWZlVG=VQC-*Gud@u4VD;_usl%2h1NP1bz&i?R#S@>*WWFxsI^ztAEAzD>x?YWa3)o zxrc2HbJTYYX#ZprKor7BCK4Oo60RjG~5uh_lq@Sb_^W2UyQdav^*;Gv24a{tQH zpI8f9babYy`Lpb2sMv%2dyk&hhg_JTmA-59tEES;yxMB`=a9VW`9-geW!cWFzM=Rf zdG?&QtW$aYE%;@mHGizF>Ud!KcuLGuu0P75msU5JbUd7F9P4)Si}>Y+kKJFocJJ=J zV*bhdRoD@YJMY}|xhgx8j^x|v`YpQL6`$$n;TaKeVHfk(u7JGE+&by&ovTvT#R}Ii z|NNxxYH3LM#nVO)6w7$`zG154O?!~q<+xM);n&(i`TVOrJ?nDwmi-ah#UXoc%KEv+ zo*K1b=Rb9vJjr}MDt|lM=h^!_*MDr=J*ToxpfxTkSUGpi!e{g2U8>j4<-6Vct<0+8 zWMn{McVF*<6*HLZPQRH`pc!3z?DQ1f*xh?s|JOf_%=eCcF)iARUqs*tpMGhn(EI~0 zg{LyRn>}CG-wSiTMf)5cR@FEGgX>}KF~{(kqoy=6W_q4sK% zl*OD&^&fs!an5V_=cwtW|B!p)LBryRW19rR%~XZ*B3rhXHhm1axv+=#z!JWd59NPs z_7ON~GW&#J=A7%s1w{_io;JH2e^bJ7{_KMZ>{6G#_9(4tdpEm&O2^9s-0ZhJRN`zwh*HRnVFL^f($f6nAA$+AA#Z870N)AxXw{fCW^XL4I_gqizd+vqcIxJXzrR;4yjs-aR#m^l z;L8WMUl%2Jggw@HxqCPJm)n*P_RsHeTbee%!-rp;KjX;7nI<8-?;qA*DIz}UnWFC{ zEseWscf)oDE#{Zx-+j?vZM9{D)8^MNpD2I1lkw?tsg0~i`hz`&8#cIqc=M;>y#Mvg zyLZ%I8@ViCn=OBMy}Eq%>XYrS=2Y+gz3uz%GcW7)6R(-%Tl2R}4lVra&2Xr9*Y?#r zUMHN7Dr~y!a<$}3^6$5~S7-fc)0RJyHS@RC*R%^|hxT6m^QC3^1pjo4@6G8AYJd6O zrtChkDEhGPx>)AG=hlTvw;_>h)PX4^7vJHQkuwm6+nU zfAwqoGw$B|v{=KZY%;nW^{6fW?V2@l$_@9w7_n@=z39-xlA3cyij8aMPF*E*^bFhc zMq93>N9Fz$r%Fv-9^l!xl6&^-wR3w7wrqR)L0>(oc#qpbpG9m_zSVE}H1}(#-^2+i z=kN4Aw$nbd^MluSr->WCJlEC`T@?4Pav8&~o)G)_-828P&nP+6nIvH5E!%T-lZ(z1S=00Dpj$QKatyex-TJ z$MUBLnRQ)TA>X+7SMJxkm6KS{JDL2mT5c!X$yXKT|MyeS&M0liXzw`(HF~?Id6u=C z&9qoyapCAr#zz9a9>+IlYc;#ZCD+dBSUU4-qSdR-Jb@w-b;r3vxA5)NW$t$8I8|7m zc>Shmy7bf3i+eU6@>p2Bg#Y^oEnB5GbqW=8x@X@#zDl%`M_Re$#-*z@smaFAw=Mp% z?&75v{#Q;{X|sqiTTWBudE3*Sp`oSV`QZpx<+C%4|84o#+)veRPWKQAw8?sYS?(R% zrfqdn-7|f*Z`L)s7_+jXHC5$Lm#z!9POFc(_V!C!O>_M08UJR!u2?S|({?{O zqvy%-h&|QM*dEkAoRs)lc~8Z&M|0A7w_o4txvjUKKf+p=k#&*ECDQ=2EsFbgXTNPp zx;xpE_v5^kZ)}%Go_%J$;flA=SDDxtuElTnr@nuAH?s7l%$7te#x=({PZUO+;>loi4cMZVFhky!uh==%7WVD&$yDr&ECO(t%=C3PR+Cd z@*XXdiVWW1zI9^o66N?^r@}rqy?E7Vzh{B}d)A8%4-A&h!6g}EI*ew??HXeKP%sEy^QdG4vTw*+m5evRu!|jHS5>>=<*+L=3G=Z zRQ;iw7aezPt$L??%h&zxe-31?leN!Cy(QqnBKCCJv)yYhS$zzh6s>)J*@BQTsePNX zr;6}3=$=gan>9o0&i1mcT6b1iTzh_Ndv;j-G_A0P`mjJr#jPeScz!AWe!s}FZt?Rm z2HGm?tmM8Pv^ZjB!+%EV(4$rI+k@CZz+zx?sSiCqWnW~gV1ntoJ~kL6spa%Ma0 z6t?3JL_fOh*qnO7q&7RT=>MuC3k))r*DtC* zo>O>#W#jyMj;7C2E1BOYKW7*E^r%OY>E5MJI~n=a6bDtI_?>hG;omsMOi<)b8d!(w5U6kKTyXK!~bsMahoC6kU{r+rayfn!~T9u6{ z%1`Y|HSevBbqO*XQhsbrXKqPovs-j;Rb9_fw{UN1JIkL6Wu^NRr+#bqsL`4jF{NsX z)XWXP<)(i)c)Y0YNh?;z4H3p{@u%@d@bI8nVBdi-D5f9l^6SJNxNpxDUISf zt6$Z=*)s2C&HA~wwb!bhmfs+Bc18Bwx5;XcwAA;_opY`e?3Oa_pI-o8612|>-2`BPQG$CU)QzYHd?vG>lVlBxxVV@ z8#`XPy!&bw+AO5haH~1srtyP|0nQ3HR_@ttUXh&IA=`89*;4Z?q0&cl7Ver7S{omx zd9!f&$yBCo@yi3XAExuR@y9eat@diFdb+jVV7hKuzxcC{-d1~C_IYY%zk6U^5?7dOxr?Yd@cA0_|!h1O-umFpP|6KYvMRKC_e z;u-ur>-1vvoNWm|&CV*x*aT>aO$pRDB@Se6;w=iR7vbjh<-O3CX^*+~{{ToiMH?cc8SY@dVd?-JYp z&-k7>=ljm*CVZ2wJ>0Ul-i-G_g3z0fY0P#EVeG5dbI$F0^m@I=6yB%ug?tX%B2VU? zGJ zET_#?n&PM5MrZ#wSpCg$%g2o4@>70YZ2n+hJ!jqtzYnKh_tbq5*DiUQDbyTgen0u- z{idh2Udy}#a`@JIU#eO9(Cg9KIZq~wu9EcXUTpWaY-vqkmHPCTvd&vgQ!46Lty-b^ z_rNP#rK?A(_60C+Ty0op`B72(hILD^?9ZUgqn5YUI3A2b;HpLgwoh$(*5|fjg*2y=`m$_%Z z=-ow5|B6iC+~-W1|K{55==_xCd-0p_w)$?nl|`#w-z<0-&{@nrz51@#UfbTsu?r4l z9p4?$SDt8buS@@MkVce{!uoHIrS6$U@YPi;oAWaA^7gob-)E%kivDg=v-z?h^~|}j z#1q-+)2nYjs(G>h;!o*ME<62RdhA?Rnsskh-e3L8dpg(+U;n;q`ThSi`H1k++i=Ckl*tpm8{4=QaY@Rp0L4H}E%0lAHuC8!kShZ#6!ni5-w%Ub%*PnW=UU){kxMW2ww?fVm58sE< zrE~j!zVA}MJj48HLETo@q@|6vxBh<&{W)P4>lL=!P3|HKD@`)8HhXx~-$+w&iUe476D zo5mYwb{?D4rQfEBGDOS`T{n;8RY)qY+p`%9%5y_StTwE>)iK}b%_kM3RlM~-Pd6oS zB*}`{WXQeFo$`9&wCIpV^OTOB+Q>dR=a~%KXB@bGD7g5cVE>kFg6fI?KbBMpMjTbN zUYXb!TzjaBVPbGKgR@I|NJXj70&Zvfqz`tQn>@c|F|^;FyF}*GNByUjtbukPpXW?5 zUM?0EULQ0`>Q+)_;cnN^N`Gxx< za<8J(&%T*ASX3jE`i=*(-m1HrB@pPoVYOj+-qv-E6{g~MOicG#bSSvHA7Pn#J7$Nv z|8B>3Q?HvWQ};{rPrp%H>b&E_>FIB?3#M*YYB2x#!Az^HB;@k4!_3Np=6jz{ zkGI;P$Cm#@$1*-l{hg$Kp~Rwv*Eh)~mm0d7=m)EN)^n#b9hJ$yy?wFlW66gP=3czH zHu#8xUVi%0OItSz& zil3{Qws-epZ{JsI>zTJR88hxq{t{v$6Y^kYs}|4h29@{sWp$T#vgKBY9zAuN@#(kC zs#@!c+RG0g4c*~$ci)||>G5(2vI`ZxBBob#7xfkB$xL)EP+~vzi1iE8 zt}nUSc*p(ddCqMOpTf<4zT4Xr(|6sdasA#;S9XYO)00`Vrln5RYbE!JGv}_|<+Kid z7&3WYlv|KAu)26`DU+#q6Rnw^YtCuZiRg}6PdRaa1nca^M%6B-z zS$8GgJ$2->$?VzdPEowMAo%yw!+xwT?f{<*pH5{AH<*wg-e1)Ky ze!%qN*d2E~?j34g-6~hb%KyJsSE%sy zSatoBiWIdFZoZY$?rwk1o%?)}SMTmYwmB{`UKOI7v)Ml`7jJqiKJVDRny8e_>GN`& z7tXjMX8z7(jf7QBgzl0L!sWYdzut9FTlG|0 zwSH4yAnWU5C-#x!hWny8-beCtYaXmnIm*29n_QxeZv93dlk3YbW=&pYx_qlllbu@Z z937j}vb*=)3VgRIrB|-5tNG6KzU;Gx@50j01mBq-A;r@opV)H!LsyDQ*GXP0&Z){D zBjPR{kMv+#Tf>y!`F-u9m=4Kn{g2}eHm+LGc)In!g5la#hRl&Kvp5F zi~Km1#k=*ixpSyeHuH_-cF||5GNLCVCiz;93 zc*R)%*~Hes&!(~`@5Pkr^B&v6XGN{mH$F2{Ic4jYnIVpu?rwkicGW+vJ$PvCyqetH zby1OiAYRs<2GyiHghDg4w6` zFx$V1^s`!1dZah<$36ACYb>pkI2&fEX6`wfyEnDC^7)b657ilY1q(MfE;qg+vHs{^ zt5snd*1CCrQ(a5hCrr1k&R!c|UpoELr-Pc@d7odoJiKHwUp0AC^j$ug?9YyWYXTB; zt_yy4biG?M!EV)zt7q8_Z7aDybl3;`*4~1=YJHB7#vdb|H-*L$}f^_@?D`BVS6Cg+y$TQ0&j53hz^yBf@Y z$}>Q-aN!>nBW<8r1|#uK*l!_dQbG;9$_v|m|7NawPYz{_3lLxvb%Th z^_s5pXiB)x?PWO+8QqKOkFWi-dyR7cl}o|Dr9$d&T?<=&;Z?r#+3bAhvro4!pa1{i zKZkRs9|X0v1!k5#{=_Yu`B>)vFK>o7tnZ(RZWFzod|*@U!ehTRbhP*XGmP09WMs}S zKe_79J@tOg?#+Z#LbzdGB9vrYd`cC`Z=I_@0k17#E-BB8Mt3LMuTdY-)b zrl;#c#>JP%0&Onk_dgW3?~Z7^SL>M36KUTUwZvKGmwCzF!Z{tR^%m#OeG9)mS^ECd z`%zEy6Hi#re(1!_w}~g+^~CwY>`dV&%0KQ`PSMS2(8zdl)Zfp9^VW}vLKO$T?C@B- z^z_5!V)IKS8w`&&ipFPF^2}H(mMdbSRH^qFVp0h|up{1*ea`jbGF2t)QqT zBG^|keWPOyGvoA-$4Oap=7{(AwJxYnS*xqNwP<_797F!|YZTowzOtB}Ue1y;clqDw UCzFzFZvFj#^Hk2+ntDbC05f1k-T(jq From 7d566c2c3d90ff3bd9ac410b91e78af01a40c214 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Aug 2017 14:56:34 -0700 Subject: [PATCH 08/16] Version bump to 0.51.1 --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 93bdb947afc..68413994a80 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -2,7 +2,7 @@ """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 MINOR_VERSION = 51 -PATCH_VERSION = '0' +PATCH_VERSION = '1' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) REQUIRED_PYTHON_VER = (3, 4, 2) From 56597d290c4ef71687738193b04ad742149195d8 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 21:53:22 -0700 Subject: [PATCH 09/16] Version bump to 0.51.2 --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 68413994a80..ab94bd3e420 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -2,7 +2,7 @@ """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 MINOR_VERSION = 51 -PATCH_VERSION = '1' +PATCH_VERSION = '2' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) REQUIRED_PYTHON_VER = (3, 4, 2) From fc8e8e5d8c54acdccc88f062dfaea4d2e747d9a5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 21:52:36 -0700 Subject: [PATCH 10/16] Update frontend --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 8 ++++---- .../frontend/www_static/frontend.html.gz | Bin 165967 -> 165958 bytes .../www_static/home-assistant-polymer | 2 +- .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 5139 -> 5141 bytes 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 59b09aa4ca1..07cd39ca581 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -3,7 +3,7 @@ FINGERPRINTS = { "compatibility.js": "1686167ff210e001f063f5c606b2e74b", "core.js": "2a7d01e45187c7d4635da05065b5e54e", - "frontend.html": "fb225cfababf965f8e19a8eb5c5a2a7e", + "frontend.html": "5a2a3d6181cc820f5b3e94d1a50def74", "mdi.html": "e91f61a039ed0a9936e7ee5360da3870", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", "panels/ha-panel-config.html": "ec48185c79000d0cfe5bbf38c7974944", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 1281ef93b0d..71c4381108a 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -50,7 +50,7 @@ .input-content.is-invalid ::slotted(textarea), .input-content.is-invalid ::slotted(iron-autogrow-textarea), .input-content.is-invalid ::slotted(.paper-input-input){@apply --paper-input-container-input-invalid;}.prefix ::slotted(*){display:inline-block;@apply --paper-font-subhead;@apply --layout-flex-none;@apply --paper-input-prefix;}.suffix ::slotted(*){display:inline-block;@apply --paper-font-subhead;@apply --layout-flex-none;@apply --paper-input-suffix;}.input-content ::slotted(input){min-width:0;}.input-content ::slotted(textarea){resize:none;}.add-on-content{position:relative;}.add-on-content.is-invalid ::slotted(*){color:var(--paper-input-container-invalid-color, var(--error-color));}.add-on-content.is-highlighted ::slotted(*){color:var(--paper-input-container-focus-color, var(--primary-color));}