Skip to content
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.84 #19215

Merged
merged 277 commits into from
Dec 12, 2018
Merged

0.84 #19215

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
5e18d52
Reconfigure MQTT alarm component if discovery info is changed (#18173)
emontnemery Nov 24, 2018
d24ea7d
Async tests for device tracker mqtt (#18680)
emlove Nov 24, 2018
6ebdc7d
Async tests for owntracks device tracker (#18681)
emlove Nov 24, 2018
50a30d4
Async tests for remaining device trackers (#18682)
emlove Nov 24, 2018
66f1643
Async timer tests (#18683)
emlove Nov 24, 2018
6f0a3b4
Async tests for counter (#18684)
emlove Nov 24, 2018
00c9ca6
Async tests for mqtt switch (#18685)
emlove Nov 24, 2018
eb6b6ed
Add Awair sensor platform (#18570)
ahayworth Nov 25, 2018
ad2e8b3
update mill lib, handle bad data from mill server (#18693)
Danielhiversen Nov 25, 2018
5a5cbe4
Upgrade youtube_dl to 2018.11.23 (#18694)
fabaff Nov 25, 2018
cd77345
Fix false log message on CAPsMAN only devices (#18687)
soosp Nov 25, 2018
23f5d78
Set correct default offset (#18678)
ludeeus Nov 25, 2018
f3ce463
Adds SomfyContactIOSystemSensor to TaHoma (#18560)
jensihnow Nov 25, 2018
91c526d
Async device sun light trigger tests (#18689)
emlove Nov 25, 2018
78b90be
Async cover template tests (#18690)
emlove Nov 25, 2018
f387cde
Upgrade pysnmp to 4.4.6 (#18695)
fabaff Nov 25, 2018
8b8629a
Add permission checks to Rest API (#18639)
balloob Nov 25, 2018
2cbe083
:arrow_up: Upgrades InfluxDB dependency to 5.2.0 (#18668)
frenck Nov 25, 2018
d290ce3
Small refactoring of MQTT binary_sensor (#18674)
emontnemery Nov 25, 2018
b5b5bc2
Convert shopping-list update to WebSockets (#18713)
iantrich Nov 26, 2018
4a661e3
Use asyncio Lock for fibaro light (#18622)
pbalogh77 Nov 26, 2018
7848381
Allow managing cloud webhook (#18672)
balloob Nov 26, 2018
3c92aa9
Update translations
balloob Nov 26, 2018
1f123eb
Updated frontend to 20181126.0
balloob Nov 26, 2018
9894eff
Fix logbook filtering entities (#18721)
balloob Nov 26, 2018
b4e2f2a
Upgrade pytest and -timeout (#18722)
scop Nov 26, 2018
7248c9c
Remove some unused imports (#18732)
scop Nov 27, 2018
9d7b1fc
Enforce permissions for Websocket API (#18719)
balloob Nov 27, 2018
c2f8dfc
Legacy api fix (#18733)
balloob Nov 27, 2018
4f2e7fc
remove pbkdf2 upgrade path (#18736)
Eriner Nov 27, 2018
6170065
Reconfigure MQTT cover component if discovery info is changed (#18175)
emontnemery Nov 27, 2018
4a4ed12
Reconfigure MQTT fan component if discovery info is changed (#18177)
emontnemery Nov 27, 2018
a03cb12
Reconfigure MQTT sensor component if discovery info is changed (#18178)
emontnemery Nov 27, 2018
9a25054
Add zones to evohome component (#18428)
zxdavb Nov 27, 2018
013e181
U.S. Geological Survey Earthquake Hazards Program Feed platform (#18207)
exxamalte Nov 27, 2018
61e0e11
Geo Location platform code clean up (#18717)
exxamalte Nov 27, 2018
1cbe080
Fix remaining issues (#18416)
fabaff Nov 27, 2018
c1ed2f1
Update librouteros and re-connect to api if connection is lost (#18421)
slackr31337 Nov 27, 2018
16e3ff2
Mqtt light refactor (#18227)
emontnemery Nov 27, 2018
9d1b94c
Supports the new Netatmo Home Coach (#18308)
lasote Nov 27, 2018
87507c4
fix aioasuswrt sometimes return empty lists (#18742)
kennedyshead Nov 27, 2018
4d5338a
Fix google assistant request sync service call (#17415)
awarecan Nov 27, 2018
392898e
Updated codeowners (#18746)
fredrike Nov 27, 2018
eb2e2a1
Add unique_id for tellduslive (#18744)
fredrike Nov 27, 2018
5d5c78b
Add unique_id for Daikin entities (#18747)
fredrike Nov 27, 2018
7b3b7d2
Wunderlist component (#18339)
lasote Nov 27, 2018
2f07e92
Fix decora_wifi residences (#17228)
trainman419 Nov 27, 2018
02309cc
Enable Google Assistant OnOffTrait for climate devices that support t…
bryanyork Nov 27, 2018
dd8544f
Fix typo in log (#18751)
anton-johansson Nov 27, 2018
093fa6f
Bumped simplisafe-python to 3.1.14 (#18752)
bachya Nov 27, 2018
43676fc
Moved stop method and registering STOP_EVENT outside of init (#18582)
ehendrix23 Nov 27, 2018
052d305
Add config entry for ZHA (#18352)
damarco Nov 27, 2018
fc8b1f4
Update lupupy version to 0.0.13 (#18754)
majuss Nov 28, 2018
a039c32
Replace token in camera.push with webhook (#18380)
dgomes Nov 28, 2018
5c3a4e3
Restore states through a JSON store instead of recorder (#17270)
emlove Nov 28, 2018
a2386f8
Forbid float NaN in JSON (#18757)
balloob Nov 28, 2018
623cec2
Upgrade Adafruit-DHT to 1.4.0 (fixes #15847) (#18614)
fabaff Nov 28, 2018
0bdf96d
Add block after setting up component (#18756)
ehendrix23 Nov 28, 2018
e06fa0d
Default to on if logged in (#18766)
balloob Nov 28, 2018
48e2884
OwnTracks Config Entry (#18759)
balloob Nov 28, 2018
aadf72d
Fix statistics for binary sensor (#18764)
ehendrix23 Nov 29, 2018
faeaa43
Update lang list (fixes #18768)
fabaff Nov 29, 2018
a306475
Convert shopping-list clear to WebSockets (#18769)
iantrich Nov 29, 2018
07a7ee0
Add more waterfurnace sensors (#18451)
mdallaire Nov 29, 2018
c976ac3
Fix lint issues
fabaff Nov 29, 2018
8c9a398
Round average price for Tibber (#18784)
Danielhiversen Nov 29, 2018
9aeb489
Raise NotImplementedError (#18777)
balloob Nov 29, 2018
46389fb
Update switchmate lib (#18785)
Danielhiversen Nov 29, 2018
16911a5
Update lang list (fixes #18768) (#18773)
fabaff Nov 29, 2018
474567e
Fix logbook domain filter - alexa, homekit (#18790)
cdce8p Nov 29, 2018
5c026b1
Added qbittorrent sensor platform (#18618)
eliseomartelli Nov 29, 2018
e50a6ef
Add support for Mode trait in Google Assistant. (#18772)
marchingphoenix Nov 29, 2018
ca74f5e
Render the secret (#18793)
balloob Nov 29, 2018
ab4d0a7
Bumped py17track to 2.1.0 (#18804)
bachya Nov 29, 2018
4e27262
BUGFIX: handle extra fan speeds. (#18799)
marchingphoenix Nov 29, 2018
38ecf71
Fix race condition in group.set (#18796)
balloob Nov 29, 2018
28215d7
Make auth backwards compat again (#18792)
balloob Nov 29, 2018
4bc9e6d
Remove self from update function in rainmachine (#18807)
Danielhiversen Nov 29, 2018
6f7ff9a
Remove additional self from update function in RainMachine (#18810)
bachya Nov 29, 2018
2b52f27
Hotfix for crash with virtual devices (#18808)
pbalogh77 Nov 29, 2018
a035725
Service already discovered log entry (#18800)
ehendrix23 Nov 29, 2018
a9dc4ba
Increase pyatv to 0.3.11 (#18801)
ehendrix23 Nov 29, 2018
22f27b8
Store state last seen time separately (#18806)
emlove Nov 30, 2018
5f53627
Bump python_awair to 0.0.3 (#18819)
ahayworth Nov 30, 2018
4bee3f7
Add Entur departure information sensor (#17286)
hfurubotten Nov 30, 2018
fcdb25e
bump gtts-token to 1.1.3 (#18824)
stonith Nov 30, 2018
a9990c1
Revert change to MQTT discovery_hash introduced in #18169 (#18763)
emontnemery Nov 30, 2018
44e35ec
update netatmo library (#18823)
Danielhiversen Nov 30, 2018
e0f0487
Add services description (#18839)
schmittx Nov 30, 2018
deb9a11
Small refactoring of MQTT fan
emontnemery Nov 30, 2018
1686f73
Small refactoring of MQTT sensor
emontnemery Nov 30, 2018
8f50180
Hotfix for Fibaro wall plug (#18845)
pbalogh77 Nov 30, 2018
d014517
Always set hass_user (#18844)
balloob Nov 30, 2018
d7809c5
Update of volvooncall component (#18702)
molobrakos Nov 30, 2018
53cbb28
Fix flaky geofency test (#18855)
balloob Nov 30, 2018
df21dd2
RFC: Call services directly (#18720)
balloob Nov 30, 2018
8a75bee
bump pywemo to 0.4.33
meatheadmike Nov 30, 2018
0754a63
Bumped pywemo to 0.4.33
meatheadmike Nov 30, 2018
c24ddfb
Bump py17track to 2.1.1 (#18861)
bachya Dec 1, 2018
3a854f4
Fix issues with 17track.net sensor names (#18860)
bachya Dec 1, 2018
ecca51b
Add tests for directv platform (#18590)
ehendrix23 Dec 1, 2018
1ae58ce
Add support for zha device registry (#18755)
damarco Dec 1, 2018
c23792d
Added new filters for templates (#18125)
skalavala Dec 1, 2018
29f1539
Updated UVC camera component to support SSL connections (#18829)
carlos-sarmiento Dec 1, 2018
c69fe43
fixed state case for rtorrent (#18778)
eliseomartelli Dec 1, 2018
558504c
Fix ordinal filter in template (#18878)
ludeeus Dec 1, 2018
d8b9bee
Fix IndexError for home stats
ludeeus Dec 1, 2018
89bd6fa
Fix requirements_all
ludeeus Dec 1, 2018
934eccf
Fix stability issues with multiple units
ludeeus Dec 1, 2018
8e84401
bump ghlocalapi to use clear_scan_result
ludeeus Dec 1, 2018
bd09e96
Reintroduce unique_id for Netatmo sensor (#18774)
heinemml Dec 1, 2018
54904fb
Use string formatting
fabaff Dec 1, 2018
fc1a454
Fix lint issue
fabaff Dec 1, 2018
da715c2
Use dict.get('key') instead of dict['key']
ludeeus Dec 1, 2018
1dac84e
corrects , -> . typo
ludeeus Dec 1, 2018
9156a82
Upgrade Sphinx to 1.8.2
fabaff Dec 1, 2018
2ca4893
Upgrade sphinx-autodoc-typehints to 1.5.1
fabaff Dec 1, 2018
4b85ffa
Upgrade slacker to 0.11.0
fabaff Dec 1, 2018
7b6893c
Fix change
fabaff Dec 1, 2018
4807ad7
Upgrade restrictedpython to 4.0b7
fabaff Dec 1, 2018
48b8fc9
Upgrade ruamel.yaml to 0.15.80
fabaff Dec 1, 2018
9f3c9cd
Upgrade pillow to 5.3.0
fabaff Dec 1, 2018
e591234
Upgrade keyring to 17.0.0 (#18901)
fabaff Dec 2, 2018
41ad042
Upgrade sphinx-autodoc-typehints to 1.5.1 (#18893)
Danielhiversen Dec 2, 2018
af7fe8c
Merge pull request #18902 from home-assistant/upgrade-restrictedpython
Danielhiversen Dec 2, 2018
456cec2
Merge pull request #18903 from home-assistant/upgrade-ruamel.yaml
Danielhiversen Dec 2, 2018
8eb9445
Merge pull request #18904 from home-assistant/upgrade-Pillow
Danielhiversen Dec 2, 2018
2c36f44
Merge pull request #18879 from ludeeus/multiple-googlehome
Danielhiversen Dec 2, 2018
ba372c0
Merge pull request #18880 from ludeeus/tautulli-fix
Danielhiversen Dec 2, 2018
5b0c12b
Merge pull request #18864 from meatheadmike/dev
Danielhiversen Dec 2, 2018
d8c6cb1
Merge pull request #18852 from emontnemery/mqtt_sensor_refactor
Danielhiversen Dec 2, 2018
b063547
Merge pull request #18851 from emontnemery/mqtt_fan_refactor
Danielhiversen Dec 2, 2018
253dc66
Merge pull request #18895 from home-assistant/upgrade-slacker
Danielhiversen Dec 2, 2018
3bc8392
Merge branch 'dev' into upgrade-sphinx
Danielhiversen Dec 2, 2018
de82df3
Merge pull request #18892 from home-assistant/upgrade-sphinx
Danielhiversen Dec 2, 2018
db4a0e3
Small refactoring of MQTT cover (#18850)
emontnemery Dec 2, 2018
2e4e673
Small refactoring of MQTT alarm (#18813)
emontnemery Dec 2, 2018
ce218b1
Small refactoring of MQTT climate (#18814)
emontnemery Dec 2, 2018
bbb40fd
Optionally do not log template rendering errors (#18724)
emontnemery Dec 2, 2018
a10cbad
Restore states when removing/adding entities (#18890)
emlove Dec 2, 2018
0a68cae
Fibaro ubs (#18889)
pbalogh77 Dec 2, 2018
a62fc7c
Use string formatting (#18886)
balloob Dec 2, 2018
b7e2522
bugfix: ensure the `google_assistant` component respects `allow_unloc…
ahayworth Dec 2, 2018
08dbd79
Improve logging and error handling
Dec 2, 2018
eec4564
Show ANSI color codes in logs in Hass.io (#18834)
OttoWinter Dec 2, 2018
debae6a
Fix hdmi_cec entity race (#18753)
yottatsa Dec 2, 2018
fb12294
remove unused import
Dec 2, 2018
bb13829
Set sensor to unavailable if battery is dead. (#18802)
fucm Dec 2, 2018
afa9991
Reconfigure MQTT light component if discovery info is changed (#18176)
emontnemery Dec 2, 2018
ae9e3d8
Reconfigure MQTT switch component if discovery info is changed (#18179)
emontnemery Dec 2, 2018
d1a6216
No more opt-out auth (#18854)
balloob Dec 2, 2018
87fb492
Remove commented out code (#18925)
emontnemery Dec 2, 2018
eb584a2
Add lightwave components for switches and lights (#18026)
GeoffAtHome Dec 2, 2018
5ae6514
Allow verisure locks to be configured with a default code (#18873)
ahayworth Dec 3, 2018
832fa61
Initial hlk-sw16 relay switch support (#17855)
jameshilliard Dec 3, 2018
f3946cb
Push to version 0.7.7 of denonavr (#18917)
scarface-4711 Dec 3, 2018
3904d83
Extend partial reload to include packages (#18884)
cdce8p Dec 3, 2018
17c6ef5
bump aioasuswrt version (#18955)
kennedyshead Dec 3, 2018
d2b6284
Add users added via credentials to admin group too (#18922)
balloob Dec 3, 2018
85c0de5
Use capability of sensor if present to fix multisensor Wink devices (…
Dec 3, 2018
149edda
Initial scene support for Fibaro hubs (#18779)
pbalogh77 Dec 3, 2018
2fff032
Merge remote-tracking branch 'origin/master' into dev
balloob Dec 3, 2018
d0751ff
Add id when not exist and fix dup id check (#18960)
bramkragten Dec 3, 2018
d028236
Refactor script helper actions into their own methods (#18962)
balloob Dec 3, 2018
111a325
Point fix for multiple devices (#18959)
fredrike Dec 3, 2018
c8d92ce
Fix MQTT re-subscription logic (#18953)
OttoWinter Dec 3, 2018
d7a1013
VOC: Update library version. Moved method one step out. Instruments c…
molobrakos Dec 3, 2018
df3c683
Improve err handling
Dec 3, 2018
4486de7
Support for mulitple Blink sync modules (#18663)
fronzbot Dec 3, 2018
b5e7e45
no ordered dict (#18982)
bramkragten Dec 3, 2018
ad0e3ce
Update CODEOWNERS (#18976)
ludeeus Dec 4, 2018
31078b2
Merge pull request #18928 from home-assistant/tibber_err_handle
Danielhiversen Dec 4, 2018
b024c3a
Add @danielhiversen as codeowner (#18979)
Danielhiversen Dec 4, 2018
8e9c73e
Upgrade switchbot lib (#18980)
Danielhiversen Dec 4, 2018
b900005
New Events and Context Fixes (#18765)
hunterjm Dec 4, 2018
f3d7cc6
downgrade version of client (#18995)
craigjmidwinter Dec 4, 2018
d8a7e9d
Updated Yale Smart Alarm platform to new Yale API (#18990)
domwillcode Dec 4, 2018
75b855e
Lovelace fix: badges are removed from view after update (#18983)
bramkragten Dec 4, 2018
a6511fc
remove the need to have query feature support (#18942)
ticapix Dec 4, 2018
d6a4e10
Tellduslive refactoring (#18780)
fredrike Dec 4, 2018
ab7c52a
Add unnecessary-pass for pylint-update (#18985)
cdce8p Dec 4, 2018
b65bffd
Mock out device tracker configuration loading funcs in Geofency + Own…
balloob Dec 4, 2018
2a0c2d5
Fibaro Light fixes (#18972)
pbalogh77 Dec 4, 2018
3e1ab1b
Sort import order of zha component. (#18993)
Adminiuga Dec 4, 2018
1c99960
Fix VOC configuration resource list (#18992)
bratanon Dec 4, 2018
26dd490
Fix toon operation mode (#18966)
balloob Dec 4, 2018
38b09b1
Remove stale user salts code (#19004)
Eriner Dec 4, 2018
47d48c5
Small refactoring of MQTT switch
emontnemery Dec 4, 2018
f54710c
Fix bug when reconfiguring MQTT availability
emontnemery Dec 4, 2018
a8b5cc8
Lupupy version push to 0.0.17 - will now transmitted state_alarm_trig…
majuss Dec 4, 2018
2680bf8
Update requirement btsmarthub_devicelist==0.1.3 (#18961)
jxwolstenholme Dec 4, 2018
3928d03
Allow checking entity permissions based on devices (#19007)
balloob Dec 5, 2018
a785a1a
update mychevy to 1.0.1
sdague Dec 5, 2018
8c0b50b
Bump waterfurnace to 1.0
sdague Dec 5, 2018
850caef
Add states to panels (#19026)
bramkragten Dec 5, 2018
0e9e253
Fix CI by pinning IDNA (#19038)
balloob Dec 5, 2018
ab9d1a8
Bump waterfurnace to 1.0 (#19040)
balloob Dec 5, 2018
eb317bd
Merge pull request #19036 from sdague/mychevy_1.0.1
balloob Dec 5, 2018
12f222b
Don't wait for answer for webhook register (#19025)
balloob Dec 5, 2018
69fd3aa
Small refactoring of MQTT light (#19009)
emontnemery Dec 5, 2018
578a2cf
Small refactoring of MQTT switch (#19010)
balloob Dec 5, 2018
b31c524
Bump version of elkm1_lib (#19030)
Dec 5, 2018
3627de3
Change error to warning (#19035)
doudz Dec 5, 2018
16e25f2
Catch 'BrokenPipeError' exceptions for ADB commands (#19011)
JeffLIrion Dec 5, 2018
da0542e
Bump python-miio to 0.4.4 (#19042)
rytilahti Dec 5, 2018
bc69309
Add last clean times to xiaomi vacuum (#19043)
rytilahti Dec 5, 2018
0870254
Add support for multiple RainMachine controllers (#18989)
bachya Dec 5, 2018
df346fe
Review comments
emontnemery Dec 5, 2018
af96694
Remove unsupported strong mode of the Xiaomi Air Humidifier CA1 (#18926)
syssi Dec 5, 2018
b2b4712
Remove Instapush notify platform
fabaff Dec 5, 2018
0aee355
Bump pyvizio version (#19048)
photinus Dec 5, 2018
06285d1
Merge pull request #19019 from emontnemery/fix_mqtt_availability
emontnemery Dec 5, 2018
83311df
Add translations
balloob Dec 5, 2018
26a38f1
Updated frontend to 20181205.0
balloob Dec 5, 2018
962358b
Fix cloud const (#19052)
balloob Dec 6, 2018
b71d650
VOC: Update external dependency to fix engine start issue (#19062)
molobrakos Dec 6, 2018
b9ed4b7
Fix saving YAML as JSON with empty array (#19057)
bramkragten Dec 6, 2018
47320ad
Update pyhomematic to 0.1.53 (#19056)
danielperna84 Dec 6, 2018
f0d534c
Implemented unique ID support for Fibaro hub integration (#19055)
pbalogh77 Dec 6, 2018
f198706
Remove Instapush notify platform (#19051)
balloob Dec 6, 2018
72379c1
Update locationsharinglib to 3.0.9 (#19045)
pc-coholic Dec 6, 2018
d4c8024
Add support for more Tibber Pulse data (#19033)
Danielhiversen Dec 6, 2018
4fd4e84
Bumped version to 0.84.0b0
balloob Dec 6, 2018
1b03a35
Updated frontend to 20181207.0
balloob Dec 7, 2018
578fe37
Revert #17745 (#19064)
balloob Dec 6, 2018
3eb646e
Fix missing colorTemperatureInKelvin from Alexa responses (#19069)
mikeage Dec 6, 2018
ff9427d
Force refresh Lovelace (#19073)
bramkragten Dec 7, 2018
da16006
Upgrade aiolifx to 0.6.7 (#19077)
amelchio Dec 7, 2018
393ada0
Bumped version to 0.84.0b1
balloob Dec 7, 2018
945b84a
Updated frontend to 20181210.0
balloob Dec 10, 2018
048f219
Upgrade pyatv to 0.3.12 (#19085)
postlund Dec 7, 2018
e6c224f
Upgrade Tibber lib (#19098)
Danielhiversen Dec 7, 2018
3528d86
Bump skybellpy version to fix api issue (#19100)
nhorvath Dec 7, 2018
76c26da
Lovelace using storage (#19101)
balloob Dec 10, 2018
a5072f0
Remove marking device tracker stale if state is stale (#19133)
arigilder Dec 9, 2018
18bc772
Bumped version to 0.84.0b2
balloob Dec 10, 2018
55aaa89
Updated frontend to 20181210.1
balloob Dec 10, 2018
fa9fe40
Google assistant fix target temp for *F values. (#19083)
marchingphoenix Dec 10, 2018
d7459c7
home-assistant/home-assistant#18645: Fix climate mode mapping.
marchingphoenix Dec 7, 2018
d8f6331
home-assistant/home-assistant#18645: Remove un-used constants.
marchingphoenix Dec 7, 2018
0454a5f
home-assistant/home-assistant#18645: revert heat-cool -> auto change
marchingphoenix Dec 7, 2018
cb874fe
Drop OwnTracks bad packets (#19161)
balloob Dec 10, 2018
e3b1008
Fix lovelace save (#19162)
balloob Dec 10, 2018
2da5a02
Add raw service data to event (#19163)
balloob Dec 10, 2018
e94eb68
Bumped version to 0.84.0b3
balloob Dec 10, 2018
029d006
Updated frontend to 20181211.0
balloob Dec 11, 2018
aa45ff8
Fix cloud defaults (#19172)
balloob Dec 11, 2018
e98476e
Bumped version to 0.84.0b4
balloob Dec 11, 2018
a0bc96c
Revert PR #18602 (#19188)
balloob Dec 12, 2018
404fbe3
Bumped version to 0.84.0
balloob Dec 12, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 11 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,9 @@ omit =
homeassistant/components/hive.py
homeassistant/components/*/hive.py

homeassistant/components/hlk_sw16.py
homeassistant/components/*/hlk_sw16.py

homeassistant/components/homekit_controller/__init__.py
homeassistant/components/*/homekit_controller.py

Expand Down Expand Up @@ -203,6 +206,9 @@ omit =
homeassistant/components/linode.py
homeassistant/components/*/linode.py

homeassistant/components/lightwave.py
homeassistant/components/*/lightwave.py

homeassistant/components/logi_circle.py
homeassistant/components/*/logi_circle.py

Expand Down Expand Up @@ -323,7 +329,8 @@ omit =
homeassistant/components/tahoma.py
homeassistant/components/*/tahoma.py

homeassistant/components/tellduslive.py
homeassistant/components/tellduslive/__init__.py
homeassistant/components/tellduslive/entry.py
homeassistant/components/*/tellduslive.py

homeassistant/components/tellstick.py
Expand Down Expand Up @@ -400,6 +407,8 @@ omit =

homeassistant/components/zha/__init__.py
homeassistant/components/zha/const.py
homeassistant/components/zha/entities/*
homeassistant/components/zha/helpers.py
homeassistant/components/*/zha.py

homeassistant/components/zigbee.py
Expand Down Expand Up @@ -637,7 +646,6 @@ omit =
homeassistant/components/notify/group.py
homeassistant/components/notify/hipchat.py
homeassistant/components/notify/homematic.py
homeassistant/components/notify/instapush.py
homeassistant/components/notify/kodi.py
homeassistant/components/notify/lannouncer.py
homeassistant/components/notify/llamalab_automate.py
Expand Down Expand Up @@ -780,6 +788,7 @@ omit =
homeassistant/components/sensor/pushbullet.py
homeassistant/components/sensor/pvoutput.py
homeassistant/components/sensor/pyload.py
homeassistant/components/sensor/qbittorrent.py
homeassistant/components/sensor/qnap.py
homeassistant/components/sensor/radarr.py
homeassistant/components/sensor/rainbird.py
Expand Down
19 changes: 17 additions & 2 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ homeassistant/components/alarm_control_panel/egardia.py @jeroenterheerdt
homeassistant/components/alarm_control_panel/manual_mqtt.py @colinodell
homeassistant/components/binary_sensor/hikvision.py @mezz64
homeassistant/components/binary_sensor/threshold.py @fabaff
homeassistant/components/binary_sensor/uptimerobot.py @ludeeus
homeassistant/components/camera/yi.py @bachya
homeassistant/components/climate/ephember.py @ttroy50
homeassistant/components/climate/eq3btsmart.py @rytilahti
Expand All @@ -61,9 +62,11 @@ homeassistant/components/cover/group.py @cdce8p
homeassistant/components/cover/template.py @PhracturedBlue
homeassistant/components/device_tracker/asuswrt.py @kennedyshead
homeassistant/components/device_tracker/automatic.py @armills
homeassistant/components/device_tracker/googlehome.py @ludeeus
homeassistant/components/device_tracker/huawei_router.py @abmantis
homeassistant/components/device_tracker/quantum_gateway.py @cisasteelersfan
homeassistant/components/device_tracker/tile.py @bachya
homeassistant/components/device_tracker/traccar.py @ludeeus
homeassistant/components/device_tracker/bt_smarthub.py @jxwolstenholme
homeassistant/components/history_graph.py @andrey-git
homeassistant/components/influx.py @fabaff
Expand Down Expand Up @@ -109,6 +112,7 @@ homeassistant/components/sensor/glances.py @fabaff
homeassistant/components/sensor/gpsd.py @fabaff
homeassistant/components/sensor/irish_rail_transport.py @ttroy50
homeassistant/components/sensor/jewish_calendar.py @tsvi
homeassistant/components/sensor/launch_library.py @ludeeus
homeassistant/components/sensor/linux_battery.py @fabaff
homeassistant/components/sensor/miflora.py @danielhiversen @ChristianKuehnel
homeassistant/components/sensor/min_max.py @fabaff
Expand All @@ -119,6 +123,7 @@ homeassistant/components/sensor/pi_hole.py @fabaff
homeassistant/components/sensor/pollen.py @bachya
homeassistant/components/sensor/pvoutput.py @fabaff
homeassistant/components/sensor/qnap.py @colinodell
homeassistant/components/sensor/ruter.py @ludeeus
homeassistant/components/sensor/scrape.py @fabaff
homeassistant/components/sensor/serial.py @fabaff
homeassistant/components/sensor/seventeentrack.py @bachya
Expand All @@ -128,12 +133,15 @@ homeassistant/components/sensor/sql.py @dgomes
homeassistant/components/sensor/statistics.py @fabaff
homeassistant/components/sensor/swiss*.py @fabaff
homeassistant/components/sensor/sytadin.py @gautric
homeassistant/components/sensor/tautulli.py @ludeeus
homeassistant/components/sensor/time_data.py @fabaff
homeassistant/components/sensor/version.py @fabaff
homeassistant/components/sensor/waqi.py @andrey-git
homeassistant/components/sensor/worldclock.py @fabaff
homeassistant/components/shiftr.py @fabaff
homeassistant/components/spaceapi.py @fabaff
homeassistant/components/switch/switchbot.py @danielhiversen
homeassistant/components/switch/switchmate.py @danielhiversen
homeassistant/components/switch/tplink.py @rytilahti
homeassistant/components/vacuum/roomba.py @pschmitt
homeassistant/components/weather/__init__.py @fabaff
Expand All @@ -157,9 +165,12 @@ homeassistant/components/*/bmw_connected_drive.py @ChristianKuehnel
homeassistant/components/*/broadlink.py @danielhiversen

# C
homeassistant/components/cloudflare.py @ludeeus
homeassistant/components/counter/* @fabaff

# D
homeassistant/components/daikin.py @fredrike @rofrantz
homeassistant/components/*/daikin.py @fredrike @rofrantz
homeassistant/components/*/deconz.py @kane610
homeassistant/components/digital_ocean.py @fabaff
homeassistant/components/*/digital_ocean.py @fabaff
Expand Down Expand Up @@ -204,6 +215,10 @@ homeassistant/components/*/mystrom.py @fabaff
homeassistant/components/openuv/* @bachya
homeassistant/components/*/openuv.py @bachya

# P
homeassistant/components/point/* @fredrike
homeassistant/components/*/point.py @fredrike

# Q
homeassistant/components/qwikswitch.py @kellerza
homeassistant/components/*/qwikswitch.py @kellerza
Expand All @@ -221,8 +236,8 @@ homeassistant/components/*/simplisafe.py @bachya
# T
homeassistant/components/tahoma.py @philklei
homeassistant/components/*/tahoma.py @philklei
homeassistant/components/tellduslive.py @molobrakos @fredrike
homeassistant/components/*/tellduslive.py @molobrakos @fredrike
homeassistant/components/tellduslive/*.py @fredrike
homeassistant/components/*/tellduslive.py @fredrike
homeassistant/components/tesla.py @zabuldon
homeassistant/components/*/tesla.py @zabuldon
homeassistant/components/thethingsnetwork.py @fabaff
Expand Down
5 changes: 0 additions & 5 deletions homeassistant/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,6 @@ def __init__(self, hass: HomeAssistant, store: auth_store.AuthStore,
hass, self._async_create_login_flow,
self._async_finish_login_flow)

@property
def active(self) -> bool:
"""Return if any auth providers are registered."""
return bool(self._providers)

@property
def support_legacy(self) -> bool:
"""
Expand Down
13 changes: 11 additions & 2 deletions homeassistant/auth/auth_store.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Storage for auth models."""
import asyncio
from collections import OrderedDict
from datetime import timedelta
import hmac
Expand All @@ -11,7 +12,7 @@

from . import models
from .const import GROUP_ID_ADMIN, GROUP_ID_READ_ONLY
from .permissions import system_policies
from .permissions import PermissionLookup, system_policies
from .permissions.types import PolicyType # noqa: F401

STORAGE_VERSION = 1
Expand All @@ -34,6 +35,7 @@ def __init__(self, hass: HomeAssistant) -> None:
self.hass = hass
self._users = None # type: Optional[Dict[str, models.User]]
self._groups = None # type: Optional[Dict[str, models.Group]]
self._perm_lookup = None # type: Optional[PermissionLookup]
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY,
private=True)

Expand Down Expand Up @@ -94,6 +96,7 @@ async def async_create_user(
# Until we get group management, we just put everyone in the
# same group.
'groups': groups,
'perm_lookup': self._perm_lookup,
} # type: Dict[str, Any]

if is_owner is not None:
Expand Down Expand Up @@ -269,13 +272,18 @@ def async_log_refresh_token_usage(

async def _async_load(self) -> None:
"""Load the users."""
data = await self._store.async_load()
[ent_reg, data] = await asyncio.gather(
self.hass.helpers.entity_registry.async_get_registry(),
self._store.async_load(),
)

# Make sure that we're not overriding data if 2 loads happened at the
# same time
if self._users is not None:
return

self._perm_lookup = perm_lookup = PermissionLookup(ent_reg)

if data is None:
self._set_defaults()
return
Expand Down Expand Up @@ -374,6 +382,7 @@ async def _async_load(self) -> None:
is_owner=user_dict['is_owner'],
is_active=user_dict['is_active'],
system_generated=user_dict['system_generated'],
perm_lookup=perm_lookup,
)

for cred_dict in data['credentials']:
Expand Down
10 changes: 7 additions & 3 deletions homeassistant/auth/mfa_modules/notify.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
"""
import logging
from collections import OrderedDict
from typing import Any, Dict, Optional, Tuple, List # noqa: F401
from typing import Any, Dict, Optional, List

import attr
import voluptuous as vol

from homeassistant.const import CONF_EXCLUDE, CONF_INCLUDE
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ServiceNotFound
from homeassistant.helpers import config_validation as cv

from . import MultiFactorAuthModule, MULTI_FACTOR_AUTH_MODULES, \
Expand Down Expand Up @@ -314,8 +315,11 @@ async def async_step_setup(
_generate_otp, self._secret, self._count)

assert self._notify_service
await self._auth_module.async_notify(
code, self._notify_service, self._target)
try:
await self._auth_module.async_notify(
code, self._notify_service, self._target)
except ServiceNotFound:
return self.async_abort(reason='notify_service_not_exist')

return self.async_show_form(
step_id='setup',
Expand Down
6 changes: 5 additions & 1 deletion homeassistant/auth/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ class User:
"""A user."""

name = attr.ib(type=str) # type: Optional[str]
perm_lookup = attr.ib(
type=perm_mdl.PermissionLookup, cmp=False,
) # type: perm_mdl.PermissionLookup
id = attr.ib(type=str, factory=lambda: uuid.uuid4().hex)
is_owner = attr.ib(type=bool, default=False)
is_active = attr.ib(type=bool, default=False)
Expand Down Expand Up @@ -66,7 +69,8 @@ def permissions(self) -> perm_mdl.AbstractPermissions:

self._permissions = perm_mdl.PolicyPermissions(
perm_mdl.merge_policies([
group.policy for group in self.groups]))
group.policy for group in self.groups]),
self.perm_lookup)

return self._permissions

Expand Down
12 changes: 9 additions & 3 deletions homeassistant/auth/permissions/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
"""Permissions for Home Assistant."""
import logging
from typing import ( # noqa: F401
cast, Any, Callable, Dict, List, Mapping, Set, Tuple, Union)
cast, Any, Callable, Dict, List, Mapping, Set, Tuple, Union,
TYPE_CHECKING)

import voluptuous as vol

from .const import CAT_ENTITIES
from .models import PermissionLookup
from .types import PolicyType
from .entities import ENTITY_POLICY_SCHEMA, compile_entities
from .merge import merge_policies # noqa


POLICY_SCHEMA = vol.Schema({
vol.Optional(CAT_ENTITIES): ENTITY_POLICY_SCHEMA
})
Expand Down Expand Up @@ -39,13 +42,16 @@ def check_entity(self, entity_id: str, key: str) -> bool:
class PolicyPermissions(AbstractPermissions):
"""Handle permissions."""

def __init__(self, policy: PolicyType) -> None:
def __init__(self, policy: PolicyType,
perm_lookup: PermissionLookup) -> None:
"""Initialize the permission class."""
self._policy = policy
self._perm_lookup = perm_lookup

def _entity_func(self) -> Callable[[str, str], bool]:
"""Return a function that can test entity access."""
return compile_entities(self._policy.get(CAT_ENTITIES))
return compile_entities(self._policy.get(CAT_ENTITIES),
self._perm_lookup)

def __eq__(self, other: Any) -> bool:
"""Equals check."""
Expand Down
32 changes: 29 additions & 3 deletions homeassistant/auth/permissions/entities.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
"""Entity permissions."""
from functools import wraps
from typing import ( # noqa: F401
Callable, Dict, List, Tuple, Union)
from typing import Callable, List, Union # noqa: F401

import voluptuous as vol

from .const import SUBCAT_ALL, POLICY_READ, POLICY_CONTROL, POLICY_EDIT
from .models import PermissionLookup
from .types import CategoryType, ValueType

SINGLE_ENTITY_SCHEMA = vol.Any(True, vol.Schema({
Expand All @@ -15,6 +15,7 @@
}))

ENTITY_DOMAINS = 'domains'
ENTITY_DEVICE_IDS = 'device_ids'
ENTITY_ENTITY_IDS = 'entity_ids'

ENTITY_VALUES_SCHEMA = vol.Any(True, vol.Schema({
Expand All @@ -23,6 +24,7 @@

ENTITY_POLICY_SCHEMA = vol.Any(True, vol.Schema({
vol.Optional(SUBCAT_ALL): SINGLE_ENTITY_SCHEMA,
vol.Optional(ENTITY_DEVICE_IDS): ENTITY_VALUES_SCHEMA,
vol.Optional(ENTITY_DOMAINS): ENTITY_VALUES_SCHEMA,
vol.Optional(ENTITY_ENTITY_IDS): ENTITY_VALUES_SCHEMA,
}))
Expand All @@ -37,7 +39,7 @@ def _entity_allowed(schema: ValueType, key: str) \
return schema.get(key)


def compile_entities(policy: CategoryType) \
def compile_entities(policy: CategoryType, perm_lookup: PermissionLookup) \
-> Callable[[str, str], bool]:
"""Compile policy into a function that tests policy."""
# None, Empty Dict, False
Expand All @@ -58,6 +60,7 @@ def apply_policy_allow_all(entity_id: str, key: str) -> bool:
assert isinstance(policy, dict)

domains = policy.get(ENTITY_DOMAINS)
device_ids = policy.get(ENTITY_DEVICE_IDS)
entity_ids = policy.get(ENTITY_ENTITY_IDS)
all_entities = policy.get(SUBCAT_ALL)

Expand Down Expand Up @@ -85,6 +88,29 @@ def allowed_entity_id_dict(entity_id: str, key: str) \

funcs.append(allowed_entity_id_dict)

if isinstance(device_ids, bool):
def allowed_device_id_bool(entity_id: str, key: str) \
-> Union[None, bool]:
"""Test if allowed device_id."""
return device_ids

funcs.append(allowed_device_id_bool)

elif device_ids is not None:
def allowed_device_id_dict(entity_id: str, key: str) \
-> Union[None, bool]:
"""Test if allowed device_id."""
entity_entry = perm_lookup.entity_registry.async_get(entity_id)

if entity_entry is None or entity_entry.device_id is None:
return None

return _entity_allowed(
device_ids.get(entity_entry.device_id), key # type: ignore
)

funcs.append(allowed_device_id_dict)

if isinstance(domains, bool):
def allowed_domain_bool(entity_id: str, key: str) \
-> Union[None, bool]:
Expand Down
17 changes: 17 additions & 0 deletions homeassistant/auth/permissions/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"""Models for permissions."""
from typing import TYPE_CHECKING

import attr

if TYPE_CHECKING:
# pylint: disable=unused-import
from homeassistant.helpers import ( # noqa
entity_registry as ent_reg,
)


@attr.s(slots=True)
class PermissionLookup:
"""Class to hold data for permission lookups."""

entity_registry = attr.ib(type='ent_reg.EntityRegistry')
Loading