* 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
* Add returning activity state
* update tests
* update tests
* set can return to returning state
* update MQTT tests
* update mqtt back to docked
* fix up other tests that I broke again
* re-add mower_can_dock
* 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>
* 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>
* 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
* Climate temperature out of range
* Fix test sensibo
* use temp converting for min/max
* Fix
* Fix mqtt tests
* Fix honeywell tests
* Fix Balboa tests
* Fix whirlpool test
* Fix teslemetry test
* Fix plugwise test
* Fix tplink test
* Fix generic thermostat test
* Fix modbus test
* Fix fritzbox tests
* Honewell
* 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>
* 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`
* Fix consider-using-tuple pylint warnings in component tests
* Apply su
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
---------
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
* 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>
* Consequently ignore empty MQTT state payloads and set state to `unknown` on "None" payload
* Do not change preset mode behavior
* Add device tracker ignoring empty state
* Ignore empty state for lock
* Resolve merge errors
* Improve error logging on invalid MQTT entity state
* Explain not hanlding TpeError and ValueError
* Move length check closer to source
* use _LOGGER.exception
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