* Solve cast delaying startup when devices are slow to setup
* Update homeassistant/components/cast/media_player.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* New integration for Kostal Plenticore solar inverters.
* Fix errors from github pipeline.
* Fixed test for py37.
* Add more test for test coverage check.
* Try to fix test coverage check.
* Fix import sort order.
* Try fix test code coverage .
* Mock api client for tests.
* Fix typo.
* Fix order of rebased code from dev.
* Add new data point for home power.
* Modifications to review.
Remove service for write access (for first pull request). Refactor
update coordinator to not use the entity API.
* Fixed mock imports.
* Ignore new python module on coverage.
* Changes after review.
* Fixed unit test because of config title.
* Fixes from review.
* Changes from review (unique id and mocking of tests)
* Use async update method. Change unique id. Remove _dict
* Remove _data field.
* Removed login flag from PlenticoreUpdateCoordinator.
* Removed Dynamic SoC sensor because it should be a binary sensor.
* Remove more sensors because they are binary sensors.
If LazyState cannot parse the attributes of its row as JSON, it prints
a message to the logger. Unfortunately, it passes `self` as a format
argument to that message, which causes its `__repr__` method to be
called, which then tries to retrieve `self.attributes` in order to
display them. This leads to an infinite recursion and a crash of the
entire core.
To fix, send the database row to be printed in the log message, rather
than the LazyState object that wraps around it.
* Add config flow for Waze Travel Time
* update translations
* setup entry is async
* fix update logic during setup
* support old config method in the interim
* fix requirements
* fix requirements
* add abort string
* changes based on @bdraco review
* fix tests
* add device identifier
* Update homeassistant/components/waze_travel_time/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* fix tests
* Update homeassistant/components/waze_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* log warning for deprecation message
* PR feedback
* fix tests and bugs
* re-add name to config schema to avoid breaking change
* handle if we get name from config in entry title
* fix name logic
* always set up options with defaults
* Update homeassistant/components/waze_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update config_flow.py
* Update sensor.py
* handle options updates by getting options on every update
* patch library instead of sensor
* fixes and make sure first update writes the state
* validate config entry data during config flow and entry setup
* fix input parameters
* fix tests
* invert if statement
* remove unnecessary else
* exclude helpers from coverage
* remove async_setup because it's no longer needed
* fix patch statements
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Added a new weather integration - Met Éireann
* Fix codespell error
* Update met_eireann to use CoordinatorEntity
* Remove deprecated platform setup
* Fix merge conflict
* Remove unnecessary onboarding/home tracking code
* Use common strings for config flow
* Remove unnecessary code
* Switch to using unique IDs in config flow
* Use constants where possible
* Fix failing tests
* Fix isort errors
* Remove unnecessary DataUpdateCoordinator class
* Add device info
* Explicitly define forecast data
* Disable hourly forecast entity by default
* Update config flow to reflect requested changes
* Cleanup code
* Update entity naming to match other similar components
* Convert forecast time to UTC
* Fix test coverage
* Update test coverage
* Remove elevation conversion
* Update translations for additional clarity
* Remove en-GB translation
- Remove unneeded excinfo to _LOGGER.exception
- Use f-strings
- Switch last_boot to utc
- Cache psutil/os calls used by multiple attributes in the same update cycle
* Add ClimaCell v4 API support
* fix tests
* use constants
* fix logic and update tests
* revert accidental changes and enable hourly and nowcast forecast entities in test
* use variable instead of accessing dictionary multiple times
* only grab necessary fields
* add _translate_condition method ot base class
* bump pyclimacell again to fix bug
* switch typehints back to new format
* more typehint fixes
* fix tests
* revert merge conflict change
* handle 'migration' in async_setup_entry so we don't have to bump config entry versions
* parametrize timestep test
* Add missing function in class.
write_coils was missing.
* Remove dead code.
The HA configuration secures that CONF_TYPE only contains legal values,
so having an empty assert to catch unknown values is dead code.
An empty assert is not informative.
* Reuse HA constants for serial configuration.
Reusing HA consts reduces the need for translation.
Sort/group constants in const.
* Change const name ATTR_* to CONF_*
* Correct wrong import
* ATTR_* for service and CONF_* for schemas.
* Revert change to service call.
* Rename CONF_TEMPERATURE -> ATTR_TEMPERATURE
Avoid possible division problem in set_temperature.
* Fix for issue #10498 Raspi GPIO binary_sensor produces unreliable responses ("Doorbell Scenario")
Changes overtaken from PR#31788 which was somehow never finished
* Fix for issue #10498 Raspi GPIO binary_sensor produces unreliable response. Changes taken over from PR31788 which was somehow never finished
* Remove unused code (pylint warning)
* Add Compensation Integration
Adds the Compensation Integration
* Add Requirements
add missing requirements to compensation integration
* Fix for tests
Fix files after tests
* Fix isort
ran isort
* Handle ADR-0007
Change the configuration to deal with ADR-0007
* fix flake8
Fix flake8
* Added Error Trapping
Catch errors.
Raise Rank Warnings but continue.
Fixed bad imports
* fix flake8 & pylint
* fix isort.... again
* fix tests & comments
fix tests and comments
* fix flake8
* remove discovery message
* Fixed Review changes
* Fixed review requests.
* Added test to test get more coverage.
* Roll back numpy requirement
Roll back numpy requirement to match other integrations.
* Fix flake8
* Fix requested changes
Removed some necessary comments.
Changed a test case to be more readable.
* Fix doc strings and continue
* Fixed a few test case doc strings
* Removed a continue/else
* Remove periods from logger
Removed periods from _LOGGER errors.
* Fixes
changed name to unqiue_id.
implemented suggested changes.
* Add name and fix unique_id
* removed conf name and auto construct it
* WRITE_COIL uses write_coils in case of an array.
WRITE_REGISTER uses write_register/write_registers depending
on whether value is singular or an array.
WRITE_COIL is modified to be similar and uses
write_coil/write_coils depending on whether value is singular or an
array.
* Update SERVICE_WRITE_COIL to allow list.
* Resolve rebase conflict.
Remove logging
* lint: fix elif after return
* fix attribution
* add tests for None valuea
* Remove Entity import
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Import SensorEntity
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Inherit SensorEntity
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* remove unused logging
* Use CoordinatorEntity
* Use type instead of name.
* add all entities
* add nice rounding to temperature and humidity
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Remove unit from garmin connect
* Remove unit from hvv departures
* Remove device class timestamp from device condition and trigger
* Remove unit from systemmonitor
* Use device class constant for timestamp in ring
* add config flow support to google_travel_time
* fix bugs and add strings
* fix import and add new test
* address comments in #43419 since this is a similar PR
* fix default name and test
* add unique ID and device info
* fix test
* feedback from waze PR
* continue incorporating feedback from waze PR
* final fixes and update tests
* call update in lambda
* Update homeassistant/components/google_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* additional fixes
* validate config entry data during config flow and config entry setup
* don't store entity
* patch dependency instead of HA code
* fixes
* improve tests by moving all patching to fixtures
* use self.hass instead of setting self._hass
* invert if
* remove unnecessary else
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
We also don't need to call `int()` anymore due to underlying fixes in
the python-vlc-telnet library.
I believe this is the last item extracted from PR #44776.
* Adding option for setpoint override mode
Temporary setpoint override mode can now be set on or off. 'Constant' setpoint override mode will be used when Temporary is set to off
* Changes after review comment
Added default value for the setpoint override mode
* Add zwave_js.bulk_set_partial_config_parameters service
* update to handle command status
* add test for awake node
* test using a device in service call
* Bump zwave-js-server-python to 0.23.0 and update integration to support schema changes
* refactor notification evenets a bit
* fix tests and bug fixes
* additional changes due to new PR
* add command class and command name
* use new event names so we can retain event property names
* handle command status being returned from async_set_config_parameter
* bump dependency version
* adjust log message to be consistent
* disable pylint warning
* Update homeassistant/components/zwave_js/services.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* add test for awake node
* switch async_get_registry to async_get
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix template fan default speed count
The default speed count was defaulting to 3 when percentage
was implemented instead of the documented value of 100
* Increase coverage
* remove unreachable code
Seems the code assumed a different `vlc_telnet` API.
Note that this doesn't address issues in `update()`, which will be
handled in a different PR.
PR extracted from #44776.
Some routers will lowercase all the hostnames. Since we
already lowercase hostnames for matching purposes, we now
pass the lowercased hostname to the integration.
Currently only roomba cared about this, and has been adjusted.
* Simplify maxcube integration
Device objects returned by maxcube-api dependency are stable, so
we do not need to resolve from the device address every time.
Also, refactor and unify how maxcube integration sets temperature & mode.
* Raise ValueError if missing parameters for set_temperature method
Raise a ValueError exception If set_temperature does not receive
a temperature parameter.
Also, document properly _set_target method.
* Use Type | None instead of Optional[Type] annotation
* Protect set_hvac_mode and set_preset_mode from unsupported parameters
* Change modbus configuration to new style.
The old (frozen) configuration is still supported, but when detected a big
warning is issued that it will soon be removed. This allows users to change
their configuration at their pace.
Clean configuration SCHEMAs and move common modbus parts
to MODBUS_SCHEMA (renamed from BASE_SCHEMA).
Add BASE_COMPONENT_SCHEMA to ensure common configuration of components.
All component define e.g. NAME, move these to a common schema.
change components (binary_sensor, sensor, switch) to new config
Add test set for modbus itself (old config and discovery_info).
Add test of devices discovery_info configuration
* Update discovery_info configuration for binary_sensor.
* Update discovery_info configuration for sensor.
* Update discovery_info configuration for switch.
* Review comments.
* update due to change in core
* flake8 problem.
* Correct log message.
* add should_poll property.
* Fix polling for Modbus binary sensor
* Fix polling for Modbus sensor
* Fix polling for Modbus switch
* Fix switch.
* Fix pytest errors.
* Update homeassistant/components/modbus/binary_sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/binary_sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/modbus.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/modbus/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* ToogleEntity -> SwitchEntity and add abastract
* Update homeassistant/components/modbus/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/modbus/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* removed if/else in test.
* Remove other if.
Co-authored-by: Vladimir Zahradnik <vladimir@zahradnik.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* ZHA lock code services and events
* ZHA Locks: A few more services, use the library functions
* Catch exception when command id is not in command list
* Add tests for lock code services
* Add tests for enable/disable
* Better document code slot ID shifting
* Simplify cluster commands
* git push --all origin
* Fix percentage to ordered list conversion
* Tests for mqtt fan and fixes
* Improve tests and error handling base config
* Additional tests
* Tests completed, small fixes
* Allow preset mode and percentages combined
* Remove raise in setup and update tests
* Alignment with fan entity mode
* Fix pylint for len-as-condition
* Remove python binary cache file from PR
* Additional tests on async_turn_on and fix
* Added comments for deprecation of speeds
* Schema checks before init
* Optimize pre schema checks
* Correct schema checks
* Update homeassistant/components/mqtt/abbreviations.py
Comment speeds for mqtt fan are deprecated not needed here
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Comment speeds for mqtt fan are deprecated not needed here
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Comment speeds for mqtt fan are deprecated not needed here
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Comment speeds for mqtt fan are deprecated not needed here
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Comment speeds for mqtt fan are deprecated not needed here
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Warnings for exceptions - testing speed_range
* Update homeassistant/components/mqtt/abbreviations.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
* Save with black
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add opportunity to define token for each message
* Update homeassistant/components/notify_events/notify.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add tests for Netatmo data handler
* Clean up coveragerc
* Move block to fixture
* Minor update
* Remove tests of implementation details for data handler
* Update homeassistant/components/netatmo/data_handler.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/netatmo/data_handler.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Import callback
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix missing glances temperature sensors (#44899)
* Revert matching rules for Glances
* Shorter if statement
Co-authored-by: J. Nick Koston <nick@koston.org>
* Revert long-line if statement
* Update if statement
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add tests for Netatmo sensor
* Fix coveragerc
* Remove freezegun dependency
* Use f-strings instead of string concatenation
* Update tests/components/netatmo/test_sensor.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Address comment on config options test
* Replace deprecated call to async_get_registry()
* Fix public weather sensor update test
* Clean up
* Prevent division by zero
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add proper percentage support to deCONZ fan integration
* Properly convert speed to percentage
* Remove disabled method
* Replace convert_speed with a dict
* update pypoint to 2.1.0
* Add properties and device_classes to constant
* Fix unique_ids for binary_sensors
* Update device icon
* Fallback to device_class icon.
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Just use known events
* Use DEVICE_CLASS_SOUND
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Increase test coverage of deCONZ device triggers
* Revert removed new line
* Found a way to explicitly assert that exceptions are raised
* Remove unnecessary block till done
* Fix unnecessary elif
* Fix review comments
* Remove helper tests
* Remove login details before logging stream source
* Convert to str before re
* Use compiled RE
* Add tests and filter log message in worker
* Update import
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* isort
Co-authored-by: Erik Montnemery <erik@montnemery.com>
maxcube-api dependency now supports using None as the
target temperature: in that case, it uses the scheduled
temperature in auto mode and current temperature in all
other modes.
We will use that feature when changing hvac_mode to auto and
selecting PRESET_NONE.
* ScreenLogic cleanup.
Bump screenlogicpy to 0.2.0.
Move heating functions from water_heater to climate platform.
Address notes from original PR.
* Fix temperature attribute
* Addressing notes.
Bump screenlogicpy to 0.2.1.
Made device_types constants.
Made (known) equipment flags constants.
Used dict.get() in places where None is the default.
Return fast with good _last_preset.
* Update homeassistant/components/screenlogic/climate.py
Let base entity handle state property.
Co-authored-by: J. Nick Koston <nick@koston.org>
* Patch integration setup functions.
* Exception, ATTR_TEMPERATURE notes
Co-authored-by: J. Nick Koston <nick@koston.org>
* Added handle_event for set_level command in dimmable devices
* refactor common code for dimmable devices
* Force tests
Silly change to force tests execution
* fix super()
* add rflink dim utils
* Improve uvc test camera
* Clean setup full config
* Clean setup partial config
* Set more camera defaults
* Clean setup partial config v31x
* Clean setup incomplete config
* Clean setup nvr errors during indexing
* Clean setup nvr errors during initialization
* Clean properties
* Fix motion recording mode properties
* Clean stream
* Clean login
* Clean login v31x
* Clean login tries both addres and caches
* Clean login fails both properly
* Remove not needed test
* Clean camera image error
* Test snapshot login retry
* Clean up
* Test enable and disable motion detection
* Times must be UTC
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Better status control on restore
* Better status control on restore
* fix code coverage
* Rollback hvac_mode initialization
I think I have better understood the handling of the `hvac_mode`.
I change the approach. Now the thermostat doesn't initialize until the switch is available.
* fix pyupgrade
* fix black
* Delete test_turn_on_while_restarting
HVAC mode should not be modified by the switch.
IMHO, this test does not make sense because if the switch is turned on the thermostat is not turning on (and not changing HVAC_MODE)
* Re add turn off if HVAC is off
If HVAC_MODE is off thermostat will not control heater switch. This can be because `initial_hvac_mode`, because state defaults to or because old_state.
IMHO it is preferable to be excessively cautious.
* Update climate.py
* Change warning message
* Fix black
* Fix black
* Add tests for Netatmo light
* Improve docstring
* Register the camera data class for the light platform
* Remove freezegun dependency
* Update tests
* Update tests/components/netatmo/test_light.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Deduplicate webhook test data
* Mock pytest to verify it is called
* Don't test internals
* Rename
* Assert light still on with erroneous event data
Co-authored-by: Erik Montnemery <erik@montnemery.com>