8000 0.12 by balloob · Pull Request #1001 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

0.12 #1001

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

Merged
merged 305 commits into from
Jan 30, 2016
Merged

0.12 #1001

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
441ae73
Merge pull request #936 from MartinHjelmare/fix-mysensors-sensors
balloob Jan 19, 2016
4f2dc3c
Merge pull request #934 from balloob/mqtt-protocol
balloob Jan 20, 2016
54f65ae
1) artwork_url might be a relative url (such as /imageproxy). in that…
molobrakos Jan 20, 2016
6c5ceaf
Remove sensor state from switch and wemo
pavoni Jan 20, 2016
f4c3ac2
Tidy
pavoni Jan 20, 2016
0de9229
More tidying.
pavoni Jan 20, 2016
58ef69b
less hacky way of getting unique cover art
molobrakos Jan 20, 2016
c8dd969
Merge pull request #939 from molobrakos/squeezebox-fix
balloob Jan 20, 2016
7ad5b3a
Fix bug related to maker_param types
pavoni Jan 20, 2016
d2d421c
Remove ghost debug code.
pavoni Jan 20, 2016
fdc8c45
Merge pull request #940 from balloob/remove_sensor_state
balloob Jan 20, 2016
543190d
sonos: add hosts and interface_addr to sonos config
trollkarlen Jan 19, 2016
89aa3cb
influxdb: fix the need of admin to run
trollkarlen Jan 20, 2016
f6017a1
Add Twitter as a notification platform
HydrelioxGitHub Jan 21, 2016
f677474
Clean some errors
HydrelioxGitHub Jan 21, 2016
f0e4472
Merge pull request #944 from HydrelioxGitHub/twitter_notify
balloob Jan 21, 2016
ec2d9af
Merge pull request #943 from trollkarlen/influxdb-fix
balloob Jan 21, 2016
c3a1193
Fix #863 - Added a check for good pull from OWM and return if the obj…
zmrow Jan 21, 2016
66d23cd
Merge pull request #945 from zmrow/fix-exception-in-openweather
balloob Jan 21, 2016
1098194
Merge pull request #937 from trollkarlen/sonos-multicast
balloob Jan 21, 2016
e66d15b
First drafy of sensor.template.
pavoni Jan 21, 2016
a6f37c0
Revise to not need dependencies (or quoting)!
pavoni Jan 21, 2016
92afcae
Add test.
pavoni Jan 21, 2016
f8072aa
Merge branch 'dev' into sensor_template
pavoni Jan 21, 2016
0bdd293
kodi: remove traceback on state check
trollkarlen Jan 21, 2016
625f694
Merge pull request #953 from trollkarlen/kodi-fix
balloob Jan 21, 2016
f19a46d
yr.no: fix some bugs in the component
trollkarlen Jan 21, 2016
7f143bc
Merge pull request #957 from trollkarlen/yr.no-fix
balloob Jan 21, 2016
71dbd10
let port be optional
maddox Jan 21, 2016
682e346
use custom material icons to represent speaker state
maddox Jan 21, 2016
a3b8122
not using these
maddox Jan 21, 2016
c615272
Tidy.
pavoni Jan 21, 2016
8b5751a
Merge branch 'dev' into sensor_template
pavoni Jan 21, 2016
56ce3e5
Wink siren support
Jan 21, 2016
c95b03f
Fixed style
Jan 21, 2016
0acce86
Merge pull request #958 from balloob/itunes-updates
balloob Jan 22, 2016
a911638
Script: use config service helper
balloob Jan 22, 2016
9fbedd8
Merge pull request #963 from balloob/scrip-service-helper
balloob Jan 22, 2016
6bbbbd9
Update mdi icons
balloob Jan 22, 2016
d59b98e
Added Insteon Support
FreekingDean Jan 19, 2016
9a09265
Merge pull request #962 from FreekingDean/dev
balloob Jan 22, 2016
bb97af1
Allow passive zones
balloob Jan 22, 2016
b1f7b5c
Tidy, add test for ValueException logic.
pavoni Jan 22, 2016
87a9fd8
Handle race condition on startup.
pavoni Jan 22, 2016
143b08d
Add statsd component.
michaelkuty Jan 21, 2016
5ba33bc
Merge pull request #950 from michaelkuty/dev
balloob Jan 22, 2016
ad62591
Change error state to be 'error' rather than 'unknown', trace error.
pavoni Jan 22, 2016
61ca1ab
Merge pull request #948 from balloob/sensor_template
pavoni Jan 22, 2016
613f8d0
Add icons to NetAtmo sensors
HydrelioxGitHub Jan 22, 2016
0042e77
Merge pull request #967 from HydrelioxGitHub/NetAtmo-icons
balloob Jan 22, 2016
0e7088c
smtp: make smtp component thread safe
trollkarlen Jan 23, 2016
a63edcf
Added support for Dimming with lights in Rfxtrx module
turbokongen Jan 23, 2016
d3c6c89
Small intendation fix
turbokongen Jan 23, 2016
43e2b58
Fixing of various test errors
turbokongen Jan 23, 2016
e30915e
flake8 complaint fix
turbokongen Jan 23, 2016
6d52784
Another flake8 fix too long line
turbokongen Jan 23, 2016
837e7af
only query artwork by track_id if id is available (7.7 vs 7.9 version…
molobrakos Jan 23, 2016
b3beb9f
style
molobrakos Jan 23, 2016
492c4b7 < 8000 div class="text-emphasized css-truncate css-truncate-target"> style
molobrakos Jan 23, 2016
ec2b433
should be _id
molobrakos Jan 23, 2016
90ca6a0
fix typo in log message
sdague Jan 23, 2016
17f5a46
Separate LIFX code and HA component
Jan 23, 2016
5803421
Bump version liffylights
Jan 23, 2016
85ebd0a
Merge pull request #977 from sdague/dev
balloob Jan 23, 2016
fbd68b6
Created automation decorator prototype
rmkraus Jan 24, 2016
711f2da
Update liffylights version
Jan 24, 2016
9928639
Fixes for lint
Jan 24, 2016
6d2bca0
Import 3rd party library inside method
Jan 24, 2016
6cb6cbf
Update requirements
Jan 24, 2016
90c392e
Upgrade PyChromecast version
balloob Jan 24, 2016
9d92707
Merge pull request #973 from turbokongen/dev
balloob Jan 24, 2016
03ed85b
Merge pull request #971 from trollkarlen/smtp-fix
balloob Jan 24, 2016
048ec0a
Merge pull request #964 from balloob/passive-zones
balloob Jan 24, 2016
e5497d8
Merge pull request #980 from balloob/upgrade-cast
balloob Jan 24, 2016
706bbea
Add to .coveragerc
Jan 24, 2016
de08f0a
Load YAML config into an ordered dict
balloob Jan 24, 2016
bc19ef6
Move split_entity_id to helpers
balloob Jan 24, 2016
de79a46
Move extract_entity_id to service helpers
balloob Jan 24, 2016
53484e4
Move generate_entity_id to entity helpers
balloob Jan 24, 2016
e541b9b
Merge pull request #981 from balloob/ordered-yaml
balloob Jan 24, 2016
6f31aac
Merge pull request #1 from balloob/dev
turbokongen Jan 24, 2016
1842e59
Updated the entity names for all z-wave devices.
Jan 24, 2016
9f6a1c7
Fix wrongly generated requirements
Jan 24, 2016
2411d1f
Fix wrongly generated requirements
Jan 24, 2016
6df67d2
Send correct command to pyrfxtrx
turbokongen Jan 24, 2016
f6f3f54
flake8 complaint fix
turbokongen Jan 24, 2016
e4fe19f
Merge pull request #986 from turbokongen/dev
balloob Jan 24, 2016
dc5d652
Update version pynetgear
balloob Jan 24, 2016
df450c3
Merge pull request #987 from balloob/update-pynetgear
balloob Jan 24, 2016
afa4fc4
thermostat: split up services
auchter Jan 24, 2016
a0ed469
thermostat: move fan attribute up to thermostat
auchter Jan 12, 2016
df94c90
thermostat: add service to control fan mode
auchter Jan 12, 2016
881c82c
nest: implement fan control
auchter Jan 12, 2016
a65d0f0
Reverting Automation decorator in favor of a new approach.
rmkraus Jan 24, 2016
81dd151
Moved sunrise/sunset tracking to helpers
rmkraus Jan 24, 2016
0f937ca
Initial pass at event decorators
rmkraus Jan 24, 2016
02e634c
Fixed bugs to allow HA to boot again
rmkraus Jan 24, 2016
e7865c1
Merge pull request #990 from molobrakos/squeezebox-fix
molobrakos Jan 24, 2016
ef92940
A few lint fixes to event decorators.
rmkraus Jan 24, 2016
40dbeb0
Another revision on event decorators
rmkraus Jan 24, 2016
5772513
Many updates regarding event decorators
rmkraus Jan 25, 2016
2fa9816
Updated example.py component
rmkraus Jan 25, 2016
54b82ec
Lint fixes and additions to event decorators
rmkraus Jan 25, 2016
f66aeb2
Added event helper tests
rmkraus Jan 25, 2016
d94db53
Add preliminary support for transition time
Jan 25, 2016
74e8446
Bump version of liffylights
Jan 25, 2016
50561ff
Fix long line
Jan 25, 2016
5830da6
Moved service decorator to service helpers
rmkraus Jan 25, 2016
60dd2d4
Merge remote-tracking branch 'balloob/dev' into automation-decorator
rmkraus Jan 25, 2016
3b89102
Fixed lint issue from merge
rmkraus Jan 25, 2016
bcdfc55
Removed service decorator from event decorators
rmkraus Jan 25, 2016
8406f81
Removed decorator callback
rmkraus Jan 25, 2016
ad2e2d9
Merge pull request #979 from rmkraus/automation-decorator
balloob Jan 25, 2016
f6c5389
Allow groups to be used as views
balloob Jan 24, 2016
bb3dd47
Merge pull request #992 from balloob/sections
balloob Jan 25, 2016
4abc5c9
Merge pull request #988 from auchter/thermostat-fan
balloob Jan 25, 2016
069dafa
Update requirements_all
Jan 25, 2016
6c91831
Hide groups when they are views or auto defined
balloob Jan 25, 2016
5a92691
Update to v0.6 of liffylights
Jan 25, 2016
4089a7a
Update requirements_all
Jan 25, 2016
d10a5cf
Update to v0.8.3 of liffylights
Jan 25, 2016
32cfa69
Update requirements_all
Jan 25, 2016
8009542
Add extra debugging
Jan 25, 2016
11120a8
Fix liffylights import
Jan 25, 2016
97f0425
Update requirements_all
Jan 25, 2016
784fea2
Update for new liffylights version
Jan 25, 2016
7cbd780
update vsure version
persandstrom Jan 25, 2016
bb7f923
Update liffylights version
Jan 25, 2016
1397f9e
Fix logging typo
Jan 25, 2016
b99f6c1
Merge pull request #995 from persandstrom/vsure0.4.8
persandstrom Jan 25, 2016
b1ba792
Brightness from HA overrides brightness from HSV conversion
Jan 25, 2016
80c6bf6
bump orvibo version
Jan 25, 2016
d08a181
Merge pull request #994 from happyleavesaoc/orvibo_bump
happyleavesaoc Jan 26, 2016
414aa85
Merge pull request #930 from TangoAlpha/dev
balloob Jan 26, 2016
5c3ad5d
Update frontend
balloob Jan 26, 2016
125ad86
Add views to demo
balloob Jan 26, 2016
b130082
Fix lint issue
balloob Jan 26, 2016
4233c0b
Update frontend with view url sync
balloob Jan 26, 2016
b97de5c
Merge pull request #1000 from balloob/view-url-sync
balloob Jan 26, 2016
c10a86d
Merge branch 'master' into dev
balloob Jan 26, 2016
4c056db
Fix Chrome url sync
balloob Jan 26, 2016
e72f61c
Update docstring
fabaff Jan 26, 2016
f4c9540
Updated teh entity_id generation
Jan 26, 2016
8000
13fbefc
Running periodic tasks
MagnusKnutas Jan 26, 2016
ec5d88b
hourly periodic task
MagnusKnutas Jan 26, 2016
a918be5
test past midnight support for hours
MagnusKnutas Jan 26, 2016
e8e2814
Warnings for not divisible settings
MagnusKnutas Jan 26, 2016
6ae57b5
Some warnings if input is wrong for periodic tasks
MagnusKnutas Jan 26, 2016
9117fa6
Fix adding devices on the fly
MartinHjelmare Jan 26, 2016
726637b
New and improved handling of the matching! Kudos to @balloob
MagnusKnutas Jan 26, 2016
cff77a1
Year periodic test (just to trigger travis but should maybe be here a…
MagnusKnutas Jan 26, 2016
ebd475b
Unused import was the problem
MagnusKnutas Jan 26, 2016
9a79ecf
Remove warnings no longer needed (I think :D)
MagnusKnutas Jan 26, 2016
b13e48b
Merge pull request #999 from MartinHjelmare/fix-not-adding-devices
MartinHjelmare Jan 26, 2016
1f6f2de
Sorry, I was wrong they are needed
MagnusKnutas Jan 26, 2016
6f1f8ff
Merge remote-tracking branch 'upstream/dev' into dev
MagnusKnutas Jan 26, 2016
5b6371e
Merge remote-tracking branch 'origin/dev' into dev
Jan 26, 2016
33b0f4d
Fixes bug in time trigger and adds test for ex. /two
MagnusKnutas Jan 26, 2016
2382dff
pushed test code :) fixed now
MagnusKnutas Jan 26, 2016
d4b4448
Tests for time and a fix for wrong access of _LOGGER
MagnusKnutas Jan 26, 2016
0a4e857
And a test just to see if nothing works if not providing any vars
MagnusKnutas Jan 26, 2016
2c3a6e7
Remove not needed log warning
MagnusKnutas Jan 26, 2016
ca070a3
Dont wrap '/int' parameters with tuple
MagnusKnutas Jan 26, 2016
6add5e3
Remove unused import
MagnusKnutas Jan 26, 2016
1a422ec
Moved common z-wave node functionality to a common z-wave class
Jan 26, 2016
5410a0c
Updgrade to astral 0.9
fabaff Jan 26, 2016
8c6ce21
Upgrade influxdb to 2.11.0
fabaff Jan 26, 2016
271af2c
Upgrade python-telegram-bot to 3.2.0
fabaff Jan 26, 2016
06cf07b
Upgrade blockchain to 1.2.1
fabaff Jan 26, 2016
7aba78f
Update docstrings
fabaff Jan 26, 2016
1dae22a
Fix device_state_attributes
MartinHjelmare Jan 27, 2016
6796219
Merge pull request #1010 from MartinHjelmare/fix-device-attr
MartinHjelmare Jan 27, 2016
a8f0f31
Merge pull request #1009 from fabaff/docstrings
balloob Jan 27, 2016
33a9ec0
Merge pull request #1008 from fabaff/blockchain-upgrade
balloob Jan 27, 2016
821238f
Merge pull request #1007 from fabaff/telegram-upgrade
balloob Jan 27, 2016
80d1ab7
Merge pull request #1006 from fabaff/influxdb-upgrade
balloob Jan 27, 2016
537a778
Merge pull request #1005 from fabaff/astral-upgrade
balloob Jan 27, 2016
2e175b8
Fix unit of measurement
MartinHjelmare Jan 25, 2016
14cd27a
Merge pull request #1011 from MartinHjelmare/fix-unit-of-measurement
MartinHjelmare Jan 27, 2016
88387d3
Merge branch 'pr/78' into dev
balloob Jan 27, 2016
886b581
Merge pull request #1002 from kennedyshead/dev
balloob Jan 27, 2016
1d2cd08
Updated Imports.
Jan 27, 2016
f3f592c
Merge pull request #982 from stefan-jonasson/dev
balloob Jan 27, 2016
ce9f76a
Add onewire to coverage
balloob Jan 27, 2016
232aa79
Add link to docs and update docstrings
fabaff Jan 27, 2016
4bd102d
Add twitter docs
fabaff Jan 27, 2016
94d2f23
Add link to docs and remove configuration details
fabaff Jan 27, 2016
3fc5a60
Add link to docs
fabaff Jan 27, 2016
2c151c6
Update docstring
fabaff Jan 27, 2016
70d95cb
Add link to docs
fabaff Jan 27, 2016
cf7c06d
Update docstring and fix typos
fabaff Jan 27, 2016
87b33d5
Move configuration details to docs
fabaff Jan 27, 2016
2248c27
Add link to docs
fabaff Jan 27, 2016
c750f16
Update docstings
fabaff Jan 27, 2016
b4070cf
Upgrade py-cpuinfo to 0.1.8
fabaff Jan 27, 2016
ef4661f
Upgrade psutil to 3.4.2
fabaff Jan 27, 2016
47498e4
Merge pull request #1016 from fabaff/cpuinfo-upgrade
balloob Jan 27, 2016
ee33aa7
Merge pull request #1017 from fabaff/psutil-upgrade
balloob Jan 27, 2016
c31522e
Logbook service
MagnusKnutas Jan 27, 2016
8b0d198
Cleanup
MagnusKnutas Jan 27, 2016
403b9cb
And with template support
MagnusKnutas Jan 27, 2016
24893bc
Less complex service setup
MagnusKnutas Jan 27, 2016
21ec435
Move Insteon API KEY into configuration.yaml
Jan 28, 2016
3c05c8d
Use validate_config, watch for import exception
Jan 28, 2016
fda88f8
logbook.log the name of the game
MagnusKnutas Jan 28, 2016
dda4f84
Add zigbee components.
flyte Jan 24, 2016
4045fb6
Fix import-before-install of xbee-helper dependency.
flyte Jan 28, 2016
9e7886b
allow monitoring weather at other location than home (such as summer …
molobrakos Jan 28, 2016
1de7dcd
Merge pull request #1025 from molobrakos/yr-position
balloob Jan 28, 2016
9c7b2ce
pygooglevoice-sms support
Jan 29, 2016
ffc06e8
pygooglevoice-sms support
Jan 29, 2016
9ec44fb
Updated googlevoicesms version
Jan 29, 2016
f192a15
Remove unnecessary try around import
Jan 29, 2016
eebb736
Add ability to control dimmable sources
Jan 29, 2016
d6db00b
Merge pull request #1022 from haraldnagel/dev
balloob Jan 29, 2016
cbc6323
Fix imports
balloob Jan 29, 2016
893a14e
Merge pull request #1035 from balloob/fix-imports
balloob Jan 29, 2016
24d84db
Added entity_id and domain
MagnusKnutas Jan 29, 2016
468a8a1
Improve owntracks events, add support for stationary ibeacons.
pavoni Jan 29, 2016
dd7a7f4
Merge pull request #1036 from balloob/owntracks_beacon2
pavoni Jan 29, 2016
72cca0a
ZigBee: Handle case in which Serial port is unable to open
flyte Jan 29, 2016
241a768
ZigBee: Remove extraneous update_ha_state() usage and use it more app…
flyte Jan 29, 2016
c17a4fc
ZigBee: Ensure correct entity types are used for each component.
flyte Jan 29, 2016
902077d
Catch ZigBee exceptions when communicating with the devices and log a…
flyte Jan 29, 2016
575e97a
Refactor unit of measurement
MartinHjelmare Jan 27, 2016
f87c7d6
Merge pull request #1023 from flyte/zigbee-pr
balloob Jan 29, 2016
d6bb6a0
Merge pull request #1020 from kennedyshead/dev
balloob Jan 29, 2016
c5de42e
Merge pull request #1033 from MartinHjelmare/refactor-unit-of-measure…
MartinHjelmare Jan 29, 2016
aaf75c7
Added target support for googlevoice
Jan 29, 2016
a6720f5
Fixed style errors
Jan 29, 2016
ad57f27
Added test exclude in .coveragerc
Jan 29, 2016
80d2f35
First cut mobile beacon tracking.
pavoni Jan 29, 2016
09ef2e1
Add docstring, remove trace.
pavoni Jan 29, 2016
5a7e380
Revise beacon name. Add debug.
pavoni Jan 29, 2016
a3abd8b
Revise tracked beacon name.
pavoni Jan 29, 2016
c5cdf6d
Copy kwargs, remove traces.
pavoni Jan 29, 2016
03e7ac2
Fix typo.
pavoni Jan 29, 2016
515307b
Remove dev/null from build script.
pavoni Jan 29, 2016
9db0987
Refactor s_types and v_types mapping
MartinHjelmare Jan 27, 2016
a8f7bc2
Merge pull request #1034 from MartinHjelmare/refactor-s_v_types
MartinHjelmare Jan 30, 2016
ae7697b
Merge pull request #1037 from balloob/owntracks_mobile_beacons
balloob Jan 30, 2016
05cbe54
Remove owntracks from coverage
balloob Jan 30, 2016
ef132e4
Add tests for color util
Jan 30, 2016
375faa9
Fixed style error
Jan 30, 2016
28f4283
Validate target
Jan 30, 2016
01a743c
Log if target == NULL
Jan 30, 2016
75232c4
Merge pull request #1044 from w1ll1am23/googlevoice
balloob Jan 30, 2016
86f4330
Fix #1046 by correcting platform name
Jan 30, 2016
23d88cd
Merge pull request #1047 from haraldnagel/dev
balloob Jan 30, 2016
9fc62c1
Version bump to 0.12
balloob Jan 30, 2016
File filter

Filter by extension

Filter by extension


Conversations 8000
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ omit =
homeassistant/components/arduino.py
homeassistant/components/*/arduino.py

homeassistant/components/insteon_hub.py
homeassistant/components/*/insteon_hub.py

homeassistant/components/isy994.py
homeassistant/components/*/isy994.py

Expand All @@ -32,6 +35,9 @@ omit =
homeassistant/components/wink.py
homeassistant/components/*/wink.py

homeassistant/components/zigbee.py
homeassistant/components/*/zigbee.py

homeassistant/components/zwave.py
homeassistant/components/*/zwave.py

Expand All @@ -41,6 +47,9 @@ omit =
homeassistant/components/mysensors.py
homeassistant/components/*/mysensors.py

homeassistant/components/nest.py
homeassistant/components/*/nest.py

homeassistant/components/rpi_gpio.py
homeassistant/components/*/rpi_gpio.py

Expand All @@ -57,7 +66,6 @@ omit =
homeassistant/components/device_tracker/luci.py
homeassistant/components/device_tracker/netgear.py
homeassistant/components/device_tracker/nmap_tracker.py
homeassistant/components/device_tracker/owntracks.py
homeassistant/components/device_tracker/snmp.py
homeassistant/components/device_tracker/thomson.py
homeassistant/components/device_tracker/tomato.py
Expand All @@ -66,11 +74,13 @@ omit =
homeassistant/components/discovery.py
homeassistant/components/downloader.py
homeassistant/components/ifttt.py
homeassistant/components/statsd.py
homeassistant/components/influxdb.py
homeassistant/components/keyboard.py
homeassistant/components/light/blinksticklight.py
homeassistant/components/light/hue.py
homeassistant/components/light/hyperion.py
homeassistant/components/light/lifx.py
homeassistant/components/light/limitlessled.py
homeassistant/components/media_player/cast.py
homeassistant/components/media_player/denon.py
Expand All @@ -91,7 +101,9 @@ omit =
homeassistant/components/notify/smtp.py
homeassistant/components/notify/syslog.py
homeassistant/components/notify/telegram.py
homeassistant/components/notify/twitter.py
homeassistant/components/notify/xmpp.py
homeassistant/components/notify/googlevoice.py
homeassistant/components/sensor/arest.py
homeassistant/components/sensor/bitcoin.py
homeassistant/components/sensor/cpuspeed.py
Expand All @@ -102,6 +114,7 @@ omit =
homeassistant/components/sensor/forecast.py
homeassistant/components/sensor/glances.py
homeassistant/components/sensor/netatmo.py
homeassistant/components/sensor/onewire.py
homeassistant/components/sensor/openweathermap.py
homeassistant/components/sensor/rest.py
homeassistant/components/sensor/sabnzbd.py
Expand All @@ -124,7 +137,6 @@ omit =
homeassistant/components/thermostat/heatmiser.py
homeassistant/components/thermostat/homematic.py
homeassistant/components/thermostat/honeywell.py
homeassistant/components/thermostat/nest.py
homeassistant/components/thermostat/proliphix.py
homeassistant/components/thermostat/radiotherm.py

Expand Down
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,16 @@ nosetests.xml

.python-version

# emacs auto backups
*~
*#
*.orig

# venv stuff
pyvenv.cfg
pip-selfcheck.json
venv

# vimmy stuff
*.swp
*.swo
118 changes: 65 additions & 53 deletions config/custom_components/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,28 @@
import logging

from homeassistant.const import STATE_HOME, STATE_NOT_HOME, STATE_ON, STATE_OFF
import homeassistant.loader as loader
from homeassistant.helpers import validate_config
from homeassistant.helpers.event_decorators import \
track_state_change, track_time_change
from homeassistant.helpers.service import service
import homeassistant.components as core
from homeassistant.components import device_tracker
from homeassistant.components import light

# The domain of your component. Should be equal to the name of your component
DOMAIN = "example"

# List of component names (string) your component depends upon
# We depend on group because group will be loaded after all the components that
# initialize devices have been setup.
DEPENDENCIES = ['group']
DEPENDENCIES = ['group', 'device_tracker', 'light']

# Configuration key for the entity id we are targetting
CONF_TARGET = 'target'

# Variable for storing configuration parameters
TARGET_ID = None

# Name of the service that we expose
SERVICE_FLASH = 'flash'

Expand All @@ -53,84 +60,89 @@

def setup(hass, config):
""" Setup example component. """
global TARGET_ID

# Validate that all required config options are given
if not validate_config(config, {DOMAIN: [CONF_TARGET]}, _LOGGER):
return False

target_id = config[DOMAIN][CONF_TARGET]
TARGET_ID = config[DOMAIN][CONF_TARGET]

# Validate that the target entity id exists
if hass.states.get(target_id) is None:
_LOGGER.error("Target entity id %s does not exist", target_id)
if hass.states.get(TARGET_ID) is None:
_LOGGER.error("Target entity id %s does not exist",
TARGET_ID)

# Tell the bootstrapper that we failed to initialize
# Tell the bootstrapper that we failed to initialize and clear the
# stored target id so our functions don't run.
TARGET_ID = None
return False

# We will use the component helper methods to check the states.
device_tracker = loader.get_component('device_tracker')
light = loader.get_component('light')

def track_devices(entity_id, old_state, new_state):
""" Called when the group.all devices change state. """
# Tell the bootstrapper that we initialized successfully
return True

# If anyone comes home and the core is not on, turn it on.
if new_state.state == STATE_HOME and not core.is_on(hass, target_id):

core.turn_on(hass, target_id)
@track_state_change(device_tracker.ENTITY_ID_ALL_DEVICES)
def track_devices(hass, entity_id, old_state, new_state):
""" Called when the group.all devices change state. """
# If the target id is not set, return
if not TARGET_ID:
return

# If all people leave the house and the core is on, turn it off
elif new_state.state == STATE_NOT_HOME and core.is_on(hass, target_id):
# If anyone comes home and the entity is not on, turn it on.
if new_state.state == STATE_HOME and not core.is_on(hass, TARGET_ID):

core.turn_off(hass, target_id)
core.turn_on(hass, TARGET_ID)

# Register our track_devices method to receive state changes of the
# all tracked devices group.
hass.states.track_change(
device_tracker.ENTITY_ID_ALL_DEVICES, track_devices)
# If all people leave the house and the entity is on, turn it off
elif new_state.state == STATE_NOT_HOME and core.is_on(hass, TARGET_ID):

def wake_up(now):
""" Turn it on in the morning if there are people home and
it is not already on. """
core.turn_off(hass, TARGET_ID)

if device_tracker.is_on(hass) and not core.is_on(hass, target_id):
_LOGGER.info('People home at 7AM, turning it on')
core.turn_on(hass, target_id)

# Register our wake_up service to be called at 7AM in the morning
hass.track_time_change(wake_up, hour=7, minute=0, second=0)
@track_time_change(hour=7, minute=0, second=0)
def wake_up(hass, now):
"""
Turn it on in the morning (7 AM) if there are people home and
it is not already on.
"""
if not TARGET_ID:
return

def all_lights_off(entity_id, old_state, new_state):
""" If all lights turn off, turn off. """
if device_tracker.is_on(hass) and not core.is_on(hass, TARGET_ID):
_LOGGER.info('People home at 7AM, turning it on')
core.turn_on(hass, TARGET_ID)

if core.is_on(hass, target_id):
_LOGGER.info('All lights have been turned off, turning it off')
core.turn_off(hass, target_id)

# Register our all_lights_off method to be called when all lights turn off
hass.states.track_change(
light.ENTITY_ID_ALL_LIGHTS, all_lights_off, STATE_ON, STATE_OFF)
@track_state_change(light.ENTITY_ID_ALL_LIGHTS, STATE_ON, STATE_OFF)
def all_lights_off(hass, entity_id, old_state, new_state):
""" If all lights turn off, turn off. """
if not TARGET_ID:
return

def flash_service(call):
""" Service that will turn the target off for 10 seconds
if on and vice versa. """
if core.is_on(hass, TARGET_ID):
_LOGGER.info('All lights have been turned off, turning it off')
core.turn_off(hass, TARGET_ID)

if core.is_on(hass, target_id):
core.turn_off(hass, target_id)

time.sleep(10)
@service(DOMAIN, SERVICE_FLASH)
def flash_service(hass, call):
"""
Service that will turn the target off for 10 seconds if on and vice versa.
"""
if not TARGET_ID:
return

core.turn_on(hass, target_id)
if core.is_on(hass, TARGET_ID):
core.turn_off(hass, TARGET_ID)

else:
core.turn_on(hass, target_id)
time.sleep(10)

time.sleep(10)
core.turn_on(hass, TARGET_ID)

core.turn_off(hass, target_id)
else:
core.turn_on(hass, TARGET_ID)

# Register our service with HASS.
hass.services.register(DOMAIN, SERVICE_FLASH, flash_service)
time.sleep(10)

# Tells the bootstrapper that the component was successfully initialized
return True
core.turn_off(hass, TARGET_ID)
7 changes: 6 additions & 1 deletion homeassistant/bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import homeassistant.loader as loader
import homeassistant.components as core_components
import homeassistant.components.group as group
from homeassistant.helpers import event_decorators, service
from homeassistant.helpers.entity import Entity
from homeassistant.const import (
__version__, EVENT_COMPONENT_LOADED, CONF_LATITUDE, CONF_LONGITUDE,
Expand Down Expand Up @@ -199,6 +200,10 @@ def from_config_dict(config, hass=None, config_dir=None, enable_log=True,

_LOGGER.info('Home Assistant core initialized')

# give event decorators access to HASS
event_decorators.HASS = hass
service.HASS = hass

# Setup the components
for domain in loader.load_order_components(components):
_setup_component(hass, domain, config)
Expand All @@ -223,7 +228,7 @@ def from_config_file(config_path, hass=None, verbose=False, daemon=False,

enable_logging(hass, verbose, daemon, log_rotate_days)

config_dict = config_util.load_config_file(config_path)
config_dict = config_util.load_yaml_config_file(config_path)

return from_config_dict(config_dict, hass, enable_log=False,
skip_pip=skip_pip)
Expand Down
19 changes: 14 additions & 5 deletions homeassistant/components/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
import logging

import homeassistant.core as ha
import homeassistant.util as util
from homeassistant.helpers import extract_entity_ids
from homeassistant.helpers.entity import split_entity_id
from homeassistant.helpers.service import extract_entity_ids
from homeassistant.loader import get_component
from homeassistant.const import (
ATTR_ENTITY_ID, SERVICE_TURN_ON, SERVICE_TURN_OFF)
ATTR_ENTITY_ID, SERVICE_TURN_ON, SERVICE_TURN_OFF, SERVICE_TOGGLE)

_LOGGER = logging.getLogger(__name__)

Expand All @@ -36,7 +36,7 @@ def is_on(hass, entity_id=None):
entity_ids = hass.states.entity_ids()

for entity_id in entity_ids:
domain = util.split_entity_id(entity_id)[0]
domain = split_entity_id(entity_id)[0]

module = get_component(domain)

Expand Down Expand Up @@ -68,6 +68,14 @@ def turn_off(hass, entity_id=None, **service_data):
hass.services.call(ha.DOMAIN, SERVICE_TURN_OFF, service_data)


def toggle(hass, entity_id=None, **service_data):
""" Toggles specified entity. """
if entity_id is not None:
service_data[ATTR_ENTITY_ID] = entity_id

hass.services.call(ha.DOMAIN, SERVICE_TOGGLE, service_data)


def setup(hass, config):
""" Setup general services related to homeassistant. """

Expand All @@ -84,7 +92,7 @@ def handle_turn_service(service):

# Group entity_ids by domain. groupby requires sorted data.
by_domain = it.groupby(sorted(entity_ids),
lambda item: util.split_entity_id(item)[0])
lambda item: split_entity_id(item)[0])

for domain, ent_ids in by_domain:
# We want to block for all calls and only return when all calls< 10000 /td>
Expand All @@ -105,5 +113,6 @@ def handle_turn_service(service):

hass.services.register(ha.DOMAIN, SERVICE_TURN_OFF, handle_turn_service)
hass.services.register(ha.DOMAIN, SERVICE_TURN_ON, handle_turn_service)
hass.services.register(ha.DOMAIN, SERVICE_TOGGLE, handle_turn_service)

return True
14 changes: 2 additions & 12 deletions homeassistant/components/arduino.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@
"""
import logging

try:
from PyMata.pymata import PyMata
except ImportError:
PyMata = None

from homeassistant.helpers import validate_config
from homeassistant.const import (EVENT_HOMEASSISTANT_START,
EVENT_HOMEASSISTANT_STOP)
Expand All @@ -27,18 +22,12 @@
def setup(hass, config):
""" Setup the Arduino component. """

global PyMata # pylint: disable=invalid-name
if PyMata is None:
from PyMata.pymata import PyMata as PyMata_
PyMata = PyMata_

import serial

if not validate_config(config,
{DOMAIN: ['port']},
_LOGGER):
return False

import serial
global BOARD
try:
BOARD = ArduinoBoard(config[DOMAIN]['port'])
Expand Down Expand Up @@ -67,6 +56,7 @@ class ArduinoBoard(object):
""" Represents an Arduino board. """

def __init__(self, port):
from PyMata.pymata import PyMata
self._port = port
self._board = PyMata(self._port, verbose=False)

Expand Down
Loading
0