Commit Graph
695 Commits
Author SHA1 Message Date
Jan BouwhuisandJ. Nick Koston c3841f8734 Rework on mqtt certificate tests (#99503)
* Shared fixture on TEMP_DIR_NAME mock in MQTT tests

* Improve mqtt certificate file tests

* Update tests/components/mqtt/test_util.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update tests/components/mqtt/conftest.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Avoid blocking code

* typo in sub function

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-02 19:26:11 +02:00
Jan Bouwhuis 3d1efaa4ad Freeze time for MQTT sensor expire tests (#99496) 2023-09-02 04:10:57 -05:00
Jan Bouwhuis 49897341ba Add lawn_mower platform to MQTT (#98831)
* Add MQTT lawn_mower platform

* Use separate command topics and templates

* Remove unrelated change
2023-08-25 17:56:22 +02:00
Jan Bouwhuis 948b34b045 Do not force update mqtt device_tracker (#98838) 2023-08-24 20:09:14 +02:00
Jan Bouwhuis 8b232047c4 Add origin info support for MQTT discovered items (#98782)
* Add integration info support for MQTT discovery.

* Moving logs to discovery

* Revert adding class property

* Rename to origin

* Follow up comments
2023-08-24 09:50:39 +02:00
Jan Bouwhuis 0f58007e97 Deprecate aux heat for mqtt climate (#98666) 2023-08-22 22:39:55 +02:00
Jan BouwhuisandErik Montnemery 5ef6c03610 Log entity_id payload and template on MQTT value template error (#98353)
* Log entity_id payload and template on error

* Also handle cases with default values.

* Do not log payload twice

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Tweak test to assert without payload

* black

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-18 13:05:53 +02:00
9fdad592c2 Add option to disable MQTT Alarm Control Panel supported features (#98363)
* Make MQTT Alarm Control Panel features conditional

The MQTT Alarm Control Panel currently enables all features (arm home,
arm away, arm night, arm vacation, arm custom bypass) unconditionally.
This clutters the interface and can even be potentially dangerous, by
enabling modes that the remote alarm may not support.

Make all the features conditional, by adding a new "supported_features"
configuration option, comprising a list of the supported features as
options. Feature enablement seems inconsistent across the MQTT
component; this implementation is most alike to the Humidifier modes
option, but using a generic "supported_features" name that other
implementations may reuse in the future.

The default value of this new setting remains to be all features, which
while it may be overly expansive, is necessary to maintain backwards
compatibility.

* Apply suggestions from code review

* Use vol.Optional() instead of vol.Required() for "supported_features".
* Move the initialization of _attr_supported_features to _setup_from_config.

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Apply suggestions from emontnemery's code review

* Use vol.In() instead of cv.multi_seelct()
* Remove superfluous _attr_supported_features initializers, already
  present in the base class.

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Add invalid config tests for the MQTT Alarm Control Panel

* Set expected_features to None in the invalid MQTT Alarm Control Panel tests

* Add another expected_features=None in the invalid tests

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-18 08:23:48 +02:00
Jan Bouwhuis c010b97abf Improve test recovery MQTT certificate files (#98223)
* Improve test recovery MQTT certificate files

* Spelling
2023-08-16 09:07:14 +02:00
Erik Montnemery 2e1a5ddf2b Don't allow creating device if config entry does not exist (#98157)
* Don't allow creating device if config entry does not exist

* Fix test

* Update test
2023-08-10 22:09:13 -04:00
Erik Montnemery 13a9b83ed3 Adjust mqtt tests which create devices (#98202) 2023-08-10 18:23:55 +02:00
Franck Nijhof 868a5f377f Ruff: isort don't split imports based on trailing comma (#98162) 2023-08-10 14:27:03 +02:00
Jan BouwhuisandErik Montnemery 5c9bce9eac Allow float for inital MQTT climate temperature (#97995)
* Allow float for inital MQTT climate temperature

* Update tests/components/mqtt/test_climate.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-08 23:44:49 +02:00
Marc Mueller 37885400c9 Fix mqtt test DeprecationWarnings (#97734) 2023-08-04 09:21:36 +02:00
9c6c391eea Offer work- a-round for MQTT entity names that start with the device name (#97495)
Co-authored-by: SukramJ <sukramj@icloud.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-01 10:03:08 +02:00
Jan Bouwhuis 3fcfe7d0c6 Set mqtt entity name to null when it is a duplicate of the device name (#97304) 2023-07-27 09:23:23 +02:00
Jan Bouwhuis fb00cd8963 Add turn on/off support for mqtt water_heater (#97197) 2023-07-25 13:33:02 +02:00
Franck Nijhof 86708b5590 Update ruff to v0.0.280 (#97102) 2023-07-23 22:00:26 +02:00
Jan BouwhuisandFranck Nijhof 1b8e03bb66 Add MQTT event entity platform (#96876)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-07-23 14:42:14 +02:00
Jan Bouwhuis 9a5774a95d Apply common entity schema for MQTT Scene (#96949) 2023-07-22 18:00:27 +02:00
Jan Bouwhuis 447fbf58c9 Change naming of MQTT entities to correspond with HA guidelines (#95159)
* Set has_entity_name if device_name is set

* revert unneeded formatting change

* Add image platform

* Follow up comment

* Don't set `has_entity_name` without device name

* Only set has_entity_name if a valid name is set

* Follow device_class name and add tests

* Follow up comments add extra tests

* Move to helper - Log a warning

* fix test

* Allow to assign None as name explictly

* Refactor

* Log info messages when device name is not set

* Revert scene schema change - no device link

* Always set has_entity_name with device mapping

* Always set `_attr_has_entity_name`

* Cleanup
2023-07-21 12:52:10 +02:00
Jan Bouwhuis b504665b56 Do not override extra_state_attributes property for MqttEntity (#96890) 2023-07-21 06:35:58 +02:00
Jan BouwhuisandErik Montnemery 7c22225cd1 Allow ADR 0007 compliant schema for mqtt (#94305)
* Enforce listed entities in MQTT yaml config

* Add tests for setup with listed items

* Fix test

* Remove validator add comment

* Update homeassistant/components/mqtt/__init__.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-07-18 14:29:45 +02:00
Erik Montnemery 7539cf25be Don't require passing identifiers to DeviceRegistry.async_get_device (#96479)
* Require keyword arguments to DeviceRegistry.async_get_device

* Update tests

* Update tests

* Don't enforce keyword arguments
2023-07-13 13:39:25 -04:00
Jan Bouwhuis efcaad1179 Fix handling MQTT light brightness from zero rgb (#96286)
* Fix handling MQTT light brightness from zero rgb

* Fix log message
2023-07-11 14:22:12 -04:00
Jan Bouwhuis f3e55e96f4 Improve test coverage mqtt vacuum (#96288) 2023-07-11 10:16:00 +02:00
Jan Bouwhuis beff19f93c Improve mqtt tag schema logging and avoid tests that use xfail (#95711)
Improve schema logging and tests
2023-07-11 10:12:31 +02:00
Jan Bouwhuis 30578d6236 Deprecate mqtt vacuum with legacy schema (#95836)
* Deprecate mqtt vacuum with legacy schema

* Consistent comments

* Correct comment

* Remove persistence option

* Adjust string, mention restart

* Update deprecation comment
2023-07-11 09:54:28 +02:00
Erik Montnemery 96c71b214f Check supported features in calls to vacuum services (#95833)
* Check supported features in vacuum services

* Update tests

* Add comment
2023-07-10 13:05:47 +02:00
Erik Montnemery 2ca648584d Update mqtt vacuum supported features (#95830)
* Update mqtt vacuum supported features

* Update test
2023-07-04 14:18:42 +02:00
Jan Bouwhuis 0856121046 Add action topic to MQTT humidifier (#95212)
* Add action topic to MQTT humidifier

* Add tests
2023-06-28 14:21:15 +02:00
Franck Nijhof 3e85a29b86 Move overlapping pylint rules to ruff, disable mypy overlap (#94359) 2023-06-27 17:42:46 +02:00
Erik Montnemery e9eb366f3b Improve MQTT image tests (#95359) 2023-06-27 13:53:38 +02:00
Jan BouwhuisandErik 4d05a3ae79 Add url support for mqtt image platform (#95249)
* Add url support for mqtt image platform

* Refactor url fetch code to use base platform

* Update after rebase

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-06-27 12:49:31 +02:00
Jan Bouwhuis 1029bcbbd3 Add mqtt image platform (#94769)
* Add mqtt image platform

* Follow up comments

* Use separate topics

* Set last_ image to `None` on error

* Fix encoding and schema validation

* Assing None to last_image when get image fails

* Follow up comment

* Remove content_type validation

* Add validation

* Rename options according suggestions

* Remove url_topic / template feature from PR

* Always set content_type
2023-06-26 14:42:24 +02:00
Jan Bouwhuis 3c86497bc8 Improve mqtt climate turn_on and turn_off service (#94832)
* Improve mqtt climate turn_on and turn_off service

* Remove POWER_COMMAND_TOPIC when mode is changed

* Call super
2023-06-22 13:46:14 +02:00
Jan Bouwhuis 31f845bfe0 Add current_humidity attribute to mqtt humidifier (#94955) 2023-06-21 19:19:26 +02:00
Jan Bouwhuis 4def901ecc Ignore empty status update for mqtt number (#94800) 2023-06-20 23:04:01 +02:00
Erik Montnemery fd822bce56 Replace assert_lists_same with pytest_unordered in integrations h-m (#94901) 2023-06-20 20:16:25 +02:00
Franck Nijhof be05a749c5 Add preheating HVAC action to climate (#94677)
* Add preheating HVAC action to climate

* Fix MQTT tests
2023-06-15 22:16:12 -04:00
Jan Bouwhuis 82b9a31ea7 Improve logging of mqtt discovery message errors (#94491)
* Improve logging on mqtt discovery message errors

* Create shared helper

* Apply suggestion

* Catch base class vol.Invalid
2023-06-12 21:28:28 +02:00
Jan Bouwhuis c756c7aceb Cleanup help_setup_helper in common mqtt tests (#94482) 2023-06-12 20:18:05 +02:00
Jan Bouwhuis c984604a6c Refactor some mqtt tests not the just use schema validation (#94330)
Remove help_test_validate_platform_config
2023-06-09 12:30:26 +02:00
hookedonunix 18cbc9b4c3 Add Water Heater platform to MQTT integration (#93644)
* Add Water Heater entity to MQTT

* Adding tests for Water Heater

* Remove duplicate line and unneeded var declaration

* Remove target temp range and away mode

* Move common Temperature Control conf to const

* Remove unnecessary platform schema and temp check

* Add common value template key test

* Use MqttTemperatureControl in Water Heater

* Move operation mode out of MqttTemperatureControl

* Remove unecessary attribute declaration

* Remove default min/max temp and auto init attr

* Fix mqtt water heater initial temp conversion

* Make async_set_temperature common

* Fix init temp comment

* Merge value_template_keys into get_with_templates

* Remove unnecessary operation_mode overriding

* Add async_set_temperature to water heater

* Fix docstring comments
2023-06-08 17:38:30 +02:00
Jan Bouwhuis 437de7c2a3 Fix mqtt climate initial temperature conversion and precision (#93965)
* Fix mqtt climate initial temperature conversion

* Avoid changing hass temperature_unit

* Update comment
2023-06-05 17:02:31 +02:00
Jan Bouwhuis 661aedde90 Remove MQTT platform schema warnings (#93785) 2023-05-31 09:02:48 +02:00
Jan Bouwhuis 3a7f9ab57d Remove mqtt sensor support for last_reset_topic (#93792)
* Remove mqtt sensor support for `last_reset_topic`

* Add cases for empty last reset messages
2023-05-30 21:07:07 -04:00
Jan Bouwhuis c44a7fe358 Do not trigger reload when unloading or reloading MQTT entry (#93588)
* Do not trigger reload when unloading MQTT entry

* More cleanup

* cleanup async_reload_manual_mqtt_items

* Add test

* Improve test

* Remove unuse mocks from test

* Add discovery item in test
2023-05-29 15:44:09 +02:00
Jan Bouwhuis d852ba8b09 Remove redundant stub_blueprint_populate fixture for MQTT integration (#93570)
Remove redundant stub_blueprint_populate fixture
2023-05-26 08:13:45 +02:00
Jan Bouwhuis ec98e22330 Add type hints for stub_blueprint_populate fixture (#93568)
Add typehints for stub_blueprint_populate fixture
2023-05-26 08:13:13 +02:00