* Validate ports as port
Better than just a positive integer since it limits the range from 1 to 65535.
* Validate port for Axis
* Validate port for Xiaomi Home Camera
* Validate port for Modbus
* Validate port for Yamaha MusicCast Receivers
* Update zhong_hong.py
Validate port as a port, the gateway address as positive_int
Also moved the default values to their variable
* Validate port for the Asterisk Voicemail interface
* Fix lint
* Validate port for Xiaomi Cameras
* Add device_registry support for sensor and switch domains
* Add device_registry support for light
* Add device registry to binary_sensor, climate, cover
* Add device registry to zwave fan
* Fix test for config entry loading
* lint
* revert erroneous modification
* Revert device_registry.py change
* Implement turn_off and turn_on actions for eq3btsmart
This commit implements the turn_off and turn_on methods for eq3btsmart. Turning the device off will set the thermostat to "OFF". Turning it on will set it to "AUTO".
* Add missing support flags for on/off feature
* Fix line length
* Don't set initial temperature in non-optimistic mode
* Fix tests
* Don't set initial values in non-optimistic mode
For fan mode, current operation and swing mode
* Fix tests again
* Daikin Climate - Better integration with Climate base component
Made some modification in order to better integrate the Daikin AC Component with the base Climate Component.
Benefits are:
Support localization for Operation Mode
Support for Homekit Integration (if the AC is turned On, now the status is updated in Homekit)
* Build bug fixing
* Bug fixing in Set Operation_Mode functionality
Fixed to .title() functionality in matching the Operation_Mode
* Fix useless code
* Fix hound bug
* Bug fixing
Change in list of Operation Mode
* Trailing white space fix
* Compile fixing
* Whitespace fix
* Add support for Honeywell evohome CH/DHW systems
More flake8 corrections
Passes Flake8 tests
Almost passed flake8.pylint!
Passed all tox tests
Now it needs serious testing!
Almost ready to submit
BUGFIX: DHW state now functional
More improvements to available()
Solved the DHW temp units problem!
Last minute bug squash
to improve dicts merge
Trying to rebase
fixing more rbase errors
revert to creating HTTP_error_code internally for now
ready to submit PR
Added support for Honeywell evohome CH/DHW systems
* Updated requirements_test_all.txt
* Fix: D401 First line should be in imperative mood
* Remove _LOGGER.info (replace with _LOGGER.debug)
* raise PlatformNotReady when RequestException during setup()
* Revert some LOGGER.debug to LOGGER.warning
* Improved logging levels, and removed some unwanted comments
* Improvments to logging - additional self._status info
* BUGFIX: DHW wrongly showing available = False (and some other tweaks)
* Fix trailing whitespace
* Remove state_attributes override and API_VER code
* Removed heating zones, DHW and heuristics to reduce # lines of code
* Removed some more lines of code
* Removed unused configuration parameters
* Remove some more un-needed lines
* Removed more (uneeded) lines of code & fixed two minor typos
* Improvements to debug logging of available() = False
* Improvements to code, and code clean-up
* Corrected a minor typo
* A small tidy up
* reduces precision of emulated temps floats to 0.1
* Some code improvements as suggested by JeardM
* Rewrite of exception handler
* Removed another unwanted logging in properties
* Remove async_ version of various methods
* moved available heuristics to update()
* Cleanup of code, and re-work linter hints
* fixed a minor documentation typo
* scan_interval is now no longer a configurable option
* Change from Master/Slave to Parent/Child
* Removed the last of the slaves
* Removed the last of the masters
* Move -PARALLEL_UPDATES to .\climate\evohome.py'
* main code moved to climate/evohome.py
* merge EvoEntity into EvoController class
* remove should_poll (for now)
* woops! left a hint in
* removed icon
* only log a WARNING the first time available = False
* cleanup dodgy exception handling
* Tidy up exception handling
* Many changes as suggested by @MartinHjelmare, thanks
* remove hass from init, part 1
* use async_added_to_hass instead of dispatcher_connect
* remove hass from init, part 2 (done)
* add 1-2 arrays, and tidied up some comments
* from dispatcher to async_added_to_hass
* cleaned up some logging, and removed others
* Many changes as request by @MartinHjelmare
* Homage to the lint
* Changed to the HA of doing operating_mode
* Now using update_before_add=True
* reduced logging further still...
* fixed minor lint
* fix a small logic error
* Add device_state_attributes to track actual operating mode
* Clean up doc quotes caused by previous changes
* Woops! removed some debug lines that shoudln't have stayed in
* Add a complete set of device_state_attributes
* Cleanup some constants
* Remove more legacy code
* domain_data to evo_data & this else should be a finally
* minor change for readability
* Minor change for readability #2
* removed unused code
* small tidy up - no code changes
* fix minor lint
* Correct URLs & descriptions in docstring
* whoops - fixed a typo in docstrings
* remove an unused line of cide & a small tidy-up
* Initial OpenTherm Gateway support.
* Fix coveragerc and requirements_all*.txt
Overall cleanup and polishing
* Make hound/flake/travis happy
* Basic improvements to comply with Home Assistant's style guidelines
Changed wording from "component" to more appropriate terms where necessary
Fixed small mistakes that snuck in during testing and/or due to my own ignorance ;)
* Fixed overwriting state property
* Fixed a bug with ROOM_SETPOINT_OVRD
Updated dependency pyotgw to latest version
* Remove unit_of_measurement from OpenThermGateway class
* Cleanup after previous commits
* Moved initialisation and configuration from async_setup_platform to async_added_to_hass
* Make travis happy
* Disable polling for this platform
Improve update flow
* Small improvements/optimisations
the two device_state_attributes don't return the current actual state (fan on/off, heat/cool), but rather the mode of the fan or thermostat (generally auto). As such this change makes the actual current state visible to the system, so you can do stuff when the fan turns on, for example. I suspect this is just a bug, but maybe it was intended NOT to be able to see the actual fan state?
* First draft
* Generate device id
* No obscure registry
* Dont store config_entry_id in device
* Storage
* Small mistake on rebase
* Do storage more like entity registry
* Improve device identification
* Add tests
* Remove deconz device support from PR
* Fix hound comments, voff!
* Fix comments and clean up
* Fix proper indentation
* Fix pydoc issues
* Fix mochad component to not use self.device
* Fix mochad light platform to not use self.device
* Fix TankUtilitySensor to not use self.device
* Fix Soundtouch to not use self.device
* Fix Plex to not use self.device
* Fix Emby to not use self.device
* Fix Heatmiser to not use self.device
* Fix Wemo lights to not use self.device
* Fix Lifx to not use self.device
* Fix Radiotherm to not use self.device
* Fix Juicenet to not use self.device
* Fix Qwikswitch to not use self.device
* Fix Xiaomi miio to not use self.device
* Fix Nest to not use self.device
* Fix Tellduslive to not use self.device
* Fix Knx to not use self.device
* Clean up a small mistake in soundtouch
* Fix comment from Ballob
* Fix bad indentation
* Fix indentatin
* Lint
* Remove unused variable
* Lint
* Remove unit_of_measurement from climate base class.
* Updated google_assistant component and tests to use core temp units.
* Fixes
* Convert Alexa component to use core temp units for climate entities.
* Fix tests.
* Converted prometheus component.
* Remove unit_of_measurement from homekit thermostat tests.
* Small fix.
* add operation mode support for climate.EphEmber
* fix linting errors from py3.5
* remove STATE_ALL_DAY and cleanup some code based on review
* use explicit None return with get
* fix none return
* Add spider power plug component
* rounding down the numbers
* ability to throttle the API
* updated to the lastest api
* resolved an issue within the API
* add spider thermostats
* Added load_platform. Added operation dictionary. Minor improvements
* loop over spider components for load_platform
* added empty dict to load_platform. changed add_devices
* moved logic to the API
* fix requirements_all.txt
* minor code improvements
## Description:
More fixes flagged by pylint 2 that don't hurt to have before the actual pylint 2 upgrade (which I'll submit soon).
## Checklist:
- [ ] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
* Add HomematicIP Cloud to config flow
* Inititial trial for config_flow
* Integrations text files
* Load and write config_flow and init homematicip_cloud
* Split into dedicated files
* Ceanup of text messages
* Working config_flow
* Move imports inside a function
* Enable laoding even no accesspoints are defined
* Revert unnecassary changes in CONFIG_SCHEMA
* Better error handling
* fix flask8
* Migration to async for token generation
* A few fixes
* Simplify config_flow
* Bump version to 9.6 with renamed package
* Requirements file
* First fixes after review
* Implement async_step_import
* Cleanup for Config Flow
* First tests for homematicip_cloud setup
* Remove config_flow tests
* Really remove all things
* Fix comment
* Update picture
* Add support for async_setup_entry to switch and climate platform
* Update path of the config_flow picture
* Refactoring for better tesability
* Further tests implemented
* Move 3th party lib inside function
* Fix lint
* Update requirments_test_all.txt file
* UPdate of requirments_test_all.txt did not work
* Furder cleanup in websocket connection
* Remove a test for the hap
* Revert "Remove a test for the hap"
This reverts commit 968d58cba1.
* First tests implemented for config_flow
* Fix lint
* Rework of client registration process
* Implemented tests for config_flow 100% coverage
* Cleanup
* Cleanup comments and code
* Try to fix import problem
* Add homematicip to the test env requirements
* Add discovery support to mqtt climate component.
* - Fix flake8 error (./homeassistant/components/climate/mqtt.py:130:1: D202 No blank lines allowed after function docstring)
- Fix test error (since climate component was expected not to work - changed it to "lock" component, which also does not have MQTT discovery support yet)
* Fix old assert statement to reflect new lock component usage
* Change invalid MQTT discovery component type from 'lock' to 'timer', since contrary to the documentation the lock component is properly supported when using MQTT discovery.
* Make configuration of invalid MQTT config component a single point of entry to prevent missing the assertion later in the code when changing.
* Add new testcases to cover not-yet-covered code paths in https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/climate/mqtt.py
* first blood for ZhongHong HVAC Controller
* add requirements
* requirements_all.txt updated
* add zhong_hong.py to coveragerc
* add comments
* unique_id add platform name
* zhong_hong_hvac version bump to 1.0.1
* improve some coding style to match the project standard
* zhong_hong_hvac version bump to 1.0.4
* zhong_hong_hvac version require 1.0.7
* update requirements by script/gen_requirements_all.py
* zhong_hong_hvac version bump to 1.0.8
* fix startup problem
* remove unused import
* zhong_hong_hvac version bump to 1.0.9
- operation_mode: cold -> cool
* start hub listen event when all climate entities is ready
* use dispatcher to setup hub
* var name change
SIGNAL_DEVICE_SETTED_UP -> SIGNAL_DEVICE_ADDED
* async problem fix
* bugfix: set_operation_mode forget to use upper case
* stringify the exception instead of print full stack of traceback
* avoid to call str(exception) explicity
* remove unnecessary try...except clause
* remove unused import
* reviewing this code min_temp and max_temp are always present and always in celsius
* revert change (preserve unit conversion)
* revert (due to unit conversion)
* self
* clean
* cleaner
* Change nest component to Cloud Push
Change sensors.nest, binary_sensors.nest and climate.nest to push mode
nest camera still need poll to update snapshot image
Also change nest component to async
* Flake8 lint
* Fix async_notify_errors, it is not a coroutine
* Fix pylint
* Fix pylint, function name should shall shorter than 32
* Use dispatcher helper instead event bus
* Use async_update_ha_state(True)
* Refactoring load_platform
Move service registration into async_setup_nest(),
resolve an issue that before the first time configuration done,
set_mode service should not be registered
* Fix an issue that authorization failure may leave a blocked thread
* Pylinting
* async_nest_update_callback => async_update_state to avoid confusion
* Move signal handler register to async_added_to_hass
* Better handle nest api error
* Remove unnecessary register for binary_sensor
* Remove unused import
* Upgrade to python-nest 4.0.1
Fix a thread race condition issue
* Address my own comments
* Address my own comment
* Add support for climatic devices
* Update requirements_all
* Change icon to mdi:thermostat
* Update of homematicip-rest-api lib version
* Remove all mode or state relevant things - will come later
* Add current_operation again to see proper status
* Remove STATE_PERFORMANCE import
* Remove trailing whitespace
* Update requirements file
* Make mysensors component async
* Use async dispatcher and discovery.
* Run I/O in executor.
* Make mysensors actuator methods async.
* Upgrade pymysensors to 0.13.0.
* Use async serial gateway.
* Use async TCP gateway.
* Use async mqtt gateway.
* Start gateway before hass start event
* Make sure gateway is started after discovery of persistent devices
and after corresponding platforms have been loaded.
* Don't wait to start gateway until after hass start.
* Bump pymysensors to 0.14.0
* Implement support for away mode and hold mode in Venstar component
* Fix Venstar humidifier capability detection
* Add option to configure humidifier control in Venstar component
* style fix: add missing space and resolve pylint issues
* Remove quotes
* Added support for a new platform: climate.modbus
* Made changes based on code review.
* Made changes based on code review
* Made changes that were recommended in the pull request review.
* Fixed spacing line 144
* Added docstrings for the added helper functions.
* Fixed set_temperature() function to use a variable local to the function for the target temp.
* Fixed lint formatting error
* Modified logic when checking the target temperature, as well as fixing the setup_platform function
* add ability to set fan on
* add tests and change "not on" status to "auto"
* hound fix
* more hounds
* I don't understand new lines
* fix linting errors
* more linting fixes
* change method signature
* lint fixes
* hopefully last lint fix
* correct temp ranges according to ecobee API docs
* update dependency to latest version
* update tests with values from new temp logic
* fix linting issue
* more linting fixes
* add SUPPORT_FAN_MODE to capabilities
* add fan_list to attributes.
restore current fan state to OFF if fan is not running.
change target high/low temps from null to target temp when not in auto mode.
change target temp from null to high/low temp when in auto mode
change mode attribute to climate_mode for consistency with other lists.
* remove unused import
* simplify logic
* lint fixes
* revert change for target temps
* Fixes for mclimate accounts with not only melissa components
* Fixes melissa sensor to only use HVAC
* Bumping version to 1.0.3 and remove OP_MODE that is not supported
* Removes STATE_AUTO from translation and tests
* Issue 10388: Fixed platform schema min/max values of CONF_SETPOINT_SHIFT_MIN and CONF_SETPOINT_SHIFT_MAX
* readded default values for CONF_SETPOINT_SHIFT_MAX and CONF_SETPOINT_SHIFT_MIN
* Upgrade pylint to 1.8.1
* Fix no-else-return
* Fix bad-whitespace
* Fix too-many-nested-blocks
* Fix raising-format-tuple
See https://github.com/PyCQA/pylint/blob/master/doc/whatsnew/1.8.rst
* Fix len-as-condition
* Fix logging-not-lazy
Not sure about that TEMP_CELSIUS though, but internally it's probably just like if you concatenated any other (variable) string
* Fix stop-iteration-return
* Fix useless-super-delegation
* Fix trailing-comma-tuple
Both of these seem to simply be bugs:
* Nest: The value of self._humidity never seems to be used anywhere
* Dovado: The called API method seems to expect a "normal" number
* Fix redefined-argument-from-local
* Fix consider-using-enumerate
* Fix wrong-import-order
* Fix arguments-differ
* Fix missed no-else-return
* Fix no-member and related
* Fix signatures-differ
* Revert "Upgrade pylint to 1.8.1"
This reverts commit af78aa00f125a7d34add97b9d50c14db48412211.
* Fix arguments-differ
* except for device_tracker
* Cleanup
* Fix test using positional argument
* Fix line too long
I forgot to run flake8 - shame on me... 🙃
* Fix bad-option-value for 1.6.5
* Fix arguments-differ for device_tracker
* Upgrade pylint to 1.8.2
* 👕 Fix missed no-member
* fix generic_thermostat bug when restore state from HA start up
if you don't set "initial_operation_mode" in config, you will get
`self._enabled = True` when init GenericThermostat. And then you will
miss the `if self._current_operation != STATE_OFF` statement and the
self._enabled still keep `True`. That's the problem
* add a test to describe the restore case
* Fix tado overlay end state
Previously, when tado ended an overlay state itself, say because a timer
expired or a scheduled temperature change ocurred, the tado climate
component would not return to Smart Schedule mode. This change fixes
that issue
* Correct tado state after multiple rapid updates
Previosuly, making two changes to tado climate within 10 seconds, for
example setting operation mode to Tado mode, then changing the
temperature, would leave the entity showing the incorrect state for up
to a minute.
This change forces an unthrottled update after setting the climate
state, which fixes the issue
* Fix comment formatting
* Fixing demo platform to use support_flags
* Fixed tests as well
* Moved humidity low / high as always available based on defaults
* Updated demo platform to show more combinations
* Entity#unique_id defaults to None
* Initial commit entity registry
* Clean up unique_id property
* Lint
* Add tests to entity component
* Lint
* Restore some unique ids
* Spelling
* Remove use of IP address for unique ID
* Add tests
* Add tests
* Fix tests
* Add some docs
* Add one more test
* Fix new test…
* New venstar climate component
* Corrected items raised during the PR process.
* Corrected flak8 issues.
* Add support for venstar models without humidity control.
* Changed the idle operation mode to off. Few other adjustments.
* Minor changes (log messages, sorting, etc.)
* Lazy loading of service descriptions
* Fix tests
* Load YAML in executor
* Return a copy of available services to allow mutations
* Remove lint
* Add zha/services.yaml
* Only cache descriptions for known services
* Remove lint
* Remove description loading during service registration
* Remove description parameter from async_register
* Test async_get_all_descriptions
* Remove lint
* Fix typos from multi-edit
* Remove unused arguments
* Remove unused import os
* Remove unused import os, part 2
* Remove unneeded coroutine decorator
* Only use executor for loading files
* Cleanups suggested in review
* Increase test coverage
* Fix races in existing tests
* Issue #11432: Do not stop initializing KNX when tunelling device cant be reached
* Issue #11432: Mark devices as unavailable if gateway cant be connected
* Add toucline platform
* Fix bugs suggested by houndci-bot
* Fix bugs suggested by houndci-bot
* Fix style based on comments and lint
* Remove target temperature
* Fix unexpected EOF
* Fix unexpected EOF
* Fix wrongfully named numberOfDevices variable
* Add target temperature
* Update requirements_all.txt
* Change after review
* Add supported features
* Remove update in constructor
* Set member variables to none in constructor
* Minor changes
* Updated generic thermostat to respect operation_mode and added away mode
* Updated tests to include away mode and corrected init problem for sensor state
Added more tests to improve coverage and corrected again lint errors
Fixed new test by moving to correct package
Fixed bug not restoring away mode on restart
* Added support for idle on interface through state
* Added back initial_operation_mode and modified away_temp to be only one for now
* Fixed houndci-bot errors
* Added back check for None on restore temperature
* Fixed failing tests as well
* Removed unused definitions from tests
* Added use case for no initial temperature and no previously saved temperature
* Added Daikin climate component
* Fixed tox & hound
* Place up the REQUIREMENTS var
* Update .coveragerc
* Removed unused customization
* Prevent setting invalid operation state
* Fixed hound
* Small refactor according to code review
* Fixed latest code review comments
* Used host instead of ip_address
* No real change
* No real change
* Fixed lint errors
* More pylint fixes
* Shush Hound
* Applied suggested changes for temperature & humidity settings
* Fixed hound
* Fixed upper case texts
* Fixed hound
* Fixed hound
* Fixed hound
* Removed humidity since even the device has the feature it cant be set from API
* Code review requested changes
* Fixed hound
* Fixed hound
* Trigger update after adding device
* Added Daikin sensors
* Fixed hound
* Fixed hound
* Fixed travis
* Fixed hound
* Fixed hound
* Fixed travis
* Fixed coverage decrease issue
* Do less API calls and fixed Travis failures
* Distributed code from platform to climate and sensor componenets
* Rename sensor state to device_attribute
* Fixed hound
* Updated requirements
* Simplified code
* Implemented requested changes
* Forgot one change
* Don't allow customizing temperature unit and take it from hass (FOR NOW)
* Additional code review changes applied
* Condensed import even more
* Simplify condition check
* Reordered imports
* Disabled autodiscovery FOR NOW :(
* Give more suggestive names to sensors
* fix: hmip-etrv-2 now working with homeassistant (see also pull request at pyhomematic)
* fix linting issue and typo
* address comment @pvizeli
* Only use cached data in current operation mode
* fix linting issue
* Support for EcoNet water heaters.
* Fixed requested changes.
* Added logging when temp or operation mode are None
* More fixes from PR review.
* Updated pyeconet version to fix natural gas water heater error. Last PR review fix.
* Generic thermostat restore operation mode
* Test restore operation mode
* Fix trailing whitespace
* Fix line too long
* Fix test duplicate entity_id
* Fix test
* async_added_to_hass modify modify internal state
* Test inital_operation_mode
* More restore state tests
* Fix whitespace
* fix test_custom_setup_param
* Test "None" target temp
* Implement supported_features for the climate component
* Test supported features
* Convert generic thermostat to supported features
* Max / min temperature are not features
* Fix lint
* Min / max humidity are not features
* Linting
* Remove current temperature / humidity
* Move c-hacker-style constants to boring integers. Booo!
* Refactor all the climate platforms to use the new supported_features
* Force all climate platforms to implement supported_features
* Fix mistakes
* Adapt hive platform
* Move flags into a constant
* Calm the hound
* Added fan support. Reduced number of calls to the thermostat to a minimum
* Move temp rounding to config schema
* Fixed pep8 errors
* Fix for review comments.
* removed unneeded if block
* Added missing precision attr back
* Fixed pylint errors
* Code review fixes. Fan support by model number.
* Defined circulate state
* Fix unit conversion for Sensibo A/C units
When the Sensibo component was released, there was a provision to not convert the temperature units unless "nativeTemperatureUnit" was returned with the API. I'm not sure if the API changed on Sensibo's side, but I do not get this key passed back with API requests.
This causes my current temperature to be returned in CELSIUS instead of FAHRENHEIT.
Removing this fixes it, and I can confirm the units are shown properly now.
* Update adding comment showing temperature is always in C
* add eph ember controls
* updates based on review
* remove unused import
* update to new version of pyephember
* added myself to codeowners as requested
* make codeowners alphabetical
* run fixed gen_requirements_all
* Update ephember.py
* Added Toon support again
* Forgot about .coveragerc
* Fixed style issues
* More styling and importing fixes
* Implemented the suggestions made by @pvizeli
* The smallest fix possible
* Removed custom names for Toon states
* Fix last push with 2 outdated lines
* Removed HOME and NOT_HOME, moved to just climate states
* Bumped dependency for better handling of smartplugs that don't report power consumption
* Implemented changes as suggested by @balloob
* Rebase, gen_requirements_all.py finally working
* New climate platform with MQTT
* Use STATE_OFF
* Basic tests for climate.mqtt
* lint
* actualy collect coverage
* First tests and fixes
* Add possibility to receive temperature via MQTT
* Require only either sensor or mqtt topic
* Add mqtt publishing for away mode, hold mode and aux heat.
* Use configurabe on/off payloads
* Add pessimistic mode
* Initialize aux and away with False instead of None
* Remove Sensor
* Use correct scheduling method
* Move all methods to coroutines
* Fixed away_mode for Ecobee thermostat. Now away mode is properly turned on using indefinite away hold.
* fixed lint warnings
* fixed lint warnings
* - now it is possible to use float values for ecobee temperature holds
- fixed a bug that caused an exception when temperature hold was set in away mode
- added unit tests for ecobee thermostat
* fixed lint errors
* fixed lint errors