ha-core/homeassistant/generated/config_flows.py

289 lines
4.5 KiB
Python
Raw Normal View History

"""Automatically generated by hassfest.
To update, run python3 -m script.hassfest
"""
# fmt: off
FLOWS = [
"abode",
"accuweather",
Add Acmeda integration (#33384) * First cut of Rollease Acmeda Pulse Hub integration. * Acmeda integration improvements: - Moved common code into a base entity - Battery level sensor added - Localisation now working * Added requirement for aiopulse now that it has been uploaded to PyPI. * Exclude acmeda integration from coverage check as it relies on a hub being present. * Fix Travis CI build issues. * Remove unused constants. * Remove unused group logic from cover.py * Removed commented code from base.py * Remove sensors (battery entities) on removal of hub. * Remove unused groups from sensor.py * Acmeda device and entity update made fully asynchronous using subscriptions to remove need for config polling. * Updated aiopulse version dependency. Removed non-functional battery charging indication. * Rationalised common code to update entities into helpers.py * Fix linting issue. * Correct additional CI pylint errors. * Index config_entries by entry_id. Move entity loading and unloading to __init__.py Add entry_id to dispatcher signal Removed now unused polling code hub Added config_flow unit tests * Tweak to integration config_entry title. * Bumped aiopulse module to 0.3.2. Reduced verbosity of aiopulse module. * Changed to using direct write of device state. Removed old style async_step_init config_flow step. * Remove superfluous battery_level and device_state_attributes from battery entity. * Removal of unused strings. Removal of unused create_config_flow helper. Removal of stale comment. * Remove use of shared container to track existing enities. Moved removal and deregistration of entities to base class through use of dispatch helper. * Fixed strings.json * Fix incorrect use of remove instead of pop on dict. * Add support for tilting covers, bump aiopulse version number. * Bump aiopulse version to v0.3.4. Fixed bug in cover supported_features. * Bumped aiopulse version to 0.4.0 Update acmeda .coveragerc exclusions * Removed already configured hub check from __init__.py async_setup_entry Removed passing in hass reference to base entity class Renamed entity async_reset to async_will_remove_from_hass Changed device_info and properties Migrated to CoveEntity from CoverDevice Added dispatched_connect cleanup on hub removal Removed unused entries from manifest Removed override of battery icon Renamed translations folder * Reversed unintended change to .coveragerc * Fixed config flow for multi-hub discovery. * Acmeda enhancements as requested by MartinHjelmare * Force import to connect to hub to retrieve id prior to creating entry * Remove YAML configuration support. * Tidied up config_flow and tests: - removed unnecessary steps - fixed typos * Removed storage of hub in config_flow.
2020-05-17 12:15:06 +02:00
"acmeda",
"adguard",
"advantage_air",
"aemet",
Add agent_dvr integration (#32711) * initial * add missing fixture * fix mocks * fix mocks 2 * update coverage * fix broken sync between agent and integration * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: J. Nick Koston <nick@koston.org> * updates for review * add back in should poll again * revert motion detection enabled flag in state attributes * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/agent_dvr/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * add is_streaming * fix is_streaming bug, remove mp4 stream * cleanup Co-authored-by: J. Nick Koston <nick@koston.org> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-05-08 16:49:47 +02:00
"agent_dvr",
"airly",
2020-12-30 20:25:57 +01:00
"airnow",
"airvisual",
"alarmdecoder",
"almond",
"ambiclimate",
"ambient_station",
"apple_tv",
"arcam_fmj",
"asuswrt",
"atag",
"august",
"aurora",
Refactor / update Awair integration (#34394) * Refactor / update Awair integration This commit does a few things, all in service of making the Awair integration more modern and reliable. Specifically we do the following: - Update to python_awair 0.1.1 - Begin using config entries / flow for setting up the integration. - YAML support is completely removed. - The integration now allows adding multiple Awair accounts, should a user wish to do so (I found it _very_ useful in development). - Group various Awair sensors into devices, using the device registry. - Renames various sensors and treats the "dust" sensor as a particulate sensor. - Device update rate-limits are no longer dynamically calculated; the Awair API now separates rate-limits on a per-device basis. - Supports sound pressure and illuminance sensors found on some Awair devices. - We report the "awair index" for certain sensors as part of device_state_attributes. The "index" is a subjective measure of whether or not a sensor reading is "good" or "bad" (and to what extent). It's a component of the Awair score, and it is useful on its own as an input for those who wish to do things like "display this color if the value is 'bad'". This is a breaking change, and requires updates to documentation and a warning in the README. The breaking changes in detail, are: - Support for all YAML configuration is removed, and users will need to re-add the integration via the UI. - We no longer support overriding device discovery via manual configuration of device UUIDs. This was previously supported because the Awair API had severe limits on the device list endpoints; however those have since been removed. - Gen 1 devices no longer show a "dust" sensor; rather we create a PM2.5 sensor and a PM10 sensor and just keep the values in sync. This better reflects the sensor capabilities: it can detect particles in a range from 2.5 -> 10, but cannot differentiate between sizes. - Sensors are renamed as follows: - "sensor.devicename_co2" -> "sensor.devicename_carbon_dioxide" - "sensor.devicename_voc" -> "sensor.devicename_volatile_organic_compounds" - "sensor.devicename_score" -> "sensor.devicename_air_quality_index" - I've chosen to call the "Awair Score" an "air quality index" sensor, because fundamentally the "Awair Score" and other air quality indices (such as CAQI) do the same thing: they calculate a value based on a variety of other inputs. Under the hood, the integration has seen some improvements: - We use the DataUpdateCoordinator class to handle updates, rather than rolling our own update class. - The code no longer tracks availability based on a timestamp returned from the Awair service; we assert that if we have received a response and the response has data for our device, then we are available (and otherwise, not available). We don't need to test the actual Awair API so heavily. - Test coverage has been expanded to handle a variety of products that Awair produces, not just the one I happen to own. - Test coverage no longer concerns itself with testing behavior that is now handled by the DataUpdateCoordinator; nor is it concerned with ensuring that the overall component sets up and registers properly. These are assumed to be well-tested functionaity of the core and not things we need to re-test ourselves. Finally - between library updates and integration updates, this integration is well-positioned to support future updates. I have a proof-of-concept patch for device automations, and the underlying library now supports subclassing authentication (which clears the way for us to use OAuth authentication for Awair). * Wrap test fixture in mock_coro Truthfully I'm not sure why this was passing on my local dev environment, but I was developing with python 3.8 before. After installing python 3.7, I was able to reproduce the CI failures and fix them. * Fix broken tests after #34901 and/or #34989 * Do not rename sensors so broadly We're going to keep the sensors named as they were before, pending the outcome of any decisions around the air_quality component and what names should be standardized for air-quality-like devices. If standardized names are selected (which does seem likely), then we will update this integration to match them - at which point, it would be a breaking change. But for now, we'll keep names mostly identical to what users had before. Notable in this commit is that we generate the entity_id ourselves, rather than just allowing it to be auto-generated from the name attribute. This allows us to provide more human friendly names, while keeping the old format for entity ids. For example, given an Awair device called "Living Room", we'll generate an entity id of "sensor.living_room_voc" but show set the name of the device to "Living Room Volatile organic compounds". * Support import from config.yaml We'll create a config entry from config.yaml the first time we're loaded, and then defer to it from then on. We ignore all keys other than the access_token, since we no longer need to deal with per-account rate-limits (rather, everything is per-device now). * Add myself to CODEOWNERS Since I wrote the initial integration, and now this re-write, it feels appropriate for me to take care of the integration along with `danielsjf`. * Remove name mangling * Update homeassistant/components/awair/manifest.json Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/awair/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/awair/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/awair/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Address some review feedback * Set up reauth flow in a job, rather than awaiting * Remove unnecessary title string * Remove unnecessary config schema checking As pointed out in review, because this comes in via import from `configuration.yaml`, we can rely on the `PLATFORM_SCHEMA` validation instead. * Fix tests * Set unique_id appropriately for legacy devices For users who have had this integration already installed (and who have updated their home assistant installation sometime in recent history), we want to ensure that unique_id's are set to the same thing as before, to facilitate the upgrade process. To do that, we add an additional property to the `SENSOR_TYPES` dict (`ATTR_UNIQUE_ID`) which allows us to map modern sensor names from python_awair to what older versions called them - ie: `humidity` -> `HUMID`. We then use that value when constructing the unique ID. This should allow users to upgrade and not lose configuration even if entity IDs would otherwise change (because we have changed the name format that generates entity IDs). One note is that for the gen1 `DUST` sensor, we have to treat it differently. This integration used to call that a "PM2.5" sensor, but the unique_id generated would be something like `awair_12345_DUST`. So we special-case that sensor, and do the same thing. We do not need to special-case the PM10 sensor for gen1 devices, because we didn't create a PM10 sensor in the past (we do now, because the "DUST" sensor is really a hybrid PM2.5/PM10 sensor). * Patch async_setup_entry for two tests * Update awair config_flow to require / use an email address for unique_id Also, only start one re-auth flow. * Add a few more tests, try to get coverage up. * Add another test * Move attribution to device_state_attributes * Don't require email * Switch from Union[dict, None] to Optional[dict] * Use a mock where requested * Fix missing constant rename * Use async_create_task * Bump test coverage a bit for config_flow * s/CONF_UNIQUE_ID/UNIQUE_ID/g * Add warning about deprecated platform config Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-06-21 21:46:07 +02:00
"awair",
"axis",
"azure_devops",
"blebox",
"blink",
"bmw_connected_drive",
Add new integration for Bond hub (#37477) * create foundation for Bond integration * add Bond hub integration (fix lint) * Update homeassistant/components/bond/__init__.py adding async_unload_entry per PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * add Bond hub integration (fix missing import after applying PR suggestion) * Update tests/components/bond/test_init.py add a unit for unloading per PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/bond/test_init.py add unit test for unload per PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/bond/test_init.py PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/bond/test_init.py PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/bond/test_init.py PR review suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * add Bond hub integration (fix formatting) * Update homeassistant/components/bond/manifest.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/manifest.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/manifest.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/strings.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/manifest.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update requirements_all.txt PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/manifest.json PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update requirements_test_all.txt PR suggestion Co-authored-by: Chris Talkington <chris@talkingtontech.com> * add Bond hub integration (remove friendly name from config per PR suggestion) * Update homeassistant/components/bond/__init__.py add per PR review feedback Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/bond/__init__.py remove per PR review feedback Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/bond/test_init.py fix unit test Co-authored-by: Chris Talkington <chris@talkingtontech.com> Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-07-06 03:17:53 +02:00
"bond",
"braviatv",
Implement config flow in the Broadlink integration (#36914) * Implement config flow in the Broadlink integration * General improvements to the Broadlink config flow * Remove unnecessary else after return * Fix translations * Rename device to device_entry * Add tests for the config flow * Improve docstrings * Test we do not accept more than one config entry per device * Improve helpers * Allow empty packets * Allow multiple config files for switches related to the same device * Rename mock_device to mock_api * General improvements * Make new attempts before marking the device as unavailable * Let the name be the template for the entity_id * Handle OSError * Test network unavailable in the configuration flow * Rename lock attribute * Update manifest.json * Import devices from platforms * Test import flow * Add deprecation warnings * General improvements * Rename deprecate to discontinue * Test device setup * Add type attribute to mock api * Test we handle an update failure at startup * Remove BroadlinkDevice from tests * Remove device.py from .coveragerc * Add tests for the config flow * Add tests for the device * Test device registry and update listener * Test MAC address validation * Add tests for the device * Extract domains and types to a helper function * Do not patch integration details * Add tests for the device * Set device classes where appropriate * Set an appropriate connection class * Do not set device class for custom switches * Fix tests and improve code readability * Use RM4 to test authentication errors * Handle BroadlinkException in the authentication
2020-08-20 17:30:41 +02:00
"broadlink",
"brother",
Add BSBLan Climate integration (#32375) * Initial commit for BSBLan Climate component The most basic climate functions work. * Delete manifest 2.json wrongly added to commit * fix incorrect name current_hvac_mode * update coverage to exclude bsblan * sorted and add configflow * removed unused code, etc * fix hvac, preset mix up now it sets hvac mode to none and preset to eco * fix naming * removed commented code and cleaned code that isn't needed * Add test for the configflow * Update requirements fixing some issues in bsblan Lib * Update coverage file to include configflow bsblan * Fix hvac preset is not in hvac mode rewrote how to handle presets. * Add passkey option My device had a passkey so I needed to push this functionality to do testing * Update constants include passkey and added some more for device indentification * add passkey for configflow * Fix use discovery_info instead of user_input also added passkey * Fix name * Fix for discovery_info[CONF_PORT] is None * Fix get value CONF_PORT * Fix move translation to new location * Fix get the right info * Fix remove zeroconf and fix the code * Add init for mockConfigEntry * Fix removed zeroconfig and fix code * Fix changed ClimateDevice to ClimatEntity * Fix log error message * Removed debug code * Change name of device. * Remove check This is done in the configflow * Remove period from logging message * Update homeassistant/components/bsblan/strings.json Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Add passkey Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-05-10 04:16:21 +02:00
"bsblan",
Add configuration flow for Buienradar integration (#37796) * Add configuration flow for Buienradar integration * Update buienradar camera tests to work with config flow * Update buienradar weather tests to work with config flow * Update buienradar sensor tests to work with config flow * Remove buienradar config_flow tests to pass tests * Add config flow tests for buienradar integration * Increase test coverage for buienradar config_flow tests * Move data into domain * Remove forecast option * Move data to options * Remove options from config flow * Adjust tests * Adjust string * Fix pylint issues * Rework review comments * Handle import * Change config flow to setup camera or weather * Fix tests * Remove translated file * Fix pylint * Fix flake8 * Fix unload * Minor name changes * Update homeassistant/components/buienradar/config_flow.py Co-authored-by: Ties de Kock <ties@tiesdekock.nl> * Remove asynctest * Add translation * Disable sensors by default * Remove integration name from translations * Remove import method * Drop selection between platforms, disable camera by default * Minor fix in configured_instances * Bugfix in weather * Rework import * Change unique ids of camera * Fix in import * Fix camera tests * Fix sensor test * Fix sensor test 2 * Fix config flow tests * Add option flow * Add tests for option flow * Add import tests * Some cleanups * Apply suggestions from code review Apply code suggestions Co-authored-by: Franck Nijhof <git@frenck.dev> * Fix isort,black,mypy * Small tweaks and added typing to new parts * Fix review comments (1) * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Fix review comments (2) * Fix issues * Fix unique id * Improve tests * Extend tests * Fix issue with unload * Address review comments * Add warning when loading platform * Add load/unload test Co-authored-by: Ties de Kock <ties@tiesdekock.nl> Co-authored-by: Franck Nijhof <git@frenck.dev> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-04 13:49:16 +02:00
"buienradar",
"canary",
"cast",
"cert_expiry",
"climacell",
"cloudflare",
"control4",
"coolmaster",
"coronavirus",
"daikin",
"deconz",
"denonavr",
2020-05-07 16:08:51 +02:00
"devolo_home_control",
2020-07-02 02:14:54 +02:00
"dexcom",
"dialogflow",
"directv",
"doorbird",
"dunehd",
"dynalite",
"eafm",
Add config flow to ecobee (#26634) * Add basic config flow * Fix json files * Update __init__.py * Fix json errors * Move constants to const.py * Add ecobee to generated config flows * Update config_flow for updated API * Update manifest to include new dependencies Bump pyecobee, add aiofiles. * Update constants for ecobee * Modify ecobee setup to use config flow * Bump dependency * Update binary_sensor to use config_entry * Update sensor to use config_entry * Update __init__.py * Update weather to use config_entry * Update notify.py * Update ecobee constants * Update climate to use config_entry * Avoid a breaking change on ecobee services * Store api key from old config entry * Allow unloading of config entry * Show user a form before import * Refine import flow * Update strings.json to remove import step Not needed. * Move third party imports to top of module * Remove periods from end of log messages * Make configuration.yaml config optional * Remove unused strings * Reorganize config flow * Remove unneeded requirement * No need to store API key * Update async_unload_entry * Clean up if/else statements * Update requirements_all.txt * Fix config schema * Update __init__.py * Remove check for DATA_ECOBEE_CONFIG * Remove redundant check * Add check for DATA_ECOBEE_CONFIG * Change setup_platform to async * Fix state unknown and imports * Change init step to user * Have import step raise specific exceptions * Rearrange try/except block in import flow * Convert update() and refresh() to coroutines ...and update platforms to use async_update coroutine. * Finish converting init to async * Preliminary tests * Test full implementation * Update test_config_flow.py * Update test_config_flow.py * Add self to codeowners * Update test_config_flow.py * Use MockConfigEntry * Update test_config_flow.py * Update CODEOWNERS * pylint fixes * Register services under ecobee domain Breaking change! * Pylint fixes * Pylint fixes * Pylint fixes * Move service strings to ecobee domain * Fix log message capitalization * Fix import formatting * Update .coveragerc * Add __init__ to coveragerc * Add option flow test * Update .coveragerc * Act on updated options * Revert "Act on updated options" This reverts commit 56b0a859f2e3e80b6f4c77a8f784a2b29ee2cce9. * Remove hold_temp from climate * Remove hold_temp and options from init * Remove options handler from config flow * Remove options strings * Remove options flow test * Remove hold_temp constants * Fix climate tests * Pass api key to user step in import flow * Update test_config_flow.py Ensure that the import step calls the user step with the user's api key as user input if importing from ecobee.conf/validating imported keys fails.
2019-09-25 22:38:21 +02:00
"ecobee",
"econet",
"elgato",
"elkm1",
"emonitor",
"emulated_roku",
Refactor Enocean part 1 (#35927) * First step of an EnOcean integration refactoring, including code reorganisation and support of a setup config flow * Moved title to root of strings file * Fixed pre-commit checks failures * Fixed linter errors * Updated formatted string format in logs * Removed leftover comment * Multiple changes after PR change requests. Using an import flow for yaml config, removed unnecessary logs, added proper unload in __init__ and EnOceanDongle Replaced config state machine by several flows. Serial port validity check done in the EnOceanDongle class asynchronously, removed unique ID from config flow Multiple cosmetic changes * Multiple changes after PR change requests * Added variable to store default value, as setdefault was caught returning None when the empty dict literal was passed as an argument * Literal used directly * Added tests for EnOcean config flows, changed static methods to bundle methods for bundle * Updated variable name * Added missing mock to test, replaced repeated magic strings by constants * Changed imports to avoid an unused import warning from pylint on DOMAIN * Adding pylint exception for unused import * Added proper propagation of setup and unload to platforms, removed dead code, some syntax changes * Removed setup_entry forwarding as the entities can only be configured using yaml * Removed forwarding of unload * Enabled code coverage for config flow only * Clean up coveragerc Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-07-09 02:46:38 +02:00
"enocean",
"enphase_envoy",
"epson",
"esphome",
Update Ezviz Component (#45722) * Update Ezviz Component * Update Ezviz for pylint test * Update Ezviz component pylint tests * Update Ezviz component tests * Update Ezviz Component tests * Update Ezviz component pylint error * Fix ezviz component config flow tests * Update ezviz component * Update Ezviz component * Add sensor platforms * issue with requirements file * Update binary_sensor to include switches * Updates to Ezviz sensors * Removed enum private method. * Fix switch args * Update homeassistant/components/ezviz/switch.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * config flow checks login info * Config_flow now imports ezviz from camera platform * Update test * Updated config_flow with unique_id and remove period from logging * Added two camera services and clarified service descryptions in services.yaml * Fixed variable name mistake with new service * Added french integration translation * Config_flow add camera rtsp credentials as seperate entities, with user step and import step * rerun hassfest after rebase * Removed region from legacy config schema, removed logging in camera platform setup that could contain credentials, removed unused constant. * Regenerate requirements * Fix tests and add config_flow import config test * Added addition test to config_flow to test successfull camera entity create. * Add to tests method to end in create entry, config_flow cleanup, use entry instead of entry.data * Removed all services, sorted platforms in init file. * Changed RTSP logging to debug from warning. (Forgot to change this before commit) * Cleanup typing, change platform order, bump pyezviz version * Added types to entries, allow creation of main entry if deleted by validating existance of type * Config_flow doesn't store serial under entry data, camera rtsp read from entry and not stored in hass, removed duplicate abort if unique id from config flow * Fix test of config_flow * Update tests/components/ezviz/test_config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/ezviz/test_config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/ezviz/test_config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Bumped pyezviz api version, added api pyezvizerror exception raised in api (on HTTPError), cleanup unused imports. * rebase * cleanup coordinator, bump pyezviz api version, move async_setup_entry to add entry options to camera entries. (order change) * Added discovery step in config_flow if cameras detected without rtsp config entry * Reload main integration after addition or completion of camera rtsp config entry * Add tests for discovery config_flow, added a few other output asserts * Camera platform call discover flow with hass.async_create_task. Fixes to config_flow for discovery step * Fix config_flow discovery, add check to legacy yaml camera platform import, move camera private method to camera import step * Remove not needed check from config_flow import step. * Cleanup config_flow * Added config_flow description for discovered camera * Reordered description in config_flow confim step. * Added serial to flow_step description for discovered camera, readded camera attributes for rtsp stream url (allows user to check RTSP cred), added local ip and firmware upgade available. * Bumped pyezviz version and changed region code to region url. (Russia uses a completly different url). PyEzviz adds a Local IP sensor, removed camera entity attributes. * Add RSTP describe auth check from API to config_flow * url as vol.in options in Config_flow * Config_flow changes to discovery step, added exceptions, fixed tests, added rtsp config validate module mock to test disovery confirm step * Add test for config_flow step user_camera * Added tests for abort flow * Extend tests on custom url flow step * Fix exceptions in config_flow, fix test for discovery import exception test * Bump pyezviz api version * Bump api version, added config_flow function to wake hybernating camera before testing credentials, removed "user camera" step from config flow not needed as cameras are discovered. * Create pyezviz Api instance for config_flow wake hybernating camera, fixed tests and added fixture to mock method * Added alarm_control_panel with support to arm/disarm all cameras, fixed camera is available attribute (returns 2 if unavailable, 1 if available) * Skip ignored entities when setup up camera RTSP stream * Remove alarm_control_panel, add additional config_flow tests * Cleanup tests, add tests for discovery_step. * Add test for config_flow rtsp test step1 exceptions * Removed redundant except from second step in test RTSP method * All tests to CREATE or ABORT, added step exception for general HTTP error so user can retry in case of trasient network condition * Ammended tests with output checks for step_id, error, data, create entry method calls. * bumped ezviz api now rases library exceptions. Config_flow, coordiantor and init raises library exceptions. Updated test sideeffect for library exceptions * Bump api version, Create mock ezviz cloud account on discovery tests first to allow more complete testing of step. * Add abort to rtsp verification method if cloud account was deleted and add tests * Update tests/components/ezviz/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/const.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/ezviz/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Undo config import change to password key for yaml, move hass.data.setdefault to async_setup_entry and remove async_setup * Fixed tests by removing _patch_async_setup as this was removed from init. * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/ezviz/camera.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Changed L67 on camera config to complete suggestion for cleanup Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-09 12:39:19 +02:00
"ezviz",
"faa_delays",
"fireservicerota",
"flick_electric",
"flo",
"flume",
"flunearyou",
Add forked_daapd integration (#31953) * New forked_daapd component * Bunch of changes Add config flow and zeroconf Add zones on callback when added by server Add password auth Add async_play_media for TTS Add media_image_url Add support for pipe control/input from librespot-java Improve update callbacks * Refactor as per code review suggestions Move config_flow connection testing to pypi library (v0.1.4) Remove use of ForkedDaapdData class Decouple Master and Zone data and functions Add updater class to manage websocket and entity updates * More changes as per code review Avoid direct access to entities in tests Bump pypi version Mark entities unavailable when websocket disconnected Move config tests to test_config_flow Move full url creation from media_image_url to library Move updater entity from master to hass.data Remove default unmute volume option Remove name from config_flow Remove storage of entities in hass.data Use async_write_ha_state Use signal to trigger update_options Use unittest.mock instead of asynctest.mock * Yet more changes as per code review Add more assertions in tests Avoid patching asyncio Make off state require player state stopped Only send update to existing zones Split up some tests Use events instead of async_block_till_done Use sets instead of lists where applicable Wait for pause callback before continuing TTS * Remove unnecessary use of Future() * Add pipes and playlists as sources * Add support for multiple servers Change config options to add max_playlists+remove use_pipe_control Create Machine ID in test_connection and also get from zeroconf Modify hass.data storage Update host for known configurations Use Machine ID in unique_ids, entity names, config title, signals * Use entry_id as basis for multiple entries * Use f-strings and str.format, abort for same host * Clean up check for same host
2020-05-13 15:13:41 +02:00
"forked_daapd",
"foscam",
Refactor Freebox : add config flow + temperature sensor + signal dispatch (#30334) * Add config flow to Freebox * Add manufacturer in device_tracker info * Add device_info to sensor + switch * Add device_info: connections * Add config_flow test + update .coveragerc * Typing * Add device_type icon * Remove one error log * Fix pylint * Add myself as CODEOWNER * Handle sync in one place * Separate the Freebox[Router/Device/Sensor] from __init__.py * Add link step to config flow * Make temperature sensors auto-discovered * Use device activity instead of reachablility for device_tracker * Store token file in .storage Depending on host if list of Freebox integration on the future without breaking change * Remove IP sensors + add Freebox router as a device with attrs : IPs, conection type, uptime, version & serial * Add sensor should_poll=False * Test typing * Handle devices with no name * None is the default for data * Fix comment * Use config_entry.unique_id * Add async_unload_entry with asyncio * Add and use bunch of data size and rate related constants (#31781) * Review * Remove useless "already_configured" error string * Review : merge 2 device & 2 sensor classes * Entities from platforms * Fix unload + add device after setup + clean loggers * async_add_entities True * Review * Use pathlib + refactor get_api * device_tracker set + tests with CoroutineMock() * Removing active & reachable from tracker attrs * Review * Fix pipeline * typing * typing * typing * Raise ConfigEntryNotReady when HttpRequestError at setup * Review * Multiple Freebox s * Review: store sensors in router * Freebox: a sensor story
2020-03-11 22:15:59 +01:00
"freebox",
"fritz",
"fritzbox",
"fritzbox_callmonitor",
"garmin_connect",
"gdacs",
"geofency",
"geonetnz_quakes",
"geonetnz_volcano",
"gios",
"glances",
"goalzero",
"gogogate2",
"google_travel_time",
"gpslogger",
"gree",
"guardian",
"habitica",
"hangouts",
"harmony",
"heos",
Add support for Hisense AEH-W4A1 wifi module (AC remote control) (#28641) * First commit * First working release, but there's a lot to do * Added support for preset_modes * Refined logic * Added translations for config_flow * Updated translations * modified: homeassistant/components/hisense_aehw4a1/climate.py * modified: climate.py * Updated library to latest version * Small changes * Null states when AC off * Minor fixes * Latest updates for TOX * First commit * First working release, but there's a lot to do * new file: requirements_test_all.txt * Added support for preset_modes * Refined logic * Added translations for config_flow * Updated translations * modified: homeassistant/components/hisense_aehw4a1/climate.py * modified: climate.py * Updated library to latest version * Small changes * Null states when AC off * Minor fixes * Latest updates for TOX * new file: requirements_test_all.txt * Fighting with tox * vs Tox round 2 * Isort and updated requirements_test_all.txt * Fighting with lint * Implemented available state * Changed exception type after Travis-ci pylint fails * Support entry in configuration.yaml * Removed commented code * Switched to async * Minor changes * Updated library and fixed pylint errors * Code optimization * Implemented static ip addresses in configuration.yaml * Reverted to existing constant * Corrected pylint wrong-import-order * Recovery from nuke event (messing all while rebase) * Resolved Ci error * Changes for PR * Corrected temp scale for frontend * Added test for config entry from configuration.yaml * Updated dependency * Check on manual config * Imported custom exceptions and modified import config * Optimized * Change based on PR revision * Added logging for failure event on manual config * Tests added but to be corrected * Edited tests * Tests updated to ensure no I/O * Working on tests * Cheanges based on revision for PR * Setting librey exception as direct side_effect in test * Final changes for PR * Redundand on command solved * Improved AC logic
2019-11-15 21:22:24 +01:00
"hisense_aehw4a1",
"hive",
"hlk_sw16",
2020-05-05 11:26:14 +02:00
"home_connect",
"home_plus_control",
"homekit",
"homekit_controller",
"homematicip_cloud",
Modernize Huawei LTE (#26675) * Modernization rework - config entry support, with override support from huawei_lte platform in YAML - device tracker entity registry support - refactor for easier addition of more features - internal code cleanups * Remove log level dependent subscription/data debug hack No longer needed, because pretty much all keys from supported categories are exposed as sensors. Closes https://github.com/home-assistant/home-assistant/issues/23819 * Upgrade huawei-lte-api to 1.4.1 https://github.com/Salamek/huawei-lte-api/releases * Add support for access without username and password * Use subclass init instead of config_entries.HANDLERS * Update huawei-lte-api to 1.4.3 (#27269) * Convert device state attributes to snake_case * Simplify scanner entity initialization * Remove not needed hass reference from Router * Return explicit None from unsupported old device tracker setup * Mark unknown connection errors during config as such * Drop some dead config flow code * Run config flow sync I/O in executor * Parametrize config flow login error tests * Forward entry unload to platforms * Async/sync fixups * Improve data subscription debug logging * Implement on the fly add of new and tracking of seen device tracker entities * Handle device tracker entry unload cleanup in component * Remove unnecessary _async_setup_lte, just have code in async_setup_entry * Remove time tracker on unload * Fix to not use same mutable default subscription set for all routers * Pylint fixes * Remove some redundant defensive device tracker code * Add back explicit get_scanner None return, hush pylint * Adjust approach to set system_options on entry create * Enable some sensors on first add instead of disabling everything * Fix SMS notification recipients default value * Add option to skip new device tracker entities * Fix SMS notification recipient option default * Work around https://github.com/PyCQA/pylint/issues/3202 * Remove unrelated type hint additions * Change async_add_new_entities to a regular function * Remove option to disable polling for new device tracker entries
2019-10-24 18:31:49 +02:00
"huawei_lte",
"hue",
"huisbaasje",
"hunterdouglas_powerview",
"hvv_departures",
"hyperion",
"ialarm",
"iaqualink",
"icloud",
"ifttt",
"insteon",
"ios",
"ipma",
"ipp",
"iqvia",
"islamic_prayer_times",
"isy994",
"izone",
"juicenet",
"keenetic_ndms2",
"kmtronic",
"kodi",
"konnected",
"kostal_plenticore",
"kulersky",
2019-06-07 01:07:15 +02:00
"life360",
"lifx",
"litejet",
2021-02-22 19:53:57 +01:00
"litterrobot",
"local_ip",
"locative",
"logi_circle",
"luftdaten",
"lutron_caseta",
"lyric",
"mailgun",
"mazda",
Add MELCloud integration (#30712) * Add MELCloud integration * Provides a climate and sensor platforms. Multiple platforms on one go is not the best option, but it does not make sense to remove them and commit them later either. * Email and access token are stored to the ConfigEntry. The token can be updated by adding the integration again with the same email address. The config flow is aborted and the update is performed on the background. * Run isort * Fix pylint errors * Run black * Increase coverage * Update pymelcloud dependency * Add HVAC_MODE_OFF emulation * Remove print * Update pymelcloud to enable device type filtering * Collapse except blocks and chain ClientNotReadys * Add preliminary documentation URL * Use list comp for creating model info Filters out empty model names form units. * f-string galore Dropped 'HVAC' from AtaDevice name template. * Delegate fan mode mapping to pymelcloud * Fix type annotation * Access AtaDevice through self._device * Prefer list comprehension * Update pymelcloud to leverage device type grouping The updated backend lib returns devices in a dict grouped by the device type. The devices do not necessarily need to be in a single list and this way isinstance is not required to extract devices by type. * Remove DOMAIN presence check This does not seem to make much sense after all. * Fix async_setup_entry Entry setup used half-baked naming from few experimentations back. The naming conventiens were unified to match the platforms. A redundant noneness check was also removed after evaluating the possible return values from the backend lib. * Simplify empty model name check * Improve config validation * Use config_validation strings. * Add CONF_EMAIL to config schema. The value is not strictly required when configuring through configuration.yaml, but having it there makes things more consistent. * Use dict[key] to access required properties. * Add DOMAIN in config check back to async_setup. This is required if an integration is configured throught config_flow. * Remove unused manifest properties * Remove redundant ClimateDevice property override * Add __init__.py to coverage exclusion * Use CONF_USERNAME instead of CONF_EMAIL * Use asyncio.gather instead of asyncio.wait * Misc fixes * any -> Any * Better names for dict iterations * Proper dict access with mandatory/known keys * Remove unused 'name' argument * Remove unnecessary platform info from unique_ids * Remove redundant methods from climate platform * Remove redundant default value from dict get * Update ConfigFlow sub-classing * Define sensors in a dict instead of a list * Use _abort_if_unique_id_configured to update token * Fix them tests * Remove current state guards * Fix that gather call * Implement sensor definitions without str manipulation * Use relative intra-package imports * Update homeassistant/components/melcloud/config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-02-10 22:09:12 +01:00
"melcloud",
"met",
"met_eireann",
"meteo_france",
"metoffice",
"mikrotik",
"mill",
Add Minecraft Server Integration (#30992) * Add Minecraft Server integration * Add unit test for config flow * Fixed some review findings and increased unit test coverage * Fixed docstrings of new test cases * Removed unnecessary debug log messages * Added unique IDs and device infos and removed duplicate name validation * Attempt to fix unit test on CI * Return state OFF instead of UNAVAILABLE in case connection to server drops * Added property decorator to server properties, even less debug messages, improved sensor dispatcher connection and other review findings fixed * Moved special property handling to sensors, fixed name confusion in sensor entity, switch to HA const for scan_interval, simplified building players list string * Improved periodic update, speeded up unit tests * Added type hints, added callback decorator to entity update callback, added const.py to unit test exclusions * Changed state sensor to binary sensor, removed empty unit test file, added constants for icons and units * Let HA handle unknown state, check for None in description and players list sensor * Removed periods at end of log messages, removed constant for default host * Updated requirements_test_pre_commit.txt, fixed codespell findings * Use localhost as default host * Removed passing hass to entities, moved log message from init, moved host lower to vol, use proper patch library, patch library instead of own code * Replaced server properties with global instance attributes, removed config option scan_interval, switch back to async_track_time_interval * Removed description and players list sensors, added players list as state attributes to online players sensor, raise OSError instead of deprecated IOError, other minor review findings fixed * Use MAC address for unique_id in case of an IP address as host, added getmac to manifest.json, added invalid_ip to strings.json, added new test cases for changes in config_flow, replace all IOError's with OSError, other review findings fixed * Removed double assignment * Call get_mac_address async safe * Handle unavailable and unknown states to reach silver quality scale, added quality scale to manifest.json
2020-02-08 09:28:35 +01:00
"minecraft_server",
"mobile_app",
"monoprice",
"motion_blinds",
"motioneye",
"mqtt",
"mullvad",
"mutesync",
"myq",
MySensors config flow (#45421) * MySensors: Add type annotations Adds a bunch of type annotations that were created while understanding the code. * MySensors: Change GatewayId to string In preparation for config flow. The GatewayId used to be id(gateway). With config flows, every gateway will have its own ConfigEntry. Every ConfigEntry has a unique id. Thus we would have two separate but one-to-one related ID systems. This commit removes this unneeded duplication by using the id of the ConfigEntry as GatewayId. * MySensors: Add unique_id to all entities This allows entities to work well with the frontend. * MySensors: Add device_info to all entities Entities belonging to the same node_id will now by grouped as a device. * MySensors: clean up device.py a bit * MySensors: Add config flow support With this change the MySensors can be fully configured from the GUI. Legacy configuration.yaml configs will be migrated by reading them once. Note that custom node names are not migrated. Users will have to re-enter the names in the front-end. Since there is no straight-forward way to configure global settings, all previously global settings are now per-gateway. These settings include: - MQTT retain - optimistic - persistence enable - MySensors version When a MySensors integration is loaded, it works as follows: 1. __init__.async_setup_entry is called 2. for every platform, async_forward_entry_setup is called 3. the platform's async_setup_entry is called 4. __init__.setup_mysensors_platform is called 5. the entity's constructor (e.g. MySensorsCover) is called 6. the created entity is stored in a dict in the hass object * MySensors: Fix linter errors * MySensors: Remove unused import * MySensors: Feedback from @MartinHjelmare * MySensors: Multi-step config flow * MySensors: More feedback * MySensors: Move all storage in hass object under DOMAIN The integration now stores everything under hass.data["mysensors"] instead of using several top level keys. * MySensors: await shutdown of gateway instead of creating a task * MySensors: Rename Ethernet to TCP * MySensors: Absolute imports and cosmetic changes * MySensors: fix gw_stop * MySensors: Allow user to specify persistence file * MySensors: Nicer log message * MySensors: Add lots of unit tests * MySensors: Fix legacy import of persistence file name Turns out tests help to find bugs :D * MySensors: Improve test coverage * MySensors: Use json persistence files by default * MySensors: Code style improvements * MySensors: Stop adding attributes to existing objects This commit removes the extra attributes that were being added to the gateway objects from pymysensors. Most attributes were easy to remove, except for the gateway id. The MySensorsDevice class needs the gateway id as it is part of its DevId as well as the unique_id and device_info. Most MySensorsDevices actually end up being Entities. Entities have access to their ConfigEntry via self.platform.config_entry. However, the device_tracker platform does not become an Entity. For this reason, the gateway id is not fetched from self.plaform but given as an argument. Additionally, MySensorsDevices expose the address of the gateway (CONF_DEVICE). Entities can easily fetch this information via self.platform, but the device_tracker cannot. This commit chooses to remove the gateway address from device_tracker. While this could in theory break some automations, the simplicity of this solution was deemed worth it. The alternative of adding the entire ConfigEntry as an argument to MySensorsDevices is not viable, because device_tracker is initialized by the async_setup_scanner function that isn't supplied a ConfigEntry. It only gets discovery_info. Adding the entire ConfigEntry doesn't seem appropriate for this edge case. * MySensors: Fix gw_stop and the translations * MySensors: Fix incorrect function calls * MySensors: Fewer comments in const.py * MySensors: Remove union from _get_gateway and remove id from try_connect * MySensors: Deprecate nodes option in configuration.yaml * MySensors: Use version parser from packaging * MySensors: Remove prefix from unique_id and change some private property names * MySensors: Change _get_gateway function signature * MySensors: add packaging==20.8 for the version parser * MySensors: Rename some stuff * MySensors: use pytest.mark.parametrize * MySensors: Clean up test cases * MySensors: Remove unneeded parameter from devices * Revert "MySensors: add packaging==20.8 for the version parser" This reverts commit 6b200ee01a3c0eee98176380bdd0b73e5a25b2dd. * MySensors: Use core interface for testing configuration.yaml import * MySensors: Fix test_init * MySensors: Rename a few variables * MySensors: cosmetic changes * MySensors: Update strings.json * MySensors: Still more feedback from @MartinHjelmare * MySensors: Remove unused strings Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * MySensors: Fix typo and remove another unused string * MySensors: More strings.json * MySensors: Fix gateway ready handler * MySensors: Add duplicate detection to config flows * MySensors: Deal with non-existing topics and ports. Includes unit tests for these cases. * MySensors: Use awesomeversion instead of packaging * Add string already_configured * MySensors: Abort config flow when config is found to be invalid while importing * MySensors: Copy all error messages to also be abort messages All error strings may now also be used as an abort reason, so the strings should be defined * Use string references Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-05 22:13:57 +01:00
"mysensors",
"nam",
"neato",
"nest",
2020-01-11 12:20:00 +01:00
"netatmo",
Add Nexia thermostat support (Trane / American Standard) (#32826) * Merge nexia * Restore original work * Merge cleanups * config flow * Add config flow * Add missing files * Fix import of old yaml config * More cleanups from self review * Additional self review * Update homeassistant/components/nexia/services.yaml Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * fix io in event loop * Update homeassistant/components/nexia/climate.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * avoid using ternary statements if they span multiple * Cleanup strings and remove unneeded attributes * more cleanup * more cleanup of yaml * remove coordinator boiler plate * nuke services for now for the inital pr, add back later * remove copy pasta * this can be reduced more * Update homeassistant/components/nexia/config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * review * comments * Update homeassistant/components/nexia/climate.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/climate.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/nexia/climate.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * more review adjustments * nuke unused constants * Update homeassistant/components/nexia/config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * map states * add update * zone id is unique * Fix humidfy check * target_humidity should be a property instead of in attributes * remove aux heat as its already there Co-authored-by: Ryan Nazaretian <ryannazaretian@gmail.com> Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-03-20 03:03:51 +01:00
"nexia",
"nightscout",
"notion",
"nuheat",
"nuki",
"nut",
"nws",
"nzbget",
Add Omnilogic integration (#40474) * Scaffold * Added the en translation * Modified the name * Basic functionality for config flow. * Pulled in enough to validate config flow works. * Update manifest.json * initial data polling (water and air temp sensors) * Adding sensors, debugging update function * polling updates working * support for new data format from library * Updated entity_id, friendly name, conversion for ppm, attributes for hayward display units, MSPSystemID and component systemID * Fixed errors for PR * clean up * Add login exc, check if configured, test login. * Remove debug print. * Black formatting, ran isort, update requirements. * Updated w isort. fix flake8 failures. * Fix flake8 errors * Fixed self.attrs to remove invalid self._ values - small change * Missed on small change - fixing attributes * Updated naming, updated unit of measure, updated icon, bumped omnilog… * Updated to fix flake8 issues in __init__.py and config_flow.py * Updated test_config_flow.py to pass, updated config_flow.py to correct errors in test * Remove comments in preparation for PR * update .covezragerc * Formatting fix * Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors. * Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors. * Added CSAD sensors for pools that have them. * Added CSAD sensors for pools that have them. * Fixed CSAD to not create if blank or don't exist, removed broad except usage to pass linting. * Updated entity naming convention. Fixed linting issues. * Added device association to the back yard / omnilogic system * Removed .0 from ppm values when returning imperial values for salt sensor * Updated to return state = None for water temp when pump is off, handled Chlorinator operatingMode = 2, and added PlatformNotReady check * Corrected exception from Omnilogic library * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Removed nested_lookup dependency, bumped omnilogic.py to 0.3.8. * Fixed lint error * Added logging for sensor creation. * Fixed linting errors with logging. * Fixed explicit chaining of raised error. Fixed issue with alarm sensor. * Fixed manifest.json based on feedback. * Fixed self.attrs, should_poll, CoordinatorEntity, SCAN_INTERVAL from comments in PR. * Addressed unique_id, moved data update coordinator, addressed minor other issues from testing * Created main OmniLogic entity for common items, reworked DataUpdateCoordinator to it's own class. * Addressed config_schema not used in __init__.py * Fixed linting issues. * Addressed several comments, still todo - separate sensor classes. * Split the Omnilogic Sensors into separate logical classes for simpler logic. * Fixed snake case lint error for AddAlarms (to add_alarms) * Addressed config_flow issues from comments. * Changed addressed ConfigNotReady issue from comments. * Updated strings.json and generated corrected en.json with translations. * Updated en.json to standard generated file. * Added config_flow tests and updated issue with config_flow on cannot_connect * Added test case for incomplete information entered. * Compressed logic in the sensor classes to reduce duplication. * Updated strings.json for polling_interval, added generic exception handling on config flow. * Removed omnilogic from the .coveragerc omit file. * Updated test_config_flow to follow recommended pattern. * Excluded sensor.py from test coverage tests. * Corected minor issues in test_config_flow from comments * Fixed linting issues on last commits * Fixed linting issues. * Corrected issue when temp state is not available from Omnilogic * Added omnililogic_common.py from .coveragerc to bypass test coverage check. * Return false on Login Exception, handle OmniLogicException in config_flow and in tests. * Handle all exceptions and in config_flow and tests, clarified test naming. * Broke out test cases per comments. * Regenerated en.json file. * Addressed changes from comments in PR. * Added session and bumped API to 0.4.0, addressed other comments from PR. * Addressed entitydata (missed earlier). * Fixed pylint issue * Added test case for options flow in test_config_flow.py * Removed super() and used self when calling methods in current class. * Addressed comments in PR. * Addressed comments in PR. * Updated translations file. * Rewrote data coordinator to output dict for easy searching. * Updated chlorinator unit when chlorinator is on/off only * Scaffold * Added the en translation * Modified the name * Basic functionality for config flow. * Pulled in enough to validate config flow works. * Update manifest.json * initial data polling (water and air temp sensors) * Adding sensors, debugging update function * polling updates working * support for new data format from library * Updated entity_id, friendly name, conversion for ppm, attributes for hayward display units, MSPSystemID and component systemID * Fixed errors for PR * clean up * Add login exc, check if configured, test login. * Remove debug print. * Black formatting, ran isort, update requirements. * Updated w isort. fix flake8 failures. * Fix flake8 errors * Fixed self.attrs to remove invalid self._ values - small change * Missed on small change - fixing attributes * Updated naming, updated unit of measure, updated icon, bumped omnilog… * Updated to fix flake8 issues in __init__.py and config_flow.py * Updated test_config_flow.py to pass, updated config_flow.py to correct errors in test * Remove comments in preparation for PR * update .covezragerc * Formatting fix * Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors. * Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors. * Added CSAD sensors for pools that have them. * Added CSAD sensors for pools that have them. * Fixed CSAD to not create if blank or don't exist, removed broad except usage to pass linting. * Updated entity naming convention. Fixed linting issues. * Added device association to the back yard / omnilogic system * Removed .0 from ppm values when returning imperial values for salt sensor * Updated to return state = None for water temp when pump is off, handled Chlorinator operatingMode = 2, and added PlatformNotReady check * Corrected exception from Omnilogic library * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors. * Removed nested_lookup dependency, bumped omnilogic.py to 0.3.8. * Fixed lint error * Added logging for sensor creation. * Fixed linting errors with logging. * Fixed explicit chaining of raised error. Fixed issue with alarm sensor. * Fixed manifest.json based on feedback. * Fixed self.attrs, should_poll, CoordinatorEntity, SCAN_INTERVAL from comments in PR. * Addressed unique_id, moved data update coordinator, addressed minor other issues from testing * Created main OmniLogic entity for common items, reworked DataUpdateCoordinator to it's own class. * Addressed config_schema not used in __init__.py * Fixed linting issues. * Addressed several comments, still todo - separate sensor classes. * Split the Omnilogic Sensors into separate logical classes for simpler logic. * Fixed snake case lint error for AddAlarms (to add_alarms) * Addressed config_flow issues from comments. * Changed addressed ConfigNotReady issue from comments. * Updated strings.json and generated corrected en.json with translations. * Updated en.json to standard generated file. * Added config_flow tests and updated issue with config_flow on cannot_connect * Added test case for incomplete information entered. * Compressed logic in the sensor classes to reduce duplication. * Updated strings.json for polling_interval, added generic exception handling on config flow. * Removed omnilogic from the .coveragerc omit file. * Updated test_config_flow to follow recommended pattern. * Excluded sensor.py from test coverage tests. * Corected minor issues in test_config_flow from comments * Fixed linting issues on last commits * Fixed linting issues. * Corrected issue when temp state is not available from Omnilogic * Added omnililogic_common.py from .coveragerc to bypass test coverage check. * Return false on Login Exception, handle OmniLogicException in config_flow and in tests. * Handle all exceptions and in config_flow and tests, clarified test naming. * Broke out test cases per comments. * Regenerated en.json file. * Addressed changes from comments in PR. * Added session and bumped API to 0.4.0, addressed other comments from PR. * Addressed entitydata (missed earlier). * Fixed pylint issue * Added test case for options flow in test_config_flow.py * Removed super() and used self when calling methods in current class. * Addressed comments in PR. * Addressed comments in PR. * Updated translations file. * Rewrote data coordinator to output dict for easy searching. * Updated chlorinator unit when chlorinator is on/off only * Fixed ORP method not being @property, fixed unique_id potential issue. Does not address comments from PR. * Rewrote coordinator for updated dict structure, rewrote sensors to parse new data structure. * Added alarms as attributes on all entities which support alarm reporting. * Updated SENSOR_TYPES to sensor_types to adhere to snake case in pylint. * Addressed PR comments. * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Removed binary sensor conditions (alarms, on/off sensor types) and added ability for multiple guard conditions * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Updated per comments in PR for Pump Type and removal of force_update(). * Update homeassistant/components/omnilogic/sensor.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/omnilogic/common.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Correctly asserting conditions for the login exception case. * Update .coveragerc Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Mike Hershberger <mike.hershberger@gmail.com> Co-authored-by: Chad <54695185+chadlyy@users.noreply.github.com> Co-authored-by: Tim Empringham <tim.empringham@live.ca> Co-authored-by: djtimca <60706061+djtimca@users.noreply.github.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-09-25 17:55:10 +02:00
"omnilogic",
"ondilo_ico",
Add config flow for One wire (#39321) * Add support for config_flow Add support for switches Add support for binary sensors * Add config flow strings * Update .coveragerc * black-formatting * fixes for isort and flake * fixes for pylint * fixes for isort * fixes for isort * fixes for config_flow * Add devices to Device Registry * Updated comments * fixes for flake8 * Updated comments * Updated comments * Implement async_unload_entry * remove binary_sensor and switch implementation (will move to new PR) * Update .coveragerc Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update .coveragerc * Review config flow to store the configuration type * Add config_flow tests * Move CONF_NAMES to constants * Fix isort * Tweak to onewire logger * Tweak to onewire logger for sensor * Reset _LOGGER variable * Normalise header * Normalise header * Update to use references in config flow translations * Improve test coverage * fixes for isort * Update async_unload_entry * Update common strings * Update imports * Move connect attempt to executor * Update common strings * Remove OWFS from config_flow * Prevent duplicate config entries * Fix isort * Fix flake8 * Fix tests following removal of OWFS implementation * Fix flake8 * Adjust config from yaml to config-flow, and add ability to specify sysbus directory * Ajust unique_id for config entries * Fix test_config_flow * Fix invalid merge * Convert yaml to config_entry * Update sysbus tests * Tweaks to yaml import process, and add OWFS warning * Enable migration of OWFS platform config to config_entry * update the existing corresponding config entry on OWFS conversion * Remove CONFIG_SCHEMA * Move data_schema to constants * Remove log message * Remove duplicate warning * Update already_configured to use already_configured_device constant * Schedule get_entities on the executor * Update duplicate entry check for OWServer * Review TryCatch * Schedule os.path.isdir on the executor * rename owhost/owport * Update checks for empty * Fix incorrect patch * Move config_flow validation methods to new OneWireHub * Fix typo and pre-commit * Cleanup try/else * patch async_setup/async_setup_entry * cleanup implicit exit point * Fix invalid patch * cleanup implicit exit point * cleanup implicit exit point Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-10-24 03:57:16 +02:00
"onewire",
2020-05-01 08:15:40 +02:00
"onvif",
"opentherm_gw",
"openuv",
"openweathermap",
"ovo_energy",
"owntracks",
2020-05-14 22:56:04 +02:00
"ozw",
"panasonic_viera",
"philips_js",
"pi_hole",
"picnic",
"plaato",
"plex",
Update plugwise to async and config_flow (#33691) * Update plugwise async, config_flow and multi entity * Update battery percentage * Fix yamllint on services * Fix yamllint on services * Fix formatting for pyupgrade * Update homeassistant/components/plugwise/__init__.py Co-Authored-By: Robert Svensson <Kane610@users.noreply.github.com> * Add try/except on setup * Bump module version, battery version and valve position * Removing sensor, switch, water_heater for later (child) PRs * Catchup and version bump * Remove title from strings.json * Readd already reviewd await try/except * Readd already reviewed config_flow * Fix pylint * Fix per 0.109 translations * Remove unused import from merge * Update plugwise async, config_flow and multi entity * Update battery percentage * Fix yamllint on services * Fix yamllint on services * Bump module version * Bump module version, battery version and valve position * Removing sensor, switch, water_heater for later (child) PRs * Catchup and version bump * Remove title from strings.json * Fix pylint * Fix per 0.109 translations * Translations and config_flow, module version bump with required changes * Translations and config_flow, module version bump with required changes * Fix requirements * Fix requirements * Fix pylint * Fix pylint * Update homeassistant/components/plugwise/__init__.py Improvement Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/plugwise/__init__.py Improvement Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/plugwise/__init__.py Improvement Co-authored-by: J. Nick Koston <nick@koston.org> * Include configentrynotready on import * Update __init__.py * DataUpdateCoordinator and comment non-PR-platforms * Fix reqs * Rename devices variable in favor of entities * Rework updates with DataUpdateCoordinator * Peer review * Peer review second part * Cleanup comments and redundant code * Added required config_flow test * Peer review third part * Update service was replaced by DataUpdateCoordinator * Corrected testing, version bump for InvalidAuth, move uniq_id * Remove according to review * Await connect (py38) * Remove unneccesary code * Show only when multiple * Improve config_flow, rename consts * Update homeassistant/components/plugwise/climate.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/plugwise/climate.py Co-authored-by: J. Nick Koston <nick@koston.org> * Process review comments Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com> Co-authored-by: J. Nick Koston <nick@koston.org>
2020-05-28 17:52:25 +02:00
"plugwise",
Add Plum Lightpad config flow (#36802) * add support for config flow for Plum Lightpad integration * add support for config flow for Plum Lightpad integration (remove unintended change to requirements_test_all.txt) * add support for config flow for Plum Lightpad integration (fix lint issues) * add support for config flow for Plum Lightpad integration (PR feedback) * add support for config flow for Plum Lightpad integration (fix lint) * Update homeassistant/components/plum_lightpad/__init__.py use debug instead of info for logging Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/plum_lightpad/strings.json switch to use generated references instead of hard-coded strings Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/plum_lightpad/strings.json switch to use references instead of hard-coded string Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/plum_lightpad/strings.json removing translated title per suggestion Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/plum_lightpad/strings.json removing per suggestion Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> * remove unnecessary deepcopy * remove unnecessary logging warning, since ignoring is expected for configuration.yaml scenario * switch to hass.loop.create_task per PR feedback * show login errors when configuring integration via UI (PR feedback) * disable wrongly flag pylint violation * add except handler to handle connection errors when setting up config flow entry * address PR feedback regarding exception handling * Update homeassistant/components/plum_lightpad/config_flow.py use helper instead of custom code/message-id Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-06-24 05:40:11 +02:00
"plum_lightpad",
"point",
Create PoolSense integration (#35561) * Created integration for PoolSense - a device to maintain your pool * Updated poolsense integration with changes due to code review comments. * Update poolsense with lint fix (logging-not-lazy) * Update poolsense with lint fix (f string missing placeholders) * Update homeassistant/components/poolsense/config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Added test for poolsense component. Updated config_flow to better follow the guidelines. * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update tests/components/poolsense/test_config_flow.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Removed uneccessary functions. * Added local venv to gitignore * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update to strings to allow for translations. Also some coding convention updates. * Removed space in icon return Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Removed space in icon return Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Removed space in icon return Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/__init__.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/__init__.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/__init__.py Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Update homeassistant/components/poolsense/strings.json Co-authored-by: Chris Talkington <chris@talkingtontech.com> * Updated to include some error checks for pypi package * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Update tests/components/poolsense/test_config_flow.py * Update homeassistant/components/poolsense/sensor.py * Apply suggestions from code review * Update homeassistant/components/poolsense/__init__.py * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Update homeassistant/components/poolsense/sensor.py * Apply suggestions from code review * Update homeassistant/components/poolsense/__init__.py * Update homeassistant/components/poolsense/sensor.py Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-07-01 07:44:10 +02:00
"poolsense",
Add Powerwalls integration (#32851) * Create an integration for Powerwalls * Self review :: remove unused code * Remove debug * Update homeassistant/components/powerwall/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * _call_site_info to module level * Update homeassistant/components/powerwall/binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/powerwall/test_binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/binary_sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * remove sensors that I added tests for from the comment * Update homeassistant/components/powerwall/config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/powerwall/sensor.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Switch to UNIT_PERCENTAGE * reduce code * Add test for import * Adjust tests * Add missing file Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-03-19 16:50:17 +01:00
"powerwall",
"profiler",
"progettihwsw",
"ps4",
Add pvpc electricity prices integration (#32092) * Add new integration: pvpc_hourly_pricing to add a sensor with the current hourly price of electricity in Spain. Configuration is done by selecting one of the 3 reference tariffs, with 1, 2, or 3 billing periods. * Features config flow, entity registry, RestoreEntity, options flow to change tariff, manual yaml config as integration or sensor platform * Cloud polling sensor with minimal API calls (3/hour at random times) and smart retry; fully async * Only 1 state change / hour (only when the price changes) * At evening, try to download published tomorrow prices, to always store prices info for a window of [3, 27] hours in the future. * Include useful state attributes to program automations to be run at best electric prices. * Add spanish and english translations. * Requires `xmltodict` to parse official xml file with hourly prices for each day. * Update requirements and add to codeowners * Avoid passing in hass as a parameter to the entity Instead, create time change listeners in async_added_to_hass and call async_generate_entity_id before async_add_entities * Fix lint issues * Add tests for config & options flow * Add tests for manual yaml config with entity definition as integration and also as a sensor platform * Fix placement of PLATFORM_SCHEMA and update generated config_flows * Store prices internally linked to UTC timestamps - to deal with days with DST changes - and work with different local timezones * Add availability to sensor to 'expire' the sensor if there is no connection available and current hour is not in the stored prices. Also, turn off logging and retrying if prices can't be downloaded repeatedly, by flagging `data_source_available` as False, so there is no log-flood mess. * Add more tests - to cover behavior in DST changes and complete coverage of sensor logic - to cover abort config flow * fix linter * Better handling of sensor availability and minor enhancements - Emmit 1 error if data source is marked as unavailable (after some retries), and be silent until cloud access is recovered, then emmit 1 warning. - Follow standard of camel_case keys in attributes * Mock aiosession to not access real API, store fixture data - Store a set of daily xml files to test sensor logic for all situations - Mock time and session to run tests with stored API responses - Add availability test to simulate a lost + recovery of cloud access, checking that logging is reasonable: 1 error to flag the continued disconnection + 1 warning in recovery. * Change API endpoint to retrieve JSON data and remove xmltodict from reqs. It seems that this endpoint is more reliable than the XML. * Adapt tests to new API endpoint * Translate tariff labels to plain English and sync the default timeout value for all ways of configuration. * Relax logging levels to meet silver requirements - 1 warning when becoming unavailable, another warning when recovered. - Warnings for unexpected TimeoutError or ClientError - Move the rest to debug level, leaving info for HA internals Also reduce number of API calls from 3 to 2 calls/hour. * Fix requirements * Mod tests to work with timezone Atlantic/Canary and fix state attributes for timezones != reference, by using 3 price prefixes: 'price_last_day_XXh', 'price_next_day_XXh' and 'price_XXh', all generated with local time (backend timezone) * Try to fix CI tests * Externalize pvpc data and simplify sensor.py * add new `aiopvpc` to requirements * Remove data parsing and price logic from here * Replace some constant properties with class variables * Simplify tests for pvpc_hourly_pricing * Fix updater for options flow * Updater always reloads * `tariff` value comes 1st from entry.options, 2nd from entry.data * Fix lint * Bump aiopvpc * Remove options flow and platform setup - Remove PLATFORM_SCHEMA and async_setup_platform - Generate config_entry.unique_id with tariff instead of entity_id, in flow step. - Remove TariffSelectorConfigFlow - Adapt tests to maintain full coverage * Fix docstring on test and rename SENSOR_SCHEMA to SINGLE_SENSOR_SCHEMA to avoid confusion * Remove timeout manual config, fix entry.options usage, simplify unique_id * Simplify tests - No need for a test_setup now, as platform setup is removed and integration setup is already used in `test_availability` - Simplified `_process_time_step`: only one async_fire(EVENT_TIME_CHANGED)/hour * Fix possible duplicated update when source is not available. * Do not access State last_changed for log messages * Do not update until entity is added to hass and call to async_update after 1st download or when recovering access, so async_write_ha_state is not called twice on those. * minor changes * Rename method to select current price and make it a callback
2020-03-22 20:25:31 +01:00
"pvpc_hourly_pricing",
"rachio",
"rainmachine",
"recollect_waste",
Implement config and option flow for rfxtrx integration (#39117) * Create option flow for Rfxtrx integration (#37982) * Implement config flow for rfxtrx integration (#39299) * Add config flow * Add strings * Add first series of tests * Add tests * Adjust tests according review comments * Adjust strings * Add executor for testing connection * Change ports to dict * Fix pylint issue * Adjust tests * Migrate config entry for rfxtrx integration (#39528) * Add rfxtrx device connection validation when importing (#39582) * Implement import connection validation * Fix binary sensor tests * Move rfxtrx data * Fix cover tests * Fix test init * Fix light tests * Fix sensor tests * Fix switch tests * Refactor rfxtrx test data * Fix strings * Fix check * Rework device string in test code * Add option to delete multiple rfxtrx devices (#39625) * Opt to remove multiple devices * Fix devices key * Add tests (phase 1) * Add tests (phase 2) * Tweak remove devices test * Implement device migration function in rfxtrx option flow (#39694) * Prompt option to replace device * Revert unwanted changes * Add replace device function * WIP replace entities * Remove device/entities and update config entry * Fix styling * Add info * Add test * Fix strings * Refactor building migration map * Allow migration for all device types * Add test to migrate control device * Fixup some names * Fixup entry names in test code * Bump pyRFXtrx to 0.26 and deprecate debug config key (#40679) * Create option flow for Rfxtrx integration (#37982) * Implement config flow for rfxtrx integration (#39299) * Add config flow * Add strings * Add first series of tests * Add tests * Adjust tests according review comments * Adjust strings * Add executor for testing connection * Change ports to dict * Fix pylint issue * Adjust tests * Migrate config entry for rfxtrx integration (#39528) * Add rfxtrx device connection validation when importing (#39582) * Implement import connection validation * Fix binary sensor tests * Move rfxtrx data * Fix cover tests * Fix test init * Fix light tests * Fix sensor tests * Fix switch tests * Refactor rfxtrx test data * Fix strings * Fix check * Rework device string in test code * Add option to delete multiple rfxtrx devices (#39625) * Opt to remove multiple devices * Fix devices key * Add tests (phase 1) * Add tests (phase 2) * Tweak remove devices test * Implement device migration function in rfxtrx option flow (#39694) * Prompt option to replace device * Revert unwanted changes * Add replace device function * WIP replace entities * Remove device/entities and update config entry * Fix styling * Add info * Add test * Fix strings * Refactor building migration map * Allow migration for all device types * Add test to migrate control device * Fixup some names * Fixup entry names in test code * Bump version number * Remove debug key from connect * Remove debug option from config flow * Remove debug from tests * Fix event test * Add cv.deprecated * Fix test * Fix config schema * Add timeout on connection * Rework config schema * Fix schema...again * Prevent creation of duplicate device in rfxtrx option flow (#40656)
2020-10-01 08:55:57 +02:00
"rfxtrx",
"ring",
"risco",
"rituals_perfume_genie",
"roku",
Add config_flow for Roomba (#33302) * Add config_flow for roomba * Get options to connect * Fix options in config flow * Fix syntax in config_flow * Remove name (not necessary) * Add bin sensor * Add Battery sensor * Add async_connect * Fix typo * Add Model and Software version * Update Roombapy 1.5.0 * Add validate_input * Add connect and disconnect functions * Remove test config flow * Add variables after loop * Fix translate * Fix typo * Fix state of bin * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Remove invalid auth * Add call function reported_state * Add options reload * Fix tracelog * Set entry_id for config_entry * Fix DOMAIN unsed-import * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Add unique_id for entry * Fix device info * Add config_flow for roomba * Get options to connect * Fix options in config flow * Fix syntax in config_flow * Remove name (not necessary) * Add bin sensor * Add Battery sensor * Add async_connect * Fix typo * Add Model and Software version * Update Roombapy 1.5.0 * Add validate_input * Add connect and disconnect functions * Remove test config flow * Add variables after loop * Fix translate * Fix typo * Fix state of bin * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Remove invalid auth * Add call function reported_state * Add options reload * Fix tracelog * Set entry_id for config_entry * Fix DOMAIN unsed-import * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/config_flow.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Add unique_id for entry * Fix device info * syntax for mac (pyupgrade) * Change single key to BLID * Resolve dict conflict * Update homeassistant/components/roomba/binary_sensor.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/sensor.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/.translations/en.json Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/strings.json Co-Authored-By: J. Nick Koston <nick@koston.org> * Add description * Revert "Remove test config flow" This reverts commit 26a89422e89d7c88dd3c0ec3066e607afdc99f09. * Add tests * Remove check if user none * Replace CONF_USERNAME to CONF_BLID (breaking change) * Update test_config_flow.py * Add code owners * Remove CONF_USERNAME (unused) * Add multiple vacuum * Add multiple vacuum * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Fix syntax name * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Remove CONF_PREFIX (unused) * Update homeassistant/components/roomba/sensor.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Add import UNIT_PERCENTAGE * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> * Update homeassistant/components/roomba/__init__.py Co-Authored-By: J. Nick Koston <nick@koston.org> Co-authored-by: J. Nick Koston <nick@koston.org>
2020-04-11 17:55:00 +02:00
"roomba",
Add roon media player integration (#37553) * Import roon code. * Fix flake8/pylint issues. * Fix lint issues, extend timeout, change contact infomation. * Add new files to .coveragerc * Make file executable. * Fix problem with integration not working after initial creation. * Improve logic unavailable players by caching data. * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update review suggestions * Rremove custom play action script. * Add test requirements. * Tidy manifest. * Missed fixes. * Refactor config_flow to use current pattern. * Add config_flow tests. * Refactor to use signal dispatch helpers. * Remove ToDo: for now. * Remove remaining zone / source logic for initial release, * Stop authenticate blocking, handle timeout. * Removed unneeded code. * Review comments update. * Fix comment. * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Fix bug in seek. * Use sync rather than async update Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Upgrade library, remove exception now caught in library, * Review comments. * Review changes Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Check for duplicate host before adding. * Review comment. Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Remove unused code, revise turn_on/turn_off. * Sync translations. * Make interim timeout const. * Refactor tests. * Add tests with an existing config entry. * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Remove CannotConnect Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-08-12 15:09:47 +02:00
"roon",
"rpi_power",
"ruckus_unleashed",
Add Samsung TV config flow (#28306) * add config flow * add tests * add user step error handling * remove unload function * add missing test file * handle authentication correctly * remove old discovery mode * better handling of remote class * optimized abort messages * add already configured test for user flow * Import order * use ip property instead context * Black * small syntax * use snake_case * Revert "use ip property instead context" This reverts commit 91502407eb216f8a0b1b90e3e6fb165b81406f8f. * disable wrong pylint errors * disable wrong no-member * Try to fix review comments * Try to fix review comments * Fix missing self * Fix ip checks * methods to functions * simplify user check * remove user errors * use async_setup for config * fix after rebase * import config to user config flow * patch all samsungctl * fix after rebase * fix notes * remove unused variable * ignore old setup function * fix after merge * pass configuration to import step * isort * fix recursion * remove timeout config * add turn on action (dry without testing) * use upstream checks * cleanup * minor * correctly await async method * ignore unused import * async call send_key * Revert "async call send_key" This reverts commit f37057819fd751a654779da743d0300751e963be. * fix comments * fix timeout test * test turn on action * Update media_player.py * Update test_media_player.py * Update test_media_player.py * use async executor * use newer ssdp data * update manually configured with ssdp data * dont setup component directly * ensure list * check updated device info * Update config_flow.py * Update __init__.py * fix duplicate check * simplified unique check * move method detection to config_flow * move unique test to init * fix after real world test * optimize config_validation * update device_info on ssdp discovery * cleaner update listener * fix lint * fix method signature * add note for manual config to confirm message * fix turn_on_action * pass script * patch delay * remove device info update
2020-01-10 03:19:10 +01:00
"samsungtv",
"screenlogic",
"sense",
2020-01-03 21:34:20 +01:00
"sentry",
"sharkiq",
2020-08-24 12:43:31 +02:00
"shelly",
Add config_flow to shopping_list (#32388) * Add config_flow to shopping_list * Fix pylint unused import error * Use _abort_if_unique_id_configured * Remove SHOPPING_LIST const * Use const.py for DOMAIN and CONF_TYPE * Fix tests * Remove unchanged variable _errors * Revert CONF_TYPE (wrong usage) * Use consts in test * Remove import check * Remove data={} * Remove parameters and default values * Re-add data={}, because it's needed * Unique ID checks and reverts for default parameters * remove pylint comment * Remove block till done * Address change requests * Update homeassistant/components/shopping_list/strings.json Co-Authored-By: Quentame <polletquentin74@me.com> * Update homeassistant/components/shopping_list/strings.json Co-Authored-By: Quentame <polletquentin74@me.com> * Update tests/components/shopping_list/test_config_flow.py Co-Authored-By: Quentame <polletquentin74@me.com> * Update tests/components/shopping_list/test_config_flow.py Co-Authored-By: Quentame <polletquentin74@me.com> * Update tests/components/shopping_list/test_config_flow.py Co-Authored-By: Quentame <polletquentin74@me.com> * Update tests/components/shopping_list/test_config_flow.py Co-Authored-By: Quentame <polletquentin74@me.com> * Only test config_flow * Generate translations * Move data to end * @asyncio.coroutine --> async def, yield from --> await * @asyncio.coroutine --> async def, yield from --> await (tests) * Remove init in config flow * remove if not hass.config_entries.async_entries(DOMAIN) * Add DOMAIN not in config * Fix tests * Update homeassistant/components/shopping_list/config_flow.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Fix tests * Update homeassistant/components/shopping_list/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Quentame <polletquentin74@me.com> Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-03-06 19:17:30 +01:00
"shopping_list",
"simplisafe",
"sma",
"smappee",
Smart Meter Texas integration (#37966) * Run scaffold script * Update version * Bump version * Initial commit * Move meter and ESIID to device attributes * Update internal to hourly due to api limit * Format with Black * Fix typo * Update tests * Update description * Disable Pylint error * Don't commit translations * Remove meter number from sensor name * Allow multiple meters per account * Move data updates to a DataUpdateCoordinator * Use setdefault to setup the component * Move strings to const.py * Fix tests * Remove meter last updated attribute * Bump smart-meter-texas version * Fix logger call Co-authored-by: J. Nick Koston <nick@koston.org> * Remove unneeded manifest keys Co-authored-by: J. Nick Koston <nick@koston.org> * Remove icon property Co-authored-by: J. Nick Koston <nick@koston.org> * Handle instance where user already setup an account Co-authored-by: J. Nick Koston <nick@koston.org> * Remove icon constant * Fix indentation * Handle config flow errors better * Use ESIID + meter number as unique ID for sensor * Update config flow tests to reach 100% coverage * Avoid reading meters on startup Cherrypick @bdraco's suggestion * Run scaffold script * Update version * Bump version * Initial commit * Move meter and ESIID to device attributes * Update internal to hourly due to api limit * Format with Black * Fix typo * Update tests * Update description * Disable Pylint error * Don't commit translations * Remove meter number from sensor name * Allow multiple meters per account * Move data updates to a DataUpdateCoordinator * Use setdefault to setup the component * Move strings to const.py * Fix tests * Remove meter last updated attribute * Bump smart-meter-texas version * Fix logger call Co-authored-by: J. Nick Koston <nick@koston.org> * Remove unneeded manifest keys Co-authored-by: J. Nick Koston <nick@koston.org> * Remove icon property Co-authored-by: J. Nick Koston <nick@koston.org> * Handle instance where user already setup an account Co-authored-by: J. Nick Koston <nick@koston.org> * Remove icon constant * Fix indentation * Handle config flow errors better * Use ESIID + meter number as unique ID for sensor * Update config flow tests to reach 100% coverage * Remove unnecessary try/except block This checks for the same exception just prior in execution on L51. * Remove unused return values * Add tests * Improve tests and coverage * Use more pythonic control flow * Remove all uses of hass.data Co-authored-by: J. Nick Koston <nick@koston.org>
2020-08-19 20:16:45 +02:00
"smart_meter_texas",
"smarthab",
"smartthings",
"smarttub",
"smhi",
Part 1: Support for config flow on SMS integration (#35995) * Add support for config flow;Remove IO on main loop * Remove not needed const * Remove not needed method * Small refactor * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/gateway.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/gammuasync.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Refactor gammu * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Fix pylint * Apply PR feedback * Update gammu version with async support * Apply PR feedback * Apply PR feedback * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Apply PR feedback * Apply PR feedback * Apply PR feedback * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/strings.json Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/strings.json Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/config_flow.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/sms/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Apply PR feedback Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-06-23 01:07:58 +02:00
"sms",
"solaredge",
"solarlog",
"soma",
Somfy open api (#19548) * CREATE Somfy component * CREATE cover Somfy platform * USE somfy id as unique id * UPDATE all the devices in one call to limit the number of call * FIX Don't load devices if not yet configured * IMP Replace configurator by a simple notification * ADD log in case state does not match * IMP wording * REMOVE debug stuf * ADD support for tilt position * UPDATE requirements * FIX Use code instead of authorization response - Will allow to setup Somfy without https * HANDLE stateless devices (Somfy RTS) * FIX import locally 3rd party library * UPDATE pymfy to 0.4.3 * ADD missing docstring * FIX For Somfy 100 means closed and 0 opened * FIX position can be None * ENHANCE error management when error 500 occurs at setup * FIX indent * ROLLBACK tilt modification - See https://community.home-assistant.io/t/somfy-tahoma-official-api/61448/90?u=tetienne * FIX Look for capability instead of state * DON'T use exception to test if a feature is available * UPDATE dependency * ADD device_info property * AVOID object creation in each method * REMOVE unused constants * ADD missing doc * IMP Only make one call to add_entities * USE dict[key] instead of get method * IMP Don't pass hass object to the entities * FIX Don't end logging messages with period * USE config entries instead of a cache file * IMPLEMENT async_unload_entry * CONSOLIDATE package - see home-assistant/architecture#124 * UPDATE to pymfy 0.5.1 * SIMPLIFY config flow * ADD French translation * FIX 80 vs 79 max length * ABORT flow asap * FIX A tupple was returned * MIGRATE to manifest.json * ADD a placeholder async_setup_platform coroutine - It's currently required and expected by the platform helper. * FIX codeowner * ADD missing translations file * USE new external step * UPGRADE pymfy version * Close Somfy tab automatically * ADD manufacturer - Somfy only for the moment. * HANDLE missing code or state in Somfy request * REMOVE unused strings * DECLARE somfy component to use config_flow * APPLY static check remarks * FIX async method cannot be called from sync context * FIX only unload what has been loaded during entry setup * DON't catch them all * DON'T log full stacktrace * ABORT conflig flow if configuration missing * OMIT Somfy files for coverage * ADD tests about Somfy config flow * ADD pymfy to the test dependencies
2019-06-11 17:45:34 +02:00
"somfy",
"somfy_mylink",
"sonarr",
"songpal",
"sonos",
"speedtestdotnet",
2020-08-04 22:37:20 +02:00
"spider",
"spotify",
Squeezebox config flow (#35669) * Squeezebox add config flow and player discovery * Fixes to config flow * Unavailable player detection and recovery * Improved error message for auth failure * Testing for squeezebox config flow * Import configuration.yaml * Support for discovery integration * Internal server discovery * Fix bug restoring previously detected squeezebox player * Tests for user and edit steps in config flow * Tests for import config flow * Additional config flow tests and fixes * Linter fixes * Check that players are found before iterating them * Remove noisy logger message * Update requirements_all after rebase * Use asyncio.Event in discovery task * Use common keys in strings.json * Bump pysqueezebox to v0.2.2 for fixed server discovery using python3.7 * Bump pysqueezebox version to v0.2.3 * Don't trap AbortFlow exception Co-authored-by: J. Nick Koston <nick@koston.org> * Refactor validate_input * Update squeezebox tests * Build data flow schema using function * Fix linter error * Updated en.json * Update homeassistant/components/squeezebox/media_player.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/squeezebox/media_player.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/squeezebox/media_player.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update homeassistant/components/squeezebox/media_player.py Co-authored-by: J. Nick Koston <nick@koston.org> * Update .coveragerc for squeezebox config flow test * Mock TIMEOUT for faster testing * More schema de-duplication and testing improvements * Apply suggestions from code review Co-authored-by: J. Nick Koston <nick@koston.org> * Testing and config flow improvements * Remove unused exceptions * Remove deprecated logger message * Update homeassistant/components/squeezebox/media_player.py Co-authored-by: J. Nick Koston <nick@koston.org> * Implement suggestions from code review * Add async_unload_entry * Use MockConfigEntry in squeezebox tests * Remove unnecessary config schema * Stop server discovery task when last config entry unloaded * Improvements to async_unload_entry * Fix bug in _discovery arguments * Do not await server discovery in async_setup_entry * Do not await start server discovery in async_setup * Do not start server discovery from async_setup_entry until homeassistant running * Re-detect players when server removed and re-added without restart * Use entry.entry_id instead of unique_id * Update unittests to avoid patching homeassistant code Co-authored-by: J. Nick Koston <nick@koston.org>
2020-06-22 16:29:01 +02:00
"squeezebox",
2020-11-20 14:18:02 +01:00
"srp_energy",
"starline",
"subaru",
Add syncthing integration (#38331) * Scaffold the integration * Add config flow data schema * Handle configuration errors * Get folder states * Support https * Fix translations * Listen to syncthing events in a separate thread * Bump syncthing * Automatically reconnect to the syncthing server * Renames * Improve loading and unloading * Update folder states from events * Refactoring, handle FolderPaused event * Dynamic folder icons * Refactoring * Mark folders as unavailable when senrver is unavailable * Update folder satus when server is available * Raise PlatformNotReady * Implement additional polling * Stop polling when the server is not available * Minor fixes * Remove logging * Check name uniqueness * Refactoring * Minor refactorings * Bump python-syncthing * Migrate to aiosyncthing * Minor fixes * Update .coveragerc * Set quality scale * Bump aiosyncthing, properly handle invalid token * Fix logging * Fix logging * Use CONF_VERIFY_SSL from homeassistant.const * Bump aiosyncthing. Add Syncthing device * Fix device name * Bump aiosyncthing * Bump aiosyncthing * Extract SyncthingClient * Add folder to device_state_attributes * Do not pass the loop * Cover config_flow.py * Move self.async_create_entry outside of the try block * Raise ConfigEntryNotReady if syncthing server is not reachable * Fix already configured error message * Change default name to Syncthing * Bump aiosyncthing * Fix formatting * Fix formatting * Fix tests * Fix typo, use lis comprehension * Fix typo, remove unused CONFIG_SCHEMA * Bump aiosyncthing * Remove periods from log messages W0001 * Fix tests * Black, isort * Remove empty items from manifest.json * Fix variable naming * Remove async_setup * Use SensorEntity * Use asyncio.create_task instead of self._hass.loop.create_task * Do not pass hass to FolderSensor initializer * Rename device_state_attributes to extra_state_attributes * Use callbacks * Simplify tests * Refactor _listen() * Use url for the title * Use the url instead of the name to identify the config entry * Explicitly set sensor attributes, extract _filter_state * Use server url instead of name in device_info * Use server url instead of name in logs * User server id as a device identifier * Use URL instead of name to identify config entry * Use shortened server id instead of name to build entity name and unique id * Do not use CONF_NAME * Cleanup unused strings * Cleanup unused strings * Add IOT class * Scaffold the integration * Add config flow data schema * Handle configuration errors * Get folder states * Support https * Fix translations * Listen to syncthing events in a separate thread * Bump syncthing * Automatically reconnect to the syncthing server * Renames * Improve loading and unloading * Update folder states from events * Refactoring, handle FolderPaused event * Dynamic folder icons * Refactoring * Mark folders as unavailable when senrver is unavailable * Update folder satus when server is available * Raise PlatformNotReady * Implement additional polling * Stop polling when the server is not available * Minor fixes * Remove logging * Check name uniqueness * Refactoring * Minor refactorings * Bump python-syncthing * Migrate to aiosyncthing * Minor fixes * Update .coveragerc * Set quality scale * Bump aiosyncthing, properly handle invalid token * Fix logging * Fix logging * Use CONF_VERIFY_SSL from homeassistant.const * Bump aiosyncthing. Add Syncthing device * Fix device name * Bump aiosyncthing * Bump aiosyncthing * Extract SyncthingClient * Add folder to device_state_attributes * Do not pass the loop * Cover config_flow.py * Move self.async_create_entry outside of the try block * Raise ConfigEntryNotReady if syncthing server is not reachable * Fix already configured error message * Change default name to Syncthing * Bump aiosyncthing * Fix formatting * Fix formatting * Fix tests * Fix typo, use lis comprehension * Fix typo, remove unused CONFIG_SCHEMA * Bump aiosyncthing * Remove periods from log messages W0001 * Fix tests * Black, isort * Remove empty items from manifest.json * Fix variable naming * Remove async_setup * Use SensorEntity * Use asyncio.create_task instead of self._hass.loop.create_task * Do not pass hass to FolderSensor initializer * Rename device_state_attributes to extra_state_attributes * Use callbacks * Simplify tests * Refactor _listen() * Use url for the title * Use the url instead of the name to identify the config entry * Explicitly set sensor attributes, extract _filter_state * Use server url instead of name in device_info * Use server url instead of name in logs * User server id as a device identifier * Use URL instead of name to identify config entry * Use shortened server id instead of name to build entity name and unique id * Do not use CONF_NAME * Cleanup unused strings * Cleanup unused strings * Add IOT class * Apply suggestions from code review * Clean up * Fix dict comprehension * Clean sensor * Use the server ID as a config entry unique ID * Remove the AlreadyConfigured exception * Clean up old error string * Format json * Convert sensor attributes to snake case * Force CI Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-08 19:12:14 +02:00
"syncthing",
"syncthru",
"synology_dsm",
"system_bridge",
"tado",
"tasmota",
"tellduslive",
"tesla",
"tibber",
"tile",
"toon",
Add Totalconnect config flow (#32126) * Bump skybellpy to 0.4.0 * Bump skybellpy to 0.4.0 in requirements_all.txt * Added extra states for STATE_ALARM_TRIGGERED to allow users to know if it is a burglar or fire or carbon monoxide so automations can take appropriate actions. Updated TotalConnect component to handle these new states. * Fix const import * Fix const import * Fix const imports * Bump total-connect-client to 0.26. * Catch details of alarm trigger in state attributes. Also bumps total_connect_client to 0.27. * Change state_attributes() to device_state_attributes() * Move totalconnect component toward being a multi-platform integration. Bump total_connect_client to 0.28. * add missing total-connect alarm state mappings * Made recommended changes of MartinHjelmare at https://github.com/home-assistant/home-assistant/pull/24427 * Update __init__.py * Updates per MartinHjelmare comments * flake8/pydocstyle fixes * removed . at end of log message * added blank line between logging and voluptuous * more fixes * Adding totalconnect zones as HA binary_sensors * fix manifest.json * flake8/pydocstyle fixes. Added codeowner. * Update formatting per @springstan guidance. * Fixed pylint * Add zone ID to log message for easier troubleshooting * Account for bypassed zones in update() * More status handling fixes. * Fixed flake8 error * Another attempt at black/isort fixes. * Bump total-connect-client to 0.50. Simplify code using new functions in total-connect-client package instead of importing constants. Run black and isort. * Fix manifest file * Another manifest fix * one more manifest fix * more manifest changes. * sync up * fix indent * one more pylint fix * Hopefully the last pylint fix * make variable names understandable * create and fill dict in one step * Fix name and attributes * rename to logical variable in alarm_control_panel * Remove location_name from alarm_control_panel attributes since it is already the name of the alarm. * Multiple fixes to improve code per @springstan suggestions * Update homeassistant/components/totalconnect/binary_sensor.py Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com> * Multiple changes per @MartinHjelmare review * simplify alarm adding * Fix binary_sensor.py is_on * Move DOMAIN to .const in line with examples. * Move to async_setup * Simplify code using new features of total-connect-client 0.51 * First crack at config flow for totalconnect * bump totalconnect to 0.52 * use client.is_logged_in() to avoid total-connect-client details. * updated generated/config_flow.py * use is_logged_in() * Hopefully final touches for config flow * Add tests for config flow * Updated requirements for test * Fixes to test_config_flow * Removed leftover comments and code * fix const.py flake8 error * Simplify text per @Kane610 https://github.com/home-assistant/home-assistant/pull/32126#pullrequestreview-364652949 * Remove .get() to speed things up since the required items should always be available. * Move CONF_USERNAME and CONF_PASSWORD into .const to eliminate extra I/O to import from homeassistant.const * Fix I/O async issues * Fix flake8 and black errors * Mock the I/O in tests. * Fix isort error * Empty commit to re-start azure pipelines (per discord) * bump total-connect-client to 0.53 * Update homeassistant/components/totalconnect/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/totalconnect/config_flow.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Fixes per @balloob comments * Fix imports * fix isort error * Fix async_unload_entry It still referenced CONF_USERNAME instead of entry.entity_id * Added async_setup so not breaking change. Fixed imports. * Update tests/components/totalconnect/test_config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * Remove TotalConnectSystem() per @MartinHjelmare suggestion * Moved from is_logged_in() to is_valid_credentials() The second is more accurate for what we are checking for, because is_logged_in() could return False due to connection error. * Fix import in test * remove commented code and decorator * Update tests/components/totalconnect/test_config_flow.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> * fix test_config_flow.py * bump total-connect-client to 0.54 * remove un-needed import of mock_coro * bump to total-connect-client 0.54.1 * re-add CONFIG_SCHEMA * disable pylint on line 10 to avoid pylint bug Co-authored-by: springstan <46536646+springstan@users.noreply.github.com> Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-04-13 04:29:57 +02:00
"totalconnect",
"tplink",
"traccar",
"tradfri",
"transmission",
"tuya",
"twentemilieu",
"twilio",
"twinkly",
"unifi",
"upb",
"upcloud",
"upnp",
"velbus",
"vera",
"verisure",
"vesync",
Add initial version of Vilfo Router integration (#31177) * Initial implementation of Vilfo router integration. This commit is a combination of several commits, with commit messages in bullet form below. * Added additional files to Vilfo integration. * Added generated files. * Fixed alphabetic order in generated config_flows. * Continued implementation of config flow for Vilfo integration. * Continued work on config_flow for Vilfo. * Updated requirements in manifest for Vilfo Router integration. * Some strings added to Vilfo Router integration. * Vilfo Router integration updated with sensor support. * Code style cleanup. * Additional cleanup of config flow. * Added additional UI strings for Vilfo Router * Updated tests of config flow and fixed formatting * Updated requirement upon vilfo-api-client. * Sensor refactoring including support for icons * Code style changes for Vilfo Router integration * Code cleanup * Fixed linting issues in Vilfo Router integration * Fixed import order in test for Vilfo integration. * Updates to Vilfo Router integration based on feedback Based on the feedback received, updates have been made to the Vilfo Router integration. A couple of the points mentioned have not been addressed yet, since the appropriate action has not yet been determined. These are: * https://github.com/home-assistant/home-assistant/pull/31177#discussion_r371124477 * https://github.com/home-assistant/home-assistant/pull/31177#discussion_r371202896 This commit consists of: * Removed unused folder/submodule * Fixes to __init__ * Fixes to config_flow * Fixes to const * Refactored sensors and applied fixes * Fix issue with wrong exception type in config flow * Updated tests for Vilfo integration config_flow * Updated dependency upon vilfo-api-client to improve testability * Import order fixes in test * Use constants instead of strings in tests * Updated the VilfoRouterData class to only use the hostname as unique_id when it is the default one (admin.vilfo.com). * Refactored based on feedback during review. * Changes to constant names, * Blocking IO separated to executor job, * Data for uptime sensor changed from being computed to being a timestamp, * Started refactoring uptime sensor in terms of naming and unit. * Updated constants for boot time (previously uptime) sensor. * Refactored test of Vilfo config flow to avoid patching code under test. * UI naming fixes and better exception handling. * Removed unused exception class. * Various changes to Vilfo Router integration. * Removed unit of measurement for boot time sensor, * Added support for a sensor not having a unit, * Updated the config_flow to handle when the integration is already configured, * Updated tests to avoid mocking the code under test and also to cover the aforementioned changes. * Exception handling in Vilfo Router config flow refactored to be more readable. * Refactored constant usage, fixed sensor availability and fix API client library doing I/O in async context. * Updated signature with hass first * Update call to constructor with changed order of arguments
2020-02-12 19:11:15 +01:00
"vilfo",
Add Config Flow support, Device Registry support, available property to vizio component (#30653) * add config flow support, device registry support, available property * raise PlatformNotReady if HA cant connect to device * remove test logging statement and fix integration title * store import and last user input values so user can see errors next to value that caused error * add PARALLEL_UPDATES * add missing type hints * add missing type hints to tests * fix options config flow title * changes based on review * better key name for message when cant connect * fix missed update to key name * fix comments * remove logger from test which was used to debug and update test function names and docstrings to be more accurate * add __init__.py to vizio tests module * readded options flow and updated main component to handle options updates, set unique ID to serial, fixes based on review * pop hass.data in media_player unload instead of in __init__ since it is set in media_player * update requirements_all and requirements_test_all * make unique_id key name a constant * remove additional line breaks after docstrings * unload entries during test_user_flow and test_import_flow tests to hopefully reduce teardown time * try to speed up tests * remove unnecessary code, use event bus to track options updates, move patches to pytest fixtures and fix patch scoping * fix comment * remove translations from commit * suppress API error logging when checking for device availability as it can spam logs * update requirements_all and requirements_test_all * dont pass hass to entity since it is passed to entity anyway, remove entity unload from tests, other misc changes from review * fix clearing listeners * use config_entry unique ID for unique ID and use config_entry entry ID as update signal * update config flow based on suggested changes * update volume step on config import if it doesn't match config_entry volume step * update config_entry data and options with new volume step value * copy entry.data and entry.options before updating when updating config_entry * fix test_import_entity_already_configured
2020-01-15 11:43:55 +01:00
"vizio",
2020-07-27 09:19:19 +02:00
"volumio",
"waze_travel_time",
"wemo",
"wiffi",
"wilight",
"withings",
"wled",
"wolflink",
"xbox",
Add Xiaomi Aqara Config Flow (#35595) * Xiaomi Aqara Config Flow * Xiaomi Aqara Config Flow * Xiaomi Aqara Config Flow * Xiaomi Aqara Config Flow * Xiaomi Aqara Config Flow First tested and working version * Remove depricated discovery * Add Xiaomi Aqara Config Flow * Add Xiaomi Aqara tests * Update .coveragerc * Update requirements_test_all.txt * fix spelling mistake * fix select scheme * fix wrong conflict resolve * add IP to zeroconf discovery title * black styling * add getmac requirement Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com> * add getmac * add getmac * Clean up * Update homeassistant/components/xiaomi_aqara/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/xiaomi_aqara/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/xiaomi_aqara/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/xiaomi_aqara/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/xiaomi_aqara/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * resolve data storage * move format_mac down * Remove discovery_retry from config flow * remove unused strings * fix styling * fix black styling * fix tests * remove mac connection This is needed to prevent a conflict with the Xiaomi Miio integration that I discovered during testing. * fix flake8 * remove getmac depandance * check for inavlid_interface + test * Validate gateway key * add invalid key tests * Fix spelling * Only set up sensors if no key Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-06-22 11:54:17 +02:00
"xiaomi_aqara",
"xiaomi_miio",
2020-08-31 16:40:56 +02:00
"yeelight",
2020-05-13 00:26:44 +02:00
"zerproc",
"zha",
Add zwave_js integration (#45020) * Run zwave_js scaffold (#44891) * Add zwave_js basic connection to zwave server (#44904) * add the basic connection to zwave server * fix name * Fix requirements * Fix things * Version bump dep to 0.1.2 * fix pylint Co-authored-by: Paulus Schoutsen <balloob@gmail.com> * Bump zwave-js-server-python to 0.2.0 * Use zwave js server version check instead of fetching full state (#44943) * Use version check instead of fetching full state * Fix tests * Use 0.3.0 * Also catch aiohttp client errors * Update docstring * Lint * Unignore zwave_js * Add zwave_js entity discovery basics and sensor platform (#44927) Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Paulus Schoutsen <balloob@gmail.com> * Complete zwave_js typing (#44960) * Type discovery * Type init * Type entity * Type config flow * Type sensor * Require typing of zwave_js * Complete zwave_js config flow test coverage (#44955) * Correct zwave_js sensor device class (#44968) * Fix zwave_js KeyError on entry setup timeout (#44966) * Bump zwave-js-server-python to 0.5.0 (#44975) * Remove stale callback signal from zwave_js (#44994) * Add light platform to zwave_js integration (#44974) * add light platform * styling fix * fix type hint * Fix typing * Update homeassistant/components/zwave_js/const.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/entity.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * color temp should be integer * guard Nonetype error * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * some fixes after merging * add additional guards for None values * adjustments for rgb lights * Fix typing * Fix black * Bump zwave-js-server-python to 0.6.0 * guard value updated log * remove value_id lookup as its no longer needed * fiz sending white value * Update homeassistant/components/zwave_js/light.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Add zwave_js test foundation (#44983) * Exclude text files from codespell * Add basic dump fixture * Add test foundation * Fix test after rebase * Exclude jsonl files from codespell * Rename fixture file type to jsonl * Update fixture path * Fix stale docstring * Add controller state json fixture * Add multisensor 6 state json fixture * Update fixtures * Remove basic dump fixture * Fix fixtures after library bump * Update codeowner * Minor cleanup Z-Wave JS (#45021) * Update zwave_js device_info (#45023) Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-01-11 00:08:25 +01:00
"zwave",
"zwave_js"
]