Commit Graph

404 Commits (5c86cc502f596782d6a57e7ef05646adbd3514ff)

Author SHA1 Message Date
Franck Nijhof 53545c984b
Log lines do not end with a full stop () 2020-07-05 23:04:19 +02:00
J. Nick Koston c1aaceebb6
Use async_track_state_change_event for automation numeric_state ()
Calling async_track_state_change_event directly
is faster than async_track_state_change (see ) and has
slightly lower latency triggering state updates
2020-07-05 13:05:53 -07:00
Phil Bruckner f7c4900d5c
Enhance automation integration to use new features in script helper () 2020-07-05 09:25:15 -05:00
J. Nick Koston 4acc6f333e
Improve scalability of state change event routing () 2020-06-27 14:46:45 -07:00
Paulus Schoutsen 5bc6ed4cef
Add logbook platforms ()
* Add logbook platforms

* Fix logbook describe test
2020-06-24 18:14:50 -07:00
Erik Montnemery 747490ab34
Support reconfiguring MQTT config entry () 2020-06-22 17:49:01 -07:00
Bas Nijholt dcb04acc65
Set automation last_triggered earlier ()
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-06-03 20:08:37 +02:00
Franck Nijhof e6fe34e64d
Migrate automation to use describe_event for logbook () 2020-06-01 17:18:40 -07:00
Franck Nijhof 1883b1d2a2
Add config reloaded events for automation and scene () 2020-06-01 15:19:00 -07:00
HomeAssistant Azure 9586e9ebef [ci skip] Translation update 2020-05-15 00:02:56 +00:00
Paulus Schoutsen 0efeefe3b2 Update translations 2020-05-13 11:27:21 -07:00
Franck Nijhof 8c65062271
Several optimizations to automations () 2020-05-01 16:37:25 +02:00
Paulus Schoutsen 77443b3d09
Add Home Assistant Started event () 2020-04-24 14:13:39 -07:00
Franck Nijhof c93c6a66e8
Add NOT condition helper () 2020-04-24 09:40:23 -07:00
Joakim Sørensen 730a257f3c
Rename translations dir for integrations () 2020-04-21 16:11:05 -07:00
Franck Nijhof bc5a2da7b7
Add transition support to scenes, cleanup blocking parameter () 2020-04-20 18:07:50 -07:00
Paulus Schoutsen 95357dfc55 Update translations 2020-04-20 16:33:54 -07:00
Paulus Schoutsen d560e8245a
Import state strings () 2020-04-20 16:25:35 -07:00
Paulus Schoutsen 0d60d40512 Update translations 2020-04-16 13:00:10 -07:00
Paulus Schoutsen 6119e79023
Migrate frontend translations of domains to backend () 2020-04-16 11:52:27 -07:00
Franck Nijhof 24840b54ac
Add yamllint (in pre-commit and CI) ()
* Add yamllint (in pre-commit and CI)

* Fix linting for all YAML files

* Bump and add it to requirements

* Fix gen_requirements for pre-commit, remove 'v' from version
2020-04-05 10:33:45 +02:00
Paulus Schoutsen f1d3c0d19b
Remove unused manifest fields () 2020-04-03 12:58:19 -07:00
Paulus Schoutsen aef06a3544
Directly call write state 2 ()
* Directly call async_write_ha_state pt2

* Directly call async_write_ha_state pt2

* Fix mock

* Address comments
2020-04-03 09:34:50 +02:00
Eugenio Panadero cd57b764ce
Fix state_automation_listener when new state is None ()
* Fix state_automation_listener when new state is None (fix )

* Listen to EVENT_STATE_CHANGED instead of using async_track_state_change

and use the event context on automation trigger.

* Share `process_state_match` with helpers/event

* Add test for state change automation on entity removal
2020-03-23 16:05:21 -07:00
Paulus Schoutsen 397238372e
Remove group as a dependency from entity integrations ()
* remove group dependency

* Update device sun light trigger

* Add zone dep back to device tracker
2020-03-16 14:47:44 -07:00
Paulus Schoutsen 4cf86262af
Numeric state trigger: validate that above is not above below ()
* Numeric state trigger: validate that above is not above below

* Lint
2020-03-03 17:26:44 -08:00
Franck Nijhof ceb3985a99
Remove hide_entity property from automation integration ()
* Remove hidden property from automation integration

