Commit Graph

27360 Commits (968460099a3d7654512bd3f67cee1b16e0b36536)

Author SHA1 Message Date
Paulus Schoutsen 49e6386794 Downloader now supports downloading to subdirs 2014-03-24 18:00:57 -07:00
Paulus Schoutsen 82357b421f Add code-reuse to ensure unique entity ids 2014-03-23 12:31:24 -07:00
Paulus Schoutsen 6063ffeb5b Added WeMo support 2014-03-23 12:03:34 -07:00
Paulus Schoutsen bb771d802d Light color/brightness now exposed and controllable 2014-03-16 15:00:59 -07:00
Paulus Schoutsen 8154e75069 Bugfix for sanitizing filenames 2014-03-15 17:57:16 -07:00
Paulus Schoutsen 3c79a5ce0a Reworked lights under the hood, better decoupling and less API calls 2014-03-15 00:24:28 -07:00
Paulus Schoutsen 7cc9034815 PEP8 and PyLint style fixes 2014-03-11 22:49:54 -07:00
Paulus Schoutsen 75a0498080 Upgraded to use new version of pychromecast 2014-03-11 22:45:05 -07:00
Paulus Schoutsen 28389f6c39 More unicode support added to the core 2014-03-11 22:35:51 -07:00
Paulus Schoutsen 8d23976763 HTTPInterface is now UTF-8 compatible 2014-03-09 23:01:59 -07:00
Paulus Schoutsen 0e97e64397 One time listener ensures it is executed one time 2014-02-14 13:13:37 -08:00
Paulus Schoutsen 4ab362531f Downloader downloads file in seperate thread now so it doesn't block bus queue 2014-02-14 11:57:42 -08:00
Paulus Schoutsen c735e32361 Split out track_point_in_time from track_time_change 2014-02-14 11:34:09 -08:00
Paulus Schoutsen e76062d676 Updated PyChromecast to latest version 2014-02-02 22:08:12 -08:00
Paulus Schoutsen 9bfc3e4357 ThreadPool now uses a Priority instead of FIFO queue 2014-02-02 21:42:57 -08:00
Paulus Schoutsen 1d2d7bb7a0 Device Sun Light Trigger component is more robust now 2014-02-02 21:33:16 -08:00
Paulus Schoutsen 4bcc8c1dfb Sun component made more robust. 2014-02-02 21:20:37 -08:00
Paulus Schoutsen eccf0ff806 Track time change will only wrap listener with checks if needed 2014-01-30 08:31:34 -08:00
Paulus Schoutsen 416816cef7 PEP8 style fixes for HTTPInterface 2014-01-29 22:59:19 -08:00
Paulus Schoutsen e586d8debc Complain if too much jobs queued. 2014-01-29 22:48:35 -08:00
Paulus Schoutsen c438f35bcd Methods defined inside setup make more sense 2014-01-29 22:47:50 -08:00
Paulus Schoutsen 086cf77443 Only wipe old logging file when reason to write new one. 2014-01-29 21:41:03 -08:00
Paulus Schoutsen 24b2fba170 Errors are now being logged to the file home-assistant.log 2014-01-29 18:44:39 -08:00
Paulus Schoutsen 2758d81525 New events and service calls now use a shared thread pool 2014-01-26 18:44:36 -08:00
Paulus Schoutsen 70d2506e01 component base: integrated get_module into is_on. Less global lookups = happier performance 2014-01-23 23:53:18 -08:00
Paulus Schoutsen 77c56b704b Device_sun_light_trigger: bug fix for wrong turn_off call 2014-01-23 23:52:38 -08:00
Paulus Schoutsen 3618181bce Downloader: only import requests during setup 2014-01-23 23:26:25 -08:00
Paulus Schoutsen 097a51abc6 Refactored component 'general' into components.__init__ 2014-01-23 23:26:00 -08:00
Paulus Schoutsen 0fc3d359cb Moved stuff away from core. Made component interface more uniform. 2014-01-23 22:03:13 -08:00
Paulus Schoutsen b387f9d9d7 Browser: If no url is given go to Google.com 2014-01-23 22:02:20 -08:00
Paulus Schoutsen 87817de805 PEP8 style fix for bootstrap 2014-01-23 21:34:08 -08:00
Paulus Schoutsen a2ae1667a5 Added has_service method to Bus 2014-01-23 21:33:54 -08:00
Paulus Schoutsen 8952902d21 Renaming Exceptions to Errors 2014-01-23 21:33:12 -08:00
Paulus Schoutsen 36e28dbc80 Bootstrap only loads modules into memory that it will init 2014-01-23 17:46:29 -08:00
Paulus Schoutsen 7a800a14be Bugfix: Events that had no listeners would not show in log 2014-01-23 16:49:43 -08:00
Paulus Schoutsen 233f2e65ef Chromecast treats HOME_APP as no app running now 2014-01-22 19:46:28 -08:00
Paulus Schoutsen 1ba7d583cc PEP8 styling fix for State 2014-01-22 19:41:51 -08:00
Paulus Schoutsen 659f185252 More improvements to State 2014-01-22 19:40:19 -08:00
Paulus Schoutsen 7c15e24d09 bugfix: set_state updated state if not changed 2014-01-22 10:04:52 -08:00
Paulus Schoutsen 6ce393856a light.turn_on/turn_off/is_on use entity_id instead of object_id 2014-01-20 23:23:02 -08:00
Paulus Schoutsen cd58147fa7 StateMachine.set_state now optimized for setting existing states 2014-01-20 22:58:23 -08:00
Paulus Schoutsen e9e1b007ed RENAME: StateMachine tracks now entities, not categories. 2014-01-19 23:37:40 -08:00
Paulus Schoutsen e7f5953362 Bus and StateMachine are now thread-safe 2014-01-19 21:39:57 -08:00
Paulus Schoutsen ac0ca5d001 Core: Cache external method in local variable for speedup
(inspired by browsing through Python source)
2014-01-19 21:39:13 -08:00
Paulus Schoutsen 2d78e951f7 WebInterface: last changed for statemachine now uses HA date formatting 2014-01-19 21:17:19 -08:00
Paulus Schoutsen 01d81fbd65 Minor style adjustment to make PEP8 happy 2014-01-19 20:56:49 -08:00
Paulus Schoutsen 3c3e7e5825 Events and States are no longer dicts but objects. 2014-01-19 19:10:40 -08:00
Paulus Schoutsen ae2058de70 Referring to group is now always with 'group.' prefix 2014-01-19 17:17:19 -08:00
Paulus Schoutsen aa6d2373a5 Made HueLightControl more robust 2014-01-12 12:35:10 -08:00
Paulus Schoutsen 478d4ad93a Light trigger now looks if the target light group is on to turn on lights instead of all lights. 2014-01-12 11:29:30 -08:00
Paulus Schoutsen 5acf372d15 Use hue_light reachable attribute to see if we can trust the on state. 2014-01-12 11:29:08 -08:00
Paulus Schoutsen b7811e31e3 Updated PyChromecast to latest version 2014-01-05 12:48:55 -08:00
Paulus Schoutsen 697fce9924 Updating documentation 2014-01-04 18:24:30 -08:00
Paulus Schoutsen ac912b2d2d Bugfix: all lights would turn on instead of specified group if person came home. 2014-01-04 18:16:16 -08:00
Paulus Schoutsen 48026c28c1 Added state groups and migrated code base to use them. 2014-01-04 17:55:05 -08:00
Paulus Schoutsen 367433acb2 Some code cleanup 2014-01-04 13:48:17 -08:00
Paulus Schoutsen 6f0e4ef845 Netgear device tracker now uses SOAP api instead of parsing web interface 2013-12-14 01:00:38 -08:00
Paulus Schoutsen e3b00ffc71 Added support for Netgear wireless routers (tested with R6300) 2013-12-11 20:43:26 -08:00
Paulus Schoutsen 9518a2a0b7 Bugfix in shutdown_devices call 2013-12-11 20:29:11 -08:00
Paulus Schoutsen e0c0493b7e Renamed external lib folder to external 2013-12-11 19:34:59 -08:00
Paulus Schoutsen dd271febae Reorg: Merged observers, actors and HTTPInterface into components 2013-12-11 00:07:30 -08:00
Paulus Schoutsen c5f5dcbce2 Minor update pychromecast 2013-12-10 23:09:33 -08:00
Paulus Schoutsen 9531c6643e ChromeCast observer will add friendly name as attribute 2013-12-10 19:45:57 -08:00
Paulus Schoutsen 7637b6ca0e Updated pychromecast to latest branch 2013-12-10 19:45:25 -08:00
Paulus Schoutsen 0449022441 More robust Chromecast observer code 2013-12-10 08:09:29 -08:00
Paulus Schoutsen bbe8f898dc Updated pychromecast to latest version 2013-12-10 08:09:14 -08:00
Paulus Schoutsen 4fde63b1fb Bugfix in turning lights on at sun set 2013-12-10 08:08:57 -08:00
Paulus Schoutsen bbaac3da24 Updated pychromecast to latest version 2013-12-10 00:31:33 -08:00
Paulus Schoutsen e823178e43 Chromecast observer will update state on init 2013-12-10 00:18:12 -08:00
Paulus Schoutsen 8a0ca534a2 Moved actor helper functions to observer package 2013-12-10 00:16:51 -08:00
Paulus Schoutsen d68f8ee309 Chromecast observer will now use the correct name in state machine 2013-12-09 23:51:14 -08:00
Paulus Schoutsen aedcaf04a4 Lights now fully controlled via statemachine and services 2013-12-09 23:41:44 -08:00
Paulus Schoutsen 28a6400d89 Track states of lights in state machine. 2013-12-07 12:57:27 -08:00
Paulus Schoutsen 356f49bcef Change device state categories to contain "device." 2013-12-07 12:54:50 -08:00
Paulus Schoutsen 8124188264 Make sure all device state categories are slugified 2013-12-07 12:54:19 -08:00
Paulus Schoutsen 08f4c70b4e Added tracking state of ChromeCast 2013-12-07 11:42:13 -08:00
Paulus Schoutsen 87a66941d8 Updated PyChromecast to latest version 2013-12-02 22:56:28 -08:00
Paulus Schoutsen 84eeae882c Updated documentation 2013-12-01 19:24:07 -08:00
Paulus Schoutsen 3641d2ca24 EventBus is now Bus that handles Events and Services 2013-11-19 23:48:08 -08:00
Paulus Schoutsen 05e68c3e1e DeviceTracker can now reload tracked devices without restart 2013-11-18 22:45:19 -08:00
Paulus Schoutsen f07622e0d7 Made homeassistant.stop code leaner 2013-11-11 17:46:08 -08:00
Paulus Schoutsen ead057cb04 Added shutdown event 2013-11-11 14:58:57 -08:00
Paulus Schoutsen 483546a31d Code according to PEP8 standard 2013-11-10 16:46:48 -08:00
Paulus Schoutsen 9c9b00c2d4 Added support for keyboard prev and next track buttons 2013-11-10 15:07:55 -08:00
Paulus Schoutsen 860812fa19 Cosmetic adjustments 2013-11-10 09:31:34 -08:00
Paulus Schoutsen 2f65751087 Fix: Event types with periods cannot be fired using API 2013-11-09 14:23:50 -08:00
Paulus Schoutsen 94752f663e Added styling to the debug interface 2013-11-07 23:33:04 -08:00
Paulus Schoutsen 5f4e9d33e0 Return of the fire event and change state forms in debug interface 2013-11-04 20:16:27 -05:00
Paulus Schoutsen 3499814f7f Added static file handler and cleaned up API code 2013-11-04 18:18:39 -05:00
Paulus Schoutsen a60f6754aa EventBus can now report overview of events that have listeners. 2013-11-01 12:28:18 -07:00
Paulus Schoutsen 63a1dfc64f HTTP login form goes to original requested page 2013-11-01 11:38:50 -07:00
Paulus Schoutsen 92f0cb20ff Made API more robust 2013-11-01 11:34:43 -07:00
Paulus Schoutsen 24b317f10d StateMachine.get_state will not throw an exception but return None if category does not exist 2013-11-01 11:29:37 -07:00
Paulus Schoutsen 47d2c04c90 StateMachine.is_state was bugged 2013-10-31 18:41:28 -07:00
Paulus Schoutsen 054d14d5de Bootstrapper now does not need a host option to load Hue 2013-10-31 18:30:45 -07:00
Paulus Schoutsen f9d712d175 API updated to be RESTful 2013-10-29 00:22:38 -07:00
Paulus Schoutsen 102690a770 last_changed value of State is now a string so it can be send over the API 2013-10-28 18:45:35 -07:00
Paulus Schoutsen 308b49b585 Timeout of 1 second was a bit too optimistic for Tomato router 2013-10-28 18:27:08 -07:00
Paulus Schoutsen 58ac9e0aac Forgot to change 1 class when changing State from tuple to dict 2013-10-28 18:26:25 -07:00
Paulus Schoutsen 83d878810e Events and States will now only use JSON serializable attributes 2013-10-27 17:39:54 -07:00
Paulus Schoutsen 1da1713d2f StateMachine.is_state will return False if category does not exist 2013-10-26 22:26:58 +01:00
Paulus Schoutsen 867966234f Added remote EventBus and StateMachine classes 2013-10-25 11:05:58 +01:00
Paulus Schoutsen 5ae08c6f0f Clearified some behavior 2013-10-25 11:05:34 +01:00
Paulus Schoutsen 66d432d0a2 StateMachine now supports attributes for states 2013-10-24 07:57:08 +01:00
Paulus Schoutsen c1819e19a4 Timer is more accurate and wakes up less often 2013-10-24 01:42:16 +01:00
Paulus Schoutsen b43e413de9 More clear logs when dependencies are missing. 2013-10-24 00:32:23 +01:00
Paulus Schoutsen 00c9d22a58 Added listen_once to eventbus 2013-10-24 00:29:33 +01:00
Paulus Schoutsen 42c7f33567 Cleaned up API statemachine 2013-10-24 00:08:28 +01:00
Paulus Schoutsen 7443a5f963 Timeout if Tomato router does not respond for 1 sec 2013-10-23 23:58:48 +01:00
Paulus Schoutsen 05472481c5 Making the config bootstrap more verbose about what started 2013-10-21 22:06:22 -07:00
Paulus Schoutsen 0d156ecbf0 Moved bootstrap code to a seperate bootstrap module. 2013-10-13 10:42:22 -07:00
Paulus Schoutsen 7dfbff31f5 Better formatting of events in debug interface 2013-10-13 09:59:13 -07:00
Paulus Schoutsen 785e17e1e6 Made a few dependencies optional and removed others. 2013-10-13 09:40:38 -07:00
Paulus Schoutsen 6de531db0d Pykeyboard won't import PyHook now when not needed. 2013-10-09 00:14:44 -07:00
Paulus Schoutsen 866a3e852e Added support for multimedia keyboard button simulation for controlling the host. 2013-10-09 00:03:05 -07:00
Paulus Schoutsen b9212514bd Converted Timer and HTTP Interface threads to daemons for cleaner shutdown. 2013-10-08 19:00:10 -07:00
Paulus Schoutsen 71bd03ed8c Cleaned up the core. 2013-10-08 18:50:30 -07:00
Paulus Schoutsen 32b357f5e1 PyLint is a lot happier about the code now. 2013-10-07 23:55:19 -07:00
Paulus Schoutsen c3f96fff87 Added extra error checking and feedback to TomatoDeviceScanner 2013-10-07 20:28:45 -07:00
Paulus Schoutsen df53b05423 PyChromecast properly integrated now. 2013-10-07 20:23:05 -07:00
Paulus Schoutsen 9cfcf43202 Added actor to open url in default browser 2013-10-07 18:47:25 -07:00
Paulus Schoutsen 3b6b201428 Added a file downloader 2013-10-07 00:15:47 -07:00
Paulus Schoutsen 1a22f1678c Catching exceptions from listeners in the eventbus to prevent unexpected crashed to crash the core 2013-10-06 23:06:59 -07:00
Paulus Schoutsen 485ce7b784 Added events to control the lights via the event bus 2013-10-06 17:20:27 -07:00
Paulus Schoutsen 4ce550b432 Better handling if invalid known_devices.csv encountered. 2013-10-06 16:54:46 -07:00
Paulus Schoutsen 59fa58beaf Moved more tracking code to DeviceTracker 2013-10-06 16:14:55 -07:00
Paulus Schoutsen 6efc797df3 Sun setting category didn't include the word sun 2013-10-06 13:20:13 -07:00
Paulus Schoutsen ecb0567d03 Missing doc string for one method. 2013-10-06 13:13:54 -07:00
Paulus Schoutsen 9026a78a66 Better documentation of TomatoDeviceScanner 2013-10-06 13:12:22 -07:00
Paulus Schoutsen 97e82b3808 Next sun rising and sun setting are now in statemachine. 2013-10-06 11:47:24 -07:00
Paulus Schoutsen cb4fce7691 Added title HTML tags to the debug interface 2013-10-05 14:22:46 -07:00
Paulus Schoutsen 5c5fe5051b Now possible to set multiple states through one API call. 2013-10-05 12:28:18 -07:00
Paulus Schoutsen 645513b6ae Changed default API listen port to a less common one. 2013-10-04 21:12:26 -07:00
Paulus Schoutsen 46d7a876c2 Bugfix: Not all lights would turn on when you came home before sunset but after the lights would start fading in. 2013-10-04 20:54:33 -07:00
Paulus Schoutsen 065174db7a Unnecessary check removed from httpinterface 2013-09-30 22:00:49 -07:00
Paulus Schoutsen 561fcd3d15 Added missing doc-string 2013-09-30 19:00:58 -07:00
Paulus Schoutsen e4a6219386 StateMachine sorts states now case insesitive 2013-09-30 19:00:45 -07:00
Paulus Schoutsen 87592ff860 Renaming categories for tracked devices. 2013-09-30 18:59:43 -07:00
Paulus Schoutsen ef1dbac124 HTTPInterface will catch all Requests exceptions now when shutting down. 2013-09-30 18:32:44 -07:00
Paulus Schoutsen a491df761f Integrated core.py into module-init 2013-09-30 00:20:27 -07:00
Paulus Schoutsen a75f396242 HTTP interface won't check for api password on non existing path's anymore but throw 404. 2013-09-29 23:47:53 -07:00
Paulus Schoutsen 77a69016d4 Neater code for Tomato scanning 2013-09-29 16:12:32 -07:00
Paulus Schoutsen f04e9b07a9 State machine categories don't have to be initialized anymore 2013-09-29 16:02:58 -07:00
Paulus Schoutsen c7e36e4fc1 Catching at the wrong timeout exception 2013-09-29 15:54:54 -07:00
Paulus Schoutsen 1988b5ed79 Sometimes the HTTP interface wouldn't manage to shut its threads down. 2013-09-28 14:55:03 -07:00
Paulus Schoutsen cfa27c25a8 Tomato is smarter about updating known devices file 2013-09-28 13:03:11 -07:00
Paulus Schoutsen 11529a473a Data received from Tomato is now parsed using the json decoder instead of exec 2013-09-28 12:40:13 -07:00
Paulus Schoutsen 8ac8700154 Added API 2013-09-28 11:09:36 -07:00
Paulus Schoutsen 85f3f080be Rename HttpInterface.py to httpinterface.py 2013-09-24 18:41:02 -07:00
Paulus Schoutsen a1f238816b Code reorganized into a more Pythonic structure. 2013-09-24 18:39:58 -07:00
Paulus Schoutsen 0981ea49d1 After module renaming one should also update the imports 2013-09-23 00:54:52 -07:00
Paulus Schoutsen 43921cb872 Timer does not fire off an event right away when starting anymore 2013-09-23 00:51:02 -07:00
Paulus Schoutsen 371b4c7708 Starting and stopping of modules now via start and shutdown events 2013-09-23 00:50:29 -07:00
Paulus Schoutsen 6fbadc24e4 Made the data attribute of Event optional 2013-09-23 00:38:36 -07:00
Paulus Schoutsen 4f7e032bb4 Reverting a previous change to ensure a parameter is a list 2013-09-23 00:26:12 -07:00
Paulus Schoutsen 9351acb498 Device tracker won't use a default state but the real state for initial state of each device 2013-09-23 00:19:46 -07:00
Paulus Schoutsen 2d81cc65f7 TomatoDeviceScanner init optimization 2013-09-23 00:18:40 -07:00
Paulus Schoutsen 117b8454c3 Add eventbus listener information to the HTTP interface 2013-09-23 00:16:25 -07:00
Paulus Schoutsen 0e379a2cb5 Fixed a bug where sun set and rise times would not be updated. 2013-09-21 21:37:36 -07:00
Paulus Schoutsen e6bdded90c Rename root module 2013-09-21 18:02:52 -07:00