Jan Bouwhuis
b74aced6f3
Subscribe per component for MQTT discovery ( #119974 )
...
* Subscribe per component for MQTT discovery
* Use single assignment
* Handle wildcard subscriptions first
* Split subsRecription handling, update helper
* Fix help_all_subscribe_calls
* Fix import
* Fix test
* Update import order
* Undo move self._last_subscribe
* Recover removed test
* Revert not needed changes to binary_sensor platform tests
* Revert line removal
* Rework interation of discovery topics
* Reduce
* Add comment
* Move comment
* Chain subscriptions
2024-08-20 17:02:48 +02:00
Maciej Bieniek
a9d8e47979
Support `DeviceInfo.model_id` in MQTT integration ( #123152 )
...
Add support for model_id
2024-08-04 23:02:41 +02:00
Jan Bouwhuis
cbcf29720d
Cleanup common mqtt tests ( #120446 )
2024-06-25 19:15:11 +02:00
J. Nick Koston
226d010ab2
Simplify mqtt connection state dispatcher ( #118184 )
2024-05-26 10:21:21 -10:00
J. Nick Koston
5d37217d96
Avoid expensive inspection of callbacks to setup mqtt subscriptions ( #118161 )
2024-05-26 01:22:44 -10:00
Marc Mueller
1ad8151bd1
Use PEP 695 type alias in tests ( #117797 )
2024-05-20 19:03:04 +02:00
J. Nick Koston
481de8cdc9
Ensure config entry operations are always holding the lock ( #117214 )
...
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
372c6c7874
Use existing monotonic timestamp on mqtt messages for debugging ( #116196 )
2024-04-25 19:09:54 -05:00
Marc Mueller
a0314cddd4
Fix invalid tuple annotations ( #116035 )
2024-04-23 16:02:16 +02:00
Joost Lekkerkerker
6bb4e7d62c
Bump ruff to 0.3.4 ( #112690 )
...
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
Sid
d5fd005db8
Add ruff rule PIE808 ( #113621 )
2024-03-17 09:56:26 +01:00
Joost Lekkerkerker
cddce0ce0d
Enable more SIM ruff rules ( #113015 )
...
* SIM101 SIM103
* SIM107 SIM109
* SIM110
* SIM112 SIM113
* SIM115
* SIM116
* Fix
* Fix
* Fix
2024-03-10 23:20:37 -04:00
Jan Bouwhuis
02ef7ba134
Remove not needed hass.async_block_till_done in test ( #113002 )
2024-03-10 09:46:25 -10:00
Jan Bouwhuis
c608d1cb85
Fix mqtt platform setup race ( #112888 )
2024-03-10 08:36:17 -10:00
Marc Mueller
1722e23df8
Add empty line after module docstring [tests l-p] ( #112710 )
2024-03-08 14:55:15 +01:00
Jan Bouwhuis
26058bf922
Add serial_number attribute to MQTT device properties ( #108105 )
2024-01-16 14:02:34 +01:00
Jan-Philipp Benecke
ff85d0c290
Migrate mqtt tests to use freezegun ( #105414 )
2023-12-10 09:25:16 +01:00
Jan Bouwhuis
7d9014ae41
Do not fail MQTT setup if events or sensors configured via yaml can't be validated ( #102309 )
...
* Add event and sensor
* Cleanup unused code
* Schema cannot be None for supported platform
2023-10-20 12:09:52 +02:00
Robert Resch
f7292d5b00
Add check that sensors don't have EntityCategory.CONFIG set ( #101471 )
2023-10-09 13:37:52 +02:00
Jan Bouwhuis
aed3ba3acd
Avoid redundant calls to `async_ha_write_state` in MQTT (binary) sensor ( #100438 )
...
* Only call `async_ha_write_state` on changes.
* Make helper class
* Use UndefinedType
* Remove del
* Integrate monitor into MqttEntity
* Track extra state attributes and availability
* Add `__slots__`
* Add monitor to MqttAttributes and MqttAvailability
* Write out loop
* Add test
* Make common test and parameterize
* Add test for last_reset attribute
* MqttMonitorEntity base class
* Rename attr and update docstr `track` method.
* correction doct
* Implement as a decorator
* Move tracking functions into decorator
* Rename decorator
* Follow up comment
2023-09-21 13:33:26 +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 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
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
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
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
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
14ffda9758
Remove dependency on async_setup from mqtt integration ( #87987 )
...
* Remove async_setup from mqtt integration
* Final update common tests
* Related tests init
* Related tests diagnostics
* Related tests config_flow
* Cleanup and correct test
* Keep websockets_api commands in async_setup
2023-03-28 09:37:07 +02:00
Jan Bouwhuis
214286acb9
Prepare MQTT platorm tests part1 ( #90051 )
...
* Add help_custom_config
* Tests alarm_control_panel
* Tests binary_sensor
* Only use help_custom_config with iterable options
2023-03-22 10:23:08 +01:00
Jan Bouwhuis
d865440012
Prepare MQTT common tests part3 ( #90022 )
2023-03-21 09:19:20 +01:00
Jan Bouwhuis
91dbda1ce7
Add mqtt common tests for availability (part2) ( #89805 )
...
* update test_availability_when_connection_lost
* Adjust test_availability_without_topic
* Update test_default_availability_payload + helper
* Update test_default_availability_list_payload
* Use helper for async_setup_component
* Update test_default_availability_list_*
* Update test_custom_availability_payload
2023-03-21 08:20:37 +01:00
Jan Bouwhuis
c81a38effb
Mqtt prepare test base part1 ( #89796 )
...
* Refactor test_reloadable
* Refactor test_disabling_and_enabling_entry
* optimize test_unload_config_entry
* Cleanup help_test_unload_config_entry
* cleanup test_unload_entry
* Update test tls_version
* More tests to entry only
* Add validate and hassconfig patch
* Revert fixture changes patch_hass_config
* Follow up comments
2023-03-16 15:57:01 +01:00
Franck Nijhof
76bf6f164f
Clean up unnecessary registry mocks from mqtt tests ( #87728 )
...
* Clean up unnecessary registry mocks from mqtt tests
* Fix helper methods
2023-02-09 08:19:06 +01:00
Jan Bouwhuis
fc7e4b7664
Add type hints on common MQTT tests ( #87299 )
...
* Add hints for hass and return type
* Fix MqttMockType add apply hints to test_common
* Add type hints for other arguments
* Merge changes
* Add missed annotation
* Make tests types private and move to top
2023-02-08 11:20:27 +01:00
Franck Nijhof
5e81d28116
Update black to 23.1.0 ( #87188 )
2023-02-02 18:35:24 +01:00
Jan Bouwhuis
9f24897814
Do not reset current selection on reconfig or MQTT select ( #85099 )
...
* Do not reset current selection on reconfig
* Add a test
2023-01-04 10:29:53 +01:00
Jan Bouwhuis
ee66ffc8de
Do not depend MQTT CI tests on debug logs ( #84783 )
...
* Do not depend MQTT CI tests on debug logs
* Leave Clean up expire as debug message
2022-12-29 18:29:28 +01:00
Jan Bouwhuis
7c2e7863d2
Remove legacy YAML support from MQTT ( #82102 )
2022-11-17 22:55:31 +01:00
J. Nick Koston
75104159c6
Fix mqtt tests ( #79079 )
2022-09-25 20:07:50 -10:00
Jan Bouwhuis
81514b0d1c
Move MQTT debug_info to dataclass ( #78788 )
...
* 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
2022-09-23 20:55:29 +02:00
Jan Bouwhuis
9a4c8f5f0e
Refactor common MQTT tests to use modern schema ( #77583 )
...
* 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
2022-09-09 11:15:48 +02:00
Maciej Bieniek
ad6beac535
Add `hw_version` to MQTT device info ( #77210 )
...
* Add hw_version
* Add abbreviation for hw_version
* Update tests
* Update discovery tests
2022-08-25 11:55:33 +02:00
Jan Bouwhuis
5930f056a8
Mqtt support config_entry unload ( #70149 )
...
* squashed commits for rebase
* Flake
* Fix reloading issue manual legacy items
* Improve ACS sync for unsubscribe at disconnect
* Processed review comments
* Update homeassistant/components/mqtt/client.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* No need to await entry setup
* Remove complication is_connected
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-07-12 11:07:18 +02:00
Jan Bouwhuis
657e7f9a4c
Simplify MQTT test for setup manual mqtt item from yaml ( #72916 )
...
simplify test setup manual mqtt item from yaml
2022-06-13 13:44:12 +02:00
Erik Montnemery
b97d346df7
Fix reload of MQTT yaml config ( #72901 )
2022-06-02 11:32:31 -07:00
Jan Bouwhuis
52561ce076
Update MQTT tests to use the config entry setup ( #72373 )
...
* New testframework and tests for fan platform
* Merge test_common_new to test_common
* Add alarm_control_panel
* Add binary_sensor
* Add button
* Add camera
* Add climate
* Add config_flow
* Add cover
* Add device_tracker_disovery
* Add device_trigger
* Add diagnostics
* Add discovery
* Add humidifier
* Add init
* Add lecacy_vacuum
* Add light_json
* Add light_template
* Add light
* Add lock
* Add number
* Add scene
* Add select
* Add sensor
* Add siren
* Add state_vacuum
* Add subscription
* Add switch
* Add tag
* Add trigger
* Add missed tests
* Add another missed test
* Add device_tracker
* Remove commented out code
* Correct tests according comments
* Improve mqtt_mock_entry and recover tests
* Split fixtures with and without yaml setup
* Update fixtures manual_mqtt
* Update fixtures mqtt_json
* Fix test tasmota
* Update fixture mqtt_room
* Revert fixture changes, improve test
* re-add test
2022-06-02 14:24:46 +02:00
Jan Bouwhuis
ed1c2ea2b8
Move manual configuration of MQTT fan and light to the integration key ( #71676 )
...
* Processing yaml config through entry setup
* Setup all platforms
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* adjust mock_mqtt - reference config from cache
* Fix test config entry override
* Add tests yaml setup
* additional tests
* Introduce PLATFORM_SCHEMA_MODERN
* recover temporary MQTT_BASE_PLATFORM_SCHEMA
* Allow extra key in light base schema, restore test
* Fix test for exception on platform key
* One deprecation message per platform
* Remove deprecation checks from modern schema
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/fan.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/light/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/light/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/light/schema_json.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/light/schema_template.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/mqtt/mixins.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* rename validate_modern_schema
* Do not fail platform if a single config is broken
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Fix tests on asserting log
* Update log. Make helper transparant, remove patch
* Perform parallel processing
* Update tests/components/mqtt/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/mqtt/mixins.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* black
* Fix tests and add #new_format anchor
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-05-19 15:04:53 +02:00
Erik Montnemery
fe38e6ba87
Drop MQTT import flow ( #66160 )
...
* Drop MQTT import flow
* Reload manually configured MQTT entities when config entry is setup
* Address review comments
* Actually remove the import flow
2022-02-10 21:09:57 +01:00
Erik Montnemery
8245ff7473
Log transmitted MQTT messages ( #65550 )
2022-02-04 17:35:32 +01:00