* 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
* 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>
* Handle numeric versions in mqtt update
* Remove need for type:ignore
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Announce a deprecated callback will stop working
* Use 2 months grace period
* Use 2 months grace period
* Use 2 months grace period
* Add deprecation comment to tests
* Add Mqtt WebSockets support
* Fix tests
* Add testing websockets options
* Add tests transport settings
* Do not use templates for ws_headers
* Use json helper - small corrections
* Improve typing device_tracker discovery
* Improve typing device_tracker yaml
* Add test source_type attribute
* Follow up comment
* Initialize at `__init__` not at class level.
* Use full name for return variable
* Correct import, remove assert
* Use AsyncSeeCallback
* Move advanced broker settings to entry
* Add repair issue for deprecated settings
* Split CONFIG_SCHEMA
* Do not store certificate UI flags in entry
* Keep entered password in next dialog
* Do not process yaml config in flow
* Correct typo
* Do not write old state sharing availability topic
* Add a test
* Support for all availability topics
* delay async_write_ha_state till last callback
* Process write req after processing callback jobs
* Do not count subscription callbacks
* Simplify
* Stale docsting
* No topic needed for delays state write
* No need to clear when reloading
* Move test to test_mixins.py
* Only set up sensor platform for test
* Add MQTT debug_info to dataclass
* Remove total attr, assign factory
* Rename typed dict to MqttDebugInfo and use helper
* Split entity and trigger debug info
* Refactor
* More rework
* Use dataclass to reference hass.data globals
* Add discovery_registry_hooks to dataclass
* Move discovery registry hooks to dataclass
* Add device triggers to dataclass
* Cleanup DEVICE_TRIGGERS const
* Add last_discovery to data_class
* Simplify typing for class `Subscription`
* Follow up on comment
* Redo suggested typing change to sasisfy mypy
* Restore typing
* Add mypy version to CI check logging
* revert changes to ci.yaml
* Add docstr for protocol
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Mypy update after merging #78399
* Remove mypy ignore
* Correct return type
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Cleanup discovery on entity removal
* Add test
* Cleanup and test
* Test with clearing payload not unique id
* Address comments
* Tests cover and typing
* Just pass hass
* reuse code
* Follow up comments revert changes to cover tests
* Add test unique_id has priority over disabled
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Common tests availability
* Common tests attributes
* Common tests unique id
* Common tests discovery
* Common tests encoding
* Common tests device info
* Common tests entity_id updated
* Common tests entity debug info
* Common test entity category
* Common tests setup reload unload+corrections
* Cleanup sweep
* Comments from curent change
* Cleanup
* Remove unused legacy config
* Wait for unsubscribes
* Spelling comment
* Remove notify_all() during _register_mid()
* Update homeassistant/components/mqtt/client.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Correct handling reload manual set up MQTT items
* Save and restore device trigger subscriptions
* Clarify we are storing all remaining subscriptions
Co-authored-by: Erik Montnemery <erik@montnemery.com>