Jan Bouwhuis
31d11b2362
Add re-auth flow for MQTT broker username and password ( #116011 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-23 22:26:01 +02:00
Sid
895f73d8e4
Enable Ruff A001 ( #115654 )
2024-04-21 23:25:27 +02:00
J. Nick Koston
423544401e
Convert MQTT to use asyncio ( #115910 )
2024-04-21 22:33:58 +02:00
Marc Mueller
443bfee16d
Replace partial annotations ( #114177 )
2024-03-28 18:33:39 +01:00
Jan-Philipp Benecke
22b14d83e8
Use setup_test_component_platform
helper for sensor entity component tests instead of hass.components
( #114316 )
...
* Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components`
* Missing file
* Fix import
* Remove invalid device class
2024-03-28 12:07:55 +01:00
Jan Bouwhuis
3dc8df2403
Get ServiceValidationError message from translation cache only ( #113704 )
...
* Get ServiceValidationError message from translation cache only
* Remove message for NotValidPresetModeError
2024-03-18 14:42:21 +01:00
Sid
d5fd005db8
Add ruff rule PIE808 ( #113621 )
2024-03-17 09:56:26 +01:00
Jan Bouwhuis
c608d1cb85
Fix mqtt platform setup race ( #112888 )
2024-03-10 08:36:17 -10:00
Jan Bouwhuis
caaa03536b
Cleanup mqtt PLATFORMS constant and CI-test platform filters ( #112847 )
2024-03-09 23:48:54 +01:00
Jan Bouwhuis
3b0ea52167
Allow Just-in-Time platform setup for mqtt ( #112720 )
...
* Allow Just-in-Time platform setup for mqtt
* Only forward the setup of new platforms
* Fix new platforms being setup at reload + test
* Revert not related changes
* Remove unused partial
* Address comments, only import plaforms if needed
* Apply suggestions from code review
* Add multipl platform discovery test
* Improve test
* Use a lock per platform
2024-03-09 21:55:00 +01:00
Marc Mueller
959826c4b4
Update byte string formatting ( #112752 )
2024-03-08 20:32:40 +01:00
Marc Mueller
32f3f46542
Add empty line after module docstring (2) [tests.components] ( #112737 )
2024-03-08 19:16:21 +01:00
Jan Bouwhuis
c13231fc00
Improve mqtt value template error logging ( #110492 )
...
* Refactor mqtt value template error logging
* Remove import
2024-03-04 08:49:12 +01:00
Jan Bouwhuis
1b2e669302
Improve handling mqtt command template exceptions ( #110499 )
...
* Improve handling mqtt command template exceptions
* Fix test
* Cleanup stale exception handler
* Throw on topic template exception
2024-02-26 11:04:55 +01:00
J. Nick Koston
5b8591ec7e
Avoid reschedule churn in Storage.async_delay_save ( #111091 )
...
* Avoid circular import in Storage.async_delay_save
We call Storage.async_delay_save for every entity being added or removed
from the registry. The late import took more time than everything else
in the function.
* Avoid reschedule churn in Storage.async_delay_save
When we are adding or removing entities we will call async_delay_save
quite often which has to add and remove a TimerHandle on the event loop
which can add up when there are a lot of registry items changing.
If the timer handle still has 80% of the time remaining on it
we will avoid resceduling and let it fire at the time the
original async_delay_save call was made. This ensures we
do not force the event loop to rebuild its heapq because
too many timer handlers were cancelled at once
* div0
* add coverage for 0 since we had none
* fix bad conflict
* tweaks
* tweaks
* tweaks
* tweaks
* tweaks
* tweaks
* more test fixes
* mqtt tests rely on event loop overhead
2024-02-24 08:46:00 +01:00
Jan Bouwhuis
c048b840fc
Do not directly call async_setup_entry in MQTT tests ( #111010 )
2024-02-21 07:47:30 +01:00
Jan Bouwhuis
09f1ec78a5
Handle template errors on MQTT payload handling ( #110180 )
...
* Handle template errors on MQTT payload handling (alt)
* Handle mqtt event en image template errors correctly
2024-02-13 10:59:55 +01:00
J. Nick Koston
04dccc7ec6
Migrate mqtt to use async_update_entry to alter config entries ( #110407 )
2024-02-12 21:38:13 +01:00
Marc Mueller
a9147cf3dd
Use builtin TimeoutError [k-n] ( #109681 )
2024-02-05 12:08:18 +01:00
J. Nick Koston
c399cab427
Small speed up to checking core state ( #107845 )
2024-01-18 08:41:32 -10:00
Jan Bouwhuis
26058bf922
Add serial_number attribute to MQTT device properties ( #108105 )
2024-01-16 14:02:34 +01:00
Jan Bouwhuis
c7b6c9da31
Remove work-a-round for mqtt sensors with an entity_category set to config
( #107199 )
...
* Remove work-a-round for mqtt sensors with an entity_category set to `config`
* Cleanup strings
2024-01-05 09:24:52 +01:00
Jan-Philipp Benecke
ff85d0c290
Migrate mqtt tests to use freezegun ( #105414 )
2023-12-10 09:25:16 +01:00
Jan-Philipp Benecke
9326ea09a5
Update m* tests to use entity & device registry fixtures ( #103980 )
2023-11-15 10:33:11 +01:00
Jan Bouwhuis
db97e7588b
Fix entity category for binary_sensor fails setup ( #103511 )
2023-11-08 14:10:24 +01:00
Jan Bouwhuis
cbccdbc6fa
Fix entity category for sensor fails mqtt sensor platform setup ( #103449 )
2023-11-08 00:03:47 +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
daee5baef6
Fix mqtt is not reloading without yaml config ( #103159 )
2023-11-01 09:25:56 +01:00
Jan Bouwhuis
485c52568d
Fix error handling on subscribe when mqtt is not initialized ( #101832 )
2023-10-20 15:16:45 +02:00
Jan Bouwhuis
d149bffb07
Do not fail MQTT setup if lights configured via yaml can't be validated ( #101649 )
...
* Add light
* Deduplicate code
* Follow up comment
2023-10-19 17:34:43 +02:00
Jan Bouwhuis
c377cf1ce0
Do not fail mqtt entry on single platform config schema error ( #101373 )
...
* Do not fail mqtt entry on platform config
* Raise on reload with invalid config
* Do not store issues
* Follow up
2023-10-19 12:06:33 +02:00
Jan Bouwhuis
74464fd94e
Ensure coverage mqtt entry disabled test ( #101617 )
2023-10-07 23:08:34 +02:00
Jan Bouwhuis
0ded0ef4ee
Use dataclass instead of attr slots for mqtt PublishMessage and ReceiveMessage ( #101062 )
...
Use dataclass instead of attr slots
2023-09-28 20:36:30 +02:00
Jan Bouwhuis
dc1d3f727b
Fix handling reload with invalid mqtt config ( #101015 )
...
Fix handling reload whith invalid mqtt config
2023-09-27 20:59:19 -04:00
Jan Bouwhuis
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
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
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
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
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
Jan Bouwhuis
661aedde90
Remove MQTT platform schema warnings ( #93785 )
2023-05-31 09:02:48 +02: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
a05c20a498
Filter replaying unrelated retained MQTT messages when subscribing to share topics ( #88826 )
...
* Do not replay already processed retained subscr.
* Add tests
* Always replay wildcards
* Update tests for debouncer
* Rework for retained topics
* Fix test
* Correct comment
* Add cleanup and test
* Fix key error
* Correct helper
* Rename mock
* Add comment on function _retained_init
* Always replay initial retained payload
* Apply suggestion moving msg.retain to outer check
* Improve test on edge case
* Improve comment formatting
* Follow up comment - improve comments on test
* Update homeassistant/components/mqtt/client.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-05-12 15:23:05 +02:00
Jan Bouwhuis
25549eed85
Debounce and group mqtt unsubscribes ( #92201 )
...
* Debounce MQTT unsubscribes and merge to one call
* Make _async_unsubscribe a callback
* Make sure unsubscribes are processed
* Move debug log out of lock
* Reduce calls and raise outside lock
* Cancel any unsubscribe when queing
* Copy pending unsubscribes
* Only convert topics to list once
* No copy needed
* Typo in comment
2023-05-09 16:36:19 +02:00
Jan Bouwhuis
689c6fbef7
Merge pending MQTT subscribes to a single call to the paho client ( #92172 )
...
* Merge mqtt subscribes in one call
* Cleanup
* cleanup, log outside of lock
* Remove function wrapper
* Add test that we bundle subscriptions
2023-05-08 15:37:25 +02:00
Jan Bouwhuis
cff7829a8d
Fix mqtt subscribe debouncer initial delay too long when birth message is disabled ( #92188 )
...
Fix mqtt subscribe deboucer initial delay
2023-04-28 18:56:22 +02:00
Jan Bouwhuis
4132f08146
Remove check on remove deprecated call back for mqtt subscribe ( #91464 )
...
Remove check on deprecated callback wrapper
2023-04-18 16:02:24 +02:00
Jan Bouwhuis
f37b1fc9f8
Improve tests subscribe connection for mqtt status ( #91463 )
...
Improve test_subscribe_connection_status
2023-04-15 15:29:31 -04:00
Jan Bouwhuis
bb15923968
Rename MQTT entry mock and cleanup ( #91223 )
...
Rename to mqtt_mock_entry and cleanup
2023-04-12 09:43:03 +02:00
Jan Bouwhuis
aa68d1d617
Cleanup mqtt CONFIG_SCHEMA_ENTRY ( #90791 )
2023-04-11 17:41:38 +02:00