* Create a new NWS Alerts integration
* Create a new NWS Alerts integration
* Create new PECO integration
* Remove empty keys
* Revert "Create a new NWS Alerts integration"
This reverts commit 38309c5a87.
* Revert "Create a new NWS Alerts integration"
This reverts commit aeabdd37b8.
* Fix test with new mock data
* Add init and sensor to .coveragerc and more tests for config flow
* Small fixes and replacing patch with pytest.raises in testing invalid county
* Add type defs and fix test_config_flow to use MultipleValid instead
* Fix issues with 'typing.Dict'
* Move API communication to seperate PyPI library
* Switch PyPI library from httpx to aiohttp to allow for passing in websessions
* Commit file changes requested by farmio as listed here: d267e4300a
* Add suggestions requested by farmio as listed here: 586d8ffa42
* Move native_unit_of_measurement from prop to attr
* Update PLATFORMS constant type annotation
Co-authored-by: Matthias Alphart <farmio@alphart.net>
* Add peco to .strict-typing
I am from school so I can't run mypy atm
* Forgot to import Final
* Do as requested [here](https://github.com/home-assistant/core/runs/5070634928?check_suite_focus=true)
* Updated mypy.ini, checks should pass now
* Fix to conform to mypy restrictions https://github.com/home-assistant/core/runs/5072861837\?check_suite_focus\=true
* Fix type annotations
* Fix tests
* Use cast in async_update_data
* Add data type to CoordinatorEntity and DataUpdateCoordinator
* More cleanup from suggestions here: https://github.com/home-assistant/core/pull/65194\#pullrequestreview-908183493
* Fix tests for new code
* Cleaning up a speck of dust
* Remove unused variable from the peco sensor
* Add rounding to percentage, and extra clean-up
* Final suggestions from @farmio
* Update SCAN_INTERVAL to be a little bit faster
* Change the SCAN_INTERVAL to be somewhat near the update interval of the outage map, as noted by farmio
* New UpdateCoordinator typing
* Add new tomorrow.io integration to replace Climacell - Part 1/3 (#57121)
* Add new tomorrow.io integration to replace Climacell - Part 1/3
* remove unused code
* remove extra test
* remove more unused code
* Remove even more unused code
* Feedback
* clean up options flow
* clean up options flow
* tweaks and fix tests
* remove device_class from tomorrowio entity description class
* use timestep
* fix tests
* always use default name but add zone name if location is in a zone
* revert change that will go into future PR
* review comments
* move code out of try block
* bump max requests to 500 as per docs
* fix tests
* Add new tomorrow.io integration to replace Climacell - Part 2/3 (#57124)
* Add new tomorrow.io integration to replace Climacell - Part 2/3
* translations
* set config flow to false in manifest
* Cleanup more code and re-add options flow test
* fixes
* patch I/O calls
* Update tests/components/climacell/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* remove unused import
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix codeowners
* fix mypy and pylint
* Switch to DeviceInfo
* Fix fixture location and improve sensor entities in tomorrowio integration (#63527)
* Add new tomorrow.io integration to replace Climacell - Part 3/3 (#59698)
* Switch to DeviceInfo
* Add new tomorrow.io integration to replace Climacell - Part 1/3 (#57121)
* Add new tomorrow.io integration to replace Climacell - Part 1/3
* remove unused code
* remove extra test
* remove more unused code
* Remove even more unused code
* Feedback
* clean up options flow
* clean up options flow
* tweaks and fix tests
* remove device_class from tomorrowio entity description class
* use timestep
* fix tests
* always use default name but add zone name if location is in a zone
* revert change that will go into future PR
* review comments
* move code out of try block
* bump max requests to 500 as per docs
* fix tests
* Migrate ClimaCell entries to Tomorrow.io
* tweaks
* pylint
* Apply fix from #60454 to tomorrowio integration
* lint and mypy
* use speed conversion instead of distance conversion
* Use SensorDeviceClass enum
* Use built in conversions and remove unused loggers
* fix requirements
* Update homeassistant/components/tomorrowio/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use constants
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Black
* Update logic and add coverage
* remove extra line
* Do patching correctly
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add configuration option to disable the creation of zone bypass switches
* Removed temporary workaround and bumped pyenvisalink version to pick up the correct fix.
* Remove zone bypass configuration option and disable zone bypass switches per code review instructions.
* Add Moehlenhoff Alpha2 underfloor heating system integration
* isort changes
* flake8 changes
* Do not exclude config_flow.py
* pylint changes
* Add config_flow test
* correct requirements_test_all.txt
* more tests
* Update test description
* Test connection and catch TimeoutError in async_setup_entry
* Add version to manifest file
* Remove version from manifest file
* Replace tests.async_mock.patch by unittest.mock.patch
* Update moehlenhoff-alpha2 to version 1.0.1
* Update requirements for moehlenhoff-alpha2 1.0.1
* Update moehlenhoff-alpha2 to 1.0.2
* Use async_setup_platforms
* Use async_unload_platforms
* Separate connection and devices for each entry_id
* Use async_track_time_interval to schedule updates
* Check if input is valid before checking uniqueness
* Move Exception handling to validate_input
* Catch aiohttp.client_exceptions.ClientConnectorError
* Remove translation files
* Mock TimeoutError
* Fix data update
* Replace current callback implementation with ha dispatcher
* Return False in should_poll
* Remove unused argument
* Remove CONNECTION_CLASS
* Use _async_current_entries
* Call async_schedule_update_ha_state after data update
* Remove unneeded async_setup
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Remove unneeded async_setup_platform
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Set Schema attribute host required
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Remove unused Exception class
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Update manifest.json
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* pylint constructor return type None
* Replace properties by class variables
* use pass instead of return
* Remove unused sync update method
* remove property hvac_action
* remove pass
* rework exception handling
* Update homeassistant/components/moehlenhoff_alpha2/config_flow.py
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Correct indentation
* catch Exception in validate_input
* Replace HomeAssistantType with HomeAssistant
* Update to moehlenhoff-alpha2 1.0.3
* Allow to switch between heating and cooling mode
* Update moehlenhoff-alpha2 to version 1.0.4
* Update heatarea data after setting target temperature
* Support hvac_action
* Fix heatarea update with multiple bases
* Update data after setting preset mode
* Use custom preset modes like defined by device
* Fix config flow test
* Fix test_duplicate_error
* Rename property to extra_state_attributes
Rename property device_state_attributes to extra_state_attributes and
return lowercase keys in dict.
* Refactor using DataUpdateCoordinator
* Remove _attr_should_poll
* Raise HomeAssistantError on communication error
Catch HTTPError instead of broad except and reraise as HomeAssistantError
* Change DataUpdateCoordinator name to alpha2_base
* Refresh coordinator before setting data
* Raise ValueError on invalid heat area mode
* Rename heatarea to heat_area
* Set type annotation in class attribute
* Move coordinator to top
* Move exception handling to the coordinator
* Use heat_area_id directly
* Sore get_cooling() result into local var
* Add explanation of status attributes
and remove BLOCK_HC
* Fix pylint warnings
* from __future__ import annotations
* Use Platform Enum
* Move data handling to coordinator
* Remove property extra_state_attributes
* Add missing annotations
* Update moehlenhoff-alpha2 to version 1.1.2
* Rework tests based on the scaffold template
* Set also heat/cool/day/night temp with target temp
* Remove unneeded code from tests
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
* Initial fivem integration setup
* Use licenseKey for unique ID
* Create FiveMServer class
* Create FiveMStatusBinarySensor
* Fix platform loading
* Create sensor platform
* Remove config flow tests
* Update manifest.json
* Use attr_ instead or properties in sensors.py
* Use entry_id as unique_id
* Move device info to _attr instead of property
* Register callback in FiveMEntity
* Create config flow tests
* Add loggin to fivem
* Use FiveM in config_flow
* Use update_coordinator instead of dispatcher
* Bump fivem-api to 0.1.2
* Remove leftovers
* More tests for config flow
* Add component files to .coveragerc
* Fix simple comments
* Add gamename check to config flow
* Use entity descriptions for sensors
* Move extra attributes to init
* Use [] instead of get() for server info
* Fix error in gamename test