Commit graph

1667 commits

Author SHA1 Message Date
epenet
89eb395e2d
Add OptionsFlow helper for a mutable copy of the config entry options (#129718)
* Add OptionsFlow helper for a mutable copy of the config entry options

* Add tests

* Improve coverage

* error_if_core=False

* Adjust report

* Avoid mutli-line ternary
2024-11-03 20:37:58 +01:00
Jan Bouwhuis
9fbd484dfe
Add progress support to MQTT update platform (#129468)
* Add progress support to MQTT update platform and add validation on state updates

* Clean up cast to type class

* Add support for display_precision attribute
2024-10-30 17:22:55 +01:00
Jan Bouwhuis
1773f2aadc
Allow MQTT device based auto discovery (#118757)
* Allow MQTT device based auto discovery

* Fix merge error

* Remove unused import

* Fix discovery device based topics

* Fix cannot delete twice

* Improve cleanup test

* Follow up comment

* Typo

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Explain more

* Use tuple

* Default a device payload to have priority over a platform based payload

* Add unique_id to sensor test data

* Set migration flag to mark a discovery topic for migration

* Correct type hint

* Make unique_id required for components in device based discovery payload

* Remove CONF_MIGRATE_DISCOVERY from platform schema

* Unload discovered MQTT item to allow migration

* Follow up comments from code review

* ruff

* Subscribe to platform discovery wildcards first

* Use normal dict

* Use dict to persist wildcard subscription order

* Remove missed unused parameter

* Add a comment to explain we use a dict  to preserve the subscription order

* Add wildcard subscription order test

* Remove discovery flag from test

* Improve discovery migration origin logging

* Assert initial  wildcard discovery topics subscription order and after reconnect

* Improve log messages

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-10-30 17:10:15 +01:00
Robert Resch
380974eed4
Remove hassio from ALLOWED_USED_COMPONENTS and move some functions to helper (#127228)
* Remove hassio from ALLOWED_USED_COMPONENTS

* Move HassioServiceInfo to helpers.service_info

* Deprecate moved functions

* Add note about deprecation

* Fix tests

* Implement suggestion

* Typo

* Update pyproject.toml

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-10-30 12:43:41 +01:00
Erik Montnemery
7162efd836
Remove duplicated entity_picture config from MQTT update entity (#129390) 2024-10-29 18:22:06 +01:00
Jan Bouwhuis
c150b913ac
Use URL validation schema for mqtt update entity_picture and remove custom implementation (#129360) 2024-10-28 23:36:17 +01:00
Jan Bouwhuis
d237180a98
Allow re-discovery of mqtt integration config payloads (#127362) 2024-10-26 07:21:52 +02:00
Jan Bouwhuis
4b63829eef
Allow to set entity picture on mqtt entity platforms (#128404) 2024-10-25 20:16:11 +02:00
G Johansson
cdfec7ebb4
Implement new state property for alarm_control_panel which is using an enum (#126283)
* Alarm state from enum

* Fixes

* Set final

* Fix rebase

* Test const

* Fix breaking version

* Fix other for alarm_control_panel

* Fix integrations

* More

* More

* More

* More

* Fix zha

* Replace _attr_state

* Fix alarm_control_panel

* Fix tests

* Fixes

* Mods

* Change some

* More

* More

* More

* Tests

* Last tests

* Return enum

* Fix zha

* Remove not needed check

* Fix wording

* Fix homekit

* Mod prometheus

* Fix mypy

* Fix homekit

* Fix ifttt
2024-10-21 22:54:27 +02:00
epenet
22491afa58
Use reauth_confirm in mqtt (#128696) 2024-10-19 09:30:57 +02:00
Jan Bouwhuis
3112682923
Mark mqtt as integration with single config entry (#128202) 2024-10-12 19:55:39 +02:00
G Johansson
666e8e133e
Cover state is enum (#127144)
* Change light state to use enum

* Adjust cover tests

* Update cover

* Fix covers

* Some tests

* More tests

* Fix tests

* Fix
2024-10-08 18:39:04 +02:00
Jan Bouwhuis
e54031e318
Improve mqtt sensor options validion logging (#127631)
* Improve mqtt sensor options validion logging

* Fix test
2024-10-05 13:31:42 +02:00
Jan Bouwhuis
f99b7d8b78
Start mqtt integration discovery config flow only once if config has not changed (#126966)
* Start mqtt integration config flow only once

* Remember last config message

* Filter out instead of unsubscribing the intehration discovery topic

* Follow up comments from code review
2024-09-30 12:44:40 +02:00
Jan Bouwhuis
b573e5a2b3
Allow null / None value for non numeric mqtt sensor without warnings (#127032)
Allow `null` / `None` value for mqtt sensor without warnings
2024-09-30 07:05:12 +02:00
Jan Bouwhuis
7fde2e2fe0
Do not unsubscribe mqtt integration discovery if entry is already configured (#126907)
* Do not unsubscribe mqtt integration discovery if entry is already configured

* Test cases without unsubscribe
2024-09-27 17:28:51 +02:00
c0ffeeca7
866ffcf639
Use bold to markup UI strings (#126748)
* Use bold to markup UI strings

* Use bold to markup UI strings
2024-09-25 15:33:23 +02:00
Erik Montnemery
c638537731
Use 'select' instead of 'click' or 'press' when guiding users in flows (#126731) 2024-09-25 13:37:43 +02:00
epenet
c099f4f50f
Use vol.Coerce for SourceType in mqtt device_tracker (#126594) 2024-09-24 19:09:19 +02:00
G Johansson
939f2e41e9
Change valve state to an enum (#126428) 2024-09-23 14:20:18 +02:00
Jan Bouwhuis
bafc42c8f1
Cleanup unused protocol class for mqtt entity setup (#126276) 2024-09-19 21:29:14 +02:00
Jan Bouwhuis
21affac571
Rename mqtt mixins module to entity.py (#126279) 2024-09-19 20:50:33 +02:00
epenet
6bc2d11c5e
Add base Entity class to enforce-class-module pylint plugin (#126026)
* Add base Entity class to enforcé-class-module pylint plugin

* Ignore bluetooth

* Ignore hue

* Ignore dominos

* Ignore ffmpeg

* Ignore mqtt

* Ignore microsoft_face

* Ignore plant

* Ignore point

* Ignore rfxtrx

* Ignore template

* Ignore tag

* Ignore deconz
2024-09-18 20:38:45 +02:00
epenet
47a9dda3b8
Use root import in components (#125858) 2024-09-12 22:21:21 +02:00
epenet
ba9dae10c3
Simplify imports in mqtt (#125749) 2024-09-11 18:14:00 +02:00
Jan Bouwhuis
4c27bfbf7f
Cleanup removed options for mqtt climate (#125083) 2024-09-02 20:35:36 +02:00
Erik Montnemery
1a2d013c97
Update icons.json to new service schema part 3 (#124770) 2024-08-28 13:48:01 +02:00
Jan Bouwhuis
e720a14dc4
Cleanup removed schema option from mqtt vacuum platform (#124722) 2024-08-28 07:49:05 +02:00
Jan Bouwhuis
ff029e5efc
Cleanup not used data field for mqtt hassio config flow confirm step (#124486) 2024-08-26 17:33:47 +02:00
Jan Bouwhuis
65216df3a5
Auto recover mqtt config entry secret if Mosquitto add-on was re-installed (#124514)
Auto recover mqtt config entry secret if Mosquitto add-on is re-installed
2024-08-26 09:40:25 +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
Jan Bouwhuis
7887bcba89
Allow to set options for an MQTT enum sensor (#123248)
* Add options attribute support for MQTT sensor

* Add comment
2024-08-22 19:16:08 +02:00
Jan Bouwhuis
61114d8328
Install and start Mosquitto MQTT broker add on from MQTT config flow (#124106)
* Opt in to install Mosquitto broker add-on in MQTT config flow

* rephrase

* Tests with supervisor and running add-on

* Complete tests for success flows

* Also set up entry in success flow

* Use realistic names for addon and broker

* Finetuning and fail test cases

* Spelling

* Improve translation strings

* Update addon docstr

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Raise AddonError if add-on does not start

* Only show the option to use the add-on

* Simplify flow, rework and cleanup

* Revert unrelated cleanup, process suggestion

* Move ADDON_SLUG const to addon module

* Move fixture to component level

* Move back supervisor fixture

* Move addon_setup_time_fixture and superfixe to config flow model tests

* Refactor hassio fixture

* Rename helpers as they are no fixtures, remove fixture from their names

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-22 09:07:45 +02:00
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
Jan Bouwhuis
183c191d63
Allow raw mqtt payload to be in mqtt publish action (#123900)
* Publish raw rendered mqtt payload as raw for mqtt publish action

* Move check out of try block

* Only try to eval `bytes` is payload starts with supported string

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Improve docst

* Add `evaluate_bytes` option to publish action

* Rename to `evaluate_payload`

* Update homeassistant/components/mqtt/strings.json

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Extend test to assert literal_eval is called or not

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-16 13:34:14 +02:00
Jan Bouwhuis
21987a67e7
Cleanup unneeded assignment of hass property on MQTT Template objects (#123706)
* Cleanup unneeded assignment of hass property on MQTT Template objects

* Commented out code and unneeded checks

* Consistent assign hass to Template in mqtt tests

* Remove unused hass attribute

* Missed line
2024-08-12 19:20:21 +02:00
epenet
0bb8c4832d
Enable raise-within-try (TRY301) rule in ruff (#123351) 2024-08-12 09:16:33 +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
87e377cf84
Ensure mqtt subscriptions are in a set (#122201) 2024-07-21 12:36:06 +02:00
Jan Bouwhuis
16434b5306
Add command_template option to mqtt switch schema (#122103) 2024-07-19 12:10:49 +02:00
G Johansson
ca4c617d4b
Add TURN_OFF/TURN_ON feature flags for fan (#121447) 2024-07-19 11:35:24 +02:00
Jan Bouwhuis
5b4dd07189
Deprecate topic_template and payload_template for mqtt publish action (#122098)
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" (#121758)
Revert "Remove stale `template_topic` code for mqtt publish service (#121604)"

This reverts commit 5b25c24539.
2024-07-17 17:56:34 +02:00
epenet
e812b0e02f
Cleanup unnecessary returns (#121652) 2024-07-10 15:11:56 +02:00
Jan Bouwhuis
5b25c24539
Remove stale template_topic code for mqtt publish service (#121604) 2024-07-09 18:22:08 +02:00
Jan Bouwhuis
2040c285b1
Remove schema option for mqtt vacuum configs (#121093) 2024-07-03 21:35:20 +02:00
Marc Mueller
ca55986057
Import Generator from collections.abc (1) (#120914) 2024-07-01 11:51:51 +02:00
J. Nick Koston
8f98fb2ec4
Fix publish cancellation handling in MQTT (#120826) 2024-06-29 11:06:56 -05:00
J. Nick Koston
0ea1677f51
Increase mqtt availablity timeout to 50s (#120760) 2024-06-28 10:50:55 -05:00
Jan Bouwhuis
e567f8f3d5
Fix issue where an MQTT device is removed linked to two config entries (#120430)
* Fix issue where an MQTT device is removed linked to two config entries

* Update homeassistant/components/mqtt/discovery.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/mqtt/debug_info.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-26 09:14:33 +02:00