diff --git a/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts b/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
index c5eab6b79e..a60764a184 100644
--- a/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
+++ b/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
@@ -1,8 +1,11 @@
import "@material/mwc-button";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import { customElement, property } from "lit/decorators";
+import { LocalStorage } from "../../../../../common/decorators/local-storage";
import "../../../../../components/ha-card";
import "../../../../../components/ha-code-editor";
+import "../../../../../components/ha-formfield";
+import "../../../../../components/ha-switch";
import { getConfigEntries } from "../../../../../data/config_entries";
import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
import "../../../../../layouts/hass-subpage";
@@ -18,26 +21,17 @@ class HaPanelDevMqtt extends LitElement {
@property({ type: Boolean }) public narrow!: boolean;
- @state() private topic = "";
+ @LocalStorage("panel-dev-mqtt-topic-ls", true, false)
+ private topic = "";
- @state() private payload = "";
+ @LocalStorage("panel-dev-mqtt-payload-ls", true, false)
+ private payload = "";
- @state() private qos = "0";
+ @LocalStorage("panel-dev-mqtt-qos-ls", true, false)
+ private qos = "0";
- private inited = false;
-
- protected firstUpdated() {
- if (localStorage && localStorage["panel-dev-mqtt-topic"]) {
- this.topic = localStorage["panel-dev-mqtt-topic"];
- }
- if (localStorage && localStorage["panel-dev-mqtt-payload"]) {
- this.payload = localStorage["panel-dev-mqtt-payload"];
- }
- if (localStorage && localStorage["panel-dev-mqtt-qos"]) {
- this.qos = localStorage["panel-dev-mqtt-qos"];
- }
- this.inited = true;
- }
+ @LocalStorage("panel-dev-mqtt-retain-ls", true, false)
+ private retain = false;
protected render(): TemplateResult {
return html`
@@ -70,7 +64,14 @@ class HaPanelDevMqtt extends LitElement {
html`
${this.hass.localize("ui.panel.config.mqtt.payload")}