* Allow configuration options untils 0.110
2020-02-25 11:21:05 -08:00
Ville Skyttä 9b2544c923
Remove some unneeded pylint suppressions () 2020-02-24 16:47:15 -08:00
Phil Bruckner b2d7bc40dc
Add support for simultaneous runs of Script helper ()
* Add tests for legacy Script helper behavior

* Add Script helper if_running and run_mode options

- if_running controls what happens if Script run while previous run
  has not completed. Can be:
  - error: Raise an exception
  - ignore: Return without doing anything (previous run continues as-is)
  - parallel: Start run in new task
  - restart: Stop previous run before starting new run
- run_mode controls when call to async_run will return. Can be:
  - background: Returns immediately
  - legacy: Implements previous behavior, which is to return when done,
            or when suspended by delay or wait_template
  - blocking: Returns when run has completed
- If neither is specified, default is run_mode=legacy (and if_running
  is not used.) Otherwise, defaults are if_running=parallel and
  run_mode=background. If run_mode is set to legacy then if_running must
  be None.
- Caller may supply a logger which will be used throughout instead of
  default module logger.
- Move Script running state into new helper classes, comprised of an
  abstract base class and two concrete clases, one for legacy behavior
  and one for new behavior.
- Remove some non-async methods, as well as call_from_config which has
  only been used in tests.
- Adjust tests accordingly.

* Change per review

- Change run_mode default from background to blocking.
- Make sure change listener is called, even when there's an unexpected
  exception.
- Make _ScriptRun.async_stop more graceful by using an asyncio.Event for
  signaling instead of simply cancelling Task.
- Subclass _ScriptRun for background & blocking behavior.

Also:

- Fix timeouts in _ScriptRun by converting timedeltas to float seconds.
- General cleanup.

* Change per review 2

- Don't propagate exceptions if call from user has already returned
  (i.e., for background runs or legacy runs that have suspended.)
- Allow user to specify if exceptions should be logged. They will still
  be logged regardless if exception is not propagated.
- Rename _start_script_delay and _start_wait_template_delay for
  clarity.
- Remove return value from Script.async_run.
- Fix missing await.
- Change call to self.is_running in Script.async_run to direct test of
  self._runs.

* Change per review 3 and add tests

- Remove Script.set_logger().
- Enhance existing tests to check all run modes.
- Add tests for new features.
- Fix a few minor bugs found by tests.
2020-02-24 14:56:00 -08:00
springstan 524a1a7587
Use f-strings in integrations starting with "A" ()
* Use f-strings in integrations starting with A

* Use f-strings in tests for integrations starting with A

* Fix pylint by renaming variable

* Fix nested for loop in f-string for aprs device_tracker

* Break long lines into multiple short lines

* Break long lines into multiple short lines v2
2020-02-23 13:38:05 -08:00
Erik Montnemery 60ae85564e
Add support for MQTT device triggers ()
* Add support for MQTT device triggers

* Fix test, tweaks

* Improve test coverage

* Address review comments, improve tests

* Tidy up exception handling

* Fix abbreviations

* Rewrite to handle update of attached triggers

* Update abbreviation test

* Refactor according to review comments

* Refactor according to review comments

* Improve trigger removal

* Further refactoring
2020-02-18 13:51:10 -08:00
Paulus Schoutsen 44e243039c
Fix automation sun import () 2020-02-06 12:55:11 +01:00
Paulus Schoutsen 67680bcfa8
Automation device/entity extraction to include triggers + conditions ()
* Add support for extracting triggers

* Add support for extracting triggers

* Fix test
2020-02-05 16:52:21 +01:00
Paulus Schoutsen 424e15c7a7
Find related items scripts/automations ()
* Find related items scripts/automations

* Update manifest
2020-01-29 16:19:13 -08:00
Paulus Schoutsen e9e44dbd97
Fix callback and async ()
* Fix callback and async

* Fix a return

* Fix test

* Fix mqtt tests

* Fix some more callbacks
2020-01-29 13:59:45 -08:00
Paulus Schoutsen 1f0f62de7f
Add unique IDs to automation/scenes ()
* Add unique IDs to automation and scenes

* Fix typo
2020-01-26 23:01:35 -08:00
Paulus Schoutsen 80887d757a
Simplify automation services ()
* Simplify automation services

