Commit graph

140 commits

Author SHA1 Message Date
Jan Bouwhuis
21affac571
Rename mqtt mixins module to entity.py (#126279) 2024-09-19 20:50:33 +02:00
Jan Bouwhuis
4c27bfbf7f
Cleanup removed options for mqtt climate (#125083) 2024-09-02 20:35:36 +02:00
Jan Bouwhuis
e13f8996f2
Fix Import ReceivePayloadType (#124431)
* Fix Import ReceivePayloadType

* Do not assert export `ReceivePayloadType` on mqtt integration level as helper should be used.
2024-08-22 20:13:30 +02:00
Marc Mueller
7453b7df63
Improve mqtt schema typing (#120407) 2024-06-25 13:03:18 +02:00
J. Nick Koston
811ec57c31
Convert mqtt entity discovery to use callbacks (#118200) 2024-05-26 16:12:40 -10:00
Jan Bouwhuis
b7f1f805fa
Simplify subscription mqtt entity platforms (#118177) 2024-05-26 09:25:54 -10:00
J. Nick Koston
80371d3a73
Reduce duplicate publish code in mqtt (#118163) 2024-05-26 01:22:54 -10:00
J. Nick Koston
5d37217d96
Avoid expensive inspection of callbacks to setup mqtt subscriptions (#118161) 2024-05-26 01:22:44 -10:00
J. Nick Koston
9be829ba1f
Make mqtt internal subscription a normal function (#118092)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-05-25 11:34:24 -10:00
Jan Bouwhuis
01f3a5a97c
Consequently ignore empty MQTT state payloads and set state to unknown on "None" payload (#117813)
* Consequently ignore empty MQTT state payloads and set state to `unknown` on "None" payload

* Do not change preset mode behavior

* Add device tracker ignoring empty state

* Ignore empty state for lock

* Resolve merge errors
2024-05-25 01:29:43 +02:00
Jan Bouwhuis
7522bbfa9d
Refactor mqtt callbacks for climate and water_heater (#118040)
* Refactor mqtt callbacks for climate and water_heater

* Reduce callbacks
2024-05-25 00:20:05 +02:00
Jan Bouwhuis
050fc73056
Refactor shared mqtt schema's to new module (#117944)
* Refactor mqtt schema's to new module

* Remove unrelated change
2024-05-23 01:12:25 +02:00
Jan Bouwhuis
1269031d11
Change min and max humidity for MQTT climate and humidifier (#114292)
Allow floats for humidity on mqtt platforms
2024-03-27 16:46:42 +01:00
Sid
6ee273a548
Clean up unneeded ruff noqa directives (#113616) 2024-03-16 09:48:37 -10:00
Jan Bouwhuis
488dae43d4
Improve lists for MQTT integration (#113184)
* Improve lists for MQTT integration

* Extra diagnostics tests

* Revert changes where the original version was probably faster

* Revert change to gather and await in series
2024-03-13 11:04:59 +01:00
Marc Mueller
59a6035d3f
Add empty line after module docstring [j-m] (#112700) 2024-03-08 09:01:29 -05:00
Jan Bouwhuis
545a34a849
Remove power_state_template from mqtt climate value template list (#110452) 2024-02-13 09:16:11 +01:00
Jan Bouwhuis
00947b708f
Remove aux heat support from mqtt climate (#109513) 2024-02-06 09:37:39 +01:00
G Johansson
5b9a3d5bd5
Add migrated ClimateEntityFeature to MQTT (#109419) 2024-02-03 12:08:58 +01:00
Jan Bouwhuis
6023980c2e
Set TURN_ON and TURN_OFF feature on MQTT climate entities (#109146) 2024-01-30 19:35:46 +01:00
Jan Bouwhuis
8c4a29c200
Remove unneeded preset_mode checks for mqtt climate (#107190) 2024-01-05 09:27:48 +01:00
J. Nick Koston
6d14c265b4
Ensure MQTT attributes are bound to the respective platform entity (#106316) 2023-12-23 10:39:25 -10:00
Aarni Koskela
706add4a57
Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
Jan Bouwhuis
7ca264e746
Fix raising vol.Invalid during mqtt config validation instead of ValueError (#103764) 2023-11-13 22:59:03 +01:00
Jan Bouwhuis
4a4d2ad743
Fix mqtt config validation error handling (#103210)
* Fix MQTT config check

* Fix handling invalid enity_category for sensors

* Improve docstr

* Update comment

* Use correct util for yaml dump
2023-11-02 10:57:00 +01:00
Jan Bouwhuis
25ab622b51
Rename mqtt entry setup helpers to reflect their purpose (#102378)
Rename mqtt entry setup helpers
2023-10-20 13:36:24 +02:00
Jan Bouwhuis
e26a2596af
Do not fail MQTT setup if climate's configured via yaml can't be validated (#102303)
Add climate
2023-10-19 21:14:45 +02:00
Jan Bouwhuis
59a26010ba
Cleanup redundant mqtt entity constructors (#100939)
* Remove redundant mqtt entity constructors

* Remove unrelated change

* Follow up comment

* Revert changes to mqtt update platform

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-26 23:03:11 +02:00
Jan Bouwhuis
384adb1c87
Avoid redundant calls to async_write_ha_state in MQTT climate & water_heater (#100696)
Limit state writes for mqtt climate & water_heater
2023-09-22 11:22:57 +02:00
Jan Bouwhuis
0f58007e97
Deprecate aux heat for mqtt climate (#98666) 2023-08-22 22:39:55 +02:00
Jan Bouwhuis
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
Jan Bouwhuis
fb00cd8963
Add turn on/off support for mqtt water_heater (#97197) 2023-07-25 13:33:02 +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
a4d4eb3871
Remove support for mqtt climate option CONF_POWER_STATE_TOPIC and template (#96771)
Remove support CONF_POWER_STATE_TOPIC and template
2023-07-17 17:56:39 +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
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
5fb41777fd
Cleanup MQTT schema from previous removed options (#94110)
* Cleanup removed validator schema option of #62680

* Cleanup removed climate options and abbreviations

* Removed white_value options for mqtt light

* Remove whaite value from mqtt json light
2023-06-09 12:12:20 +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
8e9eb400bf
Refactor async_set_temperature for mqtt climate (#94166) 2023-06-07 20:34:59 +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
fa4d9b2c08
Rework mqtt climate platform to simplify implementation water_heater platform (#93751)
* Rework to simplify water_heater platform

* Remove unused type hints

* Split shared and specific subscriptions

* Convert to abstract class
2023-05-31 11:12:58 +02:00
Jan Bouwhuis
661aedde90
Remove MQTT platform schema warnings (#93785) 2023-05-31 09:02:48 +02:00
Jan Bouwhuis
03e9dff327
Allow resetting MQTT climate attributes and ignore empty values (#87936)
Allow reseting MQTT climate attributes
2023-02-15 16:31:49 +01:00
Franck Nijhof
fcb612cd6f
Collection of code styling tweaks (#87344) 2023-02-03 23:51:27 +01:00
Jan Bouwhuis
64e235285d
Deprecate power_command_topic for MQTT climate (#85229)
* Deprecate mode_command_topic for MQTT climate

* Correct deprecation and remove support release inf

* Do not use future tense for comment

* Extend deprecation period to 6 months
2023-01-12 09:49:14 +01:00
Franck Nijhof
800b8abe39
Code styling tweaks to the MQTT integration (#85463) 2023-01-08 22:07:10 +01:00
Jan Bouwhuis
b29c96639b
Correct initial config of MQTT climate (#85097)
* Do not reset MQTT climate state on re-config

* More corrections

* Correct startup behavior in optimistic mode
2023-01-04 10:29:02 +01:00
Mike K
799d527fb5
Add MQTT climate setting for current humidity (#84592)
* MQTT Climate: Add support for setting the current humidity via MQTT

* MQTT Climate: Add configuration constants related to setting the target humidity

* MQTT Climate: Add support for setting the humidity's state topic & template

* MQTT Climate: Add support for setting the initial humidity

* MQTT Climate: Add support for setting the humidity's command topic & template

* MQTT Climate: Add support for setting the min/max humidity

* MQTT Climate: Fix style & tests

* MQTT Climate: Set the initial humidity to None

* MQTT Climate: Rename _set_mqtt_attribute to _set_climate_attribute and handle_temperature_received to handle_climate_attribute_received

* MQTT Climate: Copy humidity range validation from MQTT Humidifier

* MQTT Climate: Remove CONF_HUMIDITY_INITIAL

* MQTT Climate: Only enable support for TARGET_HUMIDITY when the command topic is set

* MQTT Climate: Check if setting the target humidity is supported before actually setting it

* MQTT Climate: Make sure that CONF_HUMIDITY_COMMAND_TOPIC has been configured when setting CONF_HUMIDITY_STATE_TOPIC

* MQTT Climate: Fix broken tests

* MQTT Climate: Add test for optimistically setting the target humidity

* MQTT Climate: Remove references to "temperature" in handle_climate_attribute_received

* MQTT Climate: Add additional humidity-related tests

* MQTT Climate: Remove supported feature check in handle_target_humidity_received

It's not needed because this is covered by the `valid_humidity_state_configuration` validation.

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

* MQTT Climate: Remove supported feature check in async_set_humidity

It is covered by the base Climate entity.

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

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2023-01-03 22:57:20 +01:00
Jan Bouwhuis
9cf86b234b
Add optimistic option for MQTT climate (#84777) 2023-01-02 11:39:42 +01:00