Paulus Schoutsen
b682e48e12
Entity service ( #15991 )
...
* Add entity service helper
* Use entity service helper
* Context
2018-08-16 09:50:11 +02:00
Ville Skyttä
2f7b79764a
More pylint 2 fixes ( #15565 )
...
## Description:
More fixes flagged by pylint 2 that don't hurt to have before the actual pylint 2 upgrade (which I'll submit soon).
## Checklist:
- [ ] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
2018-07-20 11:45:20 +03:00
Paulus Schoutsen
1128104281
Adhere to scan_interval in platforms when setup via config entry ( #14969 )
2018-06-15 16:59:13 +02:00
Paulus Schoutsen
f47572d3c0
Allow platform unloading ( #13784 )
...
* Allow platform unloading
* Add tests
* Add last test
2018-04-12 14:28:54 +02:00
Paulus Schoutsen
73de749411
Use config entry to setup platforms ( #13752 )
...
* Use config entry to setup platforms
* Rename to async_forward_entry
* Add tests
* Catch if platform not exists for entry
2018-04-09 10:09:08 -04:00
Paulus Schoutsen
40d7857f3b
Prepare entity component for config entries ( #13730 )
...
* Prepare entity component for config entries
* Return in time
2018-04-07 23:04:50 -04:00
Julius Mittenzwei
16cb7388ee
Removing asyncio.coroutine syntax from HASS core ( #12509 )
...
* changed asyncio.coroutine syntax to new async def/await
* removed py34 from tox environment
* reverted some changes within entity.py
* -
* reverted changes within bootstrap.py
* reverted changes within discovery.py
* switched decorators
* Reverted change within aiohttp_client.py
* reverted change within logging.py
* switched decorators
* Await lock properly
* removed asyncio.coroutine from test
2018-02-25 03:38:46 -08:00
Paulus Schoutsen
17e5740a0c
Allow overriding name via entity registry ( #12292 )
...
* Allow overriding name via entity registry
* Update requirements
2018-02-11 09:16:01 -08:00
Paulus Schoutsen
5601fbdc7a
Entity layer cleanup ( #12237 )
...
* Simplify entity update
* Split entity platform from entity component
* Decouple entity platform from entity component
* Always include unit of measurement again
* Lint
* Fix test
2018-02-08 12:16:51 +01:00
Paulus Schoutsen
e51427b284
Entity registry ( #11979 )
...
* Entity#unique_id defaults to None
* Initial commit entity registry
* Clean up unique_id property
* Lint
* Add tests to entity component
* Lint
* Restore some unique ids
* Spelling
* Remove use of IP address for unique ID
* Add tests
* Add tests
* Fix tests
* Add some docs
* Add one more test
* Fix new test…
2018-01-30 10:39:39 +01:00
Paulus Schoutsen
183e0543b4
Clean up entity component ( #11691 )
...
* Clean up entity component
* Lint
* List -> Tuple
* Add Entity.async_remove back
* Unflake setting up group test
2018-01-22 22:54:41 -08:00
Adam Mills
aa6b37912a
Fix async missing decorators ( #10628 )
2017-11-16 21:03:05 -08:00
Pascal Vizeli
b292a4af3f
EntityComponent: revert warning ( #10078 )
...
* Add warning back
* fix lint
2017-10-23 17:39:50 +02:00
Pascal Vizeli
4bf1972393
Remove warning
2017-10-23 08:58:02 +02:00
Pascal Vizeli
56cbfb5f2a
Fix device update / entity_id with names ( #10029 )
...
* Fix device update
* Add tests
* add test for disabled warning
2017-10-22 08:40:00 -07:00
Pascal Vizeli
c1b197419d
Fix async probs ( #9924 )
...
* Update entity.py
* Update entity_component.py
* Update entity_component.py
* Update __init__.py
* Update entity_component.py
* Update entity_component.py
* Update entity.py
* cleanup entity
* Update entity_component.py
* Update entity_component.py
* Fix names & comments / fix tests
* Revert deadlock protection
* Add tests for entity
* Add test fix name
* Update other code
* Fix lint
* Remove restore state from template entities
* Lint
2017-10-19 10:56:25 +02:00
Paulus Schoutsen
d73b695e73
EntityComponent to retry platforms that are not ready yet ( #8209 )
...
* Add PlatformNotReady Exception
* lint
* Remove cap, adjust algorithm
2017-06-26 09:41:48 -07:00
Paulus Schoutsen
18935440ed
Fix EntityComponent handle entities without a name ( #8065 )
...
* Fix EntityComponent handle entities without a name
* Implement solution by Anders
2017-06-17 10:50:59 -07:00
Pascal Vizeli
814834512a
Group service / dynamic handling ( #7971 )
...
* Add Service to group
* Finish service
* Add service functions
* fix lint
* Address paulus comments
* fix lint & cleanup
* fix lint
* fix lint
* fix lint p3
* add test for check group
* add more tests
* fix lint
* Update service.yaml
* Fix order for tests
* Fix comment
* Fix test
* Fix tests
* Fix name in tests
* Fix view
* Fix default value
* Fix lint
* Fix key error
* add name
* migrate component entity
* fix tests
* fix import
* migrate device tracker
* fix lint
* fix bug
* fix logic
* fix lint
* fix tests
* fix generator
* fix group
* fix other tests.
* Not need to load group on first stage anymore.
* fix service
* add more group depency
* fix tests
* Revert "fix tests"
This reverts commit 35a922b3a8
.
* Real fix
* fix test p2
* fix test p3
* fix test p4
* fix test p5
* fix test p6
* fix lint
* fix test p7
* Rename attribute
* fix group test
* fix bug
* fix flagy tests
* fix service.yaml
* fix lint
2017-06-16 00:52:28 +02:00
Paulus Schoutsen
640c692e1f
Fix platforms being able to block startup ( #7970 )
2017-06-09 12:11:58 +02:00
Paulus Schoutsen
f43db3c615
Replace executor with async_add_job ( #7658 )
...
* Remove executor
* Lint
* Lint
* Fix tests
2017-05-26 08:28:07 -07:00
Anton Sarukhanov
7055fddfb4
Don't block startup more than 60 seconds while waiting for components. ( #7739 )
2017-05-23 14:29:27 -07:00
Anders Melchiorsen
bb8de5845a
Sort entities in default groups by name ( #7681 )
...
* Sort entities in default groups by name
* Cleanups from review
2017-05-21 17:05:48 -07:00
Fabian Affolter
a4f1f6e724
Update docstrings ( #7374 )
...
* Update docstrings
* Update docstrings
* Update docstrings
* Update docstrings
* Update docstrings
* Update docstrings
* Update docstring
* Update docstrings
* Update docstrings
* Fix lint issues
* Update docstrings
* Revert changes in dict
2017-05-02 09:18:47 -07:00
Pascal Vizeli
d7ca9e7a66
Make core to look avilable state of device on servicecall ( #7045 )
2017-04-11 08:59:46 -07:00
Paulus Schoutsen
e265401cd0
self.loop.create_task -> self.add_job ( #6632 )
...
* self.loop.create_task -> self.add_job
* Core to use create task
2017-03-16 06:58:54 +01:00
Paulus Schoutsen
bb4f23f8e7
Add warning for slow platforms/components ( #6467 )
...
* Add warning for slow platforms/components
* Add test for slow component setup.
* Add test for slow platform setup
* Fix tests on Py34
2017-03-07 20:31:57 -08:00
Paulus Schoutsen
2650c73a89
Split bootstrap into bs + setup ( #6416 )
...
* Split bootstrap into bs + setup
* Lint
2017-03-05 10:41:54 +01:00
Pascal Vizeli
8232f1ef65
Cleanup async handling ( #6388 )
...
* Cleanups unneeded blocks
* Cleanup bootstrap
* dedicated update_ha_state
* Fix imap_email_content
* fx tests
* Fix lint & spell
2017-03-04 15:10:36 -08:00
Pascal Vizeli
41f558b181
Bootstrap / Component setup async ( #6264 )
...
* Bootstrap / Entiy setup async
* Cleanup add_job stuff / return task/future object
* Address paulus comments / part 1
* fix install pip
* Cleanup bootstrap / move config stuff to config.py
* Make demo async
* Further bootstrap improvement
* Address Martin's comments
* Fix initial tests
* Fix final tests
* Fix bug with prepare loader
* Remove no longer needed things
* Log error when invalid config
* More cleanup
* Cleanups platform events & fix lint
* Use a non blocking add_entities callback for platform
* Fix Autoamtion is setup befor entity is ready
* Better automation fix
* Address paulus comments
* Typo
* fix lint
* rename functions
* fix tests
* fix test
* change exceptions
* fix spell
2017-02-28 20:33:19 -08:00
Johann Kellerman
fdc373f27e
Restore_state helper to restore entity states from the DB on startup ( #4614 )
...
* Restore states
* feedback
* Remove component move into recorder
* space
* helper
* Address my own comments
* Improve test coverage
* Add test for light restore state
2017-02-20 23:40:27 -08:00
Pascal Vizeli
4b8e6e36b6
Make EntityComponent update process more robust. ( #5943 )
...
* Make EntityComponent update process more robust.
* address paulus comments
* Add platform to log message.
2017-02-14 09:32:40 -08:00
Paulus Schoutsen
c54517de90
Convert config.components to a set ( #5824 )
2017-02-09 20:21:57 +02:00
Pascal Vizeli
1719d88602
Bugfix default values to timedelta ( #5193 )
...
* Bugfix default values to timedelta
* fix unittests
2017-01-06 00:16:12 +01:00
Nick Touran
a36ca62445
Support longer-than-60-second scan_interval and interval_seconds ( #5147 )
...
* Update scan_interval and interval_seconds max to 1 day vs. 60 seconds
* Format fixes
* Add docstring on unittest.
* Added and implemented new async_track_time_interval helper.
* Format fixes, removed unused import.
* Undid whoops on unsub_polling.
* Updated unit tests for scan_interval.
* Added unit test for track_time_interval.
* Allow other forms of time interval input for scan_interval and interval_seconds
2017-01-05 23:05:16 +01:00
pvizeli
cb24282040
Faster async entity update on component.
2016-11-14 14:18:04 +01:00
Pascal Vizeli
71a305ea45
Hotfix deadlock on platform setup ( #4354 )
...
* Hotfix deadlock on platform setup
* fix wrong import
2016-11-12 16:19:13 -08:00
Pascal Vizeli
ba2ea35089
Add logging to platform/component setup ( #4300 )
...
* Add timeout to platform/component
* Revert "Add timeout to platform/component"
This reverts commit 280a311e48
.
* Add logging data
* Change log message with paulus comments
2016-11-10 18:46:31 +01:00
Pascal Vizeli
618a86a37c
Set executor to 15 and help to reduce flooting async core with updates ( #4252 )
...
* Set executor to 15 and help to reduce flooting async core with udpates
* fix typing
* if it a executor, wait
* address comments from paulus
* add space for style :)
* fix spell
* Update entity_component.py
* Update entity_component.py
2016-11-06 22:28:03 -08:00
Paulus Schoutsen
a343c20404
Async gather wait ( #4247 )
...
* Fix config validation for input_*, script
* Allow scheduling coroutines
* Validate entity ids when entity ids set by platform
* Async: gather -> wait
* Script/Group: use async_add_job instead of create_task
2016-11-06 09:26:40 -08:00
Pascal Vizeli
e5d69feb93
Fix blocking/stack trace with empty list ( #4191 )
2016-11-03 18:33:18 -07:00
Paulus Schoutsen
2940fb72fb
EntityComponent.add_entities now converts generators to a list ( #4183 )
2016-11-02 19:24:25 -07:00
Fabian Affolter
be272ac64a
Disable too-many-* ( #4107 )
...
* Disable too-many-* and too-few-public-methods
* Remove globally disabled pylint warnings
2016-10-30 22:18:53 +01:00
Pierre Ståhl
33e46b484f
Add service to change visibility of a group ( #3998 )
2016-10-29 16:54:26 -07:00
Pascal Vizeli
9c0455e3dc
Allow update entities on add_entities callback ( #4114 )
...
* Allow udpate entities on add_entities callback
* fix wrong position
* update force_update to update_before_add
* add unittest for update_befor_add
* fix unittest
* change mocking
2016-10-29 15:33:11 -07:00
Pascal Vizeli
d5368f6f78
Async bootstrap / component init ( #3991 )
...
* Async bootstrap
* Adress comments
* Fix tests
* More fixes
* Tests fixes
2016-10-27 00:16:23 -07:00
Pascal Vizeli
7484152be1
Async speedup add_device callback ( #3910 )
...
* Speed up entities processing from add_device callback
* fix lint
* fix bug
2016-10-17 00:35:57 +02:00
Pascal Vizeli
0b8b9ecb94
Async EntitiesComponent ( #3820 )
...
* first version
* First draft component entities
* Change add_entities to callback from coroutine
* Fix bug add async_prepare_reload
* Group draft v1
* group async
* bugfix
* bugfix v2
* fix lint
* fix extract_entity_ids
* fix other things
* move get_component out of executor
* bugfix
* Address minor changes
* lint
* bugfix - should work now
* make group init async only
* change update handling to old stuff
* fix group handling, remove generator from init
* fix lint
* protect loop for spaming with updates
* fix lint
* update test_group
* fix
* update group handling
* fix __init__ async trouble
* move device_tracker to new layout
* lint
* fix group unittest
* Test with coroutine
* fix bug
* now it works 💯
* ups
* first part of suggestion
* add_entities to coroutine
* change group
* convert add async_add_entity to coroutine
* fix unit tests
* fix lint
* fix lint part 2
* fix wrong import delete
* change async_update_tracked_entity_ids to coroutine
* fix
* revert last change
* fix unittest entity id
* fix unittest
* fix unittest
* fix unittest entity_component
* fix group
* fix group_test
* try part 2 to fix test_group
* fix all entity_component
* rename _process_config
* Change Group to init with factory
* fix lint
* fix lint
* fix callback
* Tweak entity component and group
* More fixes
* Final fixes
* No longer needed blocks
* Address @bbangert comments
* Add test for group.stop
* More callbacks for automation
2016-10-16 09:35:46 -07:00
Paulus Schoutsen
35b388edce
Reload groups ( #3203 )
...
* Allow reloading groups without restart
* Test to make sure automation listeners are removed.
* Remove unused imports for group tests
* Simplify group config validation
* Add prepare_reload function to entity component
* Migrate group to use entity_component.prepare_reload
* Migrate automation to use entity_component.prepare_reload
* Clean up group.get_entity_ids
* Use cv.boolean for group config validation
2016-09-07 06:59:16 -07:00
Paulus Schoutsen
e9813b219e
Allow reloading automation without restarting HA ( #3002 )
2016-09-04 17:15:52 +02:00
Paulus Schoutsen
30f74bb3ca
Migrate to generic discovery method ( #2271 )
...
* Migrate to generic discovery method
* Add tests for discovery
2016-06-11 17:43:13 -07:00
Johann Kellerman
fbe940139a
Discovery listener on all EntityComponents ( #2042 )
2016-05-11 21:58:22 -07:00
Johann Kellerman
ec9544b9c3
Add a load_platform mechanism ( #2012 )
...
* discovery.load_platform method
* rm grep
2016-05-09 22:48:03 -07:00
Paulus Schoutsen
1d8554359c
Allow setting entity namespace ( #1887 )
2016-04-23 06:34:49 +02:00
Paulus Schoutsen
c89e9d87e8
Catch platform setup error ( #1847 )
2016-04-17 22:07:53 -07:00
Paulus Schoutsen
f6d584af09
Allow platforms to specify PLATFORM_SCHEMA
2016-04-02 20:10:57 -07:00
Paulus Schoutsen
5baa98b79f
Add initial config validation
2016-03-28 23:46:12 -07:00
Fabian Affolter
0d9b8a0d06
Fix docstring
2016-03-09 23:49:54 +01:00
Fabian Affolter
4f536ac63d
Fix PEP257 issues
2016-03-07 23:39:52 +01:00
Paulus Schoutsen
e80309c03c
Fix imports (using isort)
2016-02-18 21:27:50 -08:00
Paulus Schoutsen
fce8815ab4
Support custom interval for platforms
2016-01-31 01:01:23 -08:00
Paulus Schoutsen
90e17fc77f
Add tests for entity component
2016-01-31 01:01:23 -08:00
Paulus Schoutsen
53484e46a3
Move generate_entity_id to entity helpers
2016-01-23 23:00:46 -08:00
Paulus Schoutsen
de79a46d43
Move extract_entity_id to service helpers
2016-01-23 22:57:14 -08:00
Paulus Schoutsen
561a78bef3
Fix EntityComponent deadlock
2015-12-22 02:19:55 -08:00
Paulus Schoutsen
99aa4307ef
Add locks to entity component
2015-11-28 15:55:01 -08:00
Paulus Schoutsen
12495c717e
Fix script regression
2015-10-28 12:24:33 -07:00
Paulus Schoutsen
f9b17ab026
Device tracker rewrite
2015-09-09 23:37:15 -07:00
Paulus Schoutsen
382c1de981
Built-in components no longer use deprecated methods
2015-08-03 17:08:13 +02:00
Paulus Schoutsen
7870e9a5e2
Minor cleanup core
2015-08-03 17:05:33 +02:00
Paulus Schoutsen
a4e0a7f235
Fix platform discovery not working
2015-05-14 21:36:12 -07:00
Paulus Schoutsen
4eeaa16f16
Convert some double to single quotes.
2015-05-11 22:23:38 -07:00
Paulus Schoutsen
e630476f9f
Allow platforms to specify dependencies
2015-05-11 22:23:20 -07:00
Paulus Schoutsen
49d7901585
Tweaks to EntityComponent.setup_platform
2015-03-21 22:21:57 -07:00
Paulus Schoutsen
cdd5d1196a
Fix regression from refactoring EntityComponent
2015-03-21 22:14:30 -07:00
Paulus Schoutsen
a9324ba9d4
Update components to use Entity instead of Device
2015-03-21 19:16:13 -07:00
Paulus Schoutsen
d3f0210b1a
Refactor helper.device to helper.entity
...
Introduces a minor backwards compatible change: device_component
function add_devices is renamed to add_entities.
2015-03-21 18:49:30 -07:00