* Empty commit to re-trigger build

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2020-01-22 17:46:12 -08:00
Franck Nijhof 1e2c3cacf9 Mark hide_entity deprecated in automation integration () 2020-01-15 11:53:52 -08:00
Santobert 3d7488d188 Trigger automation without skipping condition ()
* Trigger automation without skipping condition

* [] instead of .get()

* Update __init__.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-01-08 10:36:11 +01:00
Franck Nijhof bfa0edaf92 Migrate Integration Quality Scale from docs to manifest: internal () 2020-01-07 20:58:49 +01:00
Paulus Schoutsen 9aa02e35a7
Entity Component to no longer generate automatic groups () 2020-01-07 17:30:53 +01:00
Franck Nijhof a84741392b
Format all manifests with prettier () 2020-01-06 21:28:23 +01:00
Ville Skyttä 5216477353
Be consistent with Home Assistant and Hass.io spelling ()
* Be consistent with Home Assistant spelling

* Be consistent with Hass.io spelling
2020-01-05 14:09:17 +02:00
Ville Skyttä e6388e186c
Remove unnecessary string literal concatenations () 2020-01-02 21:17:10 +02:00
Bas Nijholt d3f67c3841 use isort to sort imports according to PEP8 for automation () 2019-12-08 21:59:39 +05:30
Alexei Chetroi ccb0fd5e32 Register automation.reload service as an admin service. ()
* homeassistant/components/automation/__init__.py

* Register automation.reload as an admin service.
2019-12-07 21:17:30 +01:00
Paulus Schoutsen 02d9ed5e36
Do not select all entities when omitting entity ID in service call ()
* Do not select all entities when omitting entity ID

* Address comments Matthew

* Require either area_id or entity_id

* Fix tests

* Fix test
2019-12-02 16:23:12 -08:00
Paulus Schoutsen 48660585f1 Add climate device triggers ()
* Add climate device triggers

* Test capabilities
2019-11-07 16:28:45 +01:00
Paulus Schoutsen 6999a712ef Add device triggers to vacuum ()
* Add device triggers to vacuum

* Update strings
2019-11-07 13:39:35 +01:00
Erik Montnemery 8ae43d2de3
Add device triggers to cover ()
* Add device triggers to cover

* Use numeric_state trigger instead of template trigger

* Tweak translations
2019-10-30 20:49:01 +01:00
Erik Montnemery fdf4f398a7
Support async validation of device trigger () 2019-10-09 21:04:11 +02:00
Santobert cc1cca0a14 automation_reproduce_state () 2019-10-05 12:31:51 -07:00
Erik Montnemery e27051aa61 Fix validation when automation is saved from frontend () 2019-10-04 10:17:57 -07:00
Erik Montnemery 3e99743244
Add device trigger support to sensor entities ()
* Add device trigger support to sensor entities

* Fix typing

* Fix tests, add test helper for comparing lists
2019-10-03 06:14:35 +02:00
Erik Montnemery c43eeee62f Improve validation of device condition config ()
* Improve validation of device condition config

* Fix typing
2019-10-02 15:58:14 -07:00
Erik Montnemery 65ce3b49c1
Add support for `for` to binary_sensor, light and switch device triggers ()
* Add support for `for` to binary_sensor, light and switch device triggers

* Add WS API device_automation/trigger/capabilities
2019-10-02 22:14:52 +02:00
Franck Nijhof c7da781efc Update documentation link URL for integrations in all manifests () 2019-10-02 09:25:44 -07:00
Erik Montnemery 5a1da72d5e Improve validation of device action config () 2019-10-01 20:35:36 -07:00
Ville Skyttä f259ff17d5
Type hint additions ()
* Type hint additions

* Remove optional from sidebar_icon comment

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>

* Remove optional from sidebar_title comment

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>

* Fix issues after rebase and mypy 0.730
2019-09-29 20:07:49 +03:00
Erik Montnemery e57e7e8449
Improve validation of device trigger config ()
* Improve validation of device trigger config

* Remove action and condition checks

* Move config validation to own file

* Fix tests

* Fixes

* Fixes

* Small tweak
2019-09-27 17:48:48 +02:00
Paulus Schoutsen 6fdff9ffab
Reorg device automation ()
* async_trigger -> async_attach_trigger

* Reorg device automations

* Update docstrings

* Fix types

* Fix extending schemas
2019-09-24 14:57:05 -07:00
Ville Skyttä 54242cd65c Type hint additions () 2019-09-20 08:23:34 -07:00
Erik Montnemery 10572a62b1 Add support for automation description ()
* Add support for automation annotation

