* Redact user codes from zwave_js diagnostics
* simplify test
* Remove unused logic
* revert change and make all inputs to ZwaveValueID optional
* revert change and make all inputs to ZwaveValueID optional
* Remove unused diagnostics data from fixture and test location redaction
* Add empty ZwaveValueID check
* Improve coverage
* Simplify post_init check
* Use dataclasses.astuple for checks instead
* 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 calendar platform to Twente Milieu
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Sorting...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Mark stream as available on idle timeout so that the frontend can
still interact with it. In particular, the Frontend won't interact
with camera objects that are not available e.g. from picture glance
card.
Issue #67922
* 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>
* Rework fan data templates to support preset modes, and define data for the Inovelli LZW36
* Add tests. Add dispatching to async_set_preset_mode in async_turn_on.
* Add a test case for invalid preset modes
* Remove unintended merge artifact
* Fix indentation
* Fix merge error
* rm blank line
* Add tests for invalid fan config data, and fix an issue where this prevented the node from being added.
* Fix tests and improve error handling
* Add diagnostics to stream's Stream objects
Add diagnostics key/value pair to the Stream object. Diagnostics support
in camera integration will be added in a follow up and will access the
diagnostics on the Stream object, similar to the examples in the unit
test.
* Rename to audio/video codec
* Fix test codec names
* Update tests/components/stream/test_worker.py
Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
* Optionally don't convert output of duration and time selectors
* Allow number selector selection to be None
* Never convert output of duration and time selectors
* Revert "Allow number selector selection to be None"
This reverts commit b6f52c1e83.
* Add Z-Wave thermostat fan entity
* Fix failing test, increase number of entities to 27
* Add tests to improve coverage
* Take back unrelated changes to climate.py
* Clean up guard clauses, use info.primary_value, and make entity disabled by default
* Fix tests
* Add more tests for code coverage
* Remove unused const
* Remove speed parameter from overridden method since it was removed from entity
* Address PR comments
After some debugging, it seems room.canonical_alias contains the
room alias that matches the room_id_or_alias value but is not
contained in room.aliases (which is empty). As a result, the
matrix component thought the room wasn't alread joined, joins
again, and this replaces the previous room which had the listener.
This resulted in the component callback not being called for new
messages in the room.
This fixes#66372
* Fixed the issues related to auto mode
I was having the same issues as described in #63403, specifically, the error stating that Mode 7 is not valid, only Heat, Cool, Off when trying to do anything while the thermostat is set to Auto. This error originates with the way the Lyric API handles the modes. Basically, when one queries the changeableValues dict, you get a mode=Auto, as well as a heatCoolMode, which is set to either Heat, Cool, Off. Per the documentation, heatCoolMode contains the "heat cool mode when system switch is in Auto mode". It would make sense that when changing the thermostat settings, mode=Auto should be valid, but it's not. The way the API understands that the mode should be set to Auto when changing the thermostat settings is by setting the autoChangeoverActive variable to true, not the mode itself. This require changes in the async_set_hvac_mode, async_set_temperature, and async_set_preset_mode functions. Related to this issue, I got rid of the references to hasDualSetpointStatus, as it seems that it always remains false in the API, even when the mode is set to auto, so again, the key variable for this is autoChangeoverActive.
While I was working on this I also noticed another issue. The support flag SUPPORT_TARGET_TEMPERATURE_RANGE had not been included, which did not allow for the temperature range to be available, thus invalidating the target_temperature_low and target_temperature_high functions. I added this flag and sorted out which set point (heat vs cool) should be called for each of them so things work as expected in Lovelace. I have tested all of these functionalities and they all work great on my end, so I thought I'd share.
* Update climate.py
* Update climate.py
Fixed two additional issues: 1) When the system is turned off from Auto, the heatCoolMode variable becomes 'Off', so when you try to restart the system back to Auto, nothing happens. 2) I now prevent the async_set_temperature function from being called with a new set point when the system is Off.
All changes tested and functional.
* Update climate.py
* Update climate.py
Return SUPPORT_PRESET_MODE flag only for LCC models (i.e. they have the "thermostatSetpointStatus" variable defined). TCC models do not support this feature
* Update climate.py
After playing with the official Honeywell API, I realized it doesn't like to received commands with missing data, i.e., it always wants to get a mode, coolSetpoint, heatSetpoint, and autoChangeoverActive variables. This was causing some random issues with changing modes, especially from coming from off, so I modified the async_set_temperature, and async_set_hvac_mode fuctions to always send all pertinent variables.
* Update climate.py
* Update climate.py
* Update climate.py
* Update climate.py
* Clean code and test everything
Alright, sorry for the multiple commits, fixing this properly took a fair bit of testing. I went ahead and cleaned up the code and made the following big picture changes:
1) The integration now supports the Auto mode appropriately, to include the temperature range.
2) There's a bug that actually manifests when using the native app. When the system is 'Off' and you try to turn it on to 'Auto', it will turn on briefly but will go back to 'Off' after a few seconds. When checking the web api, this appears to be related to the fact that the heatCoolMode variable seems to continue to store 'Off', even if the mode accurately displays 'Auto', and the autoChangeoverActive=True. So to overcome that inherent limitation, when the system is 'Off' and the user turns it to 'Auto', I first turn it to Heat, wait 3 seconds, and then turn it to 'Auto', which seems to work well.
* Update climate.py
* Fixed errors
* Fixed comments that were resulting in error.
* Update climate.py
* Update homeassistant/components/lyric/climate.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/lyric/climate.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update climate.py
I removed a blank line in 268 and another one at the end of the document. I also fixed the outdents of await commands after the _LOGGER.error calls, not sure what else may be driving the flake8 and black errors. Any guidance is much appreciated @MartinHjelmare
* Update climate.py
* Update climate.py
corrected some indents that I think were the culprit of the flake8 errors
* Update climate.py
I used VS Code to fix locate the flake8 errors. I ran black on it, so I'm hoping that will fix the last lingering black error.
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Change debug level of integration reload after config update to debug
* Remove extra .keys() call for dict itreation
* Remove unecessary type check
* Remove unused LOGGER reference