* Add amcrest camera services and deprecate switches
- Implement enabling and disabling motion detection from camera platform.
- Add amcrest specific camera services for controlling audio stream, motion recording, continuous recording and camera color mode, as well as moving camera to PTZ preset and starting and stopping PTZ tour function.
- Add camera attributes to indicate the state of the various camera settings controlled by the new services.
- Deprecate switches in favor of camera services and attributes.
* Rename services and move service handling to __init__.py
Rename services from 'camera.amcrest_xxx' to 'amcrest.xxx'. This allows services to be documented in services.yaml.
Add services.yaml.
Reorganize hass.data[DATA_AMCREST] and do some general cleanup to make various platform modules more consistent.
Move service handling code to __init__.py from camera.py.
* Update per review comments, part 1
- Rebase
- Add permission checking to services
- Change cv.ensure_list_csv to cv.ensure_list
- Add comment for "pointless-statement" in setup
- Change handler_services to handled_services
- Remove check if services have alreaday been registered
- Pass ffmpeg instead of hass to AmcrestCam __init__
- Remove writing motion_detection attr from device_state_attributes
- Change service methods from callbacks to coroutines
* Update per review comments, part 2
- Use dispatcher to signal camera entities to run services.
- Reorganize a bit, including moving a few things to new modules const.py & helpers.py.
* Update per review comments, part 3
Move call data extraction from camera.py to __init__.py.
tox fails due to being unable to reference the `script` module when
trying to run `script/gen_requirements_all.py`. Instead it needs to be
run as a module.
* Implement EnOcean temperature and humidity sensors.
* Bump EnOcean version to 0.50
* Refactor components for more generic device handling
* Move radio packet data interpretation to specific devices
* Update CODEOWNERS
* Implement code review changes
* Bump Ecovacs dependency (sucks)
Update to new version of sucks, which switches to a custom-built SleekXMPP that turns off certificate validation. This is to fix issues caused by Ecovacs serving invalid certificates.
* Update requirements file
* Fix non syncthru-syncthru supporting printers
* Formatting
* Update requirements_all
* Update syncthru.py
* Fix component to be async (as is the used SyncThru implementation)
* Add async syntax
* Omit loop passing
* Don't await async_add_platform
* Generate new all requirements
* Explain, why exception is caught in setuExplain, why exception is caught in setupp
* Handle failing initial setup correctly
* Formatting
* Formatting
* Fix requested changes
* Update requirements and add nielstron as codeowner
* Run codeowners script
* Make notification about missing syncthru support a warning
* Revert pure formatting
* Fix logging
* Add action.devices.traits.Volume
* Drop media player from brightness trait
* Factor out commands into separate functions
* Drop support for explicit mute
* Expose door cover/binary_sensor as door type
More logical to ask "What doors are open" than "What sensors are open"
* Add test for binary_sensor device_classes
* Cosmetic flake8
* Add test for device class for cover
* reorg HmiP Imports after introduction of manifests
* add type to some functions
* fix usage of dimLevel (HomematicipDimmer,HomematicipNotificationLight)
* align naming to HomematicipMultiSwitch: channel_index -> channel for (HomematicipNotificationLight)
* fix lint
* Fix is_on for dimmers
* fix lint
* Drop unused constant
* Don't default to localhost
A philips tv will never run on localhost
* Use library internal state
* Add play media support for channels
* Control update manually
This allow us to delay update of state when we perform
and action.
* Bump version for support for api v1 again
* Consider missing source and only channels as channels
* Fix some flake8 tasks
* Fix some pylint errors
* Adjust requirements_all file
* Switch to async_add_executor_job
* Assume device turns of off a sucessfull standby call