* Rename annotation to description
2019-09-17 12:12:54 -07:00
Robert Svensson c680c07c65 deCONZ device automations ()
* Early draft

* Getting there

* Working fully with Hue dimmer remote

* Fix Balloobs comments

* No side effects in constructor

* Improve hue dimmer

* Add Ikea remote control

* Add xiaomi button support

* Refactor getting deconz event

* Added xiaomi devices and tradfri wireless dimmer

* Resolve unique id from device id

* Add Hue Tap and Tradfri on off switch

* More triggers for ikea on off switch and Aqara double wall switch

* Add support for Tradfri open close remote

* Fix changes after rebase

* Initial test

* Change id to event_id

* Fix translations and add subtypes

* Try if tests pass without the new tests

* Revert disabling tests
Add new exception InvalidDeviceAutomationConfig

* Ignore places calling remotes

* Enable all gateway tests

* Found the issue, now to identify which test creates it

* Remove block till done

* See if device automation test passes in azure

* Register event to device registry

* Enable test sensors

* Skip deconz event tests currently failing

* Added reason why skipping tests
2019-09-10 16:56:28 -07:00
Erik Montnemery f7dc537275
Add device automation condition ()
* Add support for device conditions

* Lint

* Update test case

* Make and+or conditions async, adjust tests

* Cleanup tests

* Remove non callback versions of conditions, correct typing

* Correct typing

* Update light/strings.json

* Address review comments

* Make device automation lists simple lists, not dicts

* Add device_automation/const.py

* Use IS_ON/IS_OFF everywhere for conditions
2019-09-05 16:49:32 +02:00
Erik Montnemery 3aa2729716 Add improvements of device_automation from frontend PR 3514 ()
* Add improvements from frontend PR 3514

* Fix test

* Tweak
2019-09-01 21:40:18 -07:00
Franck Nijhof decf13b948 Use literal string interpolation in core (f-strings) () 2019-08-23 09:53:33 -07:00
Ville Skyttä b738082dad Type check various base components ()
* Type check various component base classes, disabling bunch of checks for now

* Type hint fixes

* Help mypy out some

* Add more type hints
2019-08-11 20:38:18 -07:00
Paulus Schoutsen 4de97abc3a Black 2019-07-31 12:25:30 -07:00
Aaron Bach 0caab133e6
Add area support to automation service schemas ()
* Add area support to automation service schemas

* Fixed import

* Mispelling
2019-07-23 11:07:13 -06:00
Phil Bruckner c80683bb15 Restore automation last_triggered as datetime & fix test ()
* Restore automation last_triggered as datetime & fix test

* last_triggered is always a string
2019-07-10 20:42:38 -07:00
Phil Bruckner 9944e675a5 Add template support to state trigger's for option () 2019-07-08 13:59:58 -07:00
Phil Bruckner f9b9883aba Add template support to numeric_state trigger's for option () 2019-07-08 13:58:50 -07:00
Phil Bruckner 8dca73d08e Add missing trigger.for variable to template trigger () 2019-07-02 17:46:26 +02:00
Phil Bruckner 3f4ce70414 Fix 'same state' monitoring in state trigger () 2019-07-02 17:29:38 +02:00
Phil Bruckner 945afbc6d4 Fix 'same state' monitoring in numeric_state trigger () 2019-07-02 17:28:02 +02:00
Phil Bruckner 03e6a92cf3 Add template support to template trigger's for option () 2019-06-28 22:30:47 -07:00
Erik Montnemery 935240f8c3 Add websock command to query device for triggers ()
* Add websock command to query device for triggers

* Lint

* Refactor

* Add support for domain automations

* Make device automation an automation platform

* lint

* Support device_id in light trigger

* Review comments

* Add tests

* Add tests

* lint
2019-06-10 15:36:11 -07:00
Franck Nijhof 9235b52828 Restore automation last_triggered with initial_state override ()
* Restore automation last_triggered with initial_state override

* Made test async/await

* Fixes linter warning

* Update test_init.py
2019-06-08 12:48:36 -07:00
Paulus Schoutsen 7887d6d6e4
Fix automation failing to restore state ()
* Fix automation off

* Fix tests
2019-06-07 23:08:22 -07:00
Phil Bruckner 61dabae6ab Add for option for template triggers () 2019-06-07 21:45:37 -07:00
Paulus Schoutsen f995ab9d54
Don't pass in loop ()
* Don't pass in loop

* Revert some changes

* Lint + Axis revert

* reinstate loop

* Fix a test

* Set loop

* Update camera.py

* Lint
2019-05-22 21:09:59 -07:00
Penny Wood d9fb3c8c28 Potential None () 2019-04-18 14:04:30 +02:00
ActuallyRuben df580b2322 Add URL query parameters to webhook trigger result data ()
* Added query parameters to webhook data

* Added test for query webhook

* Add second blank line in new test for webhook trigger
2019-04-14 10:53:35 -07:00
cgtobi 2c07bfb9e0 Remove dependencies and requirements ()
* Remove dependencies and requirements

* Revert "Remove dependencies and requirements"

This reverts commit fe7171b4cd.

* Remove dependencies and requirements

* Revert "Remove dependencies and requirements"

This reverts commit 391355ee2c.

* Remove dependencies and requirements

* Fix flake8 complaints

* Fix more flake8 complaints

* Revert non-component removals
2019-04-12 10:13:30 -07:00
Rohan Kapoor 6ba9ccf052 Load requirements and dependencies from manifests. Fallback to current `REQUIREMENTS` and `DEPENDENCIES` ()
* Load dependencies from manifests. Fallback to current DEPENDENCIES

* Fix typing

* Ignore typing correctly

* Split out dependency processing to a new method

* Fix tests

* Only pull from manifest if dependencies is non empty

* Inline temporary function

* Fix light tests [skip ci]

* Fix tests/common

* Fix some mqtt tests [skip ci]

* Fix tests and component manifests which have only one platform

* Fix rflink tests

* Fix more tests and manifests

* Readability over shorthand format

* Fix demo/notify tests

* Load dependencies from manifests. Fallback to current DEPENDENCIES

* Load requirements from manifests. Fallback to current REQUIREMENTS

* Fix typing

* Ignore typing correctly

* Split out dependency processing to a new method

* Only pull from manifest if dependencies is non empty

* Inline temporary function

* Fix tests and component manifests which have only one platform

* Fix rflink tests

* Readability over shorthand format

* Clean up requirements

* Use integration to resolve deps/reqs

* Lint

* Lint

* revert a change

* Revert a test change

* Fix types

* Fix types

* Add back cache for load component

* Fix test_component_not_found

* Move light.test and device_tracker.test into test package instead with manifest to fix tests

* Fix broken device_tracker tests

* Add docstrings to __init__

* Fix all of the light tests that I broke earlier

* Embed the test.switch platform to fix other tests

* Embed and fix the test.imagimage_processing platform

* Fix tests for nx584

* Add dependencies from platform file's DEPENDENCIES

* Try to setup component when entity_platform is setting up

Fix tests in helpers folder

* Rewrite test_setup

* Simplify

* Lint

* Disable demo component if running in test

Temp workaround to unblock CI tests

* Skip demo tests

* Fix config entry test

* Fix repeat test

* Clarify doc

* One extra guard

* Fix import

* Lint

* Workaround google tts
2019-04-11 01:26:36 -07:00
Paulus Schoutsen e48ef7f441
Fix broken platform components ()
* Fix broken platform components

* Lint
2019-04-09 15:42:44 -07:00
Paulus Schoutsen cfe4cf30ad
Add manifests ()
* Add manifests

* Update auto name

* Update codeowners

* Add requirements from platforms

* Minor cleanup

* Incorporate changes from awarecan PR
2019-04-03 21:14:45 -07:00
Paulus Schoutsen 4b1de61110
Use relative imports inside integrations ()
* Use relative imports inside integrations

* Lint

* Fix automation tests

* Fix scene imports
2019-03-20 22:56:46 -07:00
emontnemery b25e951dcc Update additional platforms to use new MQTT message callback ()
* Move additional platforms to new MQTT callback

* Fix automation.mqtt
2019-03-14 10:58:32 -07:00
Paulus Schoutsen 8213016eaf
Allow targeting areas in service calls ()
* Allow targeting areas in service calls

* Lint + Type

* Address comments
2019-03-04 09:51:12 -08:00
Paulus Schoutsen 52f337ef00
Allow chaining contexts ()
* Allow chaining contexts

* Add stubbed out migration
2019-03-01 10:08:38 -08:00
Fabian Affolter 127c55e0c1
Update file header ()
* Update file header

* Update file header

* Update file header

* Update file header

* Update file header

* Fix lint issues
2019-02-13 21:21:14 +01:00
emontnemery ec5da05804 Add character encoding to MQTT automation. () 2019-01-24 22:43:56 -08:00
Anders Melchiorsen 362ac725bf Remove double logging of automation action () 2019-01-21 00:10:12 +01:00
Adam Mills 336b6adc88 Split time_pattern triggers from time trigger ()
* Split interval triggers from time trigger

* Default smaller interval units to zero

* Rename interval to schedule

* Rename schedule to time_pattern
2019-01-15 09:33:34 -08:00
Malte Franken 4bbfc04f5e Geo Location -> Geolocation (comments and default group name) ()
* fixed geolocation naming in comments

* fixed geolocation naming in default group name

* fixed link to documentation (after https://github.com/home-assistant/home-assistant.io/pull/8086)
2019-01-08 11:24:57 +01:00
Paulus Schoutsen 9d9e11372b
Make automations log errors () 2018-12-13 12:21:16 +01:00
Paulus Schoutsen 8ea0a8d40b
RFC: Deprecate auto target all for services and introduce entity_id: * ()
* Deprecate auto target all

* Match on word 'all'
2018-12-13 10:07:59 +01:00
Jason Hunter b900005d1e New Events and Context Fixes ()
* Add new events for automation trigger and script run, fix context for image processing, add tests to ensure same context

* remove custom logbook entry for automation and add new automation event to logbook

* code review updates
2018-12-04 09:45:17 +01:00
Adam Mills 5c3a4e3d10 Restore states through a JSON store instead of recorder ()
* Restore states through a JSON store

* Accept entity_id directly in restore state helper

* Keep states stored between runs for a limited time

* Remove warning
2018-11-28 13:16:43 +01:00
Paulus Schoutsen 2e9132873a Webhook names ()
* Add new automation_info param to async_trigger

* Add domain and name to webhook registration and add WS command
2018-11-05 09:23:58 +01:00
Malte Franken 75e42acfe7 Geo location trigger added ()
* zone trigger supports entity id pattern

* fixed lint error

* fixed test code

* initial version of new geo_location trigger

* revert to original

* simplified code and added tests

* refactored geo_location trigger to be based on a source defined by the entity

* amended test cases

* small refactorings
2018-10-22 20:01:01 +02:00
Rohan Kapoor bd450ee9ff Migrate CONF_WEBHOOK_ID to homeassistant.const ()
* Migrate CONF_WEBHOOK_ID to homeassistant.const

* Switch over all instances of webhook_id to the const

* Switch last instance of webhook_id to the const

* automation: conf constants for conf

* webhook: conf constants for conf
2018-10-15 11:18:21 +02:00
Paulus Schoutsen 68472b8241
Add a webhook automation trigger () 2018-10-08 20:16:37 +02:00
Paulus Schoutsen fbc1c41673 Logbook context ()
* Convert logbook to use attr

* Add context to events

* Enhance logbook

* Lint

* Fix logbook entry

* Don't use intermediary classes for logbook entries
2018-10-01 16:12:25 +02:00
cdce8p 38e371c5d9 Async syntax 1, alarm_control_panel & automation & binary_sensor () 2018-10-01 08:49:19 +02:00
cdce8p f879ac0993 Remove service helper (6) ()
* Update automation

* Update group

* Async_create_task
2018-09-27 23:14:09 +02:00
cdce8p fa98a27df7 Remove service helper (2) ()
* alarm_control_panel

* automation

* camera

* climate

* counter

* fan

* Add legacy notes

* Fix tests
2018-09-26 09:49:55 +02:00
Paulus Schoutsen 746f4ac158 Add context to scripts and automations ()
* Add context to script helper

* Update script component

* Add context to automations

* Lint
2018-09-04 21:16:24 +02:00
Ville Skyttä dbd0763f83 Grammar and spelling fixes () 2018-08-19 22:29:08 +02:00
Ville Skyttä b7c336a687 Pylint cleanups ()
* Pylint 2 no-else-return fixes

* Remove unneeded abstract-class-not-used pylint disable
2018-07-23 10:16:05 +02:00
Ville Skyttä bf17ed0917 More pylint 2 fixes ()
* Pylint 2 useless-import-alias fixes

* Pylint 2 chained-comparison fixes

* Pylint 2 consider-using-get fixes

* Pylint 2 len-as-condition fixes
2018-07-18 11:54:27 +02:00
Anders Melchiorsen fcbc399809 Disallow automation.trigger without entity_id () 2018-06-01 10:27:12 -04:00
Paulus Schoutsen 83d300fd11 Custom component loading cleanup ()
* Clean up custom component loading

* Fix some tests

* Fix some stuff

* Make imports work again

* Fix tests

* Remove debug print

* Lint
2018-05-01 20:57:30 +02:00
Paulus Schoutsen 183e0543b4
Clean up entity component ()
* 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 6918993c75 Fix state for trigger with forced updates () 2018-01-11 22:06:09 -08:00
Anders Melchiorsen 8267a21bfe Lazy loading of service descriptions ()
* Lazy loading of service descriptions

* Fix tests

* Load YAML in executor

* Return a copy of available services to allow mutations

* Remove lint

* Add zha/services.yaml

* Only cache descriptions for known services

* Remove lint

* Remove description loading during service registration

* Remove description parameter from async_register

* Test async_get_all_descriptions

* Remove lint

* Fix typos from multi-edit

* Remove unused arguments

* Remove unused import os

* Remove unused import os, part 2

* Remove unneeded coroutine decorator

* Only use executor for loading files

* Cleanups suggested in review

* Increase test coverage

* Fix races in existing tests
2018-01-07 14:54:16 -08:00
Pascal Vizeli ea6ca9252c
Bugfix trigger state with multible entities ()
* Bugfix trigger state with multible entities

* Fix numeric state

* fix lint

* fix dict

* fix unsub

* fix logic

* fix name

* fix new logic

* add test for state

* add numeric state test for unsub

* add test for multible entities

* Update numeric_state.py

* Update numeric_state.py

* Update state.py

* Fix logic for triple match

* Add clear to numeric state

* clear for state trigger
2017-11-30 21:03:52 +01:00
Fabian Affolter cc293db5ab
Update services.yaml files ()
* Add period to the description

* Update abbreviation
2017-10-30 21:39:12 +01:00
Anders Melchiorsen 61ccbb59ce Fire numeric_state action when first state change matches criteria ()
* Fire numeric_state action when first state change matches criteria

* Remove lint

* Update numeric_state.py
2017-10-25 16:01:09 +02:00
Pascal Vizeli 205f24c070 Trigger also with orderdict 2017-10-23 09:01:59 +02:00
Adam Mills 4e7cc110d9 Fix no data event triggers ()
* Test including extra data on a no data trigger

* Match any dicts for default schema for event data

* Fix indentation

* Only check schema if one was configured
2017-10-22 20:20:38 -04:00
Paulus Schoutsen a97e7bb22d Simplify track_same_state () 2017-10-10 21:16:19 +02:00
Adam Mills 4342d7aa17 Event trigger nested conditions ()
* Test to supported nested event triggers

* Update event trigger to allow nested data tests
2017-10-07 13:13:32 -07:00
Pascal Vizeli ed699896cb Core track same state for a period / Allow on platforms ()
* Core track state period / Allow on platforms

* Add tests

* fix lint

* fix tests

* add new tracker to automation state

* update schema

* fix bug

* revert validate string

* Fix bug

* Set arguments to async_check_funct

* add logic into numeric_state

* fix numeric_state

* Add tests

* fix retrigger state

* cleanup

* Add delay function to template binary_sensor

* Fix tests & lint

* add more tests

* fix lint

* Address comments

* fix test & lint
2017-09-05 02:01:01 +02:00
Paulus Schoutsen 9575cbde09 Consolidate config panels ()
* Remove automation panel registration

* Move Z-Wave config API to config.zwave

* Remove no longer needed test

* Lint

* Update frontend
2017-08-06 12:05:34 -07:00
Anders Melchiorsen b83ff739bc Remove deprecated automation keywords ()
* Remove deprecated automation keywords

* Remove retired test case

* Remove retired keyword
2017-07-17 22:24:05 +02:00
Paulus Schoutsen d29bdddaa7 Add bind_hass to components ()
* Add bind_hass to components

* Add bind_hass to group
2017-07-16 10:14:46 -07:00
Paulus Schoutsen 5779d64e98 Fix some issues for PyLint 1.7.2 ()
* Fix some issues for PyLint 1.7.2

* More fixes

* Revert position change for cover
2017-07-05 20:02:16 -07:00
Pascal Vizeli 814834512a Group service / dynamic handling ()
* 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
Adam Mills cf42303afb Rename time trigger 'after' to 'at' () 2017-06-01 22:40:27 -07:00
Paulus Schoutsen f43db3c615 Replace executor with async_add_job ()
* Remove executor

* Lint

* Lint

* Fix tests
2017-05-26 08:28:07 -07:00
Paulus Schoutsen 171086229a Guard against new and removed state change events () 2017-05-21 07:41:33 -07:00
Anders Melchiorsen 81f0826550 Ignore attribute changes in automation trigger from/to ()
* Ignore attribute changes in automation trigger from/to

* Quote names in deprecation warnings

This makes it somewhat easier to read if the suggestion happens to be
named "to".

* Add test with same state, new attribute value
2017-05-20 15:18:59 -04:00
Paulus Schoutsen e773133bcf Fix automation failing to setup if no automations specified () 2017-05-17 21:57:50 -07:00
Paulus Schoutsen d5ca6a5aed Force automation ids to always be a string () 2017-05-15 23:15:06 -07:00
Adam Mills e2e58e6acc Automation State Change For timer attribute fix () 2017-05-15 00:34:30 -07:00
Paulus Schoutsen 5d820ec188 Add support for automation config panel ()
* Add support for automation config

* Build fromtend

* Lint
2017-05-09 18:44:00 -07:00
Adam Mills 40d27cde0e Refactor sun component for correctness ()
* Refactor sun component for correctness

* Convert datetimes to dates for astral

* Fix tests for updated code

* Fix times now that calcs are fixed

* Move sun functions to helpers

* Fix flake on new file

* Additional tweaks from review

* Update requirements
2017-05-09 00:03:34 -07:00
Paulus Schoutsen 9440ff881f Remove listening to homeassistant_start with event automation () 2017-05-06 23:52:39 -07:00
Fabian Affolter 4d52b0ecd5 Update docstrings ()
* Update docstrings

* Fix lint issues

* Update docstrings
2017-05-02 22:47:20 +02:00
Fabian Affolter 3ee4d1060f Update docstrings ()
* Update docstrings

* Update docstrings

* Update docstrings

* Update docstrings

* update docstrings

* Update docstrings

* Update docstrings

* Update docstrings

* Update docstrings

* Update docstrings

* Update tomato.py

* Update isy994.py

* Lint + fix tests

* Lint
2017-04-29 22:04:49 -07:00
Adam Mills 37f959eb02 Add debug logging to automation initial state () 2017-04-16 15:45:40 -07:00
Paulus Schoutsen 29f385ea76 Fix automations listening to HOMEASSISTANT_START ()
* Fire EVENT_HOMEASSISTANT_START automations off right away while starting

* Actually have core state be set to 'starting' during boot

* Fix correct start implementation

* Test and deprecate event automation platform on start

* Fix doc strings

* Remove shutting down exception

* More strict when to mark an instance as finished

* Add automation platform to listen for start/shutdown

* When we stop we should wait till it's all done

* Fix testing

* Fix async bugs in tests

* Only set UVLOOP when hass starts from CLI

* This hangs normal asyncio event loop

* Clean up Z-Wave node entity test
2017-04-05 23:23:02 -07:00
Paulus Schoutsen 23645da74c Automation: initial state > restore state ()
* Automation: initial state > restore state

* Clean up code

* Ensure MQTT defaults are used.

* Ensure failed platforms always return None

* Automation: write state to state machine after start
2017-04-03 23:11:39 -07:00
Pascal Vizeli f4e9466394 Bugfix automation fire on bootstrap ()
* Bugfix automation fire on bootstrap

* Add test & fix bug

* fix lint
2017-03-24 15:52:14 -07:00
Pascal Vizeli c937a7bcb0 Add support for remove services / Reload script support ()
* Add support for remove services / Reload script support

* Reload support for scripts

* Add more unittest for services

* Add unittest for script reload

* Address paulus comments
2017-03-07 22:51:34 -08:00
Paulus Schoutsen 2650c73a89 Split bootstrap into bs + setup ()
* Split bootstrap into bs + setup

* Lint
2017-03-05 10:41:54 +01:00
Johann Kellerman 1522e67351 Restore for automation entities ()
* Restore for automation entities

* coroutine

* no clue what i'm doing now

* Still passes nicely in py 3.4
2017-03-04 15:19:01 -08:00