Commit graph

264 commits

Author SHA1 Message Date
Jan Bouwhuis
5b4dd07189
Deprecate topic_template and payload_template for mqtt publish action ()
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-19 10:10:38 +02:00
Jan Bouwhuis
843fae825f
Revert "Remove stale template_topic code for mqtt publish service" ()
Revert "Remove stale `template_topic` code for mqtt publish service ()"

This reverts commit 5b25c24539.
2024-07-17 17:56:34 +02:00
Jan Bouwhuis
acb4a92628
Revert "Add mqtt automation publish test with template rendering" () 2024-07-11 09:36:14 +02:00
Jan Bouwhuis
71e5ffb2bd
Add mqtt automation publish test with template rendering () 2024-07-10 21:17:27 +02:00
Jan Bouwhuis
5b25c24539
Remove stale template_topic code for mqtt publish service () 2024-07-09 18:22:08 +02:00
Jan Bouwhuis
f3c76cd698
Split mqtt client tests () 2024-06-27 19:37:43 +02:00
Jan Bouwhuis
32e64f7911
Cleanup mqtt platform tests part 4 (init) () 2024-06-26 16:57:41 -05:00
Jan Bouwhuis
aa05f73210
Add fixture to synchronize with debouncer in MQTT tests ()
* Add fixture to synchronze with debouncer in MQTT tests

* Migrate more tests to use the debouncer

* Migrate more tests

* Migrate util tests

* Improve mqtt on_callback test using new fixture

* Improve test_subscribe_error

* Migrate other tests

* Import EnsureJobAfterCooldown from `util.py` but patch `client.py`
2024-06-25 14:26:20 +02:00
Jan Bouwhuis
1d16cbec96
Move mqtt debouncer to mqtt utils () 2024-06-25 10:33:58 +02:00
Jan Bouwhuis
a7200a70b2
Set up mqtt tests from client fixture of mqtt entry setup fixture, not both ()
* Fix entry setup and cleanup issues in mqtt tests

* Reduce changes by using mqtt_client_mock alias

* Reduce sleep time where possibe
2024-06-24 19:42:32 +02:00
Jan Bouwhuis
f1fd52bc30
Fix issue in mqtt fixture calling disconnect handler () 2024-06-23 10:37:08 -05:00
Jan Bouwhuis
60ba80a28d
Only (re)subscribe MQTT topics using the debouncer ()
* Only (re)subscribe using the debouncer

* Update test

* Fix test

* Reset mock
2024-06-19 23:57:18 +02:00
Jan Bouwhuis
6eb9d1e01d
Gracefully disconnect MQTT entry if entry is reloaded () 2024-06-18 09:29:22 +02:00
epenet
2c7022950c
Fix import-outside-toplevel pylint warnings in tests () 2024-06-11 14:57:50 +02:00
Marc Mueller
7195a21126
Fix Generator annotations in tests (2) () 2024-06-07 08:34:38 +02:00
J. Nick Koston
67b3be8432
Remove useless threading locks in mqtt () 2024-06-04 14:21:03 -05:00
epenet
089874f818
Move mock_hass_config fixture to decorator () 2024-06-04 16:05:56 +02:00
Jan Bouwhuis
39f5f30ca9
Revert "Allow MQTT device based auto discovery" ()
Revert "Allow MQTT device based auto discovery ()"

This reverts commit 585892f067.
2024-06-03 22:30:37 +02:00
Jan Bouwhuis
585892f067
Allow MQTT device based auto discovery ()
* Add MQTT device based auto discovery

* Respect override of component options over shared ones

* Add state_topic, command_topic, qos and encoding as shared options

* Add shared option test

* Rename device.py to schemas.py

* Remove unused legacy `platform` attribute to avoid confusion

* Split validation device and origin info

* Require `origin` info on device based discovery

* Log origin info for only once for device discovery

* Fix tests and linters

* ruff

* speed up _replace_all_abbreviations

* Fix imports and merging errors - add slots attr

* Fix unrelated const changes

* More unrelated changes

* join string

* fix merge

* Undo move

* Adjust logger statement

* fix task storm to load platforms

* Revert "fix task storm to load platforms"

This reverts commit 8f12a5f251.

* bail if logging is disabled

* Correct mixup object_id and node_id

* Auto migrate entities to device discovery

* Add device discovery test for device_trigger

* Add migration support for non entity platforms

* Use helper to remove discovery payload

* Fix tests after update branch

* Add discovery migration test

* Refactor

* Repair after rebase

* Fix discovery is broken after migration

* Improve comments

* More comment improvements

* Split long lines

* Add comment to indicate payload dict can be empty

* typo

* Add walrus and update comment

* Add tag to migration test

* Join try blocks

* Refactor

* Cleanup not used attribute

* Refactor

* Move _replace_all_abbreviations out of try block

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-29 11:12:05 +02:00
epenet
0f8588a857
Rename calls fixture in mqtt tests ()
Rename calls fixture in mqtt
2024-05-29 09:25:34 +02:00
J. Nick Koston
69353d2719
Speed up mqtt debug info on message callback () 2024-05-28 11:10:07 -10:00
Jan Bouwhuis
bfc3194661
Fix mqtt not publishing null payload payload to remove discovery () 2024-05-27 12:53:22 -10:00
J. Nick Koston
6b8223e339
Try to read multiple packets in MQTT () 2024-05-27 11:07:24 +02:00
J. Nick Koston
9be829ba1f
Make mqtt internal subscription a normal function ()
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-05-25 11:34:24 -10:00
Jan Bouwhuis
521ed0a220
Fix mqtt callback exception logging ()
* Fix mqtt callback exception logging

* Improve code

* Add test
2024-05-25 22:46:33 +02:00
Jan Bouwhuis
c9a79f6293
Fix lingering mqtt test () 2024-05-24 14:34:18 -10:00
Jan Bouwhuis
fa1ef8b0cf
Split mqtt subscribe and unsubscribe calls to smaller chunks () 2024-05-24 13:33:28 -10:00
Jan Bouwhuis
f12aee28a8
Improve error logging on invalid MQTT entity state ()
* Improve error logging on invalid MQTT entity state

* Explain not hanlding TpeError and ValueError

* Move length check closer to source

* use _LOGGER.exception
2024-05-24 13:11:52 +02:00
Marc Mueller
dc47792ff2
Update codespell to 2.3.0 () 2024-05-24 08:22:29 +02:00
Jan Bouwhuis
050fc73056
Refactor shared mqtt schema's to new module ()
* Refactor mqtt schema's to new module

* Remove unrelated change
2024-05-23 01:12:25 +02:00
J. Nick Koston
f429bfa903
Fix mqtt timer churn ()
Borrows the same design from homeassistant.helpers.storage to avoid
rescheduling the timer every time async_schedule is called if a timer
is already running.

Instead of the timer fires too early it gets rescheduled for the time
we wanted it. This avoids 1000s of timer add/cancel during startup
2024-05-21 21:05:33 -04:00
J. Nick Koston
ac3321cef1
Fix setting MQTT socket buffer size with WebsocketWrapper () 2024-05-19 14:09:21 -10:00
Jan Bouwhuis
92254772ca
Increase MQTT broker socket buffer size ()
* Increase MQTT broker socket buffer size

* Revert unrelated change

* Try to increase buffer size

* Set INITIAL_SUBSCRIBE_COOLDOWN back to 0.5 sec

* Sinplify and add test

* comments

* comments

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-12 13:13:41 +02:00
J. Nick Koston
481de8cdc9
Ensure config entry operations are always holding the lock ()
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-12 08:20:08 +09:00
Jan Bouwhuis
589104f63d
Export MQTT subscription helpers at integration level () 2024-05-08 23:46:50 +02:00
J. Nick Koston
649dd55da9
Simplify MQTT subscribe debouncer execution () 2024-05-07 14:41:31 -05:00
Jan Bouwhuis
a3248ccff9
Log an exception mqtt client call back throws ()
* Log an exception mqtt client call back throws

* Supress exceptions and add test
2024-05-07 21:19:46 +02:00
Jan Bouwhuis
7148c849d6
Only log loop client subscription log if log level is DEBUG ()
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-07 18:38:59 +02:00
Jan Bouwhuis
bedd5c1cef
Cleanup removed MQTT broker settings () 2024-05-02 20:37:21 +02:00
J. Nick Koston
041456759f
Remove duplicate mid handling in MQTT () 2024-05-01 15:18:44 -05:00
J. Nick Koston
6cf1c5c1f2
Hold a lock to prevent concurrent setup of config entries () 2024-04-30 18:47:12 -05:00
Jan Bouwhuis
3c7cbf5794
Add test MQTT subscription is completed when birth message is sent () 2024-04-30 18:15:46 -05:00
epenet
ad84ff18eb
Use remove_device helper in tests (1/2) ()
* Use remove_device helper in tests

* Update test_tag.py

* Update test_tag.py
2024-04-30 12:52:33 +02:00
Jan Bouwhuis
43dc5415de
Fix no will published when mqtt is down () 2024-04-27 18:42:38 -05:00
Jan Bouwhuis
31d11b2362
Add re-auth flow for MQTT broker username and password ()
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-23 22:26:01 +02:00
Sid
895f73d8e4
Enable Ruff A001 () 2024-04-21 23:25:27 +02:00
J. Nick Koston
423544401e
Convert MQTT to use asyncio () 2024-04-21 22:33:58 +02:00
Marc Mueller
443bfee16d
Replace partial annotations () 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 ()
* 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 ()
* Get ServiceValidationError message from translation cache only

* Remove message for NotValidPresetModeError
2024-03-18 14:42:21 +01:00