Skip to content
Merged

0.80.0 #17361

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
254 commits
Select commit Hold shift + click to select a range
1eac640
Working on IGD
StevenLooman Aug 29, 2018
3db766e
Merge remote-tracking branch 'upstream/dev' into igd
StevenLooman Aug 29, 2018
2087972
Working on IGD
StevenLooman Aug 30, 2018
553d3c0
Merge remote-tracking branch 'upstream/dev' into igd
StevenLooman Sep 1, 2018
38318ed
Ensure config_flow is imported
StevenLooman Sep 1, 2018
c9e34e2
Prevent error message when component is actually ok
StevenLooman Sep 1, 2018
50f63ed
Fix not being able to re-add IGD when removed
StevenLooman Sep 1, 2018
8bec4a5
Working on igd
StevenLooman Sep 1, 2018
a4a1754
Move ensure_domain_data
StevenLooman Sep 2, 2018
85c40d2
Linting
StevenLooman Sep 2, 2018
f4a54e2
Changes after review
StevenLooman Sep 3, 2018
6433f2e
Working on igd
StevenLooman Sep 7, 2018
ca7911e
Set ports (hass -> hass) when no ports have been specified
StevenLooman Sep 14, 2018
6588dce
Fix uppercase
StevenLooman Sep 17, 2018
c19665f
Rename igd to upnp
StevenLooman Sep 17, 2018
a7a16e4
Fix tracebacks
StevenLooman Sep 17, 2018
5cb0c92
Fix discovery/config entry handlers
StevenLooman Sep 17, 2018
b770acd
Update requirements_all.txt
StevenLooman Sep 18, 2018
b72499a
Fixes after rename
StevenLooman Sep 18, 2018
6e01ea5
Preserve compatibility with original upnp
StevenLooman Sep 20, 2018
dc75db6
Bumped version to 0.80.0.dev0
balloob Sep 24, 2018
b52e852
Add mode (daily/hourly) to darksky (#16719)
randellhodges Sep 24, 2018
579b77b
Don't warn but info when on dev mode (#16831)
balloob Sep 25, 2018
354c8f3
Bump zm-py to 0.0.3 (#16835)
rohankapoorcom Sep 25, 2018
e78f4d1
Extract lovelace to it's own component (#16816)
balloob Sep 25, 2018
42790d3
Remove discovered MQTT alarm_control_panel device when discovery topi…
emontnemery Sep 25, 2018
90197b6
Remove discovered MQTT light device when discovery topic is cleared (…
emontnemery Sep 25, 2018
069b819
Add unique_id to homematic_cloud (#16828)
sander76 Sep 25, 2018
4f9fc9b
Don't create entity registry in tests (#16838)
balloob Sep 25, 2018
03bce84
Add additional Netatmo public data sensors (#16671)
GP8x Sep 25, 2018
4a4c07a
GitLab-CI sensor integration addition. (#16561)
DanielWinks Sep 25, 2018
2b2502c
Support old tradfri config format (#16841)
balloob Sep 25, 2018
f4974f5
Config entry update data (#16843)
balloob Sep 25, 2018
e4898bb
Allow MQTT discovery (#16842)
balloob Sep 25, 2018
7840b1e
Fix MQTT leaving files behind (#16840)
balloob Sep 25, 2018
01925fd
change unknown to None in Netatmo public (#16845)
Danielhiversen Sep 25, 2018
9ea5afd
Add unique ID and device info to Nest camera (#16846)
balloob Sep 25, 2018
093285f
Remove discovered MQTT binary_sensor device when discovery topic is c…
emontnemery Sep 25, 2018
a1c914d
On removal, only unload config entry if loaded (#16844)
balloob Sep 25, 2018
bc8d323
Add image support to hangouts notifications (#16560)
quazzie Sep 25, 2018
0dbfd77
Remove discovered MQTT climate device when discovery topic is cleared…
emontnemery Sep 25, 2018
399040d
Fix files left behind (#16855)
balloob Sep 25, 2018
eb59f2d
Move MQTT discovery removal tests to platform test files (#16861)
emontnemery Sep 25, 2018
422ccc1
Remove discovered MQTT sensor device when discovery topic is cleared …
emontnemery Sep 25, 2018
c3f58b8
Remove discovered MQTT lock device when discovery topic is cleared (#…
emontnemery Sep 25, 2018
4a265f3
Remove discovered MQTT fan device when discovery topic is cleared (#1…
emontnemery Sep 25, 2018
4501bdb
Remove discovered MQTT cover device when discovery topic is cleared (…
emontnemery Sep 25, 2018
7de0e1e
Add executor job (#16853)
balloob Sep 25, 2018
5a22e7d
Fail if dirty (#16839)
balloob Sep 25, 2018
8e31168
Add support for Opple light (#16765)
jedmeng Sep 25, 2018
7eaf864
Update cover tests (#16832)
cdce8p Sep 25, 2018
b91a061
Add missing __init__ test files (#16871)
cdce8p Sep 25, 2018
dc102a9
Tibber realtime consumption, Tibber pulse (#16870)
Danielhiversen Sep 26, 2018
6490ec8
Upgrade to bimmer_connected 0.5.3 (#16877)
gerard33 Sep 26, 2018
672fc61
aiohttp.ClientSession gets proxy information from HTTP_PROXY/HTTPS_PR…
siom79 Sep 26, 2018
e2a5672
Remove service helper (3) (#16879)
cdce8p Sep 26, 2018
ba2b851
Make ring sync again (#16866)
balloob Sep 26, 2018
bfa1c55
Fix fan_init test (#16865)
cdce8p Sep 26, 2018
3cba2e6
Device Registry Support for iOS Sensors (#16862)
cgarwood Sep 26, 2018
92a5068
Use HA native OAuth2 flow for google assistant components (#16848)
awarecan Sep 26, 2018
bab079f
Add unique_id to Nest Sensors (#16869)
cgarwood Sep 26, 2018
c899875
Fix MQTT discovery (#16864)
balloob Sep 26, 2018
fa98a27
Remove service helper (2) (#16863)
cdce8p Sep 26, 2018
e205092
Revert incorrect check (#16883)
balloob Sep 26, 2018
e586124
Added support for private storage. (#16878)
nickovs Sep 26, 2018
75c3720
Fix example for long-lived access token WS API (#16882)
awarecan Sep 26, 2018
f13f723
Add bitwise operations as template helpers (#16833)
blakeblackshear Sep 26, 2018
917df1a
Telegram_bot polling support proxy_url and proxy_params (Fix #15746) …
Anonym-tsk Sep 26, 2018
98a4b1e
Update language strings (#16884)
cgtobi Sep 26, 2018
d20e0f5
Update frontend to 20180926.0
balloob Sep 26, 2018
732009c
Update translations
balloob Sep 26, 2018
9ab8f78
Don't pass use_env=True (#16896)
balloob Sep 26, 2018
d0ddc28
Revert file mode write_json (#16897)
balloob Sep 26, 2018
dd45e99
Remove service helper (4) (#16892)
cdce8p Sep 26, 2018
4b674b1
Remove unused legacy test helper methods (#16893)
cdce8p Sep 26, 2018
273a7af
Prevent discovered Tradfri while already configured (#16891)
balloob Sep 26, 2018
631ecf5
Lint
balloob Sep 26, 2018
726cf9b
Remove unused import (#16909)
amelchio Sep 26, 2018
96e5acd
Optimize Ring Sensors platform setup (#16886)
awarecan Sep 26, 2018
81d4338
Upgrade aiolifx_effects to 0.2.0 (#16900)
amelchio Sep 26, 2018
24e9c62
Upgrade pysonos to 0.0.3 (#16901)
amelchio Sep 26, 2018
29db43e
Ignore Xiaomi hub callbacks during setup (#16910)
amelchio Sep 27, 2018
da3342f
Update new values coming in for dev registry (#16852)
balloob Sep 27, 2018
ad79dc6
MQTT Light - Do not throw if property is missing from templated MQTT …
emontnemery Sep 27, 2018
2cc6263
Add new services for set/refresh Z-Wave device values (#16638)
blakeblackshear Sep 27, 2018
8d65230
Add (EU-based) Honeywell evohome CH/DHW controller (#16427)
zxdavb Sep 27, 2018
d1ad2cc
Make MQTT platforms config entries (#16904)
OttoWinter Sep 27, 2018
81e21b9
Fix auth redirect (#16914)
balloob Sep 27, 2018
2d104f9
Fix MQTT Config Entry Discovery (#16919)
OttoWinter Sep 27, 2018
d77e886
Bump frontend to 20180927.0
balloob Sep 27, 2018
bac71d3
Update translations
balloob Sep 27, 2018
a7248d4
Handle exception handling websocket command (#16927)
balloob Sep 27, 2018
70b9010
Remove service helper (5) (#16917)
cdce8p Sep 27, 2018
f879ac0
Remove service helper (6) (#16920)
cdce8p Sep 27, 2018
9abdbf3
Rachio component modernization (#16911)
OverloadUT Sep 27, 2018
c9b6567
Remove discovered mqtt_json light entity when discovery is cleared (#…
OttoWinter Sep 27, 2018
720b05c
Fix race between script delay and turn_off (#16923)
amelchio Sep 28, 2018
af89e7c
Move more MQTT platforms to config entries (#16918)
OttoWinter Sep 28, 2018
7d1960b
Add zwave.network_complete_some_dead event (#16894)
janvanhelvoort Sep 28, 2018
4b8c388
Add myself to CODEOWNERS
abmantis Sep 28, 2018
909c3bd
Merge pull request #16954 from abmantis/patch-2
dgomes Sep 28, 2018
c600d28
Override unique_id of NestActivityZoneSensor (#16961)
awarecan Sep 29, 2018
35b6064
Convert fan component to config entry (#16951)
OttoWinter Sep 29, 2018
3ddad83
Add unique_id to MQTT cover (#16950)
OttoWinter Sep 29, 2018
caaf4f5
Fix exception during history_stats startup (#16932)
amelchio Sep 29, 2018
45fdda3
Add unique_id to MQTT fan (#16949)
OttoWinter Sep 29, 2018
70ce9bb
Add pressure sensor device class (#16965)
OttoWinter Sep 29, 2018
8b1bdda
Bump zm-py to 0.0.4 (#16979)
rohankapoorcom Sep 30, 2018
7f47d60
Fix ISY blocking bug (#16978)
OverloadUT Sep 30, 2018
06d959e
Upgrade pytest to 3.8.1 (#16980)
scop Sep 30, 2018
f5632a5
Add webhook + IFTTT example (#16817)
balloob Sep 30, 2018
1b7bfec
Google Maps supports battery level and charging. (#16969)
htotoo Sep 30, 2018
f511920
Merge remote-tracking branch 'upstream/dev' into igd
StevenLooman Sep 30, 2018
0a2b266
Fix MQTT certificates (#16999)
balloob Sep 30, 2018
940d5fb
Add basic support for Tradfri switches (#17007)
ggravlingen Sep 30, 2018
750c967
Homematic cloud device update fix (#17001)
sander76 Sep 30, 2018
38e371c
Async syntax 1, alarm_control_panel & automation & binary_sensor (#17…
cdce8p Oct 1, 2018
8444b9b
Async syntax 2, camera & climate & config (#17016)
cdce8p Oct 1, 2018
ea7b1e4
Update Z-Wave service descriptions to point to proper log file (#17024)
cgarwood Oct 1, 2018
9aaf11d
Async syntax 8/8 (#17022)
cdce8p Oct 1, 2018
121dba6
Async syntax 7, switch & tts & vacuum (#17021)
cdce8p Oct 1, 2018
9e4c8f4
Async syntax 6, sensor (#17020)
cdce8p Oct 1, 2018
3b5e5cb
Async syntax 5, light & lock & remote & scene & telegram & helpers (#…
cdce8p Oct 1, 2018
134eeec
Async syntax 4/8 (#17018)
cdce8p Oct 1, 2018
b24f9f5
Async syntax 3/8 (#17017)
cdce8p Oct 1, 2018
760f822
Fix MQTT discovery (#17004)
OttoWinter Oct 1, 2018
d4cde2b
Upgrade huawei-lte-api to 1.0.16 (#16972)
scop Oct 1, 2018
6159f8b
Fix switch.zoneminder name (#17026)
rohankapoorcom Oct 1, 2018
9edf1e5
Upgrade locationsharinglib to 3.0.3 (#17010)
fabaff Oct 1, 2018
22a80cf
Break up websocket component (#17003)
balloob Oct 1, 2018
3137099
:hammer: update errors (#17029)
timmo001 Oct 1, 2018
68bda1c
Add new device attributes to fritzbox climate (#17027)
hthiery Oct 1, 2018
5bc2e78
Bump Enphase_Envoy dependency for older models (#17032)
DavidDeSloovere Oct 1, 2018
c69a790
Add Hass.io discovery to MQTT (#16962)
balloob Oct 1, 2018
e5c0e43
Update coverage to exclude not tested file (#17039)
cdce8p Oct 1, 2018
f0fbdd6
Send headers with REST switch GET request (#17036)
andersonshatch Oct 1, 2018
b5e3d8c
Async syntax (#17033)
cdce8p Oct 1, 2018
2e6346c
Break up websocket 2 (#17028)
balloob Oct 1, 2018
fbc1c41
Logbook context (#16937)
balloob Oct 1, 2018
4c36ffd
Remove error logging when Sonos shuffle_set is not available (#16921)
amelchio Oct 1, 2018
b0c1c37
Fix long update 'load_power' and 'in_use' for Xiaomi Zegbee Plug (#16…
Anonym-tsk Oct 1, 2018
d732f8e
Changes after review by @MartinHjelmare
StevenLooman Oct 1, 2018
a148f3e
Mind the unit system (fixes #16819) (#16823)
fabaff Oct 1, 2018
b197b8b
Suppress urllib3 header parsing error (#17042)
cgarwood Oct 1, 2018
90f2990
Support code 7 (#17047)
SNoof85 Oct 1, 2018
4d47162
Update pyhomematic to 0.1.50 (#17048)
danielperna84 Oct 1, 2018
c3eff57
Remove alert service helper (#17038)
cdce8p Oct 1, 2018
284d4d4
Add AquaLogic component (#16763)
swilson Oct 2, 2018
8e27629
Update pynetgear to 0.4.2 (fix #14752) (#17064)
MatMaul Oct 2, 2018
1667481
Use Protractor loop in Windows (#17061)
awarecan Oct 2, 2018
1decba0
Proactor policy fix (#17066)
balloob Oct 2, 2018
b0b3620
Added working support for private storage (#16903)
nickovs Oct 2, 2018
13af61e
GeoRSS events sensor refactored (#16939)
exxamalte Oct 2, 2018
90f7126
Remove service helper (8) (#17055)
cdce8p Oct 2, 2018
0954eef
MJPEG Camera Log Filter Fixes (#17050)
cgarwood Oct 2, 2018
71e3047
OpenUV: Fixed issue with missing protection window data (#17051)
bachya Oct 2, 2018
37706c2
Lint
balloob Oct 2, 2018
7f0a50c
async_create_task (#17059)
cdce8p Oct 2, 2018
20601cf
Merge branch 'master' into dev
balloob Oct 2, 2018
11d5671
De-syncing binary_sensor.ping (#17056)
thomasloven Oct 2, 2018
a6f8c3f
Add logging to light updates (#17069)
balloob Oct 2, 2018
19722a0
bump frontend to 20181002.0
balloob Oct 2, 2018
38e2926
Update translations
balloob Oct 2, 2018
31dd327
Catch possible errors from tradfri (#17068)
balloob Oct 2, 2018
06340c9
Allow no movement in vamera.onvif_ptz service (#17065)
thomasloven Oct 2, 2018
8e3a70e
Upgrade youtube_dl to 2018.09.26 (#17079)
fabaff Oct 2, 2018
c78850a
Overhaul of Blink platform (#16942)
fronzbot Oct 3, 2018
15a160a
Bump pyenvisalink (#17086)
Cinntax Oct 3, 2018
4210835
Async response all the things (#17073)
balloob Oct 3, 2018
3cb20c7
Changes after review by @MartinHjelmare
StevenLooman Oct 3, 2018
5d69327
Fix stale docstrings
StevenLooman Oct 3, 2018
2e5eb4d
Add optional headers configuration for scrape (#17085)
dippysan Oct 3, 2018
704c9d8
Add support for Hass.io discovery feature for Add-ons (#17035)
pvizeli Oct 3, 2018
a540273
Keep the repeat mode when setting Sonos shuffle mode (#17083)
amelchio Oct 3, 2018
952a1b3
Smaller steps for Sonos volume up/down (#17080)
amelchio Oct 3, 2018
16cbc2d
Add weather condition code to OpenWeatherMap sensor (#17093)
dYalib Oct 3, 2018
da622ab
Adding myself as blink codeowner (#17096)
fronzbot Oct 3, 2018
467a59a
Change Tile icon to view-grid (#17098)
no2chem Oct 3, 2018
cf5f02b
Fix jewish calendar sensor with language set to english (#17104)
tsvi Oct 3, 2018
aeb2159
Fix counter restore. (#17101)
mvn23 Oct 3, 2018
cf01470
Merge pull request #16300 from StevenLooman/igd
dgomes Oct 3, 2018
2b3019b
Support multiple accounts in Tile, use device identifiers (#17108)
no2chem Oct 3, 2018
04fdde0
Bumps simplisafe-python to 3.1.2 (#16931)
bachya Oct 4, 2018
abd329d
Upgrade pytest to 3.8.2 (#17125)
scop Oct 4, 2018
6a0c9a7
Fix sonos async use (#17099)
MartinHjelmare Oct 4, 2018
3abdf21
Homekit controller reconnect (#17060)
emlove Oct 4, 2018
05d8c57
Tibber component and notify (#17062)
Danielhiversen Oct 4, 2018
cc1891e
Add time created to persistent notifications. (#17121)
jeradM Oct 4, 2018
a559c06
Make it easier for auth to consume newer formats (#17127)
balloob Oct 4, 2018
178bf73
Add new component fritzbox binary_sensor (#17057)
hthiery Oct 4, 2018
0d93bf9
Update xiaomi lib (#17129)
Danielhiversen Oct 4, 2018
ae0dd33
Add update service to Google Travel Sensor (#17092)
arsaboo Oct 4, 2018
b61a250
Fix upnp component l10n error (#17132)
awarecan Oct 4, 2018
c997671
Take timezone into consideration when calulating Zmanim. Partial fix …
tsvi Oct 4, 2018
0cfbb9c
Allow config entry setup to raise not ready (#17135)
balloob Oct 4, 2018
b92b24e
Webhook component - pass headers to webhook handler (#17091)
kirichkov Oct 4, 2018
02bf07d
Add timeout and fix oscillations on Samsung TV component (#17102)
anapaulagomes Oct 4, 2018
769dda7
Remove discovery (#17070)
balloob Oct 4, 2018
52ff232
Bugfix invalid entity_config parameter HomeKit (#17143)
cdce8p Oct 4, 2018
b55c7a5
verisure configurable polling (#17144)
persandstrom Oct 4, 2018
ce1e8f8
YesssSMS handling more errors, upgrade to version 0.2.3 (#17052)
flowolf Oct 4, 2018
acf684d
Added OpenUV CODEOWNERS info (#17149)
bachya Oct 5, 2018
aec320d
Fix a typo (#17147)
gerard33 Oct 5, 2018
4218efd
Cleanly stop tradfri on shutdown (#17114)
lwis Oct 5, 2018
a8f5e86
Fix zoneminder zms_url construction (#17150)
rohankapoorcom Oct 5, 2018
2e62afa
Added warning to HomeKit component (#16807)
Julius2342 Oct 5, 2018
37a47b5
Add faucet, shower, sprinkler, valve to HomeKit (#17145)
cdce8p Oct 5, 2018
29c3f16
Fix miflora connection errors during platform setup (#16798)
PaulAnnekov Oct 5, 2018
13aa935
Discover Danfoss/devolo RS Room Sensor thermostat (#17153)
prophit987 Oct 5, 2018
d1636da
@danielhiversen as codeowner for Tibber (#17154)
prophit987 Oct 5, 2018
92e2806
Update frontend to 20181005.0
balloob Oct 5, 2018
0c77052
Update translations
balloob Oct 5, 2018
88c0a92
Bumped version to 0.80.0b0
balloob Oct 5, 2018
738089c
Fix incorrect yaml in hangouts (#17169)
balloob Oct 5, 2018
7a22fbe
Bumped version to 0.80.0b1
balloob Oct 5, 2018
31b1b0c
Update frontend to 20181007.0
balloob Oct 7, 2018
4cffef7
Update translations
balloob Oct 7, 2018
c722091
Fix data used for logbook (#17172)
balloob Oct 5, 2018
7b176aa
Fix device_tracker service call & cleanup (#17173)
cdce8p Oct 5, 2018
3338ebd
Bugfix switch flux - light service call (#17187)
cdce8p Oct 6, 2018
b872cb9
Upgrade aiolifx_effects to 0.2.1 (#17188)
amelchio Oct 6, 2018
7369af0
Verisure standard config for scan interval (#17192)
persandstrom Oct 6, 2018
5fcea07
Init sub-components using global var. (#17220)
mbrrg Oct 7, 2018
bd4ff6f
Bumped version to 0.80.0b2
balloob Oct 7, 2018
6be5220
Prevent accidental device reg override (#17136)
balloob Oct 8, 2018
9e38693
MyQ cover return unknown state if not available (#17207)
schmittx Oct 8, 2018
6671cbb
Fix potential MQTT discovery race condition (#17208)
OttoWinter Oct 8, 2018
3a6eac2
Fix SPC (#17236)
balloob Oct 8, 2018
2e12006
Guard for bad device info (#17238)
balloob Oct 8, 2018
a372053
updated georss-client library to 0.3 (#17239)
exxamalte Oct 8, 2018
4d3d516
Bumped version to 0.80.0b3
balloob Oct 8, 2018
429f09d
Add a webhook automation trigger (#17246)
balloob Oct 8, 2018
eb7db1f
block external IP (#17248)
balloob Oct 8, 2018
b59d69f
Fix ambient light state of the Philips Eyecare Lamp (Closes: #16269) …
syssi Oct 9, 2018
089e15e
Add defaults, fixing #17229 (#17261)
StevenLooman Oct 9, 2018
1a76603
Remove warning on script delay (#17264)
amelchio Oct 9, 2018
a8a21ee
Bumped version to 0.80.0b4
balloob Oct 9, 2018
83dec71
Update translations
balloob Oct 10, 2018
3f28b30
Hassio auth (#17274)
pvizeli Oct 10, 2018
951d715
Fix hassio discovery (#17275)
pvizeli Oct 10, 2018
1d78393
fixed 'on_startup() takes 0 positional arguments but 1 was given' (#1…
PaulAnnekov Oct 10, 2018
fa3f6ca
Bumped version to 0.80.0b5
balloob Oct 10, 2018
cfc5ebb
Update frontend
balloob Oct 12, 2018
f47e080
Update translations
balloob Oct 12, 2018
d199f57
Logbook: filter by entity and period (#17095)
Anonym-tsk Oct 11, 2018
05ae8f9
Fix samsung bug (#17285)
arsaboo Oct 9, 2018
8778b70
Allow tradfri groups for new imported entries (#17310)
MartinHjelmare Oct 11, 2018
bc036cc
Fix auth for hass.io (#17318)
pvizeli Oct 10, 2018
edb3722
Hass.io auth/sso part2 (#17324)
pvizeli Oct 11, 2018
cd29b47
Bumped version to 0.80.0
balloob Oct 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
  •  
  •  
  •  
20 changes: 15 additions & 5 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ omit =
homeassistant/components/apple_tv.py
homeassistant/components/*/apple_tv.py

homeassistant/components/aqualogic.py
homeassistant/components/*/aqualogic.py

homeassistant/components/arduino.py
homeassistant/components/*/arduino.py

Expand All @@ -53,7 +56,7 @@ omit =
homeassistant/components/bbb_gpio.py
homeassistant/components/*/bbb_gpio.py

homeassistant/components/blink.py
homeassistant/components/blink/*
homeassistant/components/*/blink.py

homeassistant/components/bloomsky.py
Expand Down Expand Up @@ -105,8 +108,11 @@ omit =
homeassistant/components/envisalink.py
homeassistant/components/*/envisalink.py

homeassistant/components/evohome.py
homeassistant/components/*/evohome.py

homeassistant/components/fritzbox.py
homeassistant/components/switch/fritzbox.py
homeassistant/components/*/fritzbox.py

homeassistant/components/ecovacs.py
homeassistant/components/*/ecovacs.py
Expand Down Expand Up @@ -310,6 +316,9 @@ omit =

homeassistant/components/*/thinkingcleaner.py

homeassistant/components/tibber/*
homeassistant/components/*/tibber.py

homeassistant/components/toon.py
homeassistant/components/*/toon.py

Expand Down Expand Up @@ -510,6 +519,7 @@ omit =
homeassistant/components/light/lw12wifi.py
homeassistant/components/light/mystrom.py
homeassistant/components/light/nanoleaf_aurora.py
homeassistant/components/light/opple.py
homeassistant/components/light/osramlightify.py
homeassistant/components/light/piglow.py
homeassistant/components/light/rpi_gpio_pwm.py
Expand Down Expand Up @@ -620,7 +630,6 @@ omit =
homeassistant/components/notify/telstra.py
homeassistant/components/notify/twitter.py
homeassistant/components/notify/xmpp.py
homeassistant/components/notify/yessssms.py
homeassistant/components/nuimo_controller.py
homeassistant/components/prometheus.py
homeassistant/components/rainbird.py
Expand Down Expand Up @@ -679,6 +688,7 @@ omit =
homeassistant/components/sensor/fritzbox_netmonitor.py
homeassistant/components/sensor/gearbest.py
homeassistant/components/sensor/geizhals.py
homeassistant/components/sensor/gitlab_ci.py
homeassistant/components/sensor/gitter.py
homeassistant/components/sensor/glances.py
homeassistant/components/sensor/google_travel_time.py
Expand All @@ -687,6 +697,7 @@ omit =
homeassistant/components/sensor/haveibeenpwned.py
homeassistant/components/sensor/hp_ilo.py
homeassistant/components/sensor/htu21d.py
homeassistant/components/sensor/upnp.py
homeassistant/components/sensor/imap_email_content.py
homeassistant/components/sensor/imap.py
homeassistant/components/sensor/influxdb.py
Expand All @@ -709,6 +720,7 @@ omit =
homeassistant/components/sensor/mqtt_room.py
homeassistant/components/sensor/mvglive.py
homeassistant/components/sensor/nederlandse_spoorwegen.py
homeassistant/components/sensor/netatmo_public.py
homeassistant/components/sensor/netdata.py
homeassistant/components/sensor/netdata_public.py
homeassistant/components/sensor/neurio_energy.py
Expand Down Expand Up @@ -764,15 +776,13 @@ omit =
homeassistant/components/sensor/tank_utility.py
homeassistant/components/sensor/ted5000.py
homeassistant/components/sensor/temper.py
homeassistant/components/sensor/tibber.py
homeassistant/components/sensor/time_date.py
homeassistant/components/sensor/torque.py
homeassistant/components/sensor/trafikverket_weatherstation.py
homeassistant/components/sensor/transmission.py
homeassistant/components/sensor/travisci.py
homeassistant/components/sensor/twitch.py
homeassistant/components/sensor/uber.py
homeassistant/components/sensor/upnp.py
homeassistant/components/sensor/ups.py
homeassistant/components/sensor/uscis.py
homeassistant/components/sensor/vasttrafik.py
Expand Down
12 changes: 9 additions & 3 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ homeassistant/components/hassio.py @home-assistant/hassio
# Individual components
homeassistant/components/alarm_control_panel/egardia.py @jeroenterheerdt
homeassistant/components/alarm_control_panel/manual_mqtt.py @colinodell
homeassistant/components/alarm_control_panel/simplisafe.py @bachya
homeassistant/components/binary_sensor/hikvision.py @mezz64
homeassistant/components/bmw_connected_drive.py @ChristianKuehnel
homeassistant/components/camera/yi.py @bachya
Expand All @@ -50,6 +51,7 @@ homeassistant/components/climate/sensibo.py @andrey-git
homeassistant/components/cover/group.py @cdce8p
homeassistant/components/cover/template.py @PhracturedBlue
homeassistant/components/device_tracker/automatic.py @armills
homeassistant/components/device_tracker/huawei_router.py @abmantis
homeassistant/components/device_tracker/tile.py @bachya
homeassistant/components/history_graph.py @andrey-git
homeassistant/components/light/lifx.py @amelchio
Expand Down Expand Up @@ -80,19 +82,21 @@ homeassistant/components/sensor/qnap.py @colinodell
homeassistant/components/sensor/sma.py @kellerza
homeassistant/components/sensor/sql.py @dgomes
homeassistant/components/sensor/sytadin.py @gautric
homeassistant/components/sensor/tibber.py @danielhiversen
homeassistant/components/sensor/upnp.py @dgomes
homeassistant/components/sensor/waqi.py @andrey-git
homeassistant/components/switch/tplink.py @rytilahti
homeassistant/components/vacuum/roomba.py @pschmitt
homeassistant/components/xiaomi_aqara.py @danielhiversen @syssi

homeassistant/components/*/axis.py @kane610
homeassistant/components/blink/* @fronzbot
homeassistant/components/*/blink.py @fronzbot
homeassistant/components/*/bmw_connected_drive.py @ChristianKuehnel
homeassistant/components/*/broadlink.py @danielhiversen
homeassistant/components/*/deconz.py @kane610
homeassistant/components/ecovacs.py @OverloadUT
homeassistant/components/*/ecovacs.py @OverloadUT
homeassistant/components/edp_redy.py @abmantis
homeassistant/components/*/edp_redy.py @abmantis
homeassistant/components/eight_sleep.py @mezz64
homeassistant/components/*/eight_sleep.py @mezz64
homeassistant/components/hive.py @Rendili @KJonline
Expand All @@ -106,7 +110,7 @@ homeassistant/components/konnected.py @heythisisnate
homeassistant/components/*/konnected.py @heythisisnate
homeassistant/components/matrix.py @tinloaf
homeassistant/components/*/matrix.py @tinloaf
homeassistant/components/openuv.py @bachya
homeassistant/components/openuv/* @bachya
homeassistant/components/*/openuv.py @bachya
homeassistant/components/qwikswitch.py @kellerza
homeassistant/components/*/qwikswitch.py @kellerza
Expand All @@ -119,6 +123,8 @@ homeassistant/components/tesla.py @zabuldon
homeassistant/components/*/tesla.py @zabuldon
homeassistant/components/tellduslive.py @molobrakos @fredrike
homeassistant/components/*/tellduslive.py @molobrakos @fredrike
homeassistant/components/tibber/* @danielhiversen
homeassistant/components/*/tibber.py @danielhiversen
homeassistant/components/*/tradfri.py @ggravlingen
homeassistant/components/upcloud.py @scop
homeassistant/components/*/upcloud.py @scop
Expand Down
27 changes: 21 additions & 6 deletions homeassistant/auth/auth_store.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"""Storage for auth models."""
from collections import OrderedDict
from datetime import timedelta
import hmac
from logging import getLogger
from typing import Any, Dict, List, Optional # noqa: F401
import hmac

from homeassistant.auth.const import ACCESS_TOKEN_EXPIRATION
from homeassistant.core import HomeAssistant, callback
Expand All @@ -28,7 +28,8 @@ def __init__(self, hass: HomeAssistant) -> None:
"""Initialize the auth store."""
self.hass = hass
self._users = None # type: Optional[Dict[str, models.User]]
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY)
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY,
private=True)

async def async_get_users(self) -> List[models.User]:
"""Retrieve all users."""
Expand Down Expand Up @@ -213,14 +214,24 @@ async def _async_load(self) -> None:
if self._users is not None:
return

users = OrderedDict() # type: Dict[str, models.User]

if data is None:
self._users = users
self._set_defaults()
return

users = OrderedDict() # type: Dict[str, models.User]

# When creating objects we mention each attribute explicetely. This
# prevents crashing if user rolls back HA version after a new property
# was added.

for user_dict in data['users']:
users[user_dict['id']] = models.User(**user_dict)
users[user_dict['id']] = models.User(
name=user_dict['name'],
id=user_dict['id'],
is_owner=user_dict['is_owner'],
is_active=user_dict['is_active'],
system_generated=user_dict['system_generated'],
)

for cred_dict in data['credentials']:
users[cred_dict['user_id']].credentials.append(models.Credentials(
Expand Down Expand Up @@ -340,3 +351,7 @@ def _data_to_save(self) -> Dict:
'credentials': credentials,
'refresh_tokens': refresh_tokens,
}

def _set_defaults(self) -> None:
"""Set default values for auth store."""
self._users = OrderedDict() # type: Dict[str, models.User]
2 changes: 1 addition & 1 deletion homeassistant/auth/mfa_modules/notify.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def __init__(self, hass: HomeAssistant, config: Dict[str, Any]) -> None:
super().__init__(hass, config)
self._user_settings = None # type: Optional[_UsersDict]
self._user_store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY)
STORAGE_VERSION, STORAGE_KEY, private=True)
self._include = config.get(CONF_INCLUDE, [])
self._exclude = config.get(CONF_EXCLUDE, [])
self._message_template = config[CONF_MESSAGE]
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/auth/mfa_modules/totp.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def __init__(self, hass: HomeAssistant, config: Dict[str, Any]) -> None:
super().__init__(hass, config)
self._users = None # type: Optional[Dict[str, str]]
self._user_store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY)
STORAGE_VERSION, STORAGE_KEY, private=True)

@property
def input_schema(self) -> vol.Schema:
Expand Down
18 changes: 8 additions & 10 deletions homeassistant/auth/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ class User:
"""A user."""

name = attr.ib(type=str) # type: Optional[str]
id = attr.ib(type=str, default=attr.Factory(lambda: uuid.uuid4().hex))
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)
system_generated = attr.ib(type=bool, default=False)

# List of credentials of a user.
credentials = attr.ib(
type=list, default=attr.Factory(list), cmp=False
type=list, factory=list, cmp=False
) # type: List[Credentials]

# Tokens associated with a user.
refresh_tokens = attr.ib(
type=dict, default=attr.Factory(dict), cmp=False
type=dict, factory=dict, cmp=False
) # type: Dict[str, RefreshToken]


Expand All @@ -48,12 +48,10 @@ class RefreshToken:
validator=attr.validators.in_((
TOKEN_TYPE_NORMAL, TOKEN_TYPE_SYSTEM,
TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN)))
id = attr.ib(type=str, default=attr.Factory(lambda: uuid.uuid4().hex))
created_at = attr.ib(type=datetime, default=attr.Factory(dt_util.utcnow))
token = attr.ib(type=str,
default=attr.Factory(lambda: generate_secret(64)))
jwt_key = attr.ib(type=str,
default=attr.Factory(lambda: generate_secret(64)))
id = attr.ib(type=str, factory=lambda: uuid.uuid4().hex)
created_at = attr.ib(type=datetime, factory=dt_util.utcnow)
token = attr.ib(type=str, factory=lambda: generate_secret(64))
jwt_key = attr.ib(type=str, factory=lambda: generate_secret(64))

last_used_at = attr.ib(type=Optional[datetime], default=None)
last_used_ip = attr.ib(type=Optional[str], default=None)
Expand All @@ -69,7 +67,7 @@ class Credentials:
# Allow the auth provider to store data to represent their auth.
data = attr.ib(type=dict)

id = attr.ib(type=str, default=attr.Factory(lambda: uuid.uuid4().hex))
id = attr.ib(type=str, factory=lambda: uuid.uuid4().hex)
is_new = attr.ib(type=bool, default=True)


Expand Down
3 changes: 2 additions & 1 deletion homeassistant/auth/providers/homeassistant.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ class Data:
def __init__(self, hass: HomeAssistant) -> None:
"""Initialize the user data store."""
self.hass = hass
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY)
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY,
private=True)
self._data = None # type: Optional[Dict[str, Any]]

async def async_load(self) -> None:
Expand Down
Loading