* Add Flume Sensor
Add support for Flume API and sensor
* Add support for choosing timezone
Timezone is now a required option in configuration.yaml
* Add Flume to coveragerc and CODEOWNERS
Add flume to be ommited from testing. Add @ChrisMandich as Flume Code owner
* Revert "Add Flume to coveragerc and CODEOWNERS"
This reverts commit 0b27437a3b.
* Update manifest.json
Added Documentation URL for Flume to HASS.IO
* Update manifest.json
Added missing Newline at EOF.
* Update sensor.py
Update sensor to not required Device ID for configuration. Now loops through all available Type 2 devices and adds them as an entity.
* Update Manifest, CODEOWNERS, and manifest.json
Resolved errors related to code owners and requirements. Using hassfest and gen_requirements_all
* Update sensor.py
Implemented recommendations from @Quentame. Including time zone from Home Assistant, Updated variable names, and Consolidated duplicate functions.
* Implemented suggested changes from @Quentame
This includes: components name, using f-strings instead of concat, snake_case for variables, constants for the addition of future device types, clearer errors, and removed variables no longer in use.
* Update sensor.py
Restored unit_of_measurement. Updated return to "gal".
* Address pylint errors
* Update sensor.py
Include protected attributes in setup_platform.
* Address Pylint errors
homeassistant/components/flume/sensor.py:63:11: W0703: Catching too general exception Exception (broad-except)
homeassistant/components/flume/sensor.py:133:8: R1720: Unnecessary "else" after "raise" (no-else-raise)
homeassistant/components/flume/sensor.py:162:8: R1705: Unnecessary "else" after "return" (no-else-return)
homeassistant/components/flume/sensor.py:236:8: R1720: Unnecessary "else" after "raise" (no-else-raise)
* Update sensor.py
I'm okay with the broad exception clause.
homeassistant/components/flume/sensor.py:65:11: W0703: Catching too general exception Exception (broad-except)
* Update sensor.py
Add more specific exceptions for Try/Except.
* Update Flume Sensory.py
add requirements, exclude from tests, us pyflume pypi package.
* Update sensor.py to support latest pyflume package
* Update manifest
provide better flow of manifest and easier readibility.
* Update manifest.json
Reccomended by @balloob as it is already a core requirement
* Update sensor.py
Add proposed changes from @balloob
* Update requirements_all.txt
pytz is a core dependency, removing flume's requirement for it.
* Update sensor.py
Added @MartinHjelmare recommended changes.
* Update sensor.py
Resolving PyLint error
* Update sensor.py
Remove `KeyError`. Add length check for flume entity list before adding.
* Update sensor.py
* Update pyflume version
* Update imports with isort
* Add line break between standard library and thirdparty imports.
* Remove throttle from sensor.py
* Added the Proxmox VE integration
* Fixed code as described in PR #27315
* Fixed small linting error
* Fix code as described in PR #27315 code review
* Improve code as described in PR #27315
* Add component VersaSense
* Updates based on review
* Changes based on review
* Fixed whitespace
* Fixed lines too long
* Fixed lines too long
* Formatted using black
* Added available property
* Set unavailable property appropriately
* Conversion to f-strings
* Load platform only once per platform
* Fixed duplicate identifiers across multiple devices
* Single call to async_add_entities during setup
* Removed unnecessary async/await syntax
* Added constants for key-value pairs
* Removed async/await syntax
* Added breaks in measurement check
* Added guard clause for discovery_info
* first version of new integration
* moved icon to shared consts
* added unit tests
* transformed from geolocation to sensor integration
* alert level is now the state of the sensor
* adopted unit tests
* fixed comment
* keep all sensors registered even if the feed update fails intermittently
* bumped version of upstream library
* bumped version of integration library
* regenerated requirements
* bumped version of integration library
* bumped version of integration library
* fixed generated file
* removed commented out code
* regenerated config flow file
* update to latest integration library version
* simplified code
* removed debug log statement
* simplified code structure
* defined constant
* use core interfaces
* moved test and fixture
* sorted imports
* simplified patching
* moved fixture to central config file
* 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
* Add azure servicebus notify service
* files added to .coveragerc
* fix: import content type from const
* Moved imports to top level
* Code review fixes
+ added code owner
+ fixed config validation with has at least one
+ seperate attributes for dto to asb
* fixed doc link
* async setup instead of sync
* rename all the things
- removed too many ifs
* changed setup back to sync
+ comment about sync IO in lib
* More informative logging
* logging exception -> error
* Add WLED integration
* Use f-string for uniq id in sensor platform
* Typing improvements
* Removes sensor & light platform
* Remove PARALLEL_UPDATES from integration level
* Correct type in code comment 'themselves'
* Use async_track_time_interval in async context
* Remove stale code
* Remove decorator from Flow handler
* Remove unused __init__ from config flow
* Move show form methods to sync
* Only wrap lines that can raise in try except block
* Remove domain and platform from uniq id
* Wrap light state in bool object in is_on method
* Use async_schedule_update_ha_state in async context
* Return empty dict in device state attributes instead of None
* Remove unneeded setdefault call in setup entry
* Cancel update timer on entry unload
* Restructure config flow code
* Adjust tests for new uniq id
* Correct typo AdGuard Home -> WLED in config flow file comment
* Convert internal package imports to be relative
* Reformat JSON files with Prettier
* Improve tests based on review comments
* Add test for zeroconf when no data is provided
* Cleanup and extended tests
* convert keyboard_remote to async and add possibility to trigger on multiple event types, as well as emulate key hold events
* update requirements
* cleanup shutdown handling and config handling as well as address other minor comments
* cleanup unused return values and debug message formatting
* move start and stop event listen to separate coroutine plus minor cleanup
* make setup coroutine a function
* fix import order and attribute defined outside of init
* add to codeowners
* update codeowners
* added automatic protocol detection
* fix logger tests
* fix async tests
* add missin const.py
* fix log formatting
* wait for first update call
* migrate first tests
* migrated all test functions
* started to use state machine
* updated all tests to use async_setup_component
* slove hints
* update tests
* get state at correct position
* remove impossible tests
* fix autodetect tests
* use caplog fixture
* add test for duplicate
* catch concrete exceptions
* don't mock samsungctl exceptions
* add test for discovery
* get state when possible
* add test for autodetect without connection
* Added Unifi Led
* fixed manifest
* fixed style issue
* removed unused setting
* added sugested changes.
* fixed order
* fixed settings that are required
* Fix review issues
* fix variable name that was too short
* Testing something
* Reverted to a previous version for testing
* Reverted testing changes.
* Added sinch integration (notify component)
* Updated requirements
* Fixes according to lint
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Adds @bendikrb as codeowner
* Imports to the top. Catching specific exceptions. Logic fixes
* Updated CODEOWNERS
* Reformatting (black)
* Added sinch component to .coveragerc
* Conform to pylintrc
* Okay, Mr. Black
* Fixed: Catching too general exception Exception
* New sensor platform integration for Orange and Rockland Utility smart energy meter
* New sensor platform integration for Orange and Rockland Utility smart energy meter
* bumped the oru py version to 0.1.9
* Added PLATFORM_SCHEMA
Adde unique_id property
Changed logger level from info to debug when printing the updated sensor value
Set the SCAN_INTERVAL to 15 mins
Added exception handling durin init when creating the oru meter instance
* Various fixes base on the PR review
+ Added SCAN_INTERVAL for 15 mins
* fixed path to documentation
* Added apprise notification component
* flake-8 fixes; black formatting + import merged to 1 line
* pylint issues resolved
* added github name to manifest.json
* import moved to top as per code review request
* manifest formatting to avoid failing ci
* .coveragerc updated to include apprise
* removed block for written tests
* more test coverage
* formatting as per code review
* tests converted to async style as per code review
* increased coverage
* bumped version of apprise to 0.8.1
* test that mocked entries are called
* added tests for hass.service loading
* support tags for those who identify the TARGET option
* renamed variable as per code review
* 'assert not' used instead of 'is False'
* added period (in case linter isn't happy)
* Adds support for config entries and device registry
* Fixing string formatting for logger
* Add unit test for abode config flow
* Fix for lights, only allow one config, add ability to unload entry
* Fix for subscribing to hass_events on adding abode component
* Several fixes from code review
* Several fixes from second code review
* Several fixes from third code review
* Update documentation url to fix branch conflict
* Fixes config flow and removes unused constants
* Fix for switches, polling entry option, improved tests
* Update .coveragerc, disable pylint W0611, remove polling from UI
* Multiple fixes and edits to adhere to style guidelines
* Removed unique_id
* Minor correction for formatting error in rebase
* Resolves issue causing CI to fail
* Bump abodepy version
* Add remove device callback and minor clean up
* Fix incorrect method name
* Docstring edits
* Fix duplicate import issues from rebase
* Add logout_listener attribute to AbodeSystem
* Add additional test for complete coverage
* Add PTZ support to Foscam camera component
* Address review comments:
- Move service to foscam domain
- Use `dict[key]` for required schema keys or with defaults
- Fix sync operations in async context
- Remove excessive logging
* Fix import order
* Move all the initialization to setup_platform and fix motion detection status logic
* Move function dictionary out of the function.
* Change user input to lowercase snake case
* Change user input to lowercase snake case
* Fix service example value
* Omit foscam const module from code coverage tests
* Add myself to foscam codeowners
* initial commit
* Minor changes
* add async setup entry
* Add translations and some other stuff
* add and remove entry
* use async_setup_entry
* Update config_flows.py
* dshokouhi's changes
* Improve workflow
* Add valid_vendors
* Add entity registry
* Add device registry
* Update entry from configuration.yaml
* Revert unneccesary changes
* Update .coveragerc
* Prepared tests
* Add dshokouhi and Santobert as codeowners
* Fix unload entry and abort when already_configured
* First tests
* Add test for abort cases
* Add test for invalid credentials on import
* Add one last test
* Add test_init.py with some tests
* Address reviews, part 1
* Update outdated entry
* await instead of add_job
* run IO inside an executor
* remove faulty test
* Fix pylint issues
* Move IO out of constructur
* Edit error translations
* Edit imports
* Minor changes
* Remove test for invalid vendor
* Async setup platform
* Edit login function
* Moved IO out if init
* Update switches after added to hass
* Revert update outdated entry
* try and update new entrys from config.yaml
* Add test invalid vendor
* Default to neato
* Add saj component
* Performed requested changes after review
* Performed requested changes after review 2
* Performed requested changes after review 3
* Black
* Bump pysaj library version
* Changes after review
* Fix flake8
* Review changes + isort
* Add Soma integration
* Fixed cover position get/set
* Try to list devices before creating config entries to see if Soma Connect can be polled
* Style fixes
* Updated requirements
* Updated .coveragerc to ignore Soma component
* Fixed linter errors
* Implemented stop command
* Test coverage fixes according to feedback
* Fixes to code according to feedback
* Added error logging and tested config from yaml
* Indentation fix
* Removed unnecessary method
* Wrong indentation
* Added some tests
* Added test for import step leading to entry creation
* Added feedback to user form in case of connection error
* Minor fixes according to feedback
* Changed exception type in error handling for connection to Connect
* To keep API consistent for Google Home and Alexa we swapped the open/closed position values back and I reversed them in this integration as well
* regenerated requirements, ran black, addde __init__.py to ignore file
* Added pysoma library to gen_requirements_all.py
* Added missing test case
* removed useless return value
* Add xbox_live custom update schedule
* Set a default update interval that is within the free limit. Consider
number of users per api key when setting interval.
* Add codeowner
* Add callback decorator
* Update pyrainbird to version 0.2.0 to fix zone number issue:
- home-assistant/home-assistant/issues/24519
- jbarrancos/pyrainbird/issues/5
- https://community.home-assistant.io/t/rainbird-zone-switches-5-8-dont-correspond/104705
* requirements_all.txt regenerated
* code formatting
* pyrainbird version 0.3.0
* zone id
* rainsensor return state
* updating rainsensor
* new version of pyrainbird
* binary sensor state
* quiet in check format
* is_on instead of state for binary_sensor
* no unit of measurement for binary sensor
* no monitored conditions config
* get keys of dict directly
* removed redundant update of state
* simplified switch
* right states for switch
* raindelay sensor
* raindelay sensor
* binary sensor state
* binary sensor state
* reorganized imports
* doc on public method
* reformatted
* add irrigation service to rain bird, which allows you to set the duration
* rebased on konikvranik and solved some feedback
* add irrigation service to rain bird
* sensor types to constants
* synchronized register service
* patform discovery
* binary sensor as wrapper to sensor
* version 0.4.0
* new config approach
* sensors cleanup
* bypass if no zones found
* platform schema removed
* Change config schema to list of controllers
some small code improvements as suggested in CR:
- dictionary acces by []
- just return instead of return False
- import order
- no optional parameter name
* some small code improvements as suggested in CR:
- supported platforms in constant
- just return instead of return False
- removed unused constant
* No single controller configuration
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* pyrainbird 0.4.1
* individual switch configuration
* imports order
* generate default name out of entity
* trigger time required for controller
* incorporated CR remarks:
- constant fo rzones
- removed SCAN_INTERVAL
- detection of success on initialization
- removed underscore
- refactored if/else
- empty line on end of file
- hass as first parameter
* import of library on top
* refactored
* Update homeassistant/components/rainbird/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* validate time and set defaults
* set defaults on right place
* pylint bypass
* iterate over values
* codeowner
* reverted changes:
* irrigation time just as positive integer. Making it complex does make
sense
* zone edfaults fullfiled at runtime. There is no information about
available zones in configuration time.
* codeowners updated
* accept timedelta in irrigation time
* simplified time calculation
* call total_seconds
* irrigation time as seconds.
* simplified schema
* 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.