* fix binary sensor offline/online
fixed self._handle_update on line 66 to produce args, kwargs.
Updated the binary sensor to check the correct index in the tuple.
* Fixed Standby switch
Set standby switch to poll in order to get status when homeassistant starts up.
Updated the index for the switch to get the status from the tuple.
This brings back support for Z-Wave thermostats
of SETPOINT_THERMOSTAT specific device class.
Such devices don't have COMMAND_CLASS_THERMOSTAT_MODE
and are now handled separately.
* Fix https://github.com/home-assistant/home-assistant/issues/29853
* Run script.gen_requirements
* Update to store Token File in config directory
* Update to store Token File in config directory
* Update to store Token File in config directory
* Added dummy user-agent to http request to fix setup error
* Replace dummy user-agent with the user-agent of the global home assistant session
* Adjust comment and rename user-agent constant
* Include MAC address in device state attributes for absent devices too
* Use MAC address as default name whether device is connected or not
* Fix initialization of known entities
Closes https://github.com/home-assistant/home-assistant/issues/29354
* Limit available heat/cool modes for HomeKit thermostats.
The Home app only shows appropriate modes (heat/cool/auto) for the device. Depending on the climate integration, disabling the auto start might be needed.
* Include improved mapping for HVAC modes in tests
* Report unavailable entites to google.
Entities should only removed when removed from HA. Removing a temporarily unavailable entity from google causes it to need to re-configured once it become available again.
* Fix test for unavailable entities
* Make async_report_state take agent_user_id
* Attempt to store synced agents
* Drop now not needed initialization
* Make sure cloud uses the all sync on changed preferences
* Some more places to use all version of sync
* Get the agent_user_id from the request context if available
* Minor cleanup
* Remove the old fixed agent_user_id for cloud
Instead pass along cloud_user where appropriate.
* async_delay_save takes a function
* Adjust test for delayed store
* Remove unused save function
* Add login check.
* Updated heatmiserV3 initial commit
* Fixing heatmiser component
* Updated codeowners and heatmiserV3 version
* Updating files as part of PR process
* Removed extra _LOGGER statements.
* Added in HVAC_MODE_OFF to allowed states to track whether heating on/off
* Handling PR comments
* Removed legacy tests
* fixing pylint errors
* Update homeassistant/components/heatmiser/climate.py
Removed .get from config
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/heatmiser/climate.py
Removed .get from config
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/heatmiser/climate.py
Removed .get from config
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Updated climate based on latest feedback
* Removed cast to int and update requirements
* Update requirements
* Updated heatmiser deps
delete incorrect 'mdi:brightness-3' in final
```
def icon(self):
"""Icon to use in the frontend, if any."""
return MOON_ICONS.get(self.state, "mdi:brightness-3")
```
which still shows in the sensors attributes
* Added check for "name" channelMetada attribute
* Added/changed smart home media player tests for added value name in chanelMetadata payload section
* Since Alexa only expects a number/callSign/affiliate in the returned response, returning "name" is not technically valid. Modified to return the value in the callSign field instead since it's a text value. Since there is no returned channel number, cannot return a true numeric value in "channel" field
* Improve Alexa interface selection for binary sensors
This allows the sensor to work correctly as a contact or motion sensor
in alexa, if the user overrides its display category as such.
* add tests
* Add broadlink remote control platform
* Fix order of the imports
* Add remote.py to .coveragerc
* Optimize MAC address validation
* Use storage helper class and improve code readability
* Add me to the manifest as a code owner
* Fix dosctring
* Add me to the code owners
* Remove storage schemas, rename storage keys and improve readability
* move service constants to const.py, move all custom xiaomi_miio services to xiaomi_miio domain
* update service names
* try to fix black error
* try black formatting again
* final black formatting attempt
* update service names to reflect platform
* fix typo
* Clear state on exception
Clear state if querying the device fails. The state is then set to unknown, so it can be tracked if a miflora device isn't responding any more.
* Add available()
Signal valid data via available()
* Add ATEN PE component for ATEN eco PDUs
* aten_pe: Require host configuration
* aten_pe: Do not import from other integrations
* aten_pe: Include unnamed outlets
* aten_pe: Avoid get() for config entries having default values
* aten_pe: Fix documentation URI
* aten_pe: Remove unused return value
* aten_pe: Update atenpdu lib to 0.2.0 for asyncio
* aten_pe: Raise exception if initialization fails
* aten_pe: Update atenpdu lib to 0.3.0 for improved exception handling
* Add Huawei LTE binary sensor support, mobile connection sensor
* Improve mobile connection sensor icon docstring
* Remove device class for permission to use a more descriptive icon
* Added device trigger to alarm control panel
* Added supported features to check that device has certain trigger
* Fixed tests for device_trigger
* Fixed pylint error
* Removed pending trigger and removed trigger condition
* Resolve hosts for fritzbox_callmonitor
If the configuration supplied "host" is not an IP address, try resolving it
* always use gethostbyname
Instead of just checking whether it is an IP and if it isn't try to resolve; just resolve it; IPs will be returned unchanged, and hostnames will be resolved.
* Catch error if the hostname cannot be resolved
* Don't fallback to default host
If the hostname cannot be resolved; don't try to fallback; just print the error message.
* Fail setup if hostname cannot be resolved
If the hostname cannot be resolved, log an error and stop the setup;
no entities will be then created.
* Added DSMR Reader platform
- Added DSMR Reader platform
- Updated codeowners for other components I added earlier
* Move sensor definitions to new file
* Sensor definitions in new file
* Add energy prices from MQTT
* lint fixes
* Black formatted some files
* Update .coveragerc
* Support transform methods on definitions
* Manifest mangled by Black, fixed
* Visual studio code reformatting dictionary error
* Fix issues with code, remove unrelated manifest changes
* Update CODEOWNERS
* Only create cloud user if cloud in use
* Pass context to alexa
* Update requirements
* Fix handing & design pattern for 0.30
* fix tests
* Fix lint & tests
* rename internal user
* update demo service domain and service description
* move DOMAIN and service name to const.py
* update per balloob's service name suggestion
* update service name in services.yaml
* update service name constant's name
* Adding lutron_caseta fan controller. Updated to pylutron 0.5.1
* Accidental import remain
* updating for black formatting
* Fix blank spaces
* Moving third party import
* update to 0.5.1 to pass checks
* fix deletion of new line
* Update fan.py
* Update with dev branch, update from comments, added mediumhigh
Instead of using the roku.power method, which toggles power,
implement the media_player.turn_on command for the roku component
by calling the new roku.poweron method.
Fixes#28961, but depends on upstream
https://github.com/jcarbaugh/python-roku/pull/53
* Add opentherm_gw device support
* Add support for enabling/disabling of opentherm_gw entities
* Disable sensors by default, base climate entity_id on gw_id instead of friendly_name to guarantee uniqueness
* Remove platform name from unique_id
Since 2019.1 has launched there is a perfectly reasonable (in fact the standard) case where ios component is loaded (i.e. actionable notifications) but no devices are registed for the now defunct `ios.notify` service. As such, the log warning relating to this case is no longer relevant.
* Upgrade upcloud-api to 0.4.5
* Fix UpCloud name spelling in manifest
* Update data at setup time for better initial states
* Clean up signal handlers on remove
* Signal data update on server start
To keep related binary sensor better up to date.
* Improve track_time_interval emulation for initial update
* Move request sync logic into GoogleConfig
* Return http status code for request_sync same as cloud
* agent_user_id is not optional for async_sync_entities now
* No need in checking parameter here
* Adjust some things for cloud tests
* Adjust some more stuff for cloud tests
* Drop uneccessary else
* Black required change
* Let async_schedule_google_sync take agent_user_id
* Assert return value on api call
* Test old api key method
* Update homeassistant/components/google_assistant/helpers.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Make rest sensor a little bit more flexible and allow the response to be a list with 0th element being a dictionary
* Black formatter wanted a different formatting
* Added test case for a list response with dict as 0th element
* Fixed lint error - it thinks a + STRING is an avoidance of using % sequences for log messages; I generally prefer explicit + rather than string juxtaposition for combining string literals, but sounds like that's not the standard
* Fixed test case -- I added it to the wrong scenario and need to use the one with json_attrs.
Although I originally contributed this component, I no longer use it myself and haven't been following the internal development of HA, so I'm no longer a good person to review any further changes to this component. I would therefore like to relinquish my CODEOWNER status over this component.
* Added Post Processing Jobs to NZBGet component
In the current implementation of the NZBGet component there is no way of
knowing whether NZBGet is still in the Post Processing phase of a download
job. This can be very useful information. For instance when you want to
suspend the NZBGet service when all queue items have been completed.
This change adds that additional sensor.
* Renamed Count to Jobs in NZBGet component
* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list
* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list
* use get instead of direct keys for dict
* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list
* use get instead of direct keys for dict
* changed get back to []
* move service constants to const.py, update blackbird custom service domain
* Readd bluesound services.yaml entries since it should be part of a different branch
* update service domain for local_file from camera to local_file
* remove service.yaml entry in camera component as part of change
* fix test
* move constants to const.py
* add local_file/const.py to .coveragerc
* remove local_file/const.py from .coveragerc since component has tests
* add model and serial to caseta devices
* use just serial for unique id
* add display name for entity registry
* remove caseta device model
* just store device
* state and device are the same
* Update WazeRouteCalculator to 0.11
* Update WazeRouteCalculator to 0.11
* Adding new config options to Waze
* Fixing avoid subscription option
* Update WazeRouteCalculator to 0.12
There was an error in the underlying lib
* Update WazeRouteCalculator to 0.12
* Fix digest auth rest sensors
* Refactor to use request()
* Fix black complaints
* Don't rename data variable
Don't rename the data variable, appears several other sensors have been coded to rely on it
* Fix tests
test_setup_missing_schema:
Change the exception to check for to PlatformNotReady. With the change away from prepared statements, we no longer get the MissingSchema error during setup - we get it when we attempt to call the endpoint. Since the result is PlatformNotReady, which is what we want, and the error log clearly contains a note that the schema is incorrect I think this is fine.
test_setup_failed_connect & test_setup_timeout:
These aren't checking for minimum config, and they're not invoking the correct method to have the default config filled in. Therefore I've just added the correct minimum config so these can continue to test what they're there to test.
test_update_request_exception:
Testing a request exception with the assert on line 404! Excellent. Anyway, we've moved from using the requests Session object to the requests.request function - so the patch needed to be altered to ensure the RequestException was raised.
* Remove no longer needed import
* Fix binary sensor test in same way
* Explicitly include Alexa Interface to discovery response.
* Updated cloud component test to reflect additional Alexa interface.
* Updated test for recently added SeekController.
* Make sure to cast the volume_level of a universal media_player to a float
* Fix test that expects the wrong bahaviour
* Catch exception instead of checking for None
* Fix Onvif setup error with a premature end of connection on GetStreamUri wsdl call
Reconnect to onvif camera after getting profiles to fix this error :
[homeassistant.components.onvif.camera] Retrieving stream uri
[zeep.asyncio.transport] HTTP Post to http://192.168.1.15/onvif/Media:
b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<soap-env:Envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope"><soap-env:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecur
2019-09-20 01:08:51 ERROR (MainThread) [homeassistant.components.camera] Error while setting up platform onvif
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 553, in write_bytes
await self.body.write(writer)
File "/usr/local/lib/python3.7/site-packages/aiohttp/payload.py", line 231, in write
await writer.write(self._value)
File "/usr/local/lib/python3.7/site-packages/aiohttp/http_writer.py", line 101, in write
self._write(chunk)
File "/usr/local/lib/python3.7/site-packages/aiohttp/http_writer.py", line 67, in _write
raise ConnectionResetError('Cannot write to closing transport')
ConnectionResetError: Cannot write to closing transport
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 110, in async_setup_platform
await hass_camera.async_initialize()
File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 168, in async_initialize
await self.async_obtain_input_uri()
File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 266, in async_obtain_input_uri
stream_uri = await media_service.GetStreamUri(req)
File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/bindings.py", line 13, in send
options["address"], envelope, http_headers
File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/transport.py", line 107, in post_xml
response = await self.post(address, message, headers)
File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/transport.py", line 95, in post
proxy=self.proxy,
File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 497, in _request
await resp.start(conn)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 844, in start
message, payload = await self._protocol.read() # type: ignore # noqa
File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 588, in read
await self._waiter
aiohttp.client_exceptions.ClientOSError: [Errno None] Can not write request body for http://192.168.1.15/onvif/Media
* Add code comment
* Update camera.py
* Lint.
* Improve z-wave thermostat support
Discover thermostat using COMMAND_CLASS_THERMOSTAT_MODE
so that it is a single entitiy in case there are multiple
setpoints. z-wave docs mention it is always present.
Add support for single/range target temperature depending
on the current thermostat mode.
* Remove debug print
* Refactor Z-Wave dynamic setpoint(s) selection
- use explicit mapping between modes and setpoints as defined in
Z-Wave specs
- add tests for away (2 setpoints) and heat eco (1 setpoint) modes
* Add non-standard thermostat mode aliases
* Added availability_template to Template Cover platform
* Added availability_template to Template Binary Sensor platform
* Added availability_template to Template Fan platform
* Added availability_template to Template Light platform
* Added availability_template to Template Sensor platform
* Added availability_template to Template Switch platform
* Added availability_template to Template Vacuum platform
* Added availability_template to Template Lock platform
* Added to test for invalid values in availability_template
* Black and Lint fix
* black formatting
* Added to test for invalid values in availability_template
* black
* Added to test for invalid values in availability_template
* Added to test for invalid values in availability_template
* simplified exception handler
* Fixed Entity discovery big and coverage
* Added to test for invalid values in availability_template
* flake8
* fixed component ID in test
* Added to test for invalid values in availability_template
* Added to test for invalid values in availability_template
* Made availability_template redering erorr more concise
* Cleaned template setup
* I'll remember to run black every time one of these days...
* Refactored Template initialisation
* Refactored Template initialisation
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fixed linting issues
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Removed 'Magic' string and removed duplicate code
* Removed 'Magic' string
* Removed 'Magic' string
* Brought contant into line
* Refactored availability_tempalte rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Fixed tests (magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Removed duplicate
* Clean up and remove debug
* Reverted Dev Container Change
* Add supported_features to Alarm Control Panel
* mark supported_features abstract
* Add SF to async_register_entity_service
* fix test
* Add missing SF SUPPORT_ALARM_ARM_CUSTOM_BYPASS
* isort
* fix async_register_entity_service
* Update alarm_control_panel.py
* Added Alexa.ModeController to cover entities.
* Added synonyms for directives.
* Updated tests for additional synonyms for directives.
* Added Alexa.ModeController to cover entities.
* Sacrifice unused variable in split() to please the Pylint gods.
* Removed duplicate instance check.
* Corrected variable name, clarified definition and consistency.
* Changed list to tuple.
If an entity is in unavailable state in HA, we expose this
as unreachable to Hue clients. This helps when troubleshooting
Hue issues because you can now receive feedback if there is an issue
on the HA side.
* Connect websocket when platforms ready, not when HA is ready
* Use callbacks from platform setup tasks instead
* Convert setup to async
* Apply suggestions from code review
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Connect websocket when platforms ready, not when HA is ready
* Use callbacks from platform setup tasks instead
* Convert setup to async
* Apply suggestions from code review
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* rename request to response, isort and black fixes
* Log exception details
* Add status code to success log, reformat log
* new syntax for response
* changed info to debug
* 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
It is incorrect to return None as a result of proprety call because in such a case state_attr call will return None as well, which means "Unknown attribute".
Instead for preset_mode(s) PRESET_NONE constant should be used for consistency.
* Fix Synology camera whitelist
If whitelist config is set, not camera is added to HA at all.
* Fix Synology Camera whitelist
Fix typo in config key.
* Update camera.py
Access config dict the voluptuous way
* have sensor.moon use state dependent icons
Material design icons have icons for all sensor.states, let's use these natively in the component.
Based on the Season icons, tried to change accordingly.
* Update sensor.py
added state constants
* Update sensor.py
fixed missing mdi:
* order of constants. moon icons and use self.state
change order of constants to alphabetical, changed order in Moon_icons to alphabetical, used self.state for icon lookup
* replace the strings
replace the strings for self.state with the constants
* removed quotes
* removed spaces, empty line
* local Black
* Sort imports and move import to file header
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
* 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
* Fix Synology camera whitelist
If whitelist config is set, not camera is added to HA at all.
* Fix Synology Camera whitelist
Fix typo in config key.
* Update camera.py
Access config dict the voluptuous way
* Fixed multi extruder/beds/chambers index issue, #28130
* Switched from .format to f style name formatting
* Fixed incorrect indexing
* Removed VS files
* Removed not need temp_id subtraction
* Removed VS files
* Fixed access mode
* Fixed access mode
* Fixing access mode - again
* Add bandit to pre-commit and CI, use to catch known vulnerable XML parsing
* Use defusedxml instead of direct xml.etree to parse XML
* Move config to tests/bandit.yaml
* Rework Comfoconnect sensor platform
* Sort ATTRS and fix icon
* Add unique_id to fan
* Use a different signal per sensor type
* Add more logging
* Swap to be sure.
* Remove -fan suffix from unique_id
* Remove malformed pylint disable markers
* Remove some unused imports
* Remove some unneeded lint exclusions
* Remove more unneeded lint exclusions
* Add specific codes to all noqa's
* Fixed multi extruder/beds/chambers index issue, #28130
* Switched from .format to f style name formatting
* Fixed incorrect indexing
* Removed VS files
* Removed not need temp_id subtraction
* Removed VS files
* Fixed access mode
* Fixed access mode
* Fixing access mode - again
* 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
* bump home mitemp_bt to 0.0.3. It has an important bugfix for reading temperatures under 10 grade
* adjust the version number for mitemp_bt up to 0.0.3
* Start
* Lock init
* More stubbing
* Final pieces for PR
* Fixed incorrect property access
* Updaed .coveragerc
* Ensure we can handle unknown states
* Account for lock's offline property
* Account for device online
* Unload components concurrently
* Handle unknown states more gracefully
* Add config entry and device support to Demo
* Some more devices
* Fix tests using demo
* Review comments
* Update config_flow.py
* Revert
* Disable pylint
* Use travis_wait only with pylint
pylint is the only job that is expected to be silent for extended time.
For others such a silence is a sign of a problem and using travis_wait
just lengthens the wait, and makes things harder to follow and debug,
because it also suppresses output in the web UI.
* Use pytest-xdist in tox
Similarly as in Azure.
* add support for entity_id as state of entity
* add circular reference detection
* voluptuous instead of regex
* wait for EVENT_HOMEASSISTANT_START
* move delayed_sensor_update to async_added_to_hass
* add @callback decorator
* remove nested entity resolving
* Update Homekit climate.py to remap current mode
This update changes the mapping of Homekit's Current Mode Heating/Cooling State to show the HASS Hvac_action attribute as "idle" instead of "off" when the returned value is 0.
* Update climate.py
removed imported constant no longer being used (CURRENT_HVAC_OFF)
* corrected update to climate.py
trying again to remove unused constant.
* Update test_climate.py
* removed "change" comment
The added comment describing the change was not needed and should not be included, as it will already be described via "git annotate" (per @jc2k)
* Added bluesound speaker group attribute.
* Changed code to fix failing tests.
* Changed condition checking for empty group list.
* Investigating CI pipeline error
* Changed back to the code that passed CI earlier
* Changed condition on existence of list and sorting of bluesound_group
* Re-introduced guard on group_name None
* Update device_tracker.py
From time to time, Swisscom Internet Box fails to respond and this causes an exception, which is currently not handled by the code:
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/device_tracker/setup.py", line 164, in async_device_tracker_scan
found_devices = await scanner.async_scan_devices()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 46, in scan_devices
self._update_info()
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 67, in _update_info
data = self.get_swisscom_data()
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 83, in get_swisscom_data
request = requests.post(url, headers=headers, data=data, timeout=10)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 686, in send
r.content
File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 828, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 757, in generate
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.1.1', port=80): Read timed out.
I've just added a try-except around the post.
* Update device_tracker.py
Addressed blank line issue reported by flake8
* Update device_tracker.py
Fixed alignment to be Black compliant.
* Update device_tracker.py
Fixed one more alignment issue
* Add support for Heat Mode detection for Heat Pumps - Fixes#26547
Since the ecobee component started to dynamically set the supported HVAC modes based on querying the device a few releases ago, users with Heat Pumps noticed that the Heat mode was no longer offered as an option by HA. Some of us did not actually notice until the summer was over :). This commit fixes that.
For heatpumps, ecobee returns:
'coolStages': 1,
'heatStages': 0,
'hasHeatPump': True,
Fix tested on HA 100.1 and 100.3
Fixes bug https://github.com/home-assistant/home-assistant/issues/26547
* changed line formatted with black
* Retrieve more detailed module infos
* Switch to using IDs
* Bump pyatmo version to 2.3.3
* Update requirements
* Undo the change of the unique id
* Rename variable
* Use friendly app names for Fire TV sources
* Remove debugging statement
* Tests pass
* Use 'blocking=True' to patch service calls
* Remove parentheses
* 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
This release has a fix for a crash we were seeing occasionally, and a totally
revamped packet handler which should be more robust and CPU-efficient.
Fixes#25887
* 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
* ViCare: Handle exceptions from PyViCare library (#28072)
Sometimes Viessmann server failures or other connection problems may
lead to exceptions thrown when updating data.
This commit handles those exceptions with some error logging and
makes sure that the component does not break completely in that case.
* Remove unneeded returns
* Remove unneeded returns
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.
* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.
* Netatmo camera : Use new style string formatting.
* Make the file compliant with flake8 linter.
* Make the file compliant with flake8 linter.
* Make it compliant with black formatter.
* Make it compliant with black formatter.
* Bug fix : Flood light control was not working with VPN url.
* Adjust font text such that it won't be drawn inside the bow line in image_processing.draw_box
* Adjust font_height after actually counting the pixels
* Thinned out line_width and adjusted font size
* Fix for occupancy sensor unique_id
* Add check for sensor attributes before adding entity
* Fixes temperature key issue
* Clean up code with better use of keys
* Code clean up
* Support Huawei LTE SSDP discovery
* Avoid KeyError on simultaneous user initiated flow
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Format code
* Add already configured check
* Initialize context in test flows
* Move deviceType match to manifest
* Update generated.ssdp
* Add SSDP config flow test case
* Remove stale debug print from tests
Set auto mode should be exposed to all dyson fans (e.g. *Pure Cool Link* and *Pure Hot+Cool Link*) instead of only *Pure Cool*, as it is support in all of the models (i.e. similar to the set night mode).
* docs(ifttt): add information to services.yaml
* docs(ifttt): start examples lowercase
* docs(ifttt): start examples with capital letter
* docs(ifttt): end description on period
* Update Vivotek component
Fix building stream URL
* Update Vivotek component
Make stream path optionally configurable.
* Update Vivotek camera integration
Use f-string to build stream source URL.
This improve readability and I hear it runs faster.
* SSDP matching improvements
- support multiple match groups per domain
- require matches on all, not any item in a group
- support matching on all UPnP device description data
* Manifest structure fixes
This change addresses a bug where one is unable to change directly between the away and temperature hold presets, as temperature hold cannot be enabled on a Venstar thermostat if away mode is active.
Furthermore, this change removes redundant state checks as the set_away and set_schedule calls are idempotent in the venstarcolortouch library. See https://github.com/hpeyerl/venstar_colortouch/blob/master/src/venstarcolortouch/venstarcolortouch.py#L275.
* Prevent TypeError when KNX RGB(W) light value contains None.
* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.
* Simplified code as suggested by pvizeli.
* Prevent TypeError when KNX RGB(W) light value contains None.
* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.
* Simplified code as suggested by pvizeli.
The new release fixes a single regression from requests to aiohttp conversion.
Some devices do not respond with the correct mimetype which was not enforced
by requests but is enforced by aiohttp.
Related PR https://github.com/rytilahti/python-songpal/pull/59
* Imported homeassistant.util and slugified address if no name is specified
* Added a custom validator function in case name is not set in config
* Removed logger.debug line only used for testing
* Imported homeassistant.util and slugified address if no name is specified
* Added a custom validator function in case name is not set in config
* Removed logger.debug line only used for testing
* Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1)
* Remove unused variable
* Provide a proper unique_id
* Incorporate review
* Wrap the method that cause the exception
* Undo mistakenly changed file. Fixed in the separate PR.
* 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
* Add and improve core and config_entries type hints
* Complete and improve config_entries type hints
* More entity registry type hints
* Complete helpers.event type hints
* Add above and below to sensor condition extra_fields
* Change unit_of_measurement to suffix in extra_fields
* Check if sensor has unit when getting capabilities
* Improve tests
* Reorg and test attribute for HomematicIP Cloud
* Add dutyCycle check to security_group
* Edit test to improve coverage
* Add missing flow test
* apply suggestion
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* fix assert condition
* 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.
* Add available status and increase version of unifiled package version.
* No io in init function.
* Add above and below to sensor condition extra_fields
* Change unit_of_measurement to suffix in extra_fields
* Check if sensor has unit when getting capabilities
* Improve tests
* Update ThermostatController to map directives to supported modes and add support for CUSTOM mode.
* Removed erroneous config value from test.
* Removed unnecessary use of a comprehension by dumbing down comment so pylint could comprehend.
* Removed erroneous import variable caused by removing erroneous config value from test.
* Removed unnecessary use of a comprehension.
* Reverted Removal or erroneous import variable and erroneous config value from test.
Apparently need for additional tests outside this component. Whoops.
* Update pycsspeechtts
From 1.0.2 to 1.0.3 as the old one is using an api that doesn't work
* Give a option to choose region
Api is now region dependent, so gave it a config
* Save client identifier from auth for future use
* Use websocket events to update Plex
* Handle websocket disconnections
* Use aiohttp, shut down socket cleanly
* Bad rebase fix
* Don't connect websocket during config_flow validation, fix tests
* Move websocket handling to external library
* Close websocket session on HA stop
* Use external library, revert unnecessary test change
* Async & lint fixes
* Clean up websocket stopper on entry unload
* Setup websocket in component, pass actual needed object to library
* Update pycsspeechtts
From 1.0.2 to 1.0.3 as the old one is using an api that doesn't work
* Give a option to choose region
Api is now region dependent, so gave it a config
* Save client identifier from auth for future use
* Use websocket events to update Plex
* Handle websocket disconnections
* Use aiohttp, shut down socket cleanly
* Bad rebase fix
* Don't connect websocket during config_flow validation, fix tests
* Move websocket handling to external library
* Close websocket session on HA stop
* Use external library, revert unnecessary test change
* Async & lint fixes
* Clean up websocket stopper on entry unload
* Setup websocket in component, pass actual needed object to library
* 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
* Using latest winthings_api module.
Drastically reduced complexity of tests.
* Removing import source.
* Fixing test requirements.
* Using requests_mock instead of responses module.
* Updating file formatting.
* Removing unused method.
* Adding support for new OAuth2 config flow.
* Addressing PR feedback.
Removing unecessary base_url from config, this is a potential breaking change.
* Addressing PR feedback.
* Modernization rework
- config entry support, with override support from huawei_lte platform in YAML
- device tracker entity registry support
- refactor for easier addition of more features
- internal code cleanups
* Remove log level dependent subscription/data debug hack
No longer needed, because pretty much all keys from supported
categories are exposed as sensors.
Closes https://github.com/home-assistant/home-assistant/issues/23819
* Upgrade huawei-lte-api to 1.4.1
https://github.com/Salamek/huawei-lte-api/releases
* Add support for access without username and password
* Use subclass init instead of config_entries.HANDLERS
* Update huawei-lte-api to 1.4.3 (#27269)
* Convert device state attributes to snake_case
* Simplify scanner entity initialization
* Remove not needed hass reference from Router
* Return explicit None from unsupported old device tracker setup
* Mark unknown connection errors during config as such
* Drop some dead config flow code
* Run config flow sync I/O in executor
* Parametrize config flow login error tests
* Forward entry unload to platforms
* Async/sync fixups
* Improve data subscription debug logging
* Implement on the fly add of new and tracking of seen device tracker entities
* Handle device tracker entry unload cleanup in component
* Remove unnecessary _async_setup_lte, just have code in async_setup_entry
* Remove time tracker on unload
* Fix to not use same mutable default subscription set for all routers
* Pylint fixes
* Remove some redundant defensive device tracker code
* Add back explicit get_scanner None return, hush pylint
* Adjust approach to set system_options on entry create
* Enable some sensors on first add instead of disabling everything
* Fix SMS notification recipients default value
* Add option to skip new device tracker entities
* Fix SMS notification recipient option default
* Work around https://github.com/PyCQA/pylint/issues/3202
* Remove unrelated type hint additions
* Change async_add_new_entities to a regular function
* Remove option to disable polling for new device tracker entries
* 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.
* cover all possible values for operation_mode
* Update climate.py
* Update climate.py
* Update climate.py
mapped homeassistant constants to client ones so we don't have to check for both
* black + pylint
* move mode_map to __init__()
* Update climate.py
* Update climate.py
The new release fixes a single regression from requests to aiohttp conversion.
Some devices do not respond with the correct mimetype which was not enforced
by requests but is enforced by aiohttp.
Related PR https://github.com/rytilahti/python-songpal/pull/59
* Config entry and device for Coolmaster integration
* Lint/isort/flake/etc...
* Black formatting
* Code review fixes
* Config flow tests for coolmaster
* Add pycoolmaster requirement to test
* Remove port selection from Coolmaster config flow
* Update config_flow.py
* More idoimatic hash concat
* Correctly compute the supported_features in cover.mqtt
* Update homeassistant/components/mqtt/cover.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Correctly compute the supported_features in cover.mqtt
* Format
* Support for additional timeline events
* Update __init__.py
* Expose details on user
These lines expose apptype and event_by, which can be used to give information on events initiated by keypad users (vs. users on the mobile app, web app, or those initiated from HA through abodepy).
* removed a nesting level
* Lutron Pico fix
* Reverted logging change
Was unaware that f-strings aren't used in logging commands, reverted the usage
* Reverted logging change
Was unaware that f-strings aren't used in logging commands, reverted the usage
* fixed logic
* Move imports in nuheat component
* Fix tox tests
* Fix tox tests
* Update tests/components/nuheat/test_init.py
@Balloob suggested the change because direct replacement, the mock would never be reverted and impact the other tests.
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Added missing Alexa.ChannelController functions. Specifically ChangeChannel
and SkipChannel commands. These functions will call the play_media function
in a media_player app if it has the capability published and pass on the
channel# or channel name. The selected media player can then use this to
select the channel on the device it is associated to.
Modified the existing Alexa.StepSpeaker Setvolume function to actually do
a stepped volume change using the steps sent by Alexa. The Alexa default
step of 10 for a simple volume up/down can be changed via an exposed
media_player attribute called volume_step_default.
The default is set to 1. Any other value then default will be sent
as sequential volume up /down to the media_player.
* The test code has some weird behaviour with passed boolean values. Had to surround them in quotes for the tests to pass properly.
* Reverted test_smart_home.py change. Issue was not the boolean value but the behavior in the handler. The test suite does not like multiple await calls in a loop. Will investigate further. The handler code works though.
* Added ChannelController/SkipChannels test in test_smart_home.py
Added test for callSign payload attribute.
* Modified smart home test to allow more than one call to services
* Added more tests for ChannelChange functions for various payload options.
Removed name options from metadata payload section. not needed.
* Reverted assert call change in alexa test __init__.py back to ==1. Not sure if it was the cause of the pytest's failing on github
* Corrected a comment. First commit after a rebase.
* Comment line change. Also wanted to force a code check on github.
* Added a loop delay in StepSpeaker and SkipChannel functions for safety
* Removed uneeded sleep from for loops. Let remote handle delays
Moved service type decision out of for loops in ChannelController and StepSpeaker
Used constants instead of numeric values for support options in test module
* Change media_player const import to be more specific in source
* Modifed test_smart_home to use media_play constants instead of hardcode valu
* Removed unecessary test volume_step_default attribute from test_smart_home
* Removed uneeded comment in StepSpeaker function.
Re-ordered constants in test_smart_home.py
* Modified call to media_player play_media service to use media_player constant instead of hard coded value.
* Changed constant use to be consistant with rest of function.
* Correct merge conflicts in handlers.py and capablities.py
* Fix#28104 - CalDav support for floating datetimes
Timzones are optional in CalDav
It is possible that an entry contains neither a TZID, nor is an UTC time.
When this is the case, it should be treated as a floating date-time value,
which represent the same hour, minute, and second value regardless of which
time zone is currently being observed.
For Home-Assistant the correct timezone therefore is whatever is configured
as local time in the settings.
See https://www.kanzaki.com/docs/ical/dateTime.html
* Revert "Fix #28104 - CalDav support for floating datetimes"
This reverts commit cf32a6e390.
* add test case: floating events fail with error without patch
* Fix#28104 - CalDav support for floating datetimes
Timzones are optional in CalDav
It is possible that an entry contains neither a TZID, nor is an UTC time.
When this is the case, it should be treated as a floating date-time value,
which represent the same hour, minute, and second value regardless of which
time zone is currently being observed.
For Home-Assistant the correct timezone therefore is whatever is configured
as local time in the settings.
See https://www.kanzaki.com/docs/ical/dateTime.html
* style fix
* Add support for SmartStrip type devices (HS300, HS107) to tplink component
* Incorporate feedback from @MartinHjelmare using changes suggested by @shbatm
- Setting `_state` now uses a list comprehension
- `_alias` will use aliases from the Kasa app
- `_device_id` will be set to `_mac` for single plugs to retain backwards compatibility
* Add options to specify advertised IP and MAC for HomeKit Bridge
This makes use of HAP-python's new feature in version 2.6.0
that allows to specify the mDNS advertised IP and MAC address.
This is a requirement for the following use cases:
- Running Home Assistant behind a NAT, e.g. inside Docker.
- Running it on a system with multiple interfaces there
the default IP address, DNS entry and hostname diverge.
The forwarding of the required mDNS packets can be done with
an avahi-daemon based gateway, e.g. by using enable-reflector=yes.
Specifying the MAC address makes it possible to identify an
accessory in case HA is run inside a ephemeral docker container.
Whitespace changes were performed due to black and flake8.
* Update tests for HomeKit Bridge due to IP and MAC advertising
Whitespace changes were performed due to black and flake8.
* Remove the possibility to set the MAC address of the HomeKit Bridge
Since the MAC address is a random device ID, there is no need
for the user to be able to set a custom MAC address value for it.
Whitespace changes were performed due to black and flake8.
* Implement AlexaToggleController, AlexaRangeController, and AlexaModeController interfaces.
* Implement AlexaToggleController, AlexaRangeController, and AlexaModeController interfaces.
* Unkerfuffled comments to please the pydocstyle gods.
* Unkerfuffled comments in Tests to please the pydocstyle gods.
* Added additional test for more coverage.
* Removed OSCILLATING property check from from ModeController.
* Added capability report tests for ModeController, ToggleController, RangeController, PowerLevelController.
* Update homeassistant/components/alexa/capabilities.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/alexa/capabilities.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Corrected mis-spelling of AlexaCapability class.
* Changed instance from method to property in AlexaCapability class.
* Refactored to add {entity.domain}.{entity.attribute} to the instance name.
* Improved type handling for configuration object.
Added additional test for configuration object.
* Added Tests for unsupported domains for ModeController and RangeController
* Made changes to improve future scaling for other domains.
* Split fan range to speed maps into multiple constants.
* Code cleanup for orangepi_gpio
* Move constants to const.py
* Use async wherever possible
* Remove obsolute functions
* Use relative package integration imports
* Move callbacks to async_added_to_hass
* Avoid side effects in init
* Prevent blocking I/O in coroutines
* Make sure entity is setup before added
* Fixes the buienradar component and add smoke tests
* Fix errors due to circular imports after imports were moved.
* Add smoke test so this situation will be caught in the future.
* Add buienradar.util to coveragerc
* Refactor tests to standalone pytest test function style
* Add __init__ to buienradar tests
* Remove tplink device tracker
Version 0.94 added a distress signal and since then nothing has happened.
This commit removes the device tracker which should have never been
a part of tplink integration in the first place as it does not share
anything with this pyhs100-based integration / kasa smarthome.
* add updated requirements_test_all that was forgotten
* remove unit tests
* Update Plex platforms together
* Remove unnecessary methods
* Overhaul of Plex update logic
* Apply suggestions from code review
Use set instead of list
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Review suggestions and cleanup
* Fixes, remove sensor throttle
* Guarantee entity name, use common scheme
* Keep name stable once set
* Bump adguardhome to 0.3.0
* Add a more user friendly version handling and added logs
* ✏️ Fixes spelling error in abort messages
* ✏️ Error messages improvements, suggested by cgtobi
* Add climate service to Homematic IP Cloud to select the active profile
* Add profiles ass presets
* fix spelling
* Re-Add PRESET_NONE for selection
* Boost is a manual mode
* Fixes based on review
* Fixes after review
* [homematic] Split color and effect support
There are homematic devices (like HmIP-BSL) that support color but
do not support effects.
Split the support, so that color can be supported even if effects are not.
* Make effect fully independent of color
If a device supports effects for e.g. just brightness, it shouldn't be coupled to the color
* Add report state config
* Add initial steps for local report state
* Use owner of system as user_id
* First working prototype
* Only report state if requested
* Add some good logging and adjust constant name
* Move jwt generation out to non member
* Move cache out to caller
* Remove todo about cache
* Move getting token out of class
* Add timeout on calls
* Validate config dependency
* Support using service key to do sync call when api_key is not set
* Make sure timezone is fixed for datetime dummy
* Use exact expire_in time
* Support renewing token on 401
* Test retry on 401
* No need to declare dummy key twice
* Correct some docs on functions
* Add test for token expiry
* Refactor the Somfy auth implementation
* Typing
* Migrate Somfy to OAuth2 flow helper
* Add tests
* Add more tests
* Fix tests
* Fix type error
* More tests
* Remove side effect from constructor
* implementation -> auth_implementation
* Make get_implementation async
* Minor cleanup + Allow picking implementations.
* Add support for extra authorize data
* move imports to top-level in recorder init
* move imports to top-level in recorder migration
* move imports to top-level in recorder models
* move imports to top-level in recorder purge
* move imports to top-level in recorder util
* fix pylint
* 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
* add ability for MQTT device tracker to map nondefault topic payloads to zones
* update new parameter name and add abbreviation
* support for payload_home, payload_not_home, and payload_custom
* use constants STATE_NOT_HOME and STATE_HOME as defaults
* reference state constants directly
* add empty dict as default for payload_custom
* change parameter name for custom mapping of payloads to non-home zones to be more descriptive
* removed 'payload_other_zones' per ballobs review
* remove abbreviation for 'payload_other_zones'
* add tests for feature
* Add grid sensors
* Formatting
* Add possibility to add attributes
* Add optimizer attribute
* Remove bare 'except'
* add proper exception
* Remove return attribution 0
* Ad inverter attribution
* Style change
* Add attribute name to sensors constants
* SENSOR_TYPES alphabetical and snake_case lower
* Formatting
* forgot snake_case lower
* Add extra meter sensors
* add critical error for debugging
* Update sensor.py
* swam meter sensors
* Add suitable icons to meter reading
* Fix for pointless-statement
homeassistant/components/solaredge_local/sensor.py:173:8: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:192:8: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:349:16: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:356:16: W0104: Statement seems to have no effect (pointless-statement)
* Rename import energy sensor
* Insert feadback
* Change to debug info
* Add check if attribute name exist
* Remove unnecessary else
* Add return None if no attributes
* flake
* Install our core dependencies for mypy in azure
To match local setups and tox.
* Use "system" mypy in pre-commit instead of the "real" mypy hook
The results of mypy depend on what is installed. And the mypy hook
runs in a virtualenv of its own, meaning we'd need to install and
maintain another set of our dependencies there... no. Use the "system"
one and reuse the environment that is set up anyway already instead.
* Reintroduce needed ruamel.yaml type ignore
This ignore is required when ruamel.yaml is installed, and we want it
to be as it's part of the core dependency set.
* move imports to top-level in mqtt server
* move imports to top-level in mqtt configflow
* move imports to top-level in mqtt init
* move imports to top-level in mqtt vacuum
* move imports to top-level in mqtt light
* Added a new configuration boolean parameter on_off_inverted to KNX Climate component.
* Remove unexpected spaces around equals.
* Parameter name changed to on_off_invert and modified to new version of XKNX library.
* Dict[key] for required config keys and keys with default config schema values.
When an amcrest camera was unplugged and then plugged again
it was impossible to reconnect to it, since the old
auth token was reused while we need to use a new one.
In fact, the method that is called every minute to check
the camera availability is going to fail always since we're
reusing an old token.
By forgetting the token (setting it to None) when going offline,
we ensure that we'll regenerate it in the next commands thus allowing
to reconnect to the camera when it comes back online.
* add high_precision (current) temperatures
* bump client to use aiohttp for v1 client
* token saving now event-driven rather than scheduled
* protection against invalid tokens that cause issues
* tweak error message
* 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
* Add improved scene support for input_select
* Add tests for reproducing input_select states.
* Add some comments.
* Add support for set_options
Allows defining the options for an input_select in a scene.
* Add tests for set_options in test_reproduce_state
* Execute for real instead of mock execution.
* Improve tests for HomematicIP Cloud
* create fixtures remove decorators
* removed further decorators
* remove last decorator
* improve exception handling
* removed not required coroutine
* use the correct place for mock
marker-high-levels and marker-low-levels may not exist in printer
attributes returned by CUPS, so we'll use .get() to avoid this and
default to None:
KeyError: 'marker-high-levels'
Fixes#27518
* 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)
* Update the Alexa.LockController Unlock directive to include the lockState property in the context of the response.
* Added Test for Alexa.LockController Unlock directive to include the lockState property in the context of the response.
* Refactoring imports for tensorflow
* Removing whitespace spaces on blank line 110
* Moving tensorflow to try/except block
* Fixed black formatting
* Refactoring try/except to if/else
* MQTT json light: allow floating point transition
Allow to use floating point values for the transition time of the MQTT json light.
In this way transitions shorter than 1s can be used (0.5 seconds for instance) if the MQTT light supports it.
* Always sent a float
* 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
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Update media_player.py
Change to make receiver max volume configurable
* Update manifest.json
Update to latest onkyo-eiscp with a fix required for Pionner AVR
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Format
* Requirements all
* Fix CI errors
* Black
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Using version of withings api with static version in setup.py.
* Updating requirements files.
* Move imports in dht component
* remove empty line
* Move imports for pushbullet component
* revert unwanted changes
* Move imports for pushbullet component
* remove dht change from that branch
* remove dht changes from this branch
* Added improved scene support to the input_number integration.
* Minor fix in test.
* Use snake case for variable names in test_reproduce_state.
* Remove redundant tests.
* Standardize times in time sensors Jewish calendar
* Fix pylint errors
* Add non-default time format test
* Make black happy
* Remove timestamp device class
Timestamp device class requires ISO 8601 format
* Revert "Remove timestamp device class"
This reverts commit 8a2fda39831bc750c3a77aa774b84b054d78032c.
* Remove time_format
As this is part of the UI decision, it should be decided by lovelace.
A nice addition for a future PR, might be the option to hint to lovelace the preferred way to display some data.
* Update name of state_attributes
* State of timestamp variable to be shown in UTC
Although I don't understand it, I give up :)
* Remove unnecessary attributes
I don't really see the value in these attributes, if there are any they should be implemented in
the sensor component for the timestamp device class
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Using version of withings api with static version in setup.py.
* Updating requirements files.
* Install requirements for all deps with tests
* Remove unused REQUIREMENTS var
* Print diff if not the same
* Simplify
* Update command line
* Fix detecting empty dirs
* Install non-integration
* Fix upnp tests
* Lint
* Fix ZHA test
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Don't force extra update on startup
* Skip on entity add instead
* Conditional update based on HA state
* Only force entity state update when postponed
* Clean up state updating
* Delay YAML import
* 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
* Add more device info data
* Add attributes to device_info
* Refactor sensor
* Filter
devices
* Update following review
* Update following review
* Add device_Class
* Switch on/off all lights, and wait for the result
Reuses the parallel_updates semaphore.
This is a small crutch which serializes platforms which already do tis
for updates. Platforms which can parallelize everything, this makes it
go faster
* Fix broken unittest
With manual validation, with help from @frenck, we found out that the
assertions are wrong and the test should be failing.
The sequence requested is
OFF
ON
without cancelation, this code should result in:
off,off,off,on,on,on
testable, by adding a `await hass.async_block_till_done()` between the
off and on call.
with cancelation. there should be less off call's so
off,on,on,on
* Adding tests for async_request_call
* Process review feedback
* Switch gather with wait
* 👕 running black
* 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
* TRV-Support
* pyhive import update
* Moved HVAC to new line
* updated pyhiveapi version
* Update for pylint errors
* Fix Pylint Errors
* Fixed Pylint 2
* removed whitespace
* Black
* Updates following review
* updated phyhive to 0.2.19.3
* Corrected logic on TRV name
* updated requirements as requested
* Black run
* Guard against network errors for Dark Sky
- Prevents network errors from throwing an exception during
state updates for the Dark Sky weather component.
* Implement `available` for Dark Sky component
* unknown -> unavailable
* Add support for the contains flags on areas to allow specifying overlap vs contains
* Remove draw_box
* Add timeout option
* Fix import for CONF_TIMEOUT
* Change contains to covers
* Add config flow support to opentherm_gw.
Bump pyotgw to 0.5b0 (required for connection testing)
Existing entries in configuration.yaml will be converted to config entries and ignored in future runs.
* Fix not connecting to Gateway on startup.
Pylint fixes.
* Add tests for config flow.
Remove non-essential options from config flow.
Restructure config entry data.
* Make sure gw_id is slugified
* Fix template fan turn_on action
The turn_on action of a template fan should
receive the 'speed' attribute in order to give
the user the possibility of define the behaviour
of this action as he desires
Fixes#27176
* Format
* Update fan.py
* Add manufacturer const
* Add device_info to binary sensor
* Add device info to climate
* Add device info to sensor
* Add device info to weather
* Add constant for device info
* Fix log messages
* Use guard clauses
* Fix homekit temperature sensor for round with one decimal
* Removing unnecesary operations
* Adapting tests for new temperature_to_homekit() result precision
* Added retry capability to the component initialization.
* Removed extra chars
* Black formatting.
* Removed issue with block upon setup. Now setup will only fail if auth failed to the device.
* Don't force extra update on startup
* Skip on entity add instead
* Conditional update based on HA state
* Only force entity state update when postponed
* Clean up state updating
* Delay YAML import
* Fixes#26405 Return None if light state is off since attribute is unavailable, prevents property from being reported with invalid value of 0.
* Update Test to check property is not reported when light state is off.
* Added Fan to display categories.
* Added Doorbell to display categories.
* Added Microwave to display categories.
* Added Security Panel to display categories.
* Updated FanCapabilities to use FAN display category.
* Updated Tests for FanCapabilities to use FAN display category.
* Return None for AlexaThermostatController and AlexaTemperatureSensor properties if climate state is unavailable. Preserves raising an error for UnsupportedProperty, and allows Alexa.EndpointHealth to handle the unavailable state.
* Added additional tests for climate state reporting.
* Add controls to catch when client goes offline and UniFi bug marks client as wired
* Device trackers shouldn't jump between going away and home
* POE control shouldn't add normally wireless clients as POE control switches
* Add in attributes to track when a user unlocks the lock with a PIN, and when the battery runs low.
* Vera attributes for who entered PIN on lock, and low battery warning.
* Changed last_user_id to use changed_by interface.
* Bump pyvera version to 0.3.6; remove guard code for earlier pyvera versions.
* Bump pyvera version to 0.3.6
* Add unique id to platforms
Add unique id for binary sensor, climate, and sensor.
* Add unique id to weather platform
* Simplify unique_id for weather platform
* Fix lint for unique_id in sensor
* Fix lint for unique_id in binary sensor
* Added availability_template to Template Lock platform
* Added to test for invalid values in availability_template
* Black and Lint fix
* black formatting
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Brought contant into line
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* 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
* address issues #25984, #25985
* small tweak
* refactor - fix bugs, coding erros, consolidate
* some zones don't have schedules
* some zones don't have schedules 2
* some zones don't have schedules 3
* fix water_heater, add away mode
* readbility tweak
* bugfix: no refesh after state change
* bugfix: no refesh after state change 2
* temove dodgy wrappers (protected-access), fix until logic
* remove dodgy _set_zone_mode wrapper
* tweak
* tweak docstrings
* refactor as per PR review
* refactor as per PR review 3
* refactor to use dt_util
* small tweak
* tweak doc strings
* remove packet from _refresh
* set_temp() don't have until
* add unique_id
* add unique_id 2
* 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
* fix rest_command when server is unreachable
When a server doesn't exist, the connection fails immediately, rather
than waiting for a timeout. This means that the async handler is never
reached, and the request variable never filled, yet it's used in the
client error exception handler, so this one bugs out.
By using the command_config, we avoid using the potentially unassigned
request variable, avoiding this problem.
This patch makes scripts work that have a rest_command in them which
fails due to a server being offline.
* render template_url
instead of printing the template object
* fix formatting
* fix format using black
* only render url once
* blacken...
* Type hint additions
* Remove optional from sidebar_icon comment
Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
* Remove optional from sidebar_title comment
Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
* Fix issues after rebase and mypy 0.730
* Added availability_template to Template Vacuum platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Added availability_template to Template Light platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Added availability_template to Template Fan platform
* Added to test for invalid values in availability_template
* fixed component ID in test
* Made availability_template redering erorr more concise
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Added availability_template to Template Binary Sensor platform
* Added to test for invalid values in availability_template
* black
* simplified exception handler
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Added availability_template to Template Cover platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string and removed duplicate code
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* bump yessssms version to 0.4.0
adds 'provider' config parameter
adds support for providers:
* billitel
* EDUCOM
* fenercell
* georg
* goood
* kronemobile
* kuriermobil
* SIMfonie
* teleplanet
* WOWWW
* yooopi
* black formatting
* moved CONF_PROVIDER to component
* black formatting
* moved error handling on init to get_service
* return None, init logging moved to get_service
* moved YesssSMS import to top of module
* test login data on init. add flag for login data test. removed KeyError
* catch connection error, remove CONF_TEST_LOGIN_DATA config flag
* requirements updated
* lint
* lint: use getters for protected members, bump version to 0.4.1b4
* requirements updated to 0.4.1b4
* fix logging messages, info to warning, clear up login_data check
* change valid login data message to debug
* fix tests
* add tests for get_service
* bump yessssms version 0.4.1
* tests for get_service refurbished
* test refactoring with fixtures
* polish fixtures ✨
* replace Mock with patch 🔄
* tiny string fixes, removed unused return_value 🐈
* Validate date and time in create vaction
Improve validation with utility functions.
* Improve validate ATTR_VACATION_NAME
* Add tests for ecobee.util functions
* Revise tests as standalone functions
* 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
* Added support for more ebus "bai" sensors.
* Using common constants for measuring unit names.
Fixed review item
* dummy commit to restart CI
* Fixed review item
* Fixed formatting
black --fast homeassistant
* Removed trailing spaces
* Fixed black formatting
* trigger new build
* Bump pyecobee to 0.1.3
* Add functions, attrs, and services to climate
Fixes
* Update requirements
* Update service strings
* Fix typo
* Fix log msg string formatting for lint
* Change some parameters to Inclusive
start_date, start_time, end_date, and end_time must be specified together.
* Use built-in convert util for temps
* Match other service variable names
* 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 config options support
* Actually copy dict
* Move media_player options to PlexServer class
* Handle updated config options
* Move callback out of server
* Add MySensors ACK
The addition of the ACK will ask sensors to respond to commands sent to them which will update the MySensors device in Home Assistant.
Currently, if a default MySensors sketch is used the device will update but Home Assistant does not reflect the update and custom code has to be added to tell Home Assistant the command was received. With the ACK set to 1 in the message all this is taken care of by MySensors.
* Run black
* 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.
* add alarm_control_panel to google_assistant
* add cancel arming option
* raise error if requested state is same as current
* rework executing command logic
* Add tests
* fixed tests
* fixed level synonyms
* Added availability_template to Template Switch platform
* Fixed Entity discovery big and coverage
* flake8
* Cleaned template setup
* I'll remember to run black every time one of these days...
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Refactored availability_tempalte rendering to common loop
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Fixed Enity Extraction
* Added availability_template to Template Sensor platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* Device is unavailbale if value template render fails
* Converted test ot Async and fixed states
* Comverted back to using boolean for _availability
* Fixed state check in test
* Use light's on_level in ZHA to turn on at the correct brightness
Previously, if the light is turned off with a time transition, the
brightness level stored in the light will be 1. The next time the light
is turned on with no explicit brightness, it will be at 1.
This is solved by storing the current brightness in on_level before
turning off, and then using that when turning on (by calling the
onOff cluster 'on' command).
* store off light level locally to avoid wearing device's flash memory
* store off brightness in HA attributes
* improve set/clear of off_brightness
* fix device_state_attributes; clear off_brightness when light goes on
* fix tests
* Add here_travel_time
* Bump herepy version to 0.6.2
* Update requirements_all.txt
* Disable pylint and catch errors
* Add herepy to requirements_test_all
* Correctly place test req for herepy
* use homeassistant.const.LENGTH_METERS
* Implemented Requested Changes
* Better error message for cryptic error code
* add requested changes
* add_entities instead of async
* Add route attr and distance in km instead of m
* fix linting errors
* attribute duration in minutes instead of seconds
* Correct pattern for longitude
* dont split attribute but rather local var
* move strings to const and use travelTime
* Add tests
* Add route for pedestrian and public
* fix public transport route generation
* remove print statement
* Standalone pytest
* Use hass fixture and increase test cov
_resolve_zone is redundant
* Clean up redundant code
* Add type annotations
* Readd _resolve_zone and add a test for it
* Full test cov
* use caplog
* Add origin/destination attributes
According to https://github.com/home-assistant/home-assistant/pull/24956
* Add mode: bicycle
* black
* Add mode: publicTransportTimeTable
* Fix error for publicTransportTimeTable
Switch route_mode and travel_mode in api request.
* split up config options
* More type hints
* implement *_entity_id
* align attributes with google_travel_time
* route in lib
apply requested changes
* Update requirements_all.txt
* remove DATA_KEY
* Use ATTR_MODE
* add attribution
* Only add attribution if not none
* Add debug log for raw response
* Add _build_hass_attribution
* clearer var names in credentials check
* async _are_valid_client_credentials
* Add Ombi integration
* Black
* Remove trailing comma
* Change dict.get to dict[key] for known keys
* Remove monitored conditions from config
* Define SCAN_INTERVAL for default scan interval
* Adjust requests syntax and add music_requests
* Remove Ombi object initialization
* Move constants to const.py
* Fix imports
* Set pyombi requirement to version 0.1.3
* Add services.yaml
* Add config schema and setup for integration
* Set pyombi requirement to version 0.1.3
* Fix syntax for scan interval
* Fix datetime import
* Add all files from ombi component
* Move imports around
* Move imports around
* Move pyombi import to top of module
* Move scan_interval to sensor module
* Add custom validator for urlbase
* Add guard clause for discovery_info
* Add service validation schemas and constants
* Bump pyombi version
* Adjust urlbase validation
* Add exception warnings for irretrievable media
* Bump pyombi
* Change from .get to dict[key]
* Change schema and conf variable names
* Set return to return false
* Remove unneeded return
* Add basic support for IKEA Fyrtur blinds
* Update coveragerc
* Fix typo
* Fix typos
* Update following review
* Fix incorrect rebase
* Fix error
* Update to new format of unique id
* Add cover
* Remove reference to cover in unique id
* Update Vivotek camera component
Load model name to instance attribute
* Update Vivotek camera component
Ensure `update` is called when the entity is added.
* Update libpyvivotek to 0.2.2
https://pypi.org/project/libpyvivotek/0.2.2/
- Retrieve camera model name anonymously
- Raise a more helpful error for invalid creds
* fixed latitude/longitude keys to be conform with spaceapi specification
* version is now a string as required by the spaceapi specification
* add spacefed
* fixed lat/lon in spaceapi tests
* extended tests
* add feeds
* extended tests
* add cache
* add more tests
* add projects
* more tests
* add radio_show
* more tests
* add additional contact attributes
* corrected valid issue_repoer_channel options
* validate min length of contact/keymasters
* fixed location as address is not required by spec
* Update homeassistant/components/spaceapi/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/spaceapi/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* fixed issue with name change for longitude/latitude
* Added expire_after to mqtt binary_sensor. Updated mqtt test_binary_sensor test.
* Cleanup MQTT Binary Sensor and tests after suggestions
* Updated to not alter state at all
* Change to include custom expired variable, and override available property to check expired
* Added # pylint: disable=no-member
* making SENSOR_TYPES universal
* bump solaredge-local version 0.2.0
* add maintenance data
* add calculations for optimizer data
* add new sensors
* add statistics lib
* update sensor data setting
* making api requests universal
* fix Cl
* Update requirements_all.txt
* fix temperature
* fix f-strings
* Style guidelines
* shortening line length
* PEP8 test
* flake8
* Black test
* revert line length to 80
* Repair line 12
* black
* style change
* Black
* black using pip
* fix for pylint
* added proper variable name
* for loop cleanup
* fix capitals
* Update units
* black
* add check for good connection to inverter
* Roundig large numbers
* Add myself to codeowners
* Fix layout manifest
* Fix layout manifest
* Update manifest.json
* repair manifest layout
* remove newline in manifest
* add myself to CODEOWNERS
* adding feature obtaining Moscow transport data from maps.yandex.ru api
* extracting the YandexMapsRequester to pypi
* fix code review comments
* fix stop_name, state in datetime, logger formating
* fix comments
* add docstring to init
* rename, because it works not only Moscow, but many another big cities in Russia
* fix comments
* Try to solve relative view in sensor timestamp
* back to isoformat
* add tests, update external library version
* flake8 and black tests for sensor.py
* fix manifest.json
* update tests, migrate to pytest, async, Using MockDependency
* move json to tests/fixtures
* script/lint fixes
* fix comments
* removing check_filter function
* fix typo
* up version on manifest.json
* up version to 0.3.7 in requirements_all.txt
* Improve gateway tests
* Harmonize all tests to use the same gateway initialization method
* Improve scene tests
* Add gateway resync call to platform tests
* Forgot to change switch tests to use common gateway method
* Improve event tests
* adding feature obtaining Moscow transport data from maps.yandex.ru api
* extracting the YandexMapsRequester to pypi
* fix code review comments
* fix stop_name, state in datetime, logger formating
* fix comments
* add docstring to init
* rename, because it works not only Moscow, but many another big cities in Russia
* fix comments
* Try to solve relative view in sensor timestamp
* back to isoformat
* add tests, update external library version
* flake8 and black tests for sensor.py
* fix manifest.json
* update tests, migrate to pytest, async, Using MockDependency
* move json to tests/fixtures
* script/lint fixes
* fix comments
* removing check_filter function
* fix typo
* iZone component
* Rename constants to const.
* Changes as per code review.
* Stop listening if discovery times out.
* Unload properly
* Changes as per code review
* Climate 1.0
* Use dispatcher instead of listener
* Free air settings
* Test case for config flow.
* Changes as per code review
* Fix error on shutdown
* Changes as per code review
* Lint fix
* Black formatting
* Black on test
* Fix test
* Lint fix
* Formatting
* Updated requirements
* Remaining patches
* Per code r/v
* Add config flow support
* Log error on failed connection
* Review comments
* Unused errors
* Move form to step
* Use instance var instead of passing argument
* Only share servers created by component
* Return errors early to avoid try:else
* Separate debug for validation vs setup
* Unnecessary
* Unnecessary checks
* Combine import flows, move logic to component
* Use config entry discovery handler
* Temporary lint fix
* Filter out servers already configured
* Remove manual config flow
* Skip discovery if a config exists
* Swap conditional to reduce indenting
* Only discover when no configs created or creating
* Un-nest function
* Proper async use
* Move legacy file import to discovery
* Fix, bad else
* Separate validate step
* Unused without manual setup step
* Async oops
* First attempt at tests
* Test cleanup
* Full test coverage for config_flow, enable tests
* Lint
* Fix lint vs black
* Add test init
* Add test package requirement
* Actually run script
* Use 'not None' convention
* Group exceptions by result
* Improve logic, add new error and test
* Test cleanup
* Add more asserts
Referencing issue #26418.
Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".
Also updated the test case to make sure that the ° case is handled.
Referencing issue #26418.
Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".
Also updated the test case to make sure that the ° case is handled.
* Change datetime.now() to dt_util.now() in cases where the functionality should stay the same
These changes should not affect the functionality, rather cleanup our codebase.
In general we would like integrations to not to use datetime.now() unless there's a very good
reason for it, rather use our own dt_util.now() which makes the code aware of our current time
zone.
* Use datetime.utcnow() for season sensor to get offset-naive utc time
* Revert "Use datetime.utcnow() for season sensor to get offset-naive utc time"
This reverts commit 5f36463d9c7d52f8e11ffcec7e57dfbc7b21bdd1.
* BOM sensor last_updated should be UTC as well
* Run black
* Remove unused last_partition_update variable
* Improve binary sensor tests
* Fix sensor tests
* Improve readability of binary sensor
* Fix climate tests
Fix sensor platform not loading climate devices as sensors
* Add test to verify adding new sensor after start up
* Fix typo in translations
* Work on bug #26619
* readd the homeassistant.start event
* Remove the callback
* Added the executor_job for _test_connection
* Update test_config_flow.py
* Fix typo in translations
* Work on bug #26619
* readd the homeassistant.start event
* Remove the callback
* Added the executor_job for _test_connection
* Update test_config_flow.py
* Composite entities require multiple value types to be present in
child values to function. Any of those value types should trigger an
entity update if updated.
* Always write platform v names as sets.
* Run black.
* velux KLF200 device did not disconnect properly when rebooting the hass device.
disconnect is now being called on the 'EVENT_HOMEASSISTANT_STOP' event
* removed comment
* removed comment
* trigger bot
* trigger bot
* trigger bot
* logging casing fixed. code moved from init.
* logger level debug
logger level moved from info to debug
only config[DOMAIN] exposed to module
imports moved to top
* DOMAIN part of config passed to module.
* removed trailing whitespaces etc.
* black --fast changes
* added missing docstring
* D400 First line should end with a period
* black formatting
Allow turning a light on instantly, with no transition time.
This is actually required for IKEA lights to be able to set brightness
and color temp in a single call.
* Improve configure service tests
* Add refresh device service test
* Add tests for setup and unload services
* Remove refresh device test from test_init
* Extra verification of deconz services existance in hass.data
* Emulate color temperature for non-ct lights in light groups
* fix tests
* Address review comments
* Fix black formatting
* Fix for pylint
* Address comments
* Fix black formatting
* Address comments
* Initial implementation of ZCL color loop effect
* Fix linter complaints
* Use const for action
* Reformat with Black
* Cleanup after review.
* Handle effect being None
* Improve bluetooth device tracker code
* Don't use set operations
* Fix logging template interpolation
* Warn if not tracking new devices and not devices to track
* Updates due to CR
* Fix pylint warning
* Fix pylint import warning
* Merge with dev
* Add support for doods
* Move connection to external module
* Fix for CI
* Another update for CI
* Reformatted via black
* Updated linting stuff
* Updated per code review
* Removed none check for something with a default
* Updated config parsing
* Updated if statements, need to disable lint check
* Fixed formatting and bug that should make linter happy
* Fixed one more issue with box drawing for areas
* removed extra imports
* Reworked per suggestion
* Changed output to debug for informational detection message
* Early draft
* Getting there
* Working fully with Hue dimmer remote
* Fix Balloobs comments
* No side effects in constructor
* Improve hue dimmer
* Add Ikea remote control
* Add xiaomi button support
* Refactor getting deconz event
* Added xiaomi devices and tradfri wireless dimmer
* Resolve unique id from device id
* Add Hue Tap and Tradfri on off switch
* More triggers for ikea on off switch and Aqara double wall switch
* Add support for Tradfri open close remote
* Fix changes after rebase
* Initial test
* Change id to event_id
* Fix translations and add subtypes
* Try if tests pass without the new tests
* Revert disabling tests
Add new exception InvalidDeviceAutomationConfig
* Ignore places calling remotes
* Enable all gateway tests
* Found the issue, now to identify which test creates it
* Remove block till done
* See if device automation test passes in azure
* Register event to device registry
* Enable test sensors
* Skip deconz event tests currently failing
* Added reason why skipping tests
* Add Météo France icons
* Add Météo France device_class (temperature) + use constants
* Fix weather alert info log
* Use new f"{...} {...}" format for sensor name
* Added growatt server integration
* Ran black formatter
* Processed feedback.
* Made attributes more readable.
* Create a sensor for each property.
* Added unique_ids
* Accidentally flipped functions
* Added dynamic device classes.
* Fixed stale session.
* Move config and connections to component
* Separate imports
* Set a unique_id on sensor
* Set a platforms const
* Add SERVERS dict, hardcode to single server
* Move to debug
* Return false
* More debug
* Import at top to fix lint
* Guard against legacy setup attempts
* Refactor to add setup callback
* Review comments
* Log levels
* Return result of callback
* Store CONFIGURING in hass.data
* Set up discovery if no config data
* Use schema to set defaults
* Remove media_player options to remove entities
* Improve error handling
* Initial commit for the solaredge configflow
* rerun the hassfest script
* Adding testcases
* Rerun hassfest, problem with black?
* Requirements for the tests
* Remove CONF_MONITORED_CONDITIONS from configuration.yaml
* Remove the options flow strings
* Resolve some comments
* Comments
* More comments
* Move the config from the sensor platform to the component itself
* More comments
* More comments
* Added solaredge __init__
* Added more test to increase coverage
* Add vivotek camera component
* Update vivotek camera compontent
Use async request to enable/disable motion detection
* Update Vivotek camera
- Use HTTPS
- Use IP address for still and stream
* Update vivotek component
- Add brand and model properties
- Add state property
- Use attribute to save motion detection status
* Add vivotek camera to .coveragerc
* Update vivotek camera
Fix lint errors
* Update vivotek camera
Remove unused method
* Update Vivotek integration to use libpyvivotek
Use libpyvivotek instead of directly making HTTPS API calls.
* Update Vivotek component
Address code review.
- Remove unused code
- Replace async methods with synchronous methods
- Update docstrings
* Linter fixes for Vivotek component
* Update Vivotek camera component
- Add SSL option
- Remove authentication options as only basic authentication
is currently working
* Update Vivotek camera component
- Make frame rate configurable
- Require username and password
* Remove unused constants in Vivotek component
* Update Vivotek camera integration
- Use libpyvivotek v0.2.1 with better response parsing
- Use add_entities instead of async_add_entities
* Update Vivotek camera component
- Build camera and stream source ouside VivotekCam
- Remove unnecessary _stream_source attribute
* Update Vivotek camera component
- Move brand to constant
- Move _supported_features to property
* Update Vivotek camera compontent to remove unused property
The PyVicare API can return the string "error" in case of connection
or authentication errors.
The current_temperature value could be set to "error" instead of a
nueric value or None which breaks the climate component.
This commit sets the current_temperature to None instead.
* KNX light - tunable white rounding error
mitigate rounding errors in kelvin - mired conversion for lights with relative color temperature
fixes https://github.com/home-assistant/home-assistant/issues/26357
* typo _min_kelvin <> _max_kelvin
* black
* Add protocl and model as restriction for tellstick sensors
A tellstick sensors is uniq identified by id, protocol and model, not
just the id.
This will add an optional restriction for "named sensors" for protocol
and model.
* Don't default config to empty string
* Compare None with 'is not'
* Import new iaqualink component with climate platform.
* Style and unittest changes, fix async_step_import.
* Reorder imports.
* Fix stale doctstrings and add unittest.
* Update radiotherm for lovelace
-Adds hvac_action property to better support the Lovelace Climate card.
-Clean up "fan" attribute. Now called "fan_action", as "mode" is supported via hvac_action.
-Update current operation label from "Off" to "Idle".
* black formatting
* unifi DSA for Homematic IP Cloud
* sabotage is not relevant for state
* TODAY_SUNSHINE_DURATION is not a group attribute
* Separated the words as requested
* add missing underscores
* Move jewish calendar to its own platform
* Fix tests for Jewish Calendar platform
As part of this, move tests to use async_setup_component instead of
testing JewishCalendarSensor as suggested by @MartinHjelmare here:
https://github.com/home-assistant/home-assistant/pull/24958#pullrequestreview-259394226
* Get sensors to update during test
* Use hass.config.set_time_zone instead of directly calling set_default_time_zone in tests
* Cleanup log messages
* Rename result from weekly_portion to parshat_hashavua
* Fix english/hebrew tests
* Fix updating of issue melacha binary sensor
* Fix docstrings of binary sensor
* Reset timezones before and after each test
* Use correct entity_id for day of the omer tests
* Fix omer tests
* Cleanup and rearrange tests
* Remove the old issur_melacha_in_effect sensor
* Rename variables to make the code clearer
Instead of using lagging_date, use after_tzais and after_shkia
* Use dt_util.set_default_time_zone instead of hass.config.set_time_zone so as not to break other tests
* Remove should_poll set to false (accidental copy/paste)
* Remove _LOGGER messaging during init and impossible cases
* Move binary tests to standalone test functions
Move sensor tests to standalone test functions
* Collect entities before calling add_entities
* Fix pylint errors
* Simplify logic in binary sensor until a future a PR adds more sensors
* Rename test_id holyness to holiday_type
* Fix time zone for binary sensor tests
Fix time zone for sensor tests
* Don't use unnecessary alter_time in sensors
Don't use unnecessary alter time in binary sensor
Remove unused alter_time
* Simply set hass.config.time_zone instead of murking around with global values
* Use async_fire_time_changed instead of directly calling async_update_entity
* Removing debug messaging during init of integration
* Capitalize constants
* Collect all Entities before calling async_add_entities
* Revert "Don't use unnecessary alter_time in sensors"
This reverts commit 74371740eaeb6e73c1a374725b05207071648ee1.
* Use test time instead of utc_now
* Remove superfluous testing
* Fix triggering of time changed
* Fix failing tests due to side-effects
* Use dt_util.as_utc instead of reimplementing it's functionality
* Use dict[key] for default values
* Move 3rd party imports to the top of the module
* Fix imports
* First draft
* Support enabling disabled entities
* Clean up
* Move import
* Local entity enabled replaced during rebase
* Add option flow test
* Mark options properties with option
* Common connection class
* Omit tests for new Plex files
* Oops
* Add missing properties
* Remove redundant log message
* Stopgap to avoid duplicate setups
* Cleaner check for server setup
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Cleaner check for server setup
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Not needed with previous setup check
* Remove username/password support
* Reduce log level
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Don't do setup in __init__
* Oops
* Committing too fast...
* Connect after init
* Catch update exceptions like media_player
* Pass in validated PlexServer instance
* Remove unnecessary check
* Counter should be unknown on init
* Remove servername config option
* Atome sensor platform - provides live data from Linky energy meters with Atome device from Total/Direct energie
* Proper requirements, added code ownership
* Do not cover atome component
* Proper PEP8 import, proper use of const, added missing docstring etc
* Proper PEP8 import, proper use of const, added missing docstring etc
* Integrate recommendations from MartinHjelmare
* Init shall remain as clean as possible, we don't want side effect
* Add daily,weekly,monthly,yearly sensors. Now depends on pyatome 0.1
* Requirements regenerated for atome component
* Refactored the way we update sensors
* Removed some un-necessary returns and unused variable
* Add X10 devices as switches
Signed-off-by: Taylor Silva <taylorsilva@outlook.com>
* Add logging message for when unsupported device is found.
This will help a user figure out why they aren't seeing all devices.
Signed-off-by: Taylor Silva <taylorsilva@outlook.com>
* Update homeassistant/components/isy994/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/isy994/__init__.py
100 is too generic of an ISY uom. We don't want to accidentally add non-switch devices.
* changed conf_host to template
Changed conf_host to template to accommodate dynamic ips
* Update camera.py
* Updated per comment
* update for black formatter
* black changes
* Adds tests for pi_hole integration
* Refactor pi_hole component to an integration supporting multiple platforms
* Adds mock of Hole dependency
* Aborts platform setup when discovery_info is none
* Removes use of monitored_conditions
* Adds integration setup test
* Removes PlatformNotReady check
* Adds sensor test
* Code review updates
* Refactor tests to assert state through hass
* Reorder imports
* Add support GoSlide cover
* Fixed Parameters differ from overridden
Fixed Removed other pylint warnings
* Renamed GoSlide to Slide, because of Innovation in Motion rebranding
* Fixed codeowners file
* Fixed requirements file
* Removed pylint: disable=unused-argument
Removed DOMAIN not exist check
Changed if to min/max
Changed 3rd party import to top of the module
Removed timeout/retry parameters
Removed unused constants
Added check for discovery_info is none
Changed pass slide object instead of full hass object
Changed pass api object instead of full hass object
Added unique_id functionality
Removed entity_id/name properties
Removed supported_features/state functions
* Fixed unused variables
* Changed Slide API uses snake names
Changed Improved exception handling
Changed Updated Slide API to 0.50.0
* Changed moved exceptions into goslide-api
Changed retry setup into coroutine
* Changed str(err) to err
Changed invert if result to if not result
* working version of status sensor
* changed unit of measurement
* align naming with feed source
* simplified sensor name
* fix potential issue during initialisation
* fixed tests
* changed icon to constant
* added tests for new sensor
* split tests for geolocation vs sensor
* fixed lint
* fixed pylint
* fixed test
* removed config entry id from attributes
* moved entity manager to component
* fix issue with multiple config entries overriding each other's data
* creating async tasks instead of awaiting each unloading
* moved manager to component
* correctly triggering update only when this component is loaded
* fixed tests after major code refactorings
* fixed pylint
* moved actual creation of new events to geolocation platform
* changed all timestamps to utc
* changed the way platforms are setup and manager is updated
* simplify assert statement
* changed the way waiting for unloading platforms
* Move the patchers to a separate file
* Got a pytest test working (mostly)
* Checkpoint
* Switch to pytest for all tests
* Bump androidtv to 0.0.26 and update tests
* More robust patching
* Remove unused constants
* Combine two lines
* Add 2 additional checks
* Check that state objects are not None; add more description to tests
* Use f strings
* updated sensor and test files
* Formatting fixes
* Updated attribute template code
* Black formatting
* Code improvements based on feedback on binary_sensor pull request
* Updated tests
* Remove duplicated code and fix tests
* Black formatting on tests
* Remove link from docstring
* Moved default to schema
* Formatting fix and change to use dict[key] to retrieve attribute_templates
* Added InvertedRflinkCover class to support COCO/KAKU ASUN-650 devices
* Rename TYPE_NORMAL to TYPE_STANDARD
* Cleaning up code and removed unused imports
* Added unit tests for InvertedRflinkCover
* less if/else statements
* Autoresolve type for newkaku
* Updated tests for InvertedRflinkCover
* Added unit test for standard cover without specifying type
* Updated comments in unit tests
* Updated unit test configuration and comments to be more explanatory
* Restore variable names in first part of the unit test that have been changed during a search and replace
* Reformated the code according to 4de97ab
* remove blank lines at end of rflink test_cover.py
* Replace single with double quote in test_cover.py
* Replaced single quotes with double qoutes and fixed formatting
* Black improvements
* Reformated the code of the unit test.
* entity_type_for_device_id should return 'TYPE_STANDARD' instead of 'None'
* add support for Supla switches
* remove blank line at the end of file
* Add comma on last element of a list
* Remove unnecessary supla dependencies variable
* Move ignoring logic to entity registry enabled default
* Handle config to option import better
* Properly enable and disable entity registry entries on changes from config entry options
* Fix balloobs comments
* Fix some tests
* Fix tests
* Simplify updating disable on entities
* Simplify device tracker update function
* Local entity disabled replaced on rebase
* Only alter entities with changed options
* Proper tracking of changed options
* Back to straightforward updating of disabled
* Add simple battery sensor
* Add test for battery sensor based on a real device
* Vary icon based on battery state
* Add test for battery sensory
* Read other battery related states from accessory
* Add a device class to the battery sensor
* Respect the low battery flag from the device
* Fixed logger name to allow selective logging
* Fixed thermostat mode ('off' and 'heat' modes were not consistent with Eurotronic Spirit Zigbee Thermostat state) and added 'auto' to supported mode
* Added required blank lines in code
* Black formatting
* Revert logging code added to each files. Instead, only replaced "." by __package__ in const.py
* Added a test on self._device.state_on to determine hvac_mode
* Black formatting
* Added debug message when unsupported hvac_mode is encountered
* Applied formatting recommandations
* Updated tests for 'auto' hvac_mode
* Add two new methods to the OpenUV component that consume only a single API call
* Two lines after class
* Rename methods to better reflect what they do, and DRY copy and pasted code
* More error handling down into methods, run api calls in parallel
* Fix import order
* Add new methods to services.yaml, and update error messages
* Add tests for androidtv
* Test that the error and reconnection attempts are logged correctly.
> "Handles device/service unavailable. Log a warning once when
> unavailable, log once when reconnected."
https://developers.home-assistant.io/docs/en/integration_quality_scale_index.html
* Clarify comment
* Add test for when the ADB shell command returns None
* Bump androidtv to 0.0.25
* Enable cert_expiry config entries
* add black
* lint fixes
* Rerun black
* Black on json files is a bad idea
* Work on comments
* Forgot the lint
* More comment work
* Correctly set defaults
* More comments
* Add codeowner
* Fix black
* More comments implemented
* Removed the catch
* Add helper.py from cert_expiry to .coveragerc
* get single device web socket command
* test get single device
* add not found error
* fix handling when device doesn't exist
* add test for zha device not found
* Nightly docker builds / Hass.io dev HA
* use same style
* Finish nightly build
* Update builder version
* Fix style
* fix style part 2
* Last one
* Fix order
* Nightly docker builds / Hass.io dev HA
* use same style
* Finish nightly build
* Update builder version
* Fix style
* fix style part 2
* Last one
* Fix order
I was getting the following error when i set the scan_interval
```
self.scan_interval = timedelta(seconds=config.get(CONF_SCAN_INTERVAL, 60))
TypeError: unsupported type for timedelta seconds component: datetime.timedelta
```
it turns out `config.get(CONF_SCAN_INTERVAL)` already returns `timedelta`
```('scan_interval', datetime.timedelta(seconds=180))```
* Speed up history `get_states`
Adding a boundary of the start of the recorder run the point is in, significantly increases the time of the query. This speeds up the fetching of the history of 1 entity.
* Make single entity query easier
no need for joins with single entity
* Lint
I was getting the following error when i set the scan_interval
```
self.scan_interval = timedelta(seconds=config.get(CONF_SCAN_INTERVAL, 60))
TypeError: unsupported type for timedelta seconds component: datetime.timedelta
```
it turns out `config.get(CONF_SCAN_INTERVAL)` already returns `timedelta`
```('scan_interval', datetime.timedelta(seconds=180))```
* Add nws weather.
* Hassfest
* Address multiple comments
* Add NWS icon weather code link
* Add metar fallback.
Use metar code from nws observation if normal api is missing data.
* only get 1 observation - we dont use more than 1
* add mocked metar for tests
* lint
* mock metar package for all tests
* add check for metar attributes
* catch errors in setup
* add timeout error
* handle request exceptions
* check and test for missing observations
* refactor to new pynws
* change to simpler api
* Make py3.5 compatible
Remove f string
* bump pynws version
* gen_requirements
* fix wind bearing observation
* Revert "Make py3.5 compatible"
This reverts commit 4946d91779.
* Precommit black missed a file?
* black test
* add exceptional weather condition
* bump pynws version
* update requirements_all
* address comments
* move observation and forecast outside try-except-else
* Revert "move observation and forecast outside try-except-else"
This reverts commit 53b78b3283.
* remove else from update forecast block
* remove unneeded ConfigEntryNotReady import
* add scan_interval, reduce min_time_between_updates
* pytest tests
* lint test docstring
* use async await
* lat and lon inclusive in config
* define success for all branches
* add operation_mode to error when unexpected value
* fix black linting
* black linting
* fix weird black linting result
* Load user-provided descriptions for python_scripts
* Import SERVICE_DESCRIPTION_CACHE
* Use async_set_service_schema to register service descriptions
* Add python_script tests for loading service descriptions
* Use async/await in test
* Load user-provided descriptions for python_scripts
* Import SERVICE_DESCRIPTION_CACHE
* Use async_set_service_schema to register service descriptions
* Add python_script tests for loading service descriptions
* Use async/await in test
* Add descriptive fields to script config
* Add script descriptions to hass.data["service_description_cache"]
* Import SERVICE_DESCRIPTION_CACHE
* Register script descriptions via async_set_service_schema
* Add scripts test for loading and reloading service descriptions
* Minor cleanup
* Clean up script schema
* Added attribute support to template binary sensor with tests
Added attribute support to template binary sensor with tests
* fix dictionary update
fix dictionary update
* Fixed whitespace and line length issues
* Fixed indentation
* Simplify applying of attribute templates based on feedback
* Syntax and whitespace fixes
* Black formatting
* Black formatting on tests
* Check attribute_templates is not None
* Fixed test
* Added test for failure to render template
* Test fix
* Updated test
* Removed whitespace and applied Black formatting
* Fixed test assertion
* Updated test
* Code improvements folloing comments
Using chain to iterate over templates and attribute_templates
Replacing dict() with {}
Rmoving unused constant
* Applied Black formatting
* Fixed removed code
* Default attribute_templates to empty dict
* Black formatting
* Fixed imports
* Add handling for Sonos playlists in media_player.play_media
* Avoid breaking change by falling back to previous behavior
* Use the proper MEDIA_TYPE_PLAYLIST constant.
* Addressed comments, restricting media_type to music or playlist
* Add path option to SABnzbd component
Adds an optional `path` setting to the SABnzbd component. This allows support for SABnzbd installs that use a different `url_base` (typically a reverse proxied configuration; see https://sabnzbd.org/wiki/configuration/2.3/special).
This change passes the `path` along to pysabnzbd as its `web_root`, which in turn uses the path to build up it's api URLs.
* Use dict.get for Sabnzbd web_root path config
* Add Keba charging station wallbox component
* Added start/stop commands (ena 0 and ena 1)
* added refresh_interval parameter and fixed authorization
* fixed max line length
* deactivate failsafe mode if not set in configuration
* extracted I/O code to pypi library
* updated services.yaml
* pinned version of requirements
* fixed typos, indent and comments
* simplified sensor generation, fixed unique_id and name of sensors
* cleaned up data extraction
* flake8 fixes
* added fast polling, fixed unique_id, code cleanup
* updated requirements
* fixed pylint
* integrated code styling suggestions
* fixed pylint
* code style changes according to suggestions and pylint fixes
* formatted with black
* clarefied variables
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* fixed behaviour if no charging station was found
* fix pylint
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
Changed the logging level for the polling of the fritz device tracker from info to debug. The message was logged up to 6 times per minute and bloated the log file.
* Bump env_canada to 0.0.21
* Add timestamp attribute to camera
* Bump env_canada to 0.0.23
* Clean up displayed values
* Validate radar station code
* Bump env_canada to 0.0.24
* Black
* Remove default "None" from sensor
* Switch to cv.matches_regex
I think I was thinking in another language, since this was not valid Python. Result was that the thread that maintained the SocketIO connection to the table would die early on, so no status updates were actually flowing from the table.
We only want to force a query if we don't have any previous state.
Otherwise, we should be tracking the state via continuous status
updates.
For lights (not switches) the extra query was also superfluous since
it was already querying on startup.
We should probably have a timeout on that so at some point we'll
requery in case remote end disconnected/rebooted, etc. Leaving for
another PR.
* add broadlink switch retry time in configuration
* add broadlink switch retry time in configuration
* formatted code by black tool
* Change retry default value to 2 to keep the current behavior
The python-openzwave API which provides the implementation of the config update
does not actually work in the homeassistant fork. To avoid confusion, remove
the service call for now.
* Add volumio shuffle support
* Black reformat
* Update homeassistant/components/volumio/media_player.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Tado AIR_CONDITIONING module was not working propertly
AIR_CONDITIONING modules differs from HEATING module int he parameters.
* Tado Cooling Sensor was not read proprtly
* TADO correct file permissions
* Tado: Fix compilation error
* Fix Lint errors
* Fix Black formatting
* TADO More AC functionality
Also Black formatting
* Tado Fix Lint
* Tado Fix Lint II
* - Change how we extract the metrics for sensors
- Add component filtering as seen in influxdb
- Add metric override as seen in influxdb
- Add more unit tests with actual device data
* Extract sensor metric logic to separate handlers
* Update prometheus dependency
* Format using black
* Format using black
* Fix flake8
* Move sensor metric handler list to init
* Use f strings instead of .format
* initial working version
* support configured unit system and convert distance automatically
* properly unloading integration when removed and stopping refreshes
* ran isort
* fixed pylint
* introduced time filter of seven days into past
* adding unit tests
* fixed lint
* removed unused code
* added test case
* added test case for config flow
* fixed lint
* fixed comment
* removed unused test code
* increased test coverage
* fixed filtering by time
* changed wording in config flow
* reformatted with black
* removed unused logger
* fixed black
* changed default mmi
* reduced the options in the config flow form; fixed a few schema options and processing of data
* moved unsubscribing signals
* fixed minimum magnitude and modified tests
* fixed radius in imperial unit system
* increased test coverage
* simplified code
* fixed lint
* changed string formatting; simplified code
* removed unused strings
* added translation
* Fix 64-bit modbus sensor register reads
When reading four 16-bit modbus registers as a sensor value,
slave output is stored first as 64-bit integer, but before returning
that value is converted to double precision floating point. This
causes rounding errors for integer values bigger than 2^53.
After this change floating point conversion is done only if user
has configured scaling or offset using floating points.
* Formatting
* Review fixes
* add initial traccar webhook support
* remove unused import
* add tests but disabled atm
* remove translations
* add timestamp parameter
* use post for tests
* rename config_flow
* format using black
* format tests using black
* Use str instead of float
* fix most comments
* check id
* add two device test
* reformat
* fix failuers
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* black
* Factor out code getting requirements for integration
* Have process requirements raise an exception
* One more lint fix
* Blackify
* Catch new exception
* Let RequirementsNotFound be a HomeAssistantError
* Correct another test
* Split catching of exceptions and avoid complete log
* Updater Component is always available and shows on/off wether an update is available
* Use == instead of is to compare strings
* Edit log message when local version is newer
* One more commit to trigger CI
* Add binary sensor
* Remove ATTR
* Use dispatcher
* Use callback instead of async
* Make flake happy
* Fix callback
* discover binary sensor
* flake
* Fix discovery
* prepared tests, TODO
* Fix tests
* Test release notes
* Add one more test
* Add another test
* Add docstring
* Revert "Add another test"
This reverts commit 3f896a4e3b.
* Remove unused file
* Update docstrings
* mock time
* Test renaming entity
* Add test_rename_entity
* Improve test_rename_entity
Use new hdate version of library which uses pytz for timezones.
dateutil expects /usr/share/timezone files, as these are not available
in the docker image and in HASSIO, the timezone offsets are broken.
This should fix
- #23032
- #18731
* Add missing abbreviations
* Move abbreviations to own file, add script to find missing abbreviations
* Move check from script to test case
* Lint
* Rewrite to use pathlib
* Lint
* Move ZIGBEE_CHANNEL_REGISTRY to ZHA core registries.
* Refactor more ZHA Core registries to use decorator.
* Cleanup.
* Use relative imports for component.
* Flake8.
* Make pylint happy again.
Use new hdate version of library which uses pytz for timezones.
dateutil expects /usr/share/timezone files, as these are not available
in the docker image and in HASSIO, the timezone offsets are broken.
This should fix
- #23032
- #18731
* Add in a switch platform to ring.
* Changes following code review
* remove tests for now
* remove the request to call update
* support the new type of test
* update after running black
* fix comment
* fixes following code review
* Remove ring cache file
* patch out io code
* Move the patches to within a fixture
* missing period
* Add zigpy-zigate support
* update requirements
* fix
* update
* fix flake8
* update requirements
* fix
* update
* add test to make codecov happy
* fix flake8
* Try to add test
* add test
* remove unneeded test
* exclude registries.py from coverage
exclude homeassistant/components/zha/core/registries.py since untestable
* Fix merge: black formatting and flake8.
* Revert Black
* Revert "Introduce support for color temperature (#25503)"
This reverts commit e1d884a484.
* Revert "Fix flux_led only-white controllers (#22210)"
This reverts commit 48138189b3.
* Revert "Fix MagicHome LEDs with flux_led component (#20733)"
This reverts commit 1444a684e0.
* Re-Black
* Use mode detection for scanned bulbs
* Initial commit
* Add some more code
* Local tests passing
* Remove unnecessary line
* Add preset attributes to __init__
* Remove some more debugger lines
* Add some tests
* Fix comparision to None
* Improve test coverage
* Use unknown modes as presets
* Bugfixes and test improvements
* Add tests for unknown preset modes
* linting
* Improve mappings
* Move PRESET_MANUFACTURER_SPECIFIC to zwave
* Replace isinstance with cast
* Add test for hvac_action
* hvac_mode is never None
* Improved mapping of current mode to hvac/preset modes
* Fix bugs where hvac_mode is None
* Add default hvac mode
* Fixed default hvac mode
* Fix linting
* Make flake happy
* Another linting
* Make black happy
* Complete list of default hvac modes
* Add mapping to heat/cool eco
* Fixed another bug where mapping goes wrong
* Move ZCL report configs to ZHA core channels.
* Refactor ZCL report configuratopm and cluster binding.
* Tests for ZHA channel configuration.
* Update tests.
* Remove INPUT_BIND_ONLY_CLUSTER ZHA core registry.
We always need bind a cluster, but not always need to configure
attribute reporting. No reporting is done on ZCL "client" clusters.
* Lint
* Black
* Upgrade pydocstyle to 4.0.0 and flake8-docstrings to 1.3.1
http://www.pydocstyle.org/en/4.0.0/release_notes.html#july-6th-2019
* Address pydocstyle D413's
* tox: do not run pydocstyle
Does not seem to add any value over flake8-docstrings (and would have
needed a D202 exclusion).
* Revert Black
* Revert "Introduce support for color temperature (#25503)"
This reverts commit e1d884a484.
* Revert "Fix flux_led only-white controllers (#22210)"
This reverts commit 48138189b3.
* Revert "Fix MagicHome LEDs with flux_led component (#20733)"
This reverts commit 1444a684e0.
* Re-Black
* Use mode detection for scanned bulbs
* Revert "Add some debugging to azure mypy job (#25632)"
This reverts commit 767b8e9f25.
No longer needed.
* Install setup.py dependencies for mypy in Azure
For better coverage, and to match what tox does.
* Initial commit
* Add some more code
* Local tests passing
* Remove unnecessary line
* Add preset attributes to __init__
* Remove some more debugger lines
* Add some tests
* Fix comparision to None
* Improve test coverage
* Use unknown modes as presets
* Bugfixes and test improvements
* Add tests for unknown preset modes
* linting
* Improve mappings
* Move PRESET_MANUFACTURER_SPECIFIC to zwave
* Replace isinstance with cast
* Add test for hvac_action
* hvac_mode is never None
* Improved mapping of current mode to hvac/preset modes
* Fix bugs where hvac_mode is None
* Add default hvac mode
* Fixed default hvac mode
* Fix linting
* Make flake happy
* Another linting
* Make black happy
* Complete list of default hvac modes
* Add mapping to heat/cool eco
* Fixed another bug where mapping goes wrong
* Improve handling of empty results from Rejseplanen (Fixes#25566)
* Exclude attributes with null value
* Add period back into docstring
* Fix formatting
* Added Plugwise component
* pylint fixes
* Additional pylints (local tox not noticing these)
* Changes according to review
* CI flake8 correction
* Applying Black
* Review changes, without exception and schema
* Review changes, exception improvement
* Review changes, exception correctio and schema cleanup
* Further cleaning as per review
* Removed blank line
* Add debugging to API init
* Add debugging to API init without dot
* Fix formatting in history test
* Add each sensor as own template
* Make adapters non-entities
* Externalize and organize data fetching, improve system view
* Small fixes
Rename fetching adapters to adapters
throw away non-working system overviews
slightly change naming
remove scan_interval from schema
formatting
* Scan interval is already timedelta and unnecessary return
* Formatting
* Ensure better codestyle by storing cell variables explicitely in different places
* Improve handling of empty results from Rejseplanen (Fixes#25566)
* Exclude attributes with null value
* Add period back into docstring
* Fix formatting
* Convert sensor setup to async
* Improve sensor unique ids
* Save some indent levels, use f-string formatting
* Require getmac in tests
* Fix RouterData init in tests
* Make discovery_info optional in async_setup_platform signature
* Add in a switch to control lights and sirens
* Improve the way sensors are updated
* fixes following flake8
* remove light platform, and fix breaking test.
* Resolve issues with tests
* add tests for the switch platform
* fix up flake8 errors
* fix the long strings
* fix naming on private method.
* updates following p/r
* further fixes following pr
* removed import
* add additional tests to improve code coverage
* forgot to check this in
* remove myself from CODEOWNDERS
Sorry, I do not have time right now to work on HomeAssistant, so I'm removing myself from the CODEOWNERS.
* Update manifest.json
* Improve and align Rejseplanen with other transport components (Breaking)
* Fix empty list check
* Remove pointless list cast
* Clean up redundant definition of transport types
* Add docstring
* Simplify _times check
* Log failures to load plaforms
* Drop unused exception variable
* Also load pip requirements with check config
* Fix lint
* More lint
* Drop invalid parameters for error call
* Fix Ecobee HVAC action + available presets
* Update python-ecobee-api to 0.0.21
* Include proper operation list.
* Allows pass on preset to set_climate_hold
* Remove aux heat as a preset
* Fix test
* Add some try excepts for velbus as the python-velbus lib is not good in handling these
* Only catch velbusExceptions
* only wrap the lines that can cause the exception
* Fix indentation mixup
* pylutron PyPI update
We've been working with the original maintainer of pylutron, and they've published an update to PyPI to support a couple different things: homeowner keypads, main repeater keypads
* added requirements
* Initial work on config_flow
* Finish config flow
* Pylint checks, make sure the import only happens once
* Added support for unloading, small fixes
* Check in the hassfest output files
* Flake8 fixes
* pylint mistake after flake8 fixes
* Work on comments
* Abort the import if it is already imported
* More comments resolved
* Added testcases for velbus config flow
* Fix pylint and flake8
* Added connection test to the config flow
* More sugestions
* renamed the abort reason
* excluded all but the config_flow.py from the velbus component in coveragerc
* Rewrote testcases with a patched version of _test_connection
* Docstyle fixes
* Updated the velbus testcases
* just yield
* flake8 fixes
* Add last_run_error boolean attribute to Switchbot entity to allow for trapping of errors
* Add last_run_success boolean attribute to Switchbot for error trapping
* Add last_run_success boolean attribute to Switchbot for error trapping
* Support multiple Elk instances
* Allow more than one Elk M1 alarm system to be integrated into a single hass instance.
* Introduces new "devices" schema at the top level, each of which has
the prior configuration schema.
* Requires new version of elkm1, 0.7.14, that gwww and I just updated (thanks Glen!)
QUESTION: Should the "devices" section be optional to avoid breaking
old configuration files? I chose not to do that for simplicity and
because I was following the doorbird code which requires the "devices"
section for all configurations even with only one device.
* Fixed a bunch of hound-raised issues
Fixed issues raised by hound -- there was clearly
a tool I was supposed to run to get those warnings
before submitting the PR. Sorry!
Updated REQUIREMENTS.
* Fixed whitespace and line-length mistakes
Also fixed unused prefix local variable lint warning.
* Fixed missing blank line
* Fixed more lint warnings.
Not sure if I missed these on the first pass or if the linter stopped
after a certain number of warnings or something else.
Switched logging to use %d and %s instead of string concatenation (per
lint request and because I imagine it migth be better performing
in some (oldish, I presume) implementations of python.
* Fixed typo in last commit.
* Eliminate devices subsection in config schema
This eliminates the breaking change for configurations wanting a
singleton elk m1 instance (the majority of users, no doubt). I did
not do it like this before because I was following the lead of the
doorbird component which introduced a devices: section when moving
to support multiple doorbells. But Rohan Kapoor kindly pointed me
at the zoneminder component which sets the other (IMO) preferable
precedent. Will update the docs change shortly.
* Call async_add_entities once for all the elk controllers.
Just move async_add_entities() outside of the loops across the elk m1
controllers, so it's called once for each platform.
* Call async_add_entities only once per platform.
Move it to after the loop, so it's called only once
per platform even when there are multiple elk m1 controllers.
* Various improvements to be more idiomatic python + bug fixes
Thanks to Martin Hjelmare for the careful review and suggestions.
(All mistaken improvements and new bugs are my own.)
* Removed semicolon that lint caught.
* Idiomatic python improvements
Use dict.values() (instead of making it easier to add local looping variable
on the keys by using _, bar = ...items())
Use [] when the key is known to exist.
* Support multiple Elk instances
* Allow more than one Elk M1 alarm system to be integrated into a single hass instance.
* Introduces new "devices" schema at the top level, each of which has
the prior configuration schema.
* Requires new version of elkm1, 0.7.14, that gwww and I just updated (thanks Glen!)
QUESTION: Should the "devices" section be optional to avoid breaking
old configuration files? I chose not to do that for simplicity and
because I was following the doorbird code which requires the "devices"
section for all configurations even with only one device.
* Fixed a bunch of hound-raised issues
Fixed issues raised by hound -- there was clearly
a tool I was supposed to run to get those warnings
before submitting the PR. Sorry!
Updated REQUIREMENTS.
* Fixed whitespace and line-length mistakes
Also fixed unused prefix local variable lint warning.
* Fixed missing blank line
* Fixed more lint warnings.
Not sure if I missed these on the first pass or if the linter stopped
after a certain number of warnings or something else.
Switched logging to use %d and %s instead of string concatenation (per
lint request and because I imagine it migth be better performing
in some (oldish, I presume) implementations of python.
* Fixed typo in last commit.
* Eliminate devices subsection in config schema
This eliminates the breaking change for configurations wanting a
singleton elk m1 instance (the majority of users, no doubt). I did
not do it like this before because I was following the lead of the
doorbird component which introduced a devices: section when moving
to support multiple doorbells. But Rohan Kapoor kindly pointed me
at the zoneminder component which sets the other (IMO) preferable
precedent. Will update the docs change shortly.
* Call async_add_entities once for all the elk controllers.
Just move async_add_entities() outside of the loops across the elk m1
controllers, so it's called once for each platform.
* Call async_add_entities only once per platform.
Move it to after the loop, so it's called only once
per platform even when there are multiple elk m1 controllers.
* Various improvements to be more idiomatic python + bug fixes
Thanks to Martin Hjelmare for the careful review and suggestions.
(All mistaken improvements and new bugs are my own.)
* Removed semicolon that lint caught.
* Idiomatic python improvements
Use dict.values() (instead of making it easier to add local looping variable
on the keys by using _, bar = ...items())
Use [] when the key is known to exist.
* Use dict[key] instead of .get (incl. fixing typo). Use .values() instead of .items() when ignoring keys.
* Gotta use devices.get(prefix) since we use no prefix for the singleton elk instance
* fix requirement to use newer elkm1 that supports my changes for multiple elk devices
* Removed spurious + between a string broken between two lines for formatting; was failing a lint check about logging needing to use %s
* Remove REQUIREMENTS and DEPENDENCIES since those are now taken care of by the manifest.json file.
* Add configuration check that the prefixes are all unique
* Use new dependency 'getmac' to get mac address of Elk M1 controllers and use that for uniqueid if possible, else use None. Also removed some procedural checking of unique prefix since that's now handled at schema check time.
* Whitespace changes to make style checker happy and code more consistent
* Removed unused variable, added blank line
* Make getmac a requirement not dependency
I should've RTFM.
* ws only change; I really need to get Emacs to understand these style guidelines
* Ran script/gen_requirements_all.py; script/setup needed to be run so that was failing.
* More style check fixes and one bug fix.
* Incomplete set of changes from last push
* More conform-to-hass-style changes: use caps to start log message (and do not use function name even for debug message. And do not use string concatenation; prefer new-style .format.
* Style fixes.
* Switch back to using the prefix config field for setting the unique_id since the mac address approach has numerous shortcomings including: 1) new dependency; 2) lack of reliability; 3) doesn't work for serial connections; 4) breaks when a layer 4+ networking entity intermediates the elk m1 connection.
* Reran to update (removing getmac dependency)
* Skipped trailing ','; keep forgetting which languages are forgiving about this practical nicety of allowing trailing commas without changing the semantics.
* Validate uniqueness on lowercase versions of the prefix since we're gonna use .lower() on creating the entity id that has to be unique; do the _has_all_unique_prefixes check last so we get errors from the device schema before complaining about the uniqueness problem, if any
* Use vol.Lower to convert to lowercase instead of the map. Also fixed a pair of bugs for the alarm control panel display message service -- since data templates always generate strings, the values subject to range/set restrictions need to be coerced to their proper type before the check
* Fix some flake8 warnings.
* Fixed typo; it's Coerce not coerce.
* Use elkm1m_ string to start unique_id when and only when there is a non-empty prefix given; this enables backward compatibility to avoid a breaking change by letting the elkm1_ start to unique_id keep working exactly as it used to.
* minor comment tweak to force automation tests to run again since they failed for unrelated reasons last time
* There's actually been a 0.7.15 release which was meta-information and tidying only so we might as well depend on it
* Forgot to update this with gen_requirements_all.py
* Initial commit of De Lijn (Flemish Public Transport) component
* Code corrections as per HA dev's requests
* changes to variable naming, setting attribution and states, plus some smaller optimizations
* Overlooked some linting issues, these are now fixed
* Updated pydelijn version requirement to 0.5.1 so UTC timestamps can be used instead of relative/local times.
Removed unused definition
* Updated pydelijn version requirement to 0.5.1 in requirements_all.txt
* Update the self._attributes dict directly instead of replacing it
Assign ATTRIBUTION while creating the _attributes dict
Remove the ATTRIBUTION assignment in device_state_attributes as it's updated in the async_update now.
* Linting issue (lenght of 2 lines) solved
* Removed a relative time attribute
Updated a linting issue in the LOGGER (used % instead of the format)
* Run mypy on homeassistant.scripts, disabling bunch of checks for now
* Declare async_initialize in AuthProvider
* Add some type hints
* Remove unreachable code
* Help mypy out
* Script docstring fixes
* fix preset documentation
* Use pydaikin set holiday method
* update temperature readings, code simplification
* more temperature cleanup
* cleanup HVAC_MODE
* remove get() method and move code to respectivly place
* remove string constant in code
* remove get() method and move code to respectivly place
* isort results
* fixes in state method
* Rename traffic_statistics to monitoring_traffic_statistics
For better consistency with huawei-lte-api.
* Add default device name for sensors
In case the actual device name cannot be accessed for some reason.
* Support device class in sensor metadata
* Mark known signal strength sensors as such
* Add suez water sensor
* flake8 test
* pylint test
* edition to fix flake8 and pylint issues
* edition to be okay with the musts
* Added a blank line to __init.py__ for flake8
* added blank line for flake8
* changer scan interval from 10 to 720 minutes
* use of pysuez
* bug fix and isort
* use of pysuez
* fixed flake8 and pylint errors
* update requirements_all.txt
* added a method to test login/password befire adding device
* flake8 edition
* update requirements_all.txt
* add of .coveragerc file with untested files
* update of .coveragerc
* Update homeassistant/components/suez_water/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* bug fix in check credentials
* flake8 and pylint fixes
* fix codeowner
* update requirements_all.txt
* Sorted suez_water line
* edition to answer comments from @MartinHjelmare on #23844
* Attribute keys formatting to lowercase snakecase, name and icon constants returned directly, and remove of attribute. Update of .
* pylint edition
* correction wrong keys in client attributes
* remove of unnedeed return and move add_entities
* Vallox: Increase robustness on startup
Experiments showed that timing of websocket requests to the Vallox firmware is
critical when fetching new metrics. Tests on different Raspberry Pis and x86
machines showed that those machines with little processing power tend to fail
the timing requirments during the busy startup phase of Home Assistant,
resulting in the Vallox integration failing to set itself up.
This patch catches Websocket's InvalidMessage, which is a symptom of failing the
timing requirements. Experiments again showed that on the Raspberry's, this
exception is catched once at startup, but the integration is running fine
afterwards.
* Update __init__.py
* Bump to new 2.1.0 version of api.
* Bump to api 2.2.0
* Update Python-HPILO to 4.3
Update of Python-HPILO requirement to 4.3 to resolve outstanding SSL connections for older HP servers (ILO 3)
* Update requirements_all.txt
Update HPILO to 4.3
* Stub for polling from a central location
* Allow connection to know the entity objects attached to it
* Move polling logic to connection
* Don't poll if no characteristics selected
* Loosen coupling between entity and HKDevice
* Disable track_time_interval when removing entry
* Revert self.entities changes
* Use @callback for async_state_changed
* Split out unload and remove and add a test
* Test that entity is gone and fix docstring
* Add add_torrent service to Transmission
* Fix services.yaml format
* Verify that torrent is whitelisted
* Add logging if adding failed
* Change warn to warning
* Type check all helpers, add inline exclusions for work in progress
* Remove unused Script._template_cache
* Add some missing type hints
* Remove unneeded type: ignore
* Type hint fixes
* Mypy assistance tweaks
* Don't look for None in deprecated config "at most once" check
* Avoid None name slugify attempt when generating entity id
* Avoid None state store attempt on entity remove
* Reformat saved media data/ fix load + save helpers
* Add url constant
* Reformat saved media data
* Add tests for media data
* Refactor
* Revert deleted lines
* Set attrs after checking for lock
* Patch load games.
* remove unneeded imports
* fix tests
* Correct condition
* Handle errors with loading games
* Correct condition
* Fix select source
* add test
* Remove unneeded vars
* line break
* cleanup loading json
* remove test
* move check for dict
* Set games to {}
* Revert "Change Ambient solar radiation units to lx (#24690)"
This reverts commit 40fa4463de.
* Re-add sensor for Ambient PWS outdoor brightness (W/m^2)
* Corrected available and comments
* Member feedback
* Member comments
* Add support for Rainforest Eagle-200
* Removed direct access selector to monitored conditions
* Refactored code to use throttle on the update function
* Fixed issue in new code to use only one EagleReader instance
* Resolve comments
* Resolved comments
* Resolved comments and added Debug statement
* Added return statements
* Fixed typo
* Resolved comments and added debug statements
* Moved get_status method into Data object and decorated it with @staticmethod
* Resolved comments
* Update climate.py
Added support for Fan Only State
Added additional missing modes and states this should correct issue #25216
* Correct line lint error
* Corrected mode spelling
* Lint
* Update climate.py
Added support for Fan Only State
Added additional missing modes and states this should correct issue #25216
* Correct line lint error
* Corrected mode spelling
* Lint
* Bump simplisafe-python to 4.0.0 + add additional SimpliSafe attributes
* Fixed incorrect attr assignment
* Member comments
* Add system ID as a state attribute
* de-lint
* use _evo_tcs instead of _evo_device for TCS
* add hvac_action to zones, remove target_temp from controller
* fix incorrect hvac_action
* de-lint
* added login_method config option to fix login issue with RouterOS Version > 6.43
* minor changes so that users don't have to change their config
* removed default config value to make the fallback without config change work as expected
* de-lint
* use _evo_tcs instead of _evo_device for TCS
* add hvac_action to zones, remove target_temp from controller
* fix incorrect hvac_action
* de-lint
* Add severe weather alert sensor to Dark Sky
* fixup test case
* address review comments and fixup testcases
* address comments, fix assertion order
* remove extra line
* remove index increment
Using port on bridge initialization
Service: check_connection
Attribute: available
Updated requeriments_all.txt
Change unlatch service for open service
Removed extra info
nuki_lock_n_go renamed to lock_n_go
nuki_check_connection renamed to check_connection
* Add Fortigate integration
* added feedback changes
* removed the only case
* fixed a description
* removed the CONFIG_PLATFORM
* deleted README
* added return from setup
* added return from setup
* fixed reviews
* Link updated
* Rename var and a couple of other minor changes
* Typos
* adding custom service to Spotify component to allow to play random playlist music
* fixing findings
* improving naming
* improving way of using required parameters
* add hmip climate services
* Rename accesspoint_id to hapid
to comply with config
* Revert "Rename accesspoint_id to hapid"
This reverts commit 4a3cd14e1482fb508273c728ad8020945b02e426.
* Move device tracker to use config entry
* Remove monitored conditions attributes based on ADR0003
* Add support for import of device tracker config to be backwards compatible
* Remove unnecessary configuration options from device tracker
* Add component configuration support
* 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
* Add support for French
* Move labels to env_canada
* Bump env_canada to 0.0.17, change update frequency to 1 minute
* Update requirements_all.txt
* Set entity IDs separate from labels
* Flake error
* Remove monitored conditions
* Use next hourly forecast for missing conditions
* Switch sensors to unique_id
* Flake error
* Requested changes
* Simplify setting location parameters
* Added code to support entity and domain filters in the config for splunk component, and the code to enforce the filter.
* * Moved code for posting splunk request to separate function, primarily to more easily write a test case where I can mock the point where the post would occur and validate that filtering is working correctly.
* Test cases created for full config check and to test the filtering
* Correcting static check errors/issues
* Correcting flake8 static check issue (introduced when addressing prior static check issues)
* Removing unused parameter to setup function - cleanup from reviewer request.
* Fix valve/thermostat out of reach
* Fix boost for valves
* Set netatmo default max temp to 30
* Remove unnecessary get
* Remove unnecessary default value
* Readd get
* initial commit
* refactor for sync
* minor tweak
* refactor convert code
* fix regression
* remove bad await
* de-lint
* de-lint 2
* address edge case - invalid tokens
* address edge case - delint
* handle no schedule
* improve support for RoundThermostat
* tweak logging
* delint
* refactor for greatness
* use time_zone: for state attributes
* small tweak
* small tweak 2
* have datetime state attributes as UTC
* have datetime state attributes as UTC - delint
* have datetime state attributes as UTC - tweak
* missed this - remove
* de-lint type hint
* use parse_datetime instead of datetime.strptime)
* remove debug code
* state atrribute datetimes are UTC now
* revert
* de-lint (again)
* tweak type hints
* de-lint (again, again)
* tweak type hints
* Convert datetime closer to sending it out
* initial commit
* refactor for sync
* minor tweak
* refactor convert code
* fix regression
* remove bad await
* de-lint
* de-lint 2
* address edge case - invalid tokens
* address edge case - delint
* handle no schedule
* improve support for RoundThermostat
* tweak logging
* delint
* refactor for greatness
* use time_zone: for state attributes
* small tweak
* small tweak 2
* have datetime state attributes as UTC
* have datetime state attributes as UTC - delint
* have datetime state attributes as UTC - tweak
* missed this - remove
* de-lint type hint
* use parse_datetime instead of datetime.strptime)
* remove debug code
* state atrribute datetimes are UTC now
* revert
* de-lint (again)
* tweak type hints
* de-lint (again, again)
* tweak type hints
* Convert datetime closer to sending it out
* Fix valve/thermostat out of reach
* Fix boost for valves
* Set netatmo default max temp to 30
* Remove unnecessary get
* Remove unnecessary default value
* Readd get
* update component for xknx 0.11.0
- expose sensor state is not casted to float anymore
- climate mode operation list has no more None values
- light supports white_value (rgbw)
- sensor expects `group_address_state` now instead of `group_address`
- sensor forwards device_class if available
* update manifest to use xknx 0.11.0
* update requirements_all for xknx 0.11.0
* update for xknx 0.11.1
- require xknx 0.11.1
- use 'state_address' instead of 'address' in sensor and binary_sensor configuration
- optional 'sync_state' for sensors and binary_sensors
* remove questionable `del kwargs`
* add hmip climate services
* Rename accesspoint_id to hapid
to comply with config
* Revert "Rename accesspoint_id to hapid"
This reverts commit 4a3cd14e1482fb508273c728ad8020945b02e426.
* Correct google calendar test name
* Rewrite calendar component
* Save component in hass.data.
* Rename device_state_attributes to state_attributes.
* Remove offset attribute from base state_attributes.
* Extract offset helpers to calendar component.
* Clean imports.
* Remove stale constants.
* Remove name and add async_get_events.
* Add normalize_event helper function. Copied from #21495.
* Add event property to base entity.
* Use event property for calendar state.
* Ensure event start and end.
* Remove entity init.
* Add comment about event data class.
* Temporary keep old start and end datetime format.
* Convert demo calendar
* Convert google calendar
* Convert google calendar.
* Clean up google component.
* Keep offset feature by using offset helpers.
* Convert caldav calendar
* Clean up caldav calendar.
* Update caldav cal on addition.
* Bring back offset to caldav calendar.
* Copy caldav event on update.
* Convert todoist calendar
Persons are now threated the same as device trackers, so the logbook states
"<name> is at <location>" or "<name> is away" instead of "<name> changed to <location|not_home>"
Binary sensors now show phrases that relate to their device_class attribute.
So "Front door is closed" instead of "Front door turned off" or "Hallway PIR detected movement"
instead of "Hallway PIR turned on"
* Add support for World Wide Lightning Location Network
* Updated .coveragerc
* Added test
* Updated requirements
* Fixed tests
* Use local time for nearest strike
* Base geo location in place
* Finished geolocation work
* Fixed tests
* Cleanup
* Removed no-longer-needed method
* Updated requirements
* Add support for window and attrs
* Add strike ID to entity name
* Member comments
* Added CT80 Current Humidity Support
Added a check for if device is a CT80, and if so, queries the humidity object to get the current measured humidity reading.
* Update climate.py
Removed whitespace on line 229
* Update climate.py
Added humidity property. Version on local machine had that from previous tinkering.
* Update climate.py
Removed whitespace
* Update climate.py
Fixed tstat error handling for humidity data.
* Renames internal climate state variable to preset
* Shorten function comments
* Updates local variables on preset and temp changes
* Adds support for hvac_action
* Support populating list of flows from custom components
* Re-allow custom component config flows
* Add tests for custom component retrieval
* Don't crash view if no handler exist
* Use get_custom_components instead fo resolve_from_root
* Switch to using an event instead of lock
* Leave list of integrations as set
* The returned list is not guaranteed to be ordered
Backend uses a set to represent them.
* Add arcam_fmj support
* Just use use state in player avoid direct client access
* Avoid leaking exceptions on invalid data
* Fix return value for volume in case of 0
* Mark component as having no coverage
* Add new requirement
* Add myself as maintainer
* Correct linting errors
* Use async_create_task instead of async_add_job
* Use new style string format instead of concat
* Don't call init of base class without init
* Annotate callbacks with @callback
Otherwise they won't be called in loop
* Reduce log level to debug
* Use async_timeout instead of wait_for
* Bump to version of arcam_fmj supporting 3.5
* Fix extra spaces
* Drop somewhat flaky unique_id
* Un-blackify ident to satisy pylint
* Un-blackify ident to satisy pylint
* Move default name calculation to config validation
* Add test folder
* Drop unused code
* Add tests for config flow import
* bump envoy_reader version to 0.4
* bump dependency envoy_reader to 0.4
* Enphase envoy get individual inverter production
* Add period in function description
* Fix dumb typo
* Define _attributes in __init__
* Better error messages, make update async
* Fix format error
* Fix pylint errors
* set unknown state to None
* Bump envoy_reader version to 0.8
* Change attributes to separate sensors
* Fix dumb thing
* Improve platform_setup for inverters
* Remove unneeded self._attributes, refactor platform setup
* Refactor platform setup
* Implement Twilio SMS notify MediaUrl support
Adds support for setting the `media_url` parameter of the twilio API
client with an optional attribute under the notify `data`
attribute.
Per the twilio docs (https://www.twilio.com/docs/sms/send-messages#include-medi$
this feature is only available in the US and Canada, for
GIF, PNG, or JPEG content.
* lint: fix 80 char ruler
* use kwargs to set the media_url
after testing locally, seems like the previous way of using
object() was not working. this seems to be working
* re-use the ATTR_MEDIAURL attribute
* Make sure we use same family for ssl socket and connection
getaddrinfo result could be different from what connection
was made with. It also blocks potential use of
happy eye balls algorithm
This also fixes lingering sockets until python garbage
collection.
* Add availability value if unable to get expiry
* Fix lint issue
* Add support for aurora ABB Powerone solar photovoltaic inverter
* Add support for aurora ABB Powerone solar photovoltaic inverter
* Update stale docstring
* Fixed whitespace lint errors
* Remove test code
* Delete README.md
Website documentation contains setup instructions. README not needed here.
* Only close the serial line once.
* Correct newlines between imports
* Change add_devices to add_entites and remove unnecessary logging.
* Use new style string formatting instead of concatenation
* Directly access variables rather than via config.get
* Update sensor.py
* Update sleepyq to 0.7
Fixes crash when working with a single sleeper.
* sleepiq: Handle null side definitions
These happen if no sleeper is defined for a side of the bed. Don't
create sensors for null sides; they'll crash every time we try to use
them.
* sleepiq: Fix urls mocked to match sleepyq 0.7
* sleepi: Fix test_sensor.TestSleepIQSensorSetup
Sleepyq 0.7 throws on empty strings, so we have to specify them.
* sleepiq: Test for ValueError thrown by sleepyq 0.7
* sleepiq: Drop no longer used HTTPError import
* sleepiq: Add tests for single sleeper case
* sleepiq: Shorten comments to not overflow line length
* sleepiq: Use formatted string literals for adding suffixes to test files
* sleepiq: Use str.format() for test suffixing
* Add sonos.play_queue service
* Add SERVICE_PLAY_QUEUE import in alphabetical order
* Add queue_position parameter for sonos.play_queue service
* Move queue_position default to schema definition
* initial implementation for zha device trackers
* constant
* review comments
* Revert "review comments"
This reverts commit 2130823566820dfc114dbeda08fcdf76ed47a4e7.
* rename device tracker entity
* update trackers
* raise when not implemented
* Update homeassistant/components/device_tracker/config_entry.py
Review comment
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* move source type to base state attrs
* review comments
* review comments
* review comments
* fix super call
* fix battery and use last seen from device
* add test
* cleanup and add more to test
* cleanup post zha entity removal PR
* add tests for base entities
* rework entity tests
* move availability handling to device
* update last_seen format
* add battery sensor
* fix interval
* fix battery reporting now that it is a sensor
* remove zha entities and add battery sensor
* Added ability to send attachments in pushover notifications
* Added full name for exception to satisfy static check
* Fixed hanging indent lint problem
* Added path checking, removed import re, changed url check method to use
startswith.
* Removed argument from logging statement.
* Changed IOError to OSError, fixed logging, added logging statement.
* tweak battery icons according to device state/availability
* tweak battery icons according to device state/availability 2
* make dt objects aware
* make dt objects aware 2
* woops - use util.dt in favour of datetime
* woops - use util.dt in favour of datetime 2
* refactor battery icon code, remove parallel_updates
PR #22457 added some code that used new methods in `sisyphus-control` 2.2.
Unfortunately, because of the move to manifests it was merged still depending
on 2.1.
Fixes#24834
* Add template vacuum component
* Fix linting issues
* Make vacuum state optional
* Fix pylint issues
* Add context to template vacuum service calls
* Added tests to template vacuum
* Fix indent
* Fix docstrings
* Move files for new component folder structure
* Revert additions for template_vacuum tests to common.py
* Use existing constants for template vacuum config
* Handle invalid templates
* Add tests for unused services
* Add test for invalid templates
* Fix line too long
* Do not start template change tracking in case of MATCH_ALL
* Resolve review comments
* Zestimate fix for issue #23837
removed references to MIN_TIME_BETWEEN_UPDATES
and replaced with SCAN_INTERVAL
* Zestimate fix for issue #23837
removed references to MIN_TIME_BETWEEN_UPDATES
and replaced with SCAN_INTERVAL
* Add time delta option when searching for connections
Add another option 'in' to search for upcoming connections in the future.
Handy if you need a few minutes to get to the train station and need to add that to the queried departure time.
* correct style errors
* rename new option
* rename new option (2/2)
* add offset correctly
* Cleanup ZHA entities model and manufacturer usage.
Zigpy includes manufacturer and model as attributes of a zigpy
Device class, which simplifies handling of manufacturer and/or model
derived properties for the ZHA platform.
* Sort ZHA imports.
* Lint.
* Fixed integration with ESPhome, which caused an error if ESPhome did not update fast enough on startup
* Set state to problem if sensor is unavailable
* Fix line length.
* Option to change sensor names
* Python 3.5 compatibility
* Oops
* Get serial number at start
* Remove config opportunity
* Oops comma
* Changes from review
* Check yourself before you commit.
* Added Trafikverket train component
* Updated manifest with proper name and codeowner
* Updated requirements and manifest
* Updated CODEOWNERS
* Corrected requirements
* Added trafikverket_train/sensor.py to .coveragerc
* Added error handling and log if API call fails
* Corrected styles, removed dev log, improved validation
* Method calls to async_update(), improved error handling
* Minor cleanup/reorg for effeciency
* Added station cache and corrected to fit standards
* Simplified trainstop id and cleaned up dict.get
* Corrected mistake after change from dict to array
* Change device class to timestamp
* Add a test for see service gaurd
* Guard from seeing devices part of entity registry
* Await registry task early
* Lint
* Correct comment
* Clean up wait for registry
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Vlc telnet first commit
First functional version, remains to add more functionality.
* New functions added and bugfixes
* Compliance with dev checklist
* Compliance with dev checklist
* Compliance with pydocstyle
* Removed unused import
* Fixed wrong reference for exception
* Module renamed
* Fixed module rename in other
* Fixed wrong reference for exception
Module renamed
Fixed module rename in other
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Suggestions by @OttoWinter
+Manage error when the VLC dissapears to show status unavailable.
* Removed error log, instead set unavailable state
* Changes suggested by @pvizeli
-Import location
-Use of constants
* Implemented available method
* Improved available method
* Vlc telnet first commit
First functional version, remains to add more functionality.
* New functions added and bugfixes
* Compliance with dev checklist
* Compliance with dev checklist
* Compliance with pydocstyle
* Removed unused import
* Fixed wrong reference for exception
* Module renamed
* Fixed module rename in other
* Fixed wrong reference for exception
Module renamed
Fixed module rename in other
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Suggestions by @OttoWinter
+Manage error when the VLC dissapears to show status unavailable.
* Removed error log, instead set unavailable state
* Changes suggested by @pvizeli
-Import location
-Use of constants
* Implemented available method
* Improved available method
* Breaking change: Rewrite opentherm_gw to add support for more than one OpenTherm Gateway.
Breaks config layout and child entity ids and adds a required parameter to all service calls (gateway_id).
* Add schema and parameter description for service opentherm_gw.reset_gateway.
* Add optional name attribute in config to be used for friendly names.
Fix bugs in binary_sensor and climate platforms.
* pylint fixes
* Remove unused variables.
* Update manifest.json, remove REQUIREMENTS from .py file
* Update CODEOWNERS
* Address issues that were brought up (requested changes):
- Move imports to module level
- Change certain functions from async to sync
- Move constants to const.py (new file)
- Call gateway setup from outside of __init__()
- Move validation of monitored_variables to config schema
* Address requested changes:
- Make module imports relative
- Move more functions from async to sync, decorate with @callback where necessary
- Remove monitored_variables option, add all sensors by default
* Add a test for see service gaurd
* Guard from seeing devices part of entity registry
* Await registry task early
* Lint
* Correct comment
* Clean up wait for registry
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fixing tplink issues with offline devices during setup.
* Fixing circleci errors.
* Adding code to defer the creation of entities that are not online.
* Addressing code review changes and cleaning up a little.
* Fixing tests and static analysis.
* Adding test to satisfy coverage requirements.
* Resolving merge conflicts.
* Fixing issue where lights don't appear in the integration page.
* Using pyHS100 properties for most sysinfo.
Addressing some PR feedback.
* Addressing some PR feedback.
* Better testing async_add_entities_retry
Testing for static dimmers.
Making greater use of conf constants.
* Fixing all static analysis issues.
* Adding non-blocking call for getting discovering devices.
* Address PR feedback
* Quick & Dirty weather alert integration
* Add attributes in weather alert sensor.
* MeteoFranceUpdate returns dept to init the alert watcher
* add rain forecast to weather attribute
* Add checks when no weather alert data are available
* Improve date and state when online source is unreachable
* update to take into account new API of vigilancemeteo 3.0.0
* Clean local patchs and put requirements in manfiest.json
* Use only one proxy for weather alerts to avoid too much HTTP requests
* linting and comments style corrections
* Add error catching and debug logging
* Correction following PR checklist
* Add code owners
* Update requirements_all.txt
* Comment style
* Update CODEOWNERS after rebaseline with dev branch
* update requirements_all.txt
* initial version of qfes bushfire geolocation platform
* removed all occurrences of legally protected names; using new georss library
* regenerated codeowners
* fixed pylint
* added one more valid category
* moved library import to top and ran isort
* Fix validator for lcn.send_keys service
* Removed lowercase table names from send_keys and lock_keys validators
* Revert lowercase regex.
* Fixed table name regex.
* change us-based default temps to Fahrenheit
* update CODEOWNERS
* update CODEOWNERS
* tweak docstring
* tweak docstring
* Coerce Fahrenheit Temps to int
* Adds integration for Plaato Airlock
* Updates codeowners and coveragerc
* Fixes lint errors
* Fixers lint check error
* Removed sv translation file
* Adds en translation file
* Sets config flow to true in manifest
* Moves config flow and domain to seperate files
* Fixes lint errors
* Runs hassfest to regenerate config_flows.py
* Adds should poll property and fixes for loop
* Only log a warning when webhook data was broken
* Fixes static test failure
* Moves state update from async_update to state prop
* Unsubscribes the dispatch signal listener
* Update sensor.py
* Added toggle service to cover
* Added toggle tilt service and tilt closed property
* Added is_tilt_closed so tilt can be toggled
* Added toggle services
* Added toggle tilt service
* Removed spaces
* Added tests for tilt services
* Updated tests
* Added range conversion in comparison
* Added tests to cover broken areas
* Fixed open/close tilt values and added toggle function
* Added default toggle behavior using tilt_position of 0, reverted other changes
* blank space
* Added constants and swapped assert comparisons
* Fixed attribute name
* Added mqtt responses in test
* Added constants
* Space
* Fix tilt_optimistic flag being ignored if status topic set
* Added more tests
* Changed async toggle call
* Updated group tilt test
* Updated format of asserts
* Updated states calls
* Updated function variables
* merge fixes
* Added blank line
* Changed calls to async
* More async updates
* Extract const to a const file, Add battery as tracker attribute, add accuracy filter option
* Update homeassistant/components/traccar/device_tracker.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/traccar/device_tracker.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/traccar/device_tracker.py
Use [] syntax for keys that are in the validated data.
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Fix indentation
* Update aioswitcher requirement to 2019.4.26.
* Removed unnecessary legacy function call.
* Fixed log message capital first letter.
* Replaced None argument with empty dict.
* Replaced guard.
* Added ServiceCallType.
* Added set_auto_off and update_device_name services to the component.
* Added test cases for service calls.
* Conditioned the component services registry with the platform discovery.
* Update homeassistant/components/switcher_kis/__init__.py
Co-Authored-By: TomerFi <tomer.figenblat@gmail.com>
* Update homeassistant/components/switcher_kis/__init__.py
Co-Authored-By: TomerFi <tomer.figenblat@gmail.com>
* Resolved change requests.
* Added ContextType.
* Addes permission verification for service calls.
* Added test cases for permision verification and more.
* Replaced POLICY_CONTROL with the more suited POLICY_EDIT.
* More appropriate function name.
* Added domain and entity_id validation for calling services.
* Removed service for setting the vendor's device name.
* Added name to sensors
Added name to sensors, should allow for multiple devices.
This should fix#22571 and #21591
* Update sensor.py
Fixed spelling issue, and line too long
* Update sensor.py
Removed _ as it is a friendly name
* Separate yeelight light classes
* Removed not used variable
* Allow to create device right away, when model is declared
* Lint fixes
* Use correct brightness, when nightlight mode is on
* Pylint fix
* Add power property
* Fix imports
* Update homeassistant/components/yeelight/light.py
Co-Authored-By: Teemu R. <tpr@iki.fi>
* Small PR fixes
* Simplify device to yeelight class mapping
* Simplify device initialization code
* Fix comment
Some location update messages do not contain the 't' (trigger) key. Before the change in 0.94 to
entity based trackers, these would default to source_type of 'gps' (due to default parameter
value in async_see method.) To mirror this behavior in the new entity based tracker, the
source_type property should default to SOURCE_TYPE_GPS under the same conditions.
Some location update messages do not contain the 't' (trigger) key. Before the change in 0.94 to
entity based trackers, these would default to source_type of 'gps' (due to default parameter
value in async_see method.) To mirror this behavior in the new entity based tracker, the
source_type property should default to SOURCE_TYPE_GPS under the same conditions.
* Add camera for buienradar radar
* Use asyncio.Conditions instead of asyncio.Lock
* Add test and fix python 3.5 compatibility
* rename interval to delta for consistency with BOM integration
* fix linting error introduced during rebase
* Improved buienradar.camera documentation and tests
* Incorporated one comment on a redundant/cargo cult function
* Improved documentation
* Increase test coverage by fixing one test by making it a coroutine
(to make it actually run), adding another test case, and changing
the flow in the implementation.
* style changes after review, additional test case
* Use python 3.5 style mypy type annotations in __init__
* Remove explicit passing of event loop
* Adopt buienradar camera as codeowner
* Update manifest.json
* Update CODEOWNERS through hassfest
Updated CODEOWNERS through hassfest (instead of manually), thanks to
@balloob for the hint.
* Support ZLO device types
Support the device types that are added in https://github.com/zigpy/zigpy/pull/176
so newer Zigbee devices can be supported.
* Remove BINARY_SENSOR mappings
* Add back ON_OFF_LIGHT_SWITCH, DIMMER_SWITCH and COLOR_DIMMABLE_LIGHT
Since they are target devices I've added them as switch and lights,
which matches the Zigbee documentation.
* Upgrade to zigpy-homeassistant v0.5.0
To be able to use the new DeviceTypes
* Add Linky sensors : yesterday + months + years
- SCAN_INTERVAL to 4 hours
- Always close_session after getting the data
- Add username attr
- Fix not updating Linky sensor when Enedis API fails
* Fix @balloob review: remove monitored_conditions
* Add APRS device tracker component
This component keeps open a connection to the APRS-IS infrastructure so
messages generated by filtered callsigns can be immediately acted upon.
Any messages with certain values for the 'format' key are position
reports and are parsed into device tracker entities.
* Log errors and return if startup failure
* Fix unit tests
* CREATE Somfy component
* CREATE cover Somfy platform
* USE somfy id as unique id
* UPDATE all the devices in one call to limit the number of call
* FIX Don't load devices if not yet configured
* IMP Replace configurator by a simple notification
* ADD log in case state does not match
* IMP wording
* REMOVE debug stuf
* ADD support for tilt position
* UPDATE requirements
* FIX Use code instead of authorization response
- Will allow to setup Somfy without https
* HANDLE stateless devices (Somfy RTS)
* FIX import locally 3rd party library
* UPDATE pymfy to 0.4.3
* ADD missing docstring
* FIX For Somfy 100 means closed and 0 opened
* FIX position can be None
* ENHANCE error management when error 500 occurs at setup
* FIX indent
* ROLLBACK tilt modification
- See https://community.home-assistant.io/t/somfy-tahoma-official-api/61448/90?u=tetienne
* FIX Look for capability instead of state
* DON'T use exception to test if a feature is available
* UPDATE dependency
* ADD device_info property
* AVOID object creation in each method
* REMOVE unused constants
* ADD missing doc
* IMP Only make one call to add_entities
* USE dict[key] instead of get method
* IMP Don't pass hass object to the entities
* FIX Don't end logging messages with period
* USE config entries instead of a cache file
* IMPLEMENT async_unload_entry
* CONSOLIDATE package
- see home-assistant/architecture#124
* UPDATE to pymfy 0.5.1
* SIMPLIFY config flow
* ADD French translation
* FIX 80 vs 79 max length
* ABORT flow asap
* FIX A tupple was returned
* MIGRATE to manifest.json
* ADD a placeholder async_setup_platform coroutine
- It's currently required and expected by the platform helper.
* FIX codeowner
* ADD missing translations file
* USE new external step
* UPGRADE pymfy version
* Close Somfy tab automatically
* ADD manufacturer
- Somfy only for the moment.
* HANDLE missing code or state in Somfy request
* REMOVE unused strings
* DECLARE somfy component to use config_flow
* APPLY static check remarks
* FIX async method cannot be called from sync context
* FIX only unload what has been loaded during entry setup
* DON't catch them all
* DON'T log full stacktrace
* ABORT conflig flow if configuration missing
* OMIT Somfy files for coverage
* ADD tests about Somfy config flow
* ADD pymfy to the test dependencies
* fix(hue): Load the SSDP component only when it's needed
* fix(deconz): Don't load the SSDP component when it's not needed
* Update config_flow.py
* Update test_config_flow.py
Was improperly generating a warning each restart.
Was not properly handling a password change in configuration.
Was not properly removing config entries for accounts removed from configuration.
* fix(hue): Load the SSDP component only when it's needed
* fix(deconz): Don't load the SSDP component when it's not needed
* Update config_flow.py
* Update test_config_flow.py
* Improve amcrest error handling and bump amcrest package to 1.5.3
amcrest package update fixes command retry, especially with Digest Authentication, and allows sending snapshot command without channel parameter.
Get rid of persistent_notification.
Errors at startup, other than login errors, are no longer fatal.
Display debug messages about how many times an error has occurred in a row.
Remove initial communications test. If camera is off line at startup this just delays the component setup.
Handle urllib3 errors when getting data from commands that were sent with stream=True.
If errors occur during camera update, try repeating until it works or the camera is determined to be off line.
Drop channel parameter in snapshot command which allows camera to use its default channel, which is different in different camera models and firmware versions.
Make entities unavailable if too many errors occur in a row.
Add new configuration variables to control how many errors in a row should be interpreted as camera being offline, and how frequently to "ping" camera to see when it becomes available again.
Add online binary_sensor option to indicate if camera is available (i.e., responding to commands.)
* Update per review comments
Remove max_errors and recheck_interval configuration variables and used fixed values instead.
Move definition of AmcrestChecker class to module level.
Change should_poll in camera.py to return a fixed value of True and move logic to update method.
* Use LAN status instead of wireless status for DD-WRT device tracking
* Use the previous DD-WRT device tracker behavior unless specified in the configuration
* Add support for DoorLock cluster
* Add test for zha lock
* Change lock_state report to REPORT_CONFIG_IMMEDIATE
* Update channel command wrapper to return the entire result
This allows for return values other than result[1]
* Fix tests
* Fix lint
* Update DoorLock test to work with updated zigpy schema
* Fix lint
* Fix unlock test
* Refactor Waze Travel Time & Update Requirements
Refactored Waze Travel Time to contain a data object.
Changed error retrieving data to a warning.
Added distance conversion depending on region.
Removed dependency on TRACKABLE_DOMAINS list.
Update to use WazeRouteCalculator 0.10
3rd time's a charm. Deleted fork, caused last PR to screw up. So here we are.
* Update requirements_all.txt
* Revert package upgrade.
* Revert package upgrade.
* Bring the Sisyphus integration to silver quality
Checklist:
- [x] (N/A - push integration) Set an appropriate SCAN_INTERVAL (if a polling integration)
- [x] Raise PlatformNotReady if unable to connect during platform setup
- [x] (N/A - no credentials) Handles expiration of auth credentials. Refresh if possible or print correct error and fail setup. If based on a config entry, should trigger a new config entry flow to re-authorize.
- [x] (N/A - local integration) Handles internet unavailable. Log a warning once when unavailable, log once when reconnected.
- [x] Handles device/service unavailable. Log a warning once when unavailable, log once when reconnected.
- [x] Set available property to False if appropriate
- [x] Entities have unique ID (if available)
* Feedback (fix a couple verbose places)
* Use a task instead of a lock
* Initialize field in constructor
* Revert package upgrade.
* Add Streamlabs Water Monitor
* Fail Streamlabswater component setup when given invalid parameters
The Streamlabs Water component is unable to recover if it is given
an invalid API key or location id so this change is to ensure
we validate they are correct during setup and return a failure
if they are not.
* Prime Streamlabswater component sensors so data is available immediately
The sensors for the component were not causing an immediate load of
data from the API when being set up so there was some lag after
startup before values would show up. This change does an explicit
update when the sensors are setup to ensure data is viewable
immediately after startup.
* Switch Streamlabswater logging to use %s for string formatting
* Update Streamlabswater component with correct dependencies
Dependencies were incorrectly specified using DEPENDS rather
than DEPENDENCIES
* Streamlabswater pull request feedback
Remove detailed class docstrings since they're in the documentation,
reduce code duplication in sensor classes, and remove periods from
the end of log messages.
* Reduce line length in Streamlabswater sensor
* Add docstring on Streamlabswater service callback method
* Get rid of unnecessary initializers in Streamlabswater sensor
* Add manifest file for Streamlabs Water Monitor
* Remove unused REQUIREMENTS
* Added Google Cloud TTS service component feature
* Added Neutral voice gender
* Added line break at the end of files
* Updated CODEOWNERS, reqirements_all.txt and .coveragerc
* Fixed some ci/circleci: static-check errors
* Fixed some ci/circleci: static-check error
* Fixed some ci/circleci: pylint errors
* Fixed some ci/circleci: pylint errors
* * made supported_options const
* fixed direct env variable access
* Fixed import order
* * Component renamed
* Added encoding parameter
* Other fixes
* Changed folder name in .coveragerc
* * Removed whitespaces in blank lines
* Split long line
* Removed whitespaces in blank lines
* ci/circleci: static-check
* Fixed requirements_all.txt
* Added speed, pitch and gain parameters
* Added speed, pitch and gain as supported options
* Split too long line
* * Added profiles parameter
* Changed supported languages and encodings values
* Added parameters validations
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Changed options validation
* Added ToggleEntity save and restore state mechanism
* Revert "Added ToggleEntity save and restore state mechanism"
This reverts commit 0e275014
* Basic local SolarEdge monitoring for energy / power
* Basic local SolarEdge monitoring for energy / power
* generated CODEOWNERS, requirements, excluded tests
* generated CODEOWNERS, requirements, excluded tests
* lint fixes, etc
* lint fixes, etc
* Fix docstyle for init
Of course thats the file I forgot to run tests on
* Load all sensors by default
They use the same API endpoint. This changes was made per https://github.com/home-assistant/architecture/pull/244
* remve unneded date/time
* ran hassfest again
* add throttle when updating
* readd solax, mistakenly removed
* Update sensor.py
* Add support for learning new commands
This update creates a generic service in the 'remote' component to enable remote control platforms to learn new commands.
* Update __init__.py with the proposed changes
- Add 'supported_features' property and a constant related to the 'learn_command' functionality.
- Redefine 'async_learn_command' function as a coroutine.
* Update __init__.py
* Fix assertion error
Adding the 'supported_features' attribute generated an assertion error on the 'Demo Remote' platform. This update fixes this.
* Fix duplicated 'hass' object
This update fixes a typo that occurred at the last update.
* Update cover.py
Blinds, Rollingshutters and Awnings did not set their respective device_class attribute
Previously they would all appear as device_class "window"
* fallback device class is always 'window'
fallback device class is always 'window' in the event we have an unknown cover type
* trailing whitespace removed, trimmed as well
* Update cover.py
* Migrate deCONZ to use new SSDP discovery
Add new discovery info manufacturer URL to be able to separate Hue and deCONZ bridges
* Mark deCONZ as migrated in Discovery component
* Fix tests
* Fix Hue discovery ignore deCONZ bridge
* Less snake more badger
* Mushroom
* Fix indentation
* Config flow ignore manufacturer url that is not philips
* Migrate deCONZ to use new SSDP discovery
Add new discovery info manufacturer URL to be able to separate Hue and deCONZ bridges
* Mark deCONZ as migrated in Discovery component
* Fix tests
* Fix Hue discovery ignore deCONZ bridge
* Less snake more badger
* Mushroom
* Fix indentation
* Config flow ignore manufacturer url that is not philips
* Add service for adding event to google component
* Add service examples for google.add_event
* add refactoring based on reviews
* Fix too long lines
* Order import
* Move to move line
* Remove parenthesis
* Add service for adding event to google component
* Add service examples for google.add_event
* add refactoring based on reviews
* Add check for correct scopes, otherwise re-authenticate
* fix build failure
* fix build failure
* Adds AdGuard Home integration
* 👕 Addresses linting warnings
* 🚑 Fixes typehint in async_setup_entry
* 👕 Take advantage of Python's coalescing operators
* 👕 Use adguard instance from outer scope directly in service calls
* 👕 Use more sensible scan_interval default for sensors
* 👕 Adds specific files to .coveragerc
* ☔ Added tests and small changes to improve coverage
* 🔨 Import adguardhome dependencies at the top
* 🚑 Converted service handlers to be async
* 🔥 Removed init step from config flow
* 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()
Enable feature by default but allow it to be disabled by "control_light: false" in config.
Get brand from camera instead of assuming Amcrest (since this works with other cameras, too.)
Retrieve RTSP URL in update method instead of in stream_source property and in handle_async_mjpeg_stream method.
Move amcrest imports from methods to global.
* Fixing tplink issues with offline devices during setup.
* Fixing circleci errors.
* Adding code to defer the creation of entities that are not online.
* Addressing code review changes and cleaning up a little.
* Fixing tests and static analysis.
* Adding test to satisfy coverage requirements.
* Resolving merge conflicts.
* Fixing issue where lights don't appear in the integration page.
* Using pyHS100 properties for most sysinfo.
Addressing some PR feedback.
* Addressing some PR feedback.
* Better testing async_add_entities_retry
Testing for static dimmers.
Making greater use of conf constants.
* Fixing all static analysis issues.
* Adding non-blocking call for getting discovering devices.
* Address PR feedback
* Revert back to previously used library
* Fix test
* Remove unused import
* Fix import
* Update __init__.py
* Update __init__.py
* Fix test after rebase
* Move tradfri component to use new zeroconf discovery
* Will this work?
* Remove prints
* Correct order in generated zeroconf
* Update test_init.py
* Update test_init.py
* Update test_init.py
* Update test_init.py
* Extract exposed devices function
* Add might_2fa info to trait
* Do not filter with should_expose in Google helper func
* Cloud: allow setting if Google entity is exposed
* Allow disabling 2FA via config
* Cloud: allow disabling 2FA
* Lint
* More changes
* Fix typing
* Bumped to version 2.0
* Updated requirements
* Updated requirements and coveragerc
* Removed long lines, changes to coveragerc and requirements
* Fixed under-indented lines
* Fixed invalid syntax
* Updated .coveragerc to include repetier/__init__.py and sensor.py
* Module update
* Rebased to latest dev
* Blank lines fix
* Add missing manifest.json
* Update requirements
* Bumped component to new API module style
* Removed whitespaces and line feeds
* Added missing newline
* Added missing heated chamber sensor
* Fixed wrong indentation
* Various fixes
* Various build fixes
* Clean up
* Load platform only once
* Sort imports
* Add printer api
* Clean up
* Build out sensor classes
* Clarify temperature sensor variable names
* Move constants
* Clean up name
* Run script/gen_requirements_all.py
* Working code, missing auto add of new sensors
* Updated code to return proper device_class and timestamp
* Removed unnessecary code
* Renamed elapsed and remaining sensors
* Dynamically adding sensors as they become available
* Rebased .coveragerc due to conflicts
* Code changes and cleanup
* Removed whitespace and code simplification
* Use global import for ESPHome
* Add aioesphomeapi to test requirements
aioesphomeapi is also shipped as a pure-python wheel, so this should not impact test install time
* Improved sensors
* Lib update signalling
* Replace reason with changed
* Move imports to top of file
* Add support for secondary temperature reported by some Xiaomi devices
* Bump dependency to v59
* Use central polling to update entities
* Fix for line length
* Remove unnecessary import
* Use interval
* Trigger entity refreshes after commands
* Lint
* v1 of Azure Event Hub History component
* updates to EH
* small fix
* small updates and changed requirements_all
* new version of Event Hub component
* redid config to just ask names
* small edit
* latest version of EH component
* updated codeowners
* codeowner fix
* typo in domain
* updates based on reviews.
* using built-in jsonencoder for DT
* delete unused import
* Solax inverter direct API
* Linter compliance
* lint++
* move api communication to external lib
* lint++
* requirements
* Revert "requirements"
This reverts commit 82a6c0c095.
* potentially?
* Addressing review comments
* Also update CODEOWNERS
* Only update sensor state if data has changed
* Moved helper functions to const.py
* Removed pypck attribute from LcnDevice
* Bump to pypck==0.6.0
* Added myself as a codeowner
* Moved helper functions to helpers.py
* Added support for MCP23017 I2C GPIO extender.
* Updated .coveragerc to exclude mcp23017 component from tests.
* Generated CODEOWNERS for mcp23017 usign script.
* Removed .svn folder that had been accidentally uploaded.
* Added link to www.home-assistant.io docs in manifest.json
* Fixed logic error in switch platform.
* Cleaned up code and removed unnecessary should_poll() function.
* Limited the options for pull mode to UP and DOWN
* Fixed line too long in binary sensor.
* Fixed line too long on switch.py
* Changed to setup_platform.
* Reorder constants
* Change timeout from 5 seconds to 10 seconds
Underpowered platforms timeout during configuration/discovery of a Hue bridge on a new install. Increasing this timeout fixes this.
* Add 'adb_response' attribute to Android TV / Fire TV
* Use None instead of empty string for empty ADB responses
* Initialize self._adb_response as None, not empty string
* Update the state after sending an ADB command
This ensures that the `'adb_response'` attribute contains the response to the latest command
* Zestimate: fix for issue #23757
Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
Also removed MIN_TIME_BETWEEN_UPDATES in
favor of SCAN_INTERVAL per suggestion from
amelchio#9580 on Discord
* Zestimate fix for issue #23757
Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
* Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
* moved code fix to the correct function
* removed code change from unique_id function
* Fix entity id naming when not using first install
Currently, the verisure component will use the alias of the first
installation to decide entity id of the alarm_control_panel even though
a different installation is configured through a specified giid. This
fixes that
* Fixed pulled request review comments
* Remove trailing whitespace
* Fix remaining pylint errors
* Proof of concept
* Follow comments
* Fix line length and bad imports
* Move imports to top
* Exception handling for unicode decoding
Create debug print for new service types
Add empty test files
* First try at a test
* Add type and name to service info
Fix static check
* Add aiozeroconf to test dependencies
* Use HA defined timezone
* Cleanup
* Use homeassistant.util.dt.now to get the correct time.
* Update homeassistant/components/vasttrafik/sensor.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Remove schedule management. Allow custom HTTP events defined in the configuration
* Consolidate doorbird request handling. Make token a per device configuration item.
* Lint fixes
* Do not register dummy listener
* Remove punctuation
* Split up method to allow caching event
* Lower frequency of updates.
* Code review patches.
* Minor changes to test
* Skip end of period at fixed multiple of delta.
Improved documentation.
* Initial commit
* add lastComms and de-lint
* dummy commit
* dummy commit 2
* refactor to temp in favour of battery
* back to battery, and no temp
* use snake_case
* Bump client
* only v3 API exposes device attributes
* delint
* delint2
* Change GeniusSwitch to GensiusBinarySensor
* Use aiozeroconf in preparation for new zeroconf discovery
* Update requirements
* Remove sleep
* Make stop zeroconf a coroutine
* Remove unused import
* Fix aiozeroconf dependency in default_config tests
* updated list of supported fan_modes
* AirBase units does not support Holiday-mode
* AirBase units does not support outside temp
* pydaikin version bump
* don't modify constant
* Start moving parts of yaml utils to own module
Move parts of yaml loader out of the single large file and start
to create the structure of the yaml loaders in Ansible [0].
[0]: https://github.com/ansible/ansible/tree/devel/lib/ansible/parsing/yaml
* Finish yaml migration, update tests and mocks
* Move code around to finish the migration
* Update the mocks so that `open` is patched in
`homeassistant.util.yaml.loader` instead of
`homeassistant.util.yaml`.
* Updated mypy ignores
* Updated external API of `homeasistant.util.yaml`, see below:
Checked what part of the api of `homeassistant.util.yaml` was actually
called from outside the tests and added an `__ALL__` that contains only
these elements.
Updated the tests so that references to internal parts of the API (e.g.
the yaml module imported into `homeassistant.util.yaml.loader`) are
referenced directly from `homeassistant.util.yaml.loader`.
In `tests/test_yaml.py` the import `yaml` refers to
`homeassistant.util.yaml` and `yaml_loader` refers to `~.loader`.
Future work that remains for the next iteration is to create a custom
SafeConstructor and refers to that instead of monkey patching `yaml` with
custom loaders.
* Update mocks in yaml dumper, check_config
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
"verify_ssl":"AdGuard Home \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0430\u0434\u0435\u0436\u0434\u0435\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442"
"adguard_home_addon_outdated":"Aquesta integraci\u00f3 necessita la versi\u00f3 d'AdGuard Home {minimal_version} o una superior, tens la {current_version}. Actualitza el complement de Hass.io d'AdGuard Home.",
"adguard_home_outdated":"Aquesta integraci\u00f3 necessita la versi\u00f3 d'AdGuard Home {minimal_version} o una superior, tens la {current_version}.",
"existing_instance_updated":"S'ha actualitzat la configuraci\u00f3 existent.",
"single_instance_allowed":"Nom\u00e9s es permet una \u00fanica configuraci\u00f3 d'AdGuard Home."
},
"error":{
"connection_error":"No s'ha pogut connectar."
},
"step":{
"hassio_confirm":{
"description":"Vols configurar Home Assistant perqu\u00e8 es connecti amb l'AdGuard Home proporcionat pel complement de Hass.io: {addon}?",
"title":"AdGuard Home (complement de Hass.io)"
},
"user":{
"data":{
"host":"Amfitri\u00f3",
"password":"Contrasenya",
"port":"Port",
"ssl":"AdGuard Home utilitza un certificat SSL",
"username":"Nom d'usuari",
"verify_ssl":"AdGuard Home utilitza un certificat adequat"
},
"description":"Configuraci\u00f3 de la inst\u00e0ncia d'AdGuard Home, permet el control i la monitoritzaci\u00f3.",
"adguard_home_addon_outdated":"This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}. Please update your Hass.io AdGuard Home add-on.",
"adguard_home_outdated":"This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}.",
"existing_instance_updated":"Se actualiz\u00f3 la configuraci\u00f3n existente.",
"single_instance_allowed":"Solo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error":{
"connection_error":"Error al conectar."
},
"step":{
"hassio_confirm":{
"description":"\u00bfDesea configurar Home Assistant para conectarse a la p\u00e1gina principal de AdGuard proporcionada por el complemento Hass.io: {addon}?",
"title":"AdGuard Home a trav\u00e9s del complemento Hass.io"
},
"user":{
"data":{
"password":"Contrase\u00f1a",
"port":"Puerto",
"ssl":"AdGuard Home utiliza un certificado SSL",
"username":"Nombre de usuario",
"verify_ssl":"AdGuard Home utiliza un certificado adecuado"
},
"description":"Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control.",
"adguard_home_addon_outdated":"Esta integraci\u00f3n requiere AdGuard Home {minimal_version} o superior, usted tiene {current_version}. Por favor, actualice su complemento Hass.io AdGuard Home.",
"adguard_home_outdated":"Esta integraci\u00f3n requiere AdGuard Home {minimal_version} o superior, usted tiene {current_version}.",
"existing_instance_updated":"Se ha actualizado la configuraci\u00f3n existente.",
"single_instance_allowed":"S\u00f3lo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error":{
"connection_error":"No se conect\u00f3."
},
"step":{
"hassio_confirm":{
"description":"\u00bfDesea configurar Home Assistant para conectarse al AdGuard Home proporcionado por el complemento Hass.io: {addon} ?",
"title":"AdGuard Home a trav\u00e9s del complemento Hass.io"
},
"user":{
"data":{
"host":"Host",
"password":"Contrase\u00f1a",
"port":"Puerto",
"ssl":"AdGuard Home utiliza un certificado SSL",
"username":"Nombre de usuario",
"verify_ssl":"AdGuard Home utiliza un certificado apropiado"
},
"description":"Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control.",
"adguard_home_addon_outdated":"Cette int\u00e9gration n\u00e9cessite AdGuard Home {minimal_version} ou une version ult\u00e9rieure, vous disposez de {current_version}. Veuillez mettre \u00e0 jour votre compl\u00e9ment Hass.io AdGuard Home.",
"adguard_home_outdated":"Cette int\u00e9gration n\u00e9cessite AdGuard Home {minimal_version} ou une version ult\u00e9rieure, vous disposez de {current_version}.",
"existing_instance_updated":"La configuration existante a \u00e9t\u00e9 mise \u00e0 jour.",
"single_instance_allowed":"Une seule configuration d'AdGuard Home est autoris\u00e9e."
},
"error":{
"connection_error":"\u00c9chec de connexion."
},
"step":{
"hassio_confirm":{
"description":"Voulez-vous configurer Home Assistant pour qu'il se connecte \u00e0 AdGuard Home fourni par le module compl\u00e9mentaire Hass.io: {addon} ?",
"title":"AdGuard Home via le module compl\u00e9mentaire Hass.io"
},
"user":{
"data":{
"host":"H\u00f4te",
"password":"Mot de passe",
"port":"Port",
"ssl":"AdGuard Home utilise un certificat SSL",
"username":"Nom d'utilisateur",
"verify_ssl":"AdGuard Home utilise un certificat appropri\u00e9"
},
"description":"Configurez votre instance AdGuard Home pour permettre la surveillance et le contr\u00f4le.",
"adguard_home_addon_outdated":"Questa integrazione richiede AdGuard Home {minimal_version} o versione successiva, si dispone di {current_version}. Aggiorna il componente aggiuntivo Hass.io AdGuard Home.",
"adguard_home_outdated":"Questa integrazione richiede AdGuard Home {minimal_version} o versione successiva, si dispone di {current_version}.",
"adguard_home_addon_outdated":"D\u00ebs Integratioun ben\u00e9idegt AdgGuard Home {minimal_version} oder m\u00e9i, dir hutt {current_version}. Aktualis\u00e9iert w.e.g. \u00e4ren Hass.io AdGuard Home Add-on.",
"adguard_home_outdated":"D\u00ebs Integratioun ben\u00e9idegt AdgGuard Home {minimal_version} oder m\u00e9i, dir hutt {current_version}.",
"existing_instance_updated":"D\u00e9i bestehend Konfiguratioun ass ge\u00e4nnert.",
"single_instance_allowed":"N\u00ebmmen eng eenzeg Konfiguratioun vun AdGuard Home ass erlaabt."
},
"error":{
"connection_error":"Feeler beim verbannen."
},
"step":{
"hassio_confirm":{
"description":"W\u00ebllt dir Home Assistant konfigur\u00e9iere fir sech mam AdGuard Home ze verbannen dee vum hass.io add-on {addon} bereet gestallt g\u00ebtt?",
"title":"AdGuard Home via Hass.io add-on"
},
"user":{
"data":{
"host":"Apparat",
"password":"Passwuert",
"port":"Port",
"ssl":"AdGuard Home benotzt een SSL Zertifikat",
"username":"Benotzernumm",
"verify_ssl":"AdGuard Home benotzt een eegenen Zertifikat"
},
"description":"Konfigur\u00e9iert \u00e4r AdGuard Home Instanz fir d'Iwwerwaachung an d'Kontroll z'erlaben.",
"adguard_home_addon_outdated":"Deze integratie vereist AdGuard Home {minimal_version} of hoger, u heeft {current_version}. Update uw Hass.io AdGuard Home-add-on.",
"adguard_home_outdated":"Deze integratie vereist AdGuard Home {minimal_version} of hoger, u heeft {current_version}.",
"single_instance_allowed":"Slechts \u00e9\u00e9n configuratie van AdGuard Home is toegestaan."
},
"error":{
"connection_error":"Kon niet verbinden."
},
"step":{
"hassio_confirm":{
"description":"Wilt u Home Assistant configureren om verbinding te maken met AdGuard Home van de Hass.io-add-on: {addon}?",
"title":"AdGuard Home via Hass.io add-on"
},
"user":{
"data":{
"host":"Host",
"password":"Wachtwoord",
"port":"Poort",
"ssl":"AdGuard Home maakt gebruik van een SSL certificaat",
"username":"Gebruikersnaam",
"verify_ssl":"AdGuard Home maakt gebruik van een goed certificaat"
},
"description":"Stel uw AdGuard Home-instantie in om toezicht en controle mogelijk te maken.",
"title":"Link uw AdGuard Home."
}
},
"title":"AdGuard Home"
}
}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.