* add overlay options wrapper to rpi_camera
* Refactor to set config yaml section under the top level integration domain key
* Remove return values that are not checked
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Remove superfluous debug log messages
* Return if not set up via discovery
* Add convenience reference to hass.data[DOMAIN]
* Black formatting
* Isort
* Exclude all rpi_camera modules
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add device type
* Use snake_case for devtype
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Validate device type as positive int
* Add device type 0x5f36 to switch
* Use default type for sensors
* Add RM4 to switch platform
* Use snake_case for devtype
* Support multiple types of remote
* Validate ip address
* Improve code readability
* Add const.py to .coveragerc
* Use None for unknown device types
* Fix sensors and standardize platform schemas
* Fix if statement
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Add Braava support to iRobot Roomba component
* Replace async_add_job with async_add_executor_job in roomba
* Improve readability in roomba
* Improve error handling in roomba
* Cleanup async_update in roomba
* Split into multiple files in roomba
* Hide protocal details in braava
* Switch to push in braava
* Bump roombapy version to 1.5.1
* Add roomba files to .coveragerc
* Fix typo
* Remove side effects from init in roomba
* Implement StateVacuumDevice in Roomba
* Add IRobotEntity base class to braava
* Fix state in roomba
* Add @shenxn as a codeowner of braava
* Updating the panasonic_viera component
* Updating .coveragerc
* Removing testplatform
* Updating strings.json
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Adding tests and stuff
* Fixing permission issues
* Ignoring Pylint warnings
* Fixing one more Pylint warning
* Refactoring
* Commiting changes - part 1
* Commiting changes: part 2
* Turning unknown error logs into exception logs
* Update strings.json
* Rebasing
* Updating the panasonic_viera component
* Removing testplatform
* Updating strings.json
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Commit before rebase
* Adding tests and stuff
* Fixing permission issues
* Ignoring Pylint warnings
* Fixing one more Pylint warning
* Refactoring
* Commiting changes - part 1
* Commiting changes: part 2
* Turning unknown error logs into exception logs
* Adding pt-BR translation
* Removing Brazilian Portugues translations
* Modifying error handling
* Adding SOAPError to except handling
* Updating translation
* Refactoring async_step_import
* Fixing indentation
* Fixing requirements after rebase
* Fixing translations
* Fixing issues after rebase
* Routing import step to user step
* Adding myself as a codeowner
* Add device tracker based on arris-tg2492lg
* Return name of device and update version of arris_tg2492lg
* Update CODEOWNERS, requirements_all.txt and .coveragerc
* Change default url to host
* Use f-strings
Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
* Clean up
* Fix formatting
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Run scripts
* Improvement strings
* Fix FlowOptions update listener
* Update .ceveragerc
* Add tests
* Better strings
* Add test for OptionsFlow
* Run gen_requirements_all.py once again
* Fix pylint errors
* Log error when there is no bravia.conf file during import
* Improvement strings
* Use braviarc object from hass.data in options flow
* Use async_add_executor_job for IO
* Fix options flow test
* Fix tests
* Remove host_reachable method
* Remove dependencies
* Change setup_platform method to async
* Remove calling system_info
* Save mac in the config entry
* Fix get ignore sources
* Fix read config from file
* Remove the side effect from init
* Fix user_input for user step
* Switch OrderedDict to dict
* New config_entry instance for each test
* Revert change
* Patch async_setup_entry in test_import
* Change a way to create source list
* Consolidate repeated block of code
* Update tests
* Suggested change
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Suggested channge
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Suggested change
* Patch async_setup_entry
* Remove unnecesary if
* suggested change
* Suggested change
* Fix tests
* Fix pylint error
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Implemented snapcast latency attributes
* Code review changes and Snapcast maintenance
Updated how entity services get called - now conforms to most
current method
* Cleanup tasks
Moved constants into separate file
Removed unnecessary logger message
Remove unnecessary schemas
* FIx linting errors
* Sort imports
* Update with requested change
Better - use next()
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Add guards for bad service calls
* Add back in platform schema
* Add check for unjoin service call
* Fix lint/format
* remove comma inserted by black
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Added support for the Pi4ioe5v9xxxx binary IO expanders.
* Correction for black failure
* Correction for black failure
* Fix for manifest.json
* Fix for flake8 fault missing a period
* Some modifications I made during tests seem to be disapeared, fixed flake8 and black test now
* WIP virtual thermostat
* WIP virtual thermostat
* WIP
* 100% tests coverage
* Manifest, codeowners, typo fix
* Lint problem
* Test file blacked
* Add a test case for b4dpxl's question
* Update CODEOWNERS
* Replacement of generic thermostat
* Cleaning
* Lint
* More lint
* Using external PyPI package, removed get()
* Fix flake8 checks
* removed virtual thermostat
* Re-fix black & isort
* Re-fix isort 2
* Update homeassistant/components/pi4ioe5v9xxxx/binary_sensor.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/pi4ioe5v9xxxx/binary_sensor.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/pi4ioe5v9xxxx/switch.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/pi4ioe5v9xxxx/switch.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/pi4ioe5v9xxxx/switch.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/pi4ioe5v9xxxx/switch.py
Co-Authored-By: J. Nick Koston <nick@koston.org>
* black for switch
* update to latest version manual merge
* Delete test_generic_thermostat.py
* Delete .gitignore
* Delete climate.py
* Delete manifest.json
* Delete test_climate.py
* Delete test_climate.py
* fix thermostat interference
* fix thermostat interference 2
* Fix pylint
* Update .pre-commit-config.yaml
Co-authored-by: Cyril <cyril.dubus@effipilot.com>
Co-authored-by: Niflou <dubuscyr@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add config flow to Synology DSM
* Use proper sensor unique ID from flow + sensor name
* Add description to api_version
* Add authentication flow check
* Add device_info
* Add test_login_failed test
* Bump python-synology to 0.5.0
* 0.5.0 test updates
* Use NAS S/N as config_flow unique_id
* Add missed conf disks + volumes
* Review: async_unload the async_track_time_interval
* Fix NoneType for disks or volumes
* Keep all disks and volumes forever
* Update homeassistant/components/synology_dsm/.translations/en.json
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/synology_dsm/strings.json
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Fix "Keep all disks and volumes forever" for empty import
* Fix prettier
* Remove useless LOGGER in config flow
* Fix Synology DSM tests doing I/O
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add integration for Schluter
New integration for Schluter DITRA-HEAT thermostats. Interacts with Schluter API via py-schluter to implement climate platform.
* Fix for manifest issue on build
Removed unnecessary configurator logic
* Flake8 & ISort issues fixed
* Code review modifications for Schluter integration
- Removed unnecessary strings.json file
- Removed unnecessary DEFAULT_SCAN_INTERVAL from __init__.py
- Removed persistent notification for authentication error in __init__.py
- Removed string casts from log statements in __init__.py
- Removed unnecessary logging of entity creations in climate.py
- Removed unnecessary lookup for hvac_mode in climate.py
* Work started on Update Coordinator
* Further Coordinator work
* Update to DataUpdateCoordinator complete
* Flake8 fix
* Removal of unnecessary SchluterPlatformData
Coordinator also now using SCAN_INTERVAL
* Disable polling, use coordinator listeners
* Isort on climate.py
* Code review modifications
- Hass data stored under domain
- Since platform only likely to be climate, removed array, load explicitly
- Remove unnecessary fan mode implementation
* Switch to HVAC action for showing current heating status
* Isort fix
* HVAC Mode return list, set_hvac_mode function added
* __init__.py modifications from code review
* Climate.py code review modifications
- Device info property removed
- Write state function on set temp failure
- Add "available" property
- Delegate sync function in coordinator update to the executor
* Serial number as unique identifier
- Now using serial number & thermostat dictionary to protect against scenarios where a device is removed and enumerable index is no longer accurate
- Removed async_write_ha_state() from set temp exception, not needed
- Removed unnecessary SCAN_INTERVAL definition
* Linting
* Update homeassistant/components/schluter/climate.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/schluter/climate.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Changed timeout from config, load platform discover to None
* Proposed change for discover info issue
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* some sensors working in homeassistant
* bring up to date
* add codeowner
* update requirements
* overhaul data imports from api & sensor discovery
* remove print statement
* delete requirements_test_all
* add requrements_test_all.txt
* Update homeassistant/components/nextcloud/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Update homeassistant/components/nextcloud/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* describe recursive function
* clarify that dict is returned
* remove requirements from requirements_test_all
* improve and simplify sensor naming
* add basic tests
* restore pre-commit config
* update requirements_test_all
* remove codespell requirement
* update pre-commit-config
* add-back codespell
* rename class variables as suggested by @springstan
* add dev branch to no-commit-to-branch git hook
Because my fork had the same 'dev' branch i wasn't able to push. Going forward I should probably name my branches differently.
* move config logic to __init__.py
* restore .pre-commit-config.yaml
* remove tests
* remove nextcloud test requirement
* remove debugging code
* implement binary sensors
* restore .pre-commit-config.yaml
* bump dependency version
* bump requirements files
* bump nextcloud reqirement to latest
* update possible exceptions, use fstrings
* add list of sensors & fix inconsistency in get_data_points
* use domain for config
* fix guard clause
* repair pre-commit-config
* Remove period from logging
* include url in unique_id
* update requirements_all.txt
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Added support for Minecraft SRV records
* Switched from dnspython to aiodns, improved server ping and log messages, use address instead of host and port in config flow
* Updated component requirements
* Add tests for several devices
* Update coveragerc
* Code review changes and minor clean up
* More code review changes
* Update manifest and minor test updates
* Add test for locks and covers
* Add tests for switch on and off
* Add more complete test for alarms
* Fix for camera test
* Patch abodepy.mode for tests
* Add test for unknown alarm state and minor cleanup
* Update to make tests more robust
* More specific tests
* Update quality scale to silver
* Remove integration quality scale
* 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
* Add support for melcloud Air-to-Water devices
* Add water_heater entity for the water heater component.
* Add individual climate entities for 0-2 supported radiator zones.
* Add sensors for zone room temperatures, outdoor temperature and tank
temperature.
* Update .coveragerc
* Use device_state_attributes
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Apply suggestions from code review
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Complete state_attributes -> device_state_attributes migration
* Move constants to top of file
* Remove async_turn_on/off
* Drop mac from ATW unique_ids
* Add MAC to device_info connections
* Remove redundant ABC inheritance
* Update homeassistant/components/melcloud/water_heater.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add edl21 component for SML-based smart meters
* edl21: Remove unused variable
* [edl21] Add 1 minute throttle to the sensor
* Update homeassistant/components/edl21/manifest.json
Fix documentation URL
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* edl21: Move imports to top
* edl21: Remove special case for STATE_UNKNOWN, which replicated default behavior
* edl21: Implement blacklist for and warn about unhandled OBIS values
* edl21: Make blacklist global
* edl21: Add filter to issues URL
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* edl21: Rename device to entity
* edl21: Don't schedule async_add_entities
* edl21: Use dispatcher, implement own throttling mechanism
* edl21: Simplify keeping track of known obis
* edl21: Use whitelist for state attributes
* edl21: Remove dispatcher on shutdown
* edl21: Convert state attributes to snakecase
* edl21: Annotate handle_telegram with @callback
* edl21: Call async_write_ha_state instead of schedule_update_ha_state
Co-authored-by: David Straub <straub@protonmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Initial version
Parse configuration, but return a fixed value
* Add basic functionality
Request real data from the server
Currently the prices are not getting updated, but the petrol station
data is real
* Update values regularly
The tankerkoenig values get updated regularly with real data.
* Move base functionality for the sensor to a base class
And move that to an own file, so that it can be inherited
* Reduce calls to tankerkoenig api
Use a master/slave concept for sensors; one master gets the data and
updates it into the slaves.
* Update requirements files
* Update all gas stations at once
* Remove tests directory
Currently there are no tests for the integration; will be added in
a future commit.
* Fix slaves not being updated
Let the base class regularly poll, so that slaves are also updated
* Refactor entity creation
Create an auxiliary method to add a station to the entity list,
in preparation to allowing extra stations.
* Add possibility to manually add stations
Add a new configuration option "stations" to manually add extra stations
* Fix style issues
Make the code more pythonic
* Remove redundant code
Implement suggestions from the code review
* Change to platform component
Remove the master/slave concept, in favor of a platform with dummy sensors.
The platform takes care of contacting the server and fetching updates
atomically, and updating the data on the sensors.
* Rename ATTR_STATE
Rename the attribute to "IS_OPEN", to avoid confusion with the sensor state.
* Minor updates
Combine two consecutive error logs into a single one.
Update the sensor's icon
* Separate address into different fields
* Style updates
Use "[]" syntax instead of ".get()" for required parameters
Use warning log level for not available fuel types
* Implement review comments
Fix style issues
Improve error messages
Remove redundant options
* Refactor using DataUpdateCoordinator
Use the new DataUpdateCoordinator to fetch the global data from
the API, instead of implementing an own method.
Also fix comments from the PR
* Implement PR comments
Implement suggestions to improve code readability and keep the Home Assistant style.
Also separate fetching data to an async thread
* Add Avri waste collection sensor
* Apply black formatting
* Update manifest
* Add requirements
* Add sensor to coverage
* Update import order
* Bump dependency to include todays pickup
* Bump avri version in requirements_all.txt
* Code review comments
* Reduce scan interval to 4 hours
This makes sure that no matter what happens, in
the morning the correct dates have been pulled
without the old ones lingering for too long.
* Better logging
* Made scan interval a timedelta
* Fix import order
* Update homeassistant/components/avri/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Update homeassistant/components/avri/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Use filter instead of break statement
* Use positive int for house number extension
* Switch voluptuous types for house number and house number extension
* Update homeassistant/components/avri/sensor.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Implement `available`
* Bump avri api
* Code review comments
* Replace `postcode` with `zip_code`
* Update logic for `available`
* Remove variable for delimiter
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* hookid : isort fix
* New platform: Ezviz
* updated CODEOWNERS for ezviz
* proper test requirements
* resolved conflict
* regenerated requirements
* removed stale comments, only one call to add_entities, removed unnecessary attributes
* setup is sync, not async. Removed stale comments
* Compatible with pyezviz 0.1.4
* pyezviz 0.1.4 is now requiredf
* Added PTZ + switch management
* added services.yaml
* proper requirement
* PTZ working in async mode
* Now updates the entity
* Compatible with pyezviz 0.1.5.1
* Fixed switch ir service registering
* now requires pyezviz 0.1.5.2
* now requires pyezviz 0.1.5.2
* Revert "regenerated requirements"
This reverts commit 848b317cf9.
* Rollbacked to a simpler version
* snake_case names everywhere, logging sanatizing, voluptuous proper check
* pyezviz 0.1.5, reworked the PR so that it's intelligible
* no need for services.yaml for now
* proper voluptuous validation
* Removed stale code, use proper conf variable, describe attributes
* regenerated requirements
* stale
* removed status from attributes, since we use it for available we don't need it here then.
* Fixed log message
* Add ZHA core typing helper.
* Add aux_channels to ZHA rule matching.
* Add match rule claim_channels() method.
* Expose underlying zigpy device.
* Not sure we need this one.
* Move "base" channels.
* Framework for channel discovery.
* Make DEVICE_CLASS and REMOTE_DEVICE_TYPE default dicts.
* Remove attribute reporting configuration registry.
* Refactor channels.
- Refactor zha events
- Use compound IDs and unique_ids
- Refactor signal dispatching on attribute updates
* Use unique id compatible with entities unique ids.
* Refactor ZHA Entity registry.
Let match rule to check for the match.
* Refactor discovery to use new channels.
* Cleanup ZDO channel.
Remove unused zha store call.
* Handle channel configuration and initialization.
* Refactor ZHA Device to use new channels.
* Refactor ZHA Gateway to use new discovery framework.
Use hass.data for entity info intermediate store.
* Don't keep entities in hass.data.
* ZHA gateway new discovery framework.
* Refactor ZHA platform loading.
* Don't update ZHA entities, when restoring from zigpy.
* ZHA entity discover tests.
* Add AnalogInput sensor.
* Remove 0xFC02 based entity from Keen smart vents.
* Clean up IAS channels.
* Refactor entity restoration.
* Fix lumi.router entities name.
* Rename EndpointsChannel to ChannelPool.
* Make Channels.pools a list.
* Fix cover test.
* Fix FakeDevice class.
* Fix device actions.
* Fix channels typing.
* Revert update_before_add=False
* Refactor channel class matching.
* Use a helper function for adding entities.
* Make Pylint happy.
* Rebase cleanup.
* Update coverage for ZHA device type overrides.
* Use cluster_id for single output cluster registry.
* Remove ZHA typing from coverage.
* Fix tests.
* Address comments.
* Address comments.
* add oauth functionality and additional attributes
* Add tests WIP
* Make mocks work the correct way
* Use CONF_TOKEN constant for config
* Remove twitch from .coveragerc
* Update homeassistant/components/twitch/sensor.py
Lets be consistent
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>