* Initial commit
* ran hassfest and gen_requirements_all scripts
* fixes per request from Paulus Schoutsen
* ran gen_requirements_all
* updated library version - removed some debug leftover
* get_requirements again...
* added documentation URL
* ran isort
* changed storage in hass.data[DOMAIN] to use entry_id instead of host
* adopted unit tests to latest fix
* Update const.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add MELCloud integration
* Provides a climate and sensor platforms. Multiple platforms on one go
is not the best option, but it does not make sense to remove them and
commit them later either.
* Email and access token are stored to the ConfigEntry. The token can be
updated by adding the integration again with the same email address. The
config flow is aborted and the update is performed on the background.
* Run isort
* Fix pylint errors
* Run black
* Increase coverage
* Update pymelcloud dependency
* Add HVAC_MODE_OFF emulation
* Remove print
* Update pymelcloud to enable device type filtering
* Collapse except blocks and chain ClientNotReadys
* Add preliminary documentation URL
* Use list comp for creating model info
Filters out empty model names form units.
* f-string galore
Dropped 'HVAC' from AtaDevice name template.
* Delegate fan mode mapping to pymelcloud
* Fix type annotation
* Access AtaDevice through self._device
* Prefer list comprehension
* Update pymelcloud to leverage device type grouping
The updated backend lib returns devices in a dict grouped by the device
type. The devices do not necessarily need to be in a single list and
this way isinstance is not required to extract devices by type.
* Remove DOMAIN presence check
This does not seem to make much sense after all.
* Fix async_setup_entry
Entry setup used half-baked naming from few experimentations back.
The naming conventiens were unified to match the platforms.
A redundant noneness check was also removed after evaluating the
possible return values from the backend lib.
* Simplify empty model name check
* Improve config validation
* Use config_validation strings.
* Add CONF_EMAIL to config schema. The value is not strictly required
when configuring through configuration.yaml, but having it there makes
things more consistent.
* Use dict[key] to access required properties.
* Add DOMAIN in config check back to async_setup. This is required if an
integration is configured throught config_flow.
* Remove unused manifest properties
* Remove redundant ClimateDevice property override
* Add __init__.py to coverage exclusion
* Use CONF_USERNAME instead of CONF_EMAIL
* Use asyncio.gather instead of asyncio.wait
* Misc fixes
* any -> Any
* Better names for dict iterations
* Proper dict access with mandatory/known keys
* Remove unused 'name' argument
* Remove unnecessary platform info from unique_ids
* Remove redundant methods from climate platform
* Remove redundant default value from dict get
* Update ConfigFlow sub-classing
* Define sensors in a dict instead of a list
* Use _abort_if_unique_id_configured to update token
* Fix them tests
* Remove current state guards
* Fix that gather call
* Implement sensor definitions without str manipulation
* Use relative intra-package imports
* Update homeassistant/components/melcloud/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add Minecraft Server integration
* Add unit test for config flow
* Fixed some review findings and increased unit test coverage
* Fixed docstrings of new test cases
* Removed unnecessary debug log messages
* Added unique IDs and device infos and removed duplicate name validation
* Attempt to fix unit test on CI
* Return state OFF instead of UNAVAILABLE in case connection to server drops
* Added property decorator to server properties, even less debug messages, improved sensor dispatcher connection and other review findings fixed
* Moved special property handling to sensors, fixed name confusion in sensor entity, switch to HA const for scan_interval, simplified building players list string
* Improved periodic update, speeded up unit tests
* Added type hints, added callback decorator to entity update callback, added const.py to unit test exclusions
* Changed state sensor to binary sensor, removed empty unit test file, added constants for icons and units
* Let HA handle unknown state, check for None in description and players list sensor
* Removed periods at end of log messages, removed constant for default host
* Updated requirements_test_pre_commit.txt, fixed codespell findings
* Use localhost as default host
* Removed passing hass to entities, moved log message from init, moved host lower to vol, use proper patch library, patch library instead of own code
* Replaced server properties with global instance attributes, removed config option scan_interval, switch back to async_track_time_interval
* Removed description and players list sensors, added players list as state attributes to online players sensor, raise OSError instead of deprecated IOError, other minor review findings fixed
* Use MAC address for unique_id in case of an IP address as host, added getmac to manifest.json, added invalid_ip to strings.json, added new test cases for changes in config_flow, replace all IOError's with OSError, other review findings fixed
* Removed double assignment
* Call get_mac_address async safe
* Handle unavailable and unknown states to reach silver quality scale, added quality scale to manifest.json
* initial version of gdacs integration
* updated translations
* generated files
* added abbreviation
* bumped library version
* small feed entry attribute fixes
* add unit tests
* need to use original mdi name
* bumped library version
* improved entity name for earthquakes
* round vulnerability number
* typo
* support for categories
* testing support for categories
* tie longitude and latitude together
* validating categories
* simplifying setup
* passing domain as parameter
* simplified test setup
* moved test code
* simplified test code
* removed superfluous code
* changed approach to unique identifier
* changed code structure
* simplified unit system handling
* made schema a constant
* comment added
* simplifying code
* added message if location already configured
* removed unnecessary code
* simplified test code
* avoid mocking __init__
* pylint
* simplified code
* fetch categories from integration library
* setting PARALLEL_UPDATES
* setting PARALLEL_UPDATES to zero/unlimited
* added quality scale
* Add salt component
* Update files from development checklist
* Use warning log level when data cannot be retrieved
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Remove empty fields from manifest.json
* Remove default arguments for host and username
* Bump saltbox library version
* Refactor and improve error handling
* Dev checklist
* Fix linting errors
* Check for None and return empty list
* Log on debug level instead of info
* More compact None checks
* Remove redundant None check
* Return None on exception but store as empty list
* More compact syntax
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Bump skybellpy to 0.4.0
* Bump skybellpy to 0.4.0 in requirements_all.txt
* Added extra states for STATE_ALARM_TRIGGERED to allow users to know if
it is a burglar or fire or carbon monoxide so automations can take
appropriate actions. Updated TotalConnect component to handle these new
states.
* Fix const import
* Fix const import
* Fix const imports
* Bump total-connect-client to 0.26.
* Catch details of alarm trigger in state attributes.
Also bumps total_connect_client to 0.27.
* Change state_attributes() to device_state_attributes()
* Move totalconnect component toward being a multi-platform integration. Bump total_connect_client to 0.28.
* add missing total-connect alarm state mappings
* Made recommended changes of MartinHjelmare at
https://github.com/home-assistant/home-assistant/pull/24427
* Update __init__.py
* Updates per MartinHjelmare comments
* flake8/pydocstyle fixes
* removed . at end of log message
* added blank line between logging and voluptuous
* more fixes
* Adding totalconnect zones as HA binary_sensors
* fix manifest.json
* flake8/pydocstyle fixes. Added codeowner.
* Update formatting per @springstan guidance.
* Fixed pylint
* Add zone ID to log message for easier troubleshooting
* Account for bypassed zones in update()
* More status handling fixes.
* Fixed flake8 error
* Another attempt at black/isort fixes.
* Bump total-connect-client to 0.50. Simplify code using new functions in
total-connect-client package instead of importing constants. Run black
and isort.
* Fix manifest file
* Another manifest fix
* one more manifest fix
* more manifest changes.
* sync up
* fix indent
* one more pylint fix
* Hopefully the last pylint fix
* make variable names understandable
* create and fill dict in one step
* Fix name and attributes
* rename to logical variable in alarm_control_panel
* Remove location_name from alarm_control_panel attributes since it is
already the name of the alarm.
* Multiple fixes to improve code per @springstan suggestions
* Update homeassistant/components/totalconnect/binary_sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Multiple changes per @MartinHjelmare review
* simplify alarm adding
* Fix binary_sensor.py is_on
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Add OPNSense device_tracker
This commit adds a new component for using an OPNSense router as a
device tracker. It uses pyopnsense to query the api to look at the
arptable for a list of devices on the network.
* Run black formatting locally to appease azure
* Apply suggestions from code review
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Fix issues identified during code review
This commit updates several issues found in the module during code
review.
* Update homeassistant/components/opnsense/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update CODEOWNERS for recent changes
* Fix lint
* Apply suggestions from code review
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* More fixes from review comments
This commit fixes several issues from review comments, including
abandoning all the use of async code. This also completely reworks the
tests to be a bit clearer.
* Revert tests to previous format
* Add device detection to opnsense device_tracker test
This commit adds actual device detection to the unit test for the setup
test. A fake api response is added to mocks for both api clients so that
they will register devices as expected and asserts are added for that.
The pyopnsense import is moved from the module level to be runtime in
the class. This was done because it was the only way to make the
MockDependency() call work as expected.
* Rerun black
* Fix lint
* Move import back to module level
* Return false on configuration errors in setup
This commit updates the connection logic to return false if we're unable
to connect to the configured OPNsense API endpoint for any reason.
Previously we would not catch if an endpoint was incorrectly configured
until we first tried to use it. In this case it would raise an unhandled
exception. To handle this more gracefully this adds an api call early in
the setup and catches any exception raised by that so we can return
False to indicate the setup failed.
* Update tests
* Add pyopnsense to test requirements
* Rerun gen_requirements script
* Fix failing isort lint job step
Since opening the PR originally yet another lint/style checker was added
which failed the PR in CI. This commit makes the adjustments to have
this pass the additional tool's checks.
* Fix comment
* Update manifest.json
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
* Rewrite of Spotify integration
* Update homeassistant/components/spotify/config_flow.py
Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>
* Remove configurator dependency
* Strip whitespace from device model in case Spotify product is missing
* Ensure domain dict exists in hass data on setup entry
* Simply config validation for client id and secret
* Abort flow on any exception from spotipy
* Add tests for config flow
* Gen requirements all
* Add test package __init__
* Remove Spotify from coveragerc
* Made alias handling more robuust
* Fix supported_features for Spotify free and open accounts
* Improve error message in the logs
* Re-implement Spotify media_player
* Change media content type when play a playlist
* Process review suggestions
* Move Spotify init, static current user and supported_features
* Remove unneeded me call
* Remove playlist content type due to frontend issues
* Improve playlist handling, when context is missing
* Handle entity disabled correctly
* Handle being offline/unavailable correctly
* Bump Spotipy to 2.7.1
* Update coverage RC, mark integration silver
* Remove URI limitation, lib supports all Spotify URI's now
* Final cleanup
* Addresses Pylint error
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* create derivation component
based on integration component
remove left and right
* Update test
(was'n saved)
* add some functionnal point test
* Change derivation to derivative
* Continue migration from derivation to derivative
* Add codeowners info
* fix tests typo and values
* Improve code from reviewer
add test case
fix test values
still a prefix issue that should not
* create derivation component
based on integration component
remove left and right
* Update test
(was'n saved)
* add some functionnal point test
* Change derivation to derivative
* Continue migration from derivation to derivative
* Add codeowners info
* fix tests typo and values
* Improve code from reviewer
add test case
fix test values
still a prefix issue that should not
* Update homeassistant/components/derivative/sensor.py
Fix test issue with unit of measurement
Co-Authored-By: Santobert <tobhaase@gmail.com>
* Fix review
Move ValueError to SyntaxError
* precise state test
* un comment original tests and remove error tests
* Fix isort issue
* Fix review
- update doc link
- migrate to general const import
* Rollback import conf_unit, just defined localy
Co-authored-by: Santobert <tobhaase@gmail.com>
* Store last working HTTP settings
* Add safe mode
* Fix tests
* Add cloud to safe mode
* Update logging text
* Fix camera tests leaving files behind
* Make emulated_hue tests not leave files behind
* Make logbook tests not leave files behind
* Make tts tests not leave files behind
* Make image_processing tests not leave files behind
* Make manual_mqtt tests not leave files behind
* Updated NSAPI to version 3.0.0
* Fixed code style error
* Restructured API access
* Improved construction of attributes
* Fixed handling of API output
* Added @YarmoM as code owner
* Updated CODEOWNERS
* Reverted changes for full backwards compatibility
* Fixed bad conditional
* Simplify conditional
* Refactor to use ids in data class
* Use station_id
* Refactor Netatmo to use oauth
* Remove old code
* Clean up
* Clean up
* Clean up
* Refactor binary sensor
* Add initial light implementation
* Add discovery
* Add set schedule service back in
* Add discovery via homekit
* More work on the light
* Fix set schedule service
* Clean up
* Remove unnecessary code
* Add support for multiple entities/accounts
* Fix MANUFACTURER typo
* Remove multiline inline if statement
* Only add tags when camera type is welcome
* Remove on/off as it's currently broken
* Fix camera turn_on/off
* Fix debug message
* Refactor some camera code
* Refactor camera methods
* Remove old code
* Rename method
* Update persons regularly
* Remove unused code
* Refactor method
* Fix isort
* Add english strings
* Catch NoDevice exception
* Fix unique id and only add sensors for tags if present
* Address comments
* Remove ToDo comment
* Add set_light_auto back in
* Add debug info
* Fix multiple camera issue
* Move camera light service to camera
* Only allow camera entities
* Make test pass
* Upgrade pyatmo module to 3.2.0
* Update requirements
* Remove list comprehension
* Remove guideline violating code
* Remove stale code
* Rename devices to entities
* Remove light platform
* Remove commented code
* Exclude files from coverage
* Remove unused code
* Fix unique id
* Address comments
* Fix comments
* Exclude sensor as well
* Add another test
* Use core interfaces
* Split async_update
* Use pytest parameters to avoid duplicate code
* Fix UnboundLocalError
* Test error rendering for template state
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add pilight dimmer as light component
* fix CI errors
* fix missing new lines
* improve formatting and addresses comments of @springstan
* rename config parameter and remove super() call to match pylint
* import only used constants of the pilight component
* Add myself to the code owners
* fix CODEOWNERS
* add surepetcare
* cleanup
* remove unused imports and comments
* remove comment
* fix bug which prevented updating the sensors
* improve config validation
* fix voluptuous usage
* fix format & credential storage
* various fixes to hass-conform
* small format fixes
* change False to None
* still trying to be hass-conform
* remove unused class
* fix imports
* fix f-string
* add guard clause?!
* central data fetch
* do not pass in hass, will be provided automatically
* make the linters happy
* disable constant-test warning and add commas
* worksforme
* fix link in manifest
* remove icon
* bump surepy to 0.1.5
* worksforme
* small doc fixes
* add discovery_info guard
* result of another awesome review
* and again :)
* exclude surepetcare in .coveragerc
* add KEF speakers platform for the integration
This will work with the KEF LS50 Wireless and KEF LSX speakers.
The development of this code happened on https://github.com/basnijholt/media_player.kef
* rename DATA_KEF -> DOMAIN
* use aiokef v0.2.0 and support LSX and new features
* sort imports
* fix @MartinHjelmare's suggestions
* remove _CONFIGURING
* change STATE_UNKNOWN to None
* use lat and long for unique_id
* bump aiokef to v0.2.2
* use config[ATTR] instead of config.get(ATTR)
* use getmac
* fix case when MAC is None
* use host as instance lifetime id
* fix requirements
* Added localip component
* Split config and core logic, and migrate to sensor platform (requested by @MartinHjelmare)
Also allow overriding the sensor name via the config
* Tweak docstring
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Initial support for config entries
* Rename localip to local_ip (1/2)
* Rename localip to local_ip (2/2)
* Add test for config_flow
* Split and rename tests
* Remove unneeded code from config_flow
* Implement configuration as config entry import. Other misc requested changes from code review.
* Fix tests
* minor code review fixes
* remove unneeded code
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
* Add support for HobbyBoards sensors: Hub, Humidity, Moisture, PulseCounter
Add support for an owserver running on a remote host
* Cleanup and fixes for style/etc
* Forgot to convert to f-strings.
* Update with changes requested by @MartinHjelmare
* Pylint
* Fix to None
* Reverse logic for hobbyboard test to eliminate pylint complaint
* Modified manifest to list myself as codeowner
* Move some functions down into OneWireProxy instead of the top OneWire
* Oops, missed some decode()'s
* And another!
* iCloud: setup ConfigFlow and prepare for more platforms
- add config flow + tests
- fix existing services
- add play_sound & display_message services
- document services
- can use devices with the same name
- prepare to add sensor platform
* Review : not copy account conf
* Review: Safer test patch
* Review: remove reset_account
* Review: Use executor_job while IO
* Review: Use executor_job while IO 2
* Review: use hass.helpers.storage.Store()
* Review: no IO in tests
* Remove reset from services.yaml
* Review: remove authenticate.return_value = Mock()
* Review: do not initialize the api with the mocked service
* isort
* Review: @MartinHjelmare Test config flow with all steps
* Review: Fix failed tests names
* Codevov: Add one missing test
* added signalmessenger integration
* allows to send a message (with an attachment) to one or more
recipients
* added signalmessenger documentation to manifest file
* remove debug logging from signalmessenger integration
* add signalmessenger to .coveragerc
* fixed typo in signalmessenger manifes
* moved service specific code to own pypi library
* updated pysignalclirestapi dependeny in manifest.json
* added pysignalclirestapi requirement for signalmessenger component
* fixed typo in codeowners
* reworked signalmessenger integration based on code review input
* updated requirements for signalmessenger
* small code improvements in signalmessenger integration
* no need to use the get() method to access dict parameters that are
required
* small changes in signalmessenger integration
* re-ordered import statements
* removed empty "requirements" list (not needed)
* changed import order in signalmessenger integration according to PEP 8
* used isort to order includes in signalmessenger integration
* renamed signalmessenger to signal_messenger
* renamed signalmessenger to signal_messenger in CODEOWNERS file
* changed documentation url in signal_messenger integration to new name
* changed signal messenger naming in .coveragerc
* Add Elgato Key Light integration
* Remove passing in of hass loop
* Tweaks a comment
* Tweaks a function name
* Ensure domain namespace in data exists in entry setup