Troubliq

Smart-home fixes, step by step.

Category: General Troubleshooting

Cross-platform diagnostic methods, safe resets, backups, logs, updates, recovery, verification, escalation, and prevention.

  • Home Assistant database is malformed or corrupt: recover Recorder safely

    Home Assistant database is malformed or corrupt: recover Recorder safely

    Direct answer: Do not keep restarting or copying a live SQLite file. First create a full Home Assistant backup and confirm at least 2.5 times the database size is available as free storage, then stop Home Assistant before touching the database. Home Assistant can move an unrecoverable SQLite database aside and create a new one, which restores operation but may leave history in the old file. Preserve every displaced database before attempting recovery. If long-term statistics matter, treat recovery as a data-preservation job rather than a quick delete-and-reboot fix.

    This guide addresses a malformed or corrupt Home Assistant Recorder database. It is designed to preserve working configuration and evidence before any reset, deletion, or re-pairing. Work in order and stop when the first confirmed cause is corrected. Screens and menu labels can vary by Home Assistant release and installation method.

    Symptoms and scope

    Use the following signs to decide whether this guide matches your problem. Similar-looking failures can come from different layers, so record what still works as carefully as what fails.

    • The log contains “database disk image is malformed,” “unrecoverable sqlite3 database corruption detected,” “database is locked,” or repeated Recorder write failures.
    • History, Logbook, Energy, or statistics stop updating while automations and device control continue to work.
    • A file with a name such as home-assistant_v2.db.corrupt appears and a fresh database starts growing.
    • Startup or shutdown becomes unusually slow, purge or repack repeatedly fails, or the host runs low on storage.
    • The problem returns after replacing the database, suggesting an underlying disk, power, memory, filesystem, or shutdown issue.

    Most likely causes, ranked

    Start with the causes that fit the evidence. Do not apply every fix at once: simultaneous changes make it impossible to know what solved the problem and can create a second failure.

    • 1. An interrupted write caused by sudden power loss, forced VM termination, storage disconnect, or a host crash.
    • 2. A failing SD card, SSD, USB bridge, filesystem, or hypervisor storage layer is returning incomplete or inconsistent writes.
    • 3. The disk is full or nearly full, leaving too little room for SQLite journaling, purge, repack, backups, or host updates.
    • 4. The live SQLite file was copied, opened, repaired, or manipulated while Home Assistant still had it open.
    • 5. Very heavy state recording, noisy sensors, short-retention experimentation, or an oversized database increased I/O pressure; size alone does not prove corruption.
    • 6. A network filesystem or unsupported storage arrangement introduced locking behavior that SQLite was not designed to tolerate.

    Safe diagnostic procedure

    Before beginning, make a current backup when the procedure could affect configuration or stored data. Record the Home Assistant version, installation type, device or app version, the first failure time, and the last known working change. Redact secrets from every screenshot and log excerpt.

    Step 1: Capture the exact failure

    Open Settings → System → Repairs and Settings → System → Logs. Save the exact Recorder and SQLite messages with timestamps. Redact tokens, passwords, public URLs, GPS coordinates, and device identifiers before sharing anything. Distinguish a one-time recovery notice from an error that repeats every few minutes.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 2: Protect the current state

    Create a full Home Assistant backup before changing Recorder settings. Download or copy the backup to storage outside the same failing device. A backup that exists only on the questionable disk is not a complete safety net. Record the Core version, installation type, database engine, and approximate database size.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 3: Verify the affected layer

    Check free space and host health. Home Assistant OS users can inspect System → Storage and hardware information; container and supervised users should also inspect the host filesystem and container volume. Leave meaningful headroom for the database, journal, backup, and updates. Remove only known expendable files through supported interfaces.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 4: Test the least-destructive cause

    Stop Home Assistant cleanly before copying or inspecting SQLite. Do not use Samba, an editor, a database browser, or a repair command against the live file. If the installation cannot stop cleanly, preserve a backup and investigate storage and host logs before forcing power off.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 5: Inspect configuration and identity

    Preserve the original database and any .corrupt copies with their timestamps. Never overwrite the only damaged copy with a repaired experiment. Work on a duplicate. If Home Assistant already created a fresh database, confirm that current history is writing before deciding whether old data needs recovery.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 6: Check network, power, or permissions

    For the fastest safe service restoration, allow Home Assistant to use a new database. This sacrifices ordinary short-term history from the damaged file but should not require deleting configuration, devices, entities, or automations. Long-term statistics may require separate recovery and careful validation.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 7: Apply the narrow repair

    If historical or energy data is important, use SQLite’s documented recovery process only on an offline duplicate and preferably with an experienced administrator. Validate recovered tables and statistics before any import. A file that opens is not automatically internally consistent.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Step 8: Observe through a full cycle

    Reduce recurrence risk only after the service is stable. Exclude high-frequency entities from Recorder when their history provides no value, correct sensors that update excessively, maintain backups, and address storage or power faults. Moving to MariaDB can change operational characteristics but does not cure failing hardware or unsafe shutdowns.

    Interpretation: if this step changes the symptom, repeat the same controlled test once before moving on. If nothing changes, restore any temporary setting and continue. Keep a short note of the time, action, and result; that record prevents circular troubleshooting.

    Installation and environment branches

    Home Assistant OS or appliance-style installs

    Home Assistant OS: favor built-in backups, Repairs, storage information, and supported add-ons; avoid unsupported host-level file changes.

    Container, network, or account variation

    Container: verify the /config volume, filesystem ownership, available inodes, Docker shutdown behavior, and whether the database lives on reliable local storage.

    Partial failure versus complete failure

    Virtual machine: check the hypervisor for snapshots, thin-provisioned disk exhaustion, datastore latency, forced resets, and host power events.

    Multi-device or multi-hop environments

    External SQL database: a connection or credential failure is not the same as SQLite corruption. Inspect the database server, network path, permissions, capacity, and server logs before changing Recorder URLs.

    What not to do

    • Do not delete the integration, device, database, app registration, or proxy configuration merely because it is the fastest visible button. Deletion can remove evidence and create new entity identities.
    • Do not paste passwords, tokens, encryption keys, exact home coordinates, public URLs with credentials, or unredacted logs into a forum or support ticket.
    • Do not disable firewalls, TLS verification, authentication, or other security controls as a permanent workaround. A useful test must be narrow, timed, and reversed.
    • Do not make several network, software, and device changes together. Change one variable, observe the result, and keep the working rollback path.
    • Do not assume a restart is a diagnosis. A restart can temporarily hide timing, memory, radio, storage, or connectivity faults without correcting them.

    Verification checklist

    After recovery, restart once and watch Recorder logs for at least one normal write cycle. Open History and Logbook, change a harmless test entity, and confirm a new state appears with the correct time. Check Statistics in Developer Tools for repair notices and verify the Energy dashboard on the next statistics cycle. Recheck free storage and confirm no new .corrupt file appears. A clean dashboard alone is not proof; the log and fresh database writes must agree.

    • The original symptom is gone under the same conditions that previously reproduced it.
    • The relevant log has no new matching error after a normal update or restart cycle.
    • Related entities, history, automations, or remote access still work.
    • The repair survives one controlled restart of the affected component.
    • Temporary troubleshooting exceptions have been removed or documented.

    Rollback and recovery

    If a recovery attempt makes matters worse, stop and return to the untouched copy or full backup. Restore into a test instance when possible, not directly over the only working production system. If statistics are business-critical, preserve both the old and new databases and seek database-specific help. Never merge rows by guesswork: entity and metadata identifiers can differ across databases.

    If the evidence points to failing hardware, a vendor outage, an upstream regression, or corrupted data that matters, stop improvising. Preserve the backup and diagnostic record, then escalate with the exact version, timestamp, error, minimal reproduction, and steps already tested. That produces a safer and faster answer than repeated resets.

    Prevention

    • Use reliable storage and a UPS where outages are common.
    • Keep tested backups outside the Home Assistant host.
    • Shut down the host cleanly before power or storage work.
    • Review Recorder exclusions for noisy, low-value entities.
    • Watch storage capacity and database growth monthly.
    • Investigate repeat corruption as a hardware or platform fault, not normal maintenance.

    Schedule a brief review after the next Home Assistant update or device firmware change. Confirm that the repaired path still works, remove obsolete workarounds, and update your private documentation. Prevention is most effective when it records why a setting exists, not just its value.

    Diagnostic worksheet

    For a malformed or corrupt Home Assistant Recorder database, write down five facts before asking for help: the exact error, the first failure time, the last working time, the smallest action that reproduces it, and the layer that still works. Add the Home Assistant Core version, installation type, relevant device or app firmware, network path, and whether the issue survives a restart. This worksheet separates a repeatable defect from a transient outage.

    If you observe: The log contains “database disk image is malformed,” “unrecoverable sqlite3 database corruption detected,” “database is locked,” or repeated Recorder write failures

    Confirm when this began and whether it affects one entity, one device, one integration, or the whole installation. Compare the result on the same network and, when relevant, through the alternate path. Then use the matching diagnostic step above. Do not jump to recovery until the observation is repeatable or the logs identify the failing layer.

    If you observe: History, Logbook, Energy, or statistics stop updating while automations and device control continue to work

    Confirm when this began and whether it affects one entity, one device, one integration, or the whole installation. Compare the result on the same network and, when relevant, through the alternate path. Then use the matching diagnostic step above. Do not jump to recovery until the observation is repeatable or the logs identify the failing layer.

    If you observe: A file with a name such as home-assistant_v2

    Confirm when this began and whether it affects one entity, one device, one integration, or the whole installation. Compare the result on the same network and, when relevant, through the alternate path. Then use the matching diagnostic step above. Do not jump to recovery until the observation is repeatable or the logs identify the failing layer.

    If you observe: Startup or shutdown becomes unusually slow, purge or repack repeatedly fails, or the host runs low on storage

    Confirm when this began and whether it affects one entity, one device, one integration, or the whole installation. Compare the result on the same network and, when relevant, through the alternate path. Then use the matching diagnostic step above. Do not jump to recovery until the observation is repeatable or the logs identify the failing layer.

    If you observe: The problem returns after replacing the database, suggesting an underlying disk, power, memory, filesystem, or shutdown issue

    Confirm when this began and whether it affects one entity, one device, one integration, or the whole installation. Compare the result on the same network and, when relevant, through the alternate path. Then use the matching diagnostic step above. Do not jump to recovery until the observation is repeatable or the logs identify the failing layer.

    Frequently asked questions

    Should I delete and add everything again?

    Usually not. Re-adding can change entity IDs, erase evidence, and hide the original cause. Use it only after backup, documentation, and the narrower checks in this guide.

    Can I ignore the error if it starts working again?

    A single brief interruption may be harmless, but a recurring error deserves timestamps and logs. Repetition after the same event often reveals a network, storage, power, permission, or token lifecycle problem.

    Is updating Home Assistant always the fix?

    No. Updates can contain fixes, but they also change dependencies and behavior. Read release notes, back up first, and match the error to a known fix before treating an update as diagnosis.

    How much log information should I share?

    Share the smallest relevant window around the failure, with secrets and personal data removed. Include versions and the exact action that caused the event. Avoid uploading complete logs publicly.

    When should I escalate?

    Escalate when safety, important data, repeated corruption, an upstream regression, or an account-side failure is involved, or when the least-destructive checks produce a clear error you cannot resolve.

    Sources and review notes

    Photo: Taylor Vick on Unsplash. Last reviewed: September 24, 2026. Official documentation is the authority for supported configuration. Community and issue reports are useful for identifying recurring symptoms but do not prove that every installation has the same cause.

    Continue with the Device Unavailable Diagnostic, the Smart-Home Diagnostic Decision Tree, or the Home Assistant Error Decoder when the symptom crosses more than one integration.

  • Node-RED Cannot Connect to Home Assistant

    Node-RED Cannot Connect to Home Assistant

    Direct answer: If Node-RED reports that it cannot connect to Home Assistant, check the configured Home Assistant URL, long-lived access token or add-on authentication, WebSocket path, DNS, and TLS trust before reinstalling anything. Test whether the failure affects the Node-RED add-on, an external Node-RED server, or only one flow.

    Safety first: Preserve a current Home Assistant backup and record entity IDs, device names, IP addresses, integration settings, and the exact error before changing anything. Never expose tokens, passwords, encryption keys, webhook URLs, or unredacted diagnostics. Do not factory-reset equipment, delete an integration, or open mains-powered hardware as a first troubleshooting step.

    Confirm the failure boundary

    Open the Home Assistant server configuration node in Node-RED and identify whether it is disconnected globally, repeatedly reconnecting, authenticated but missing entities, or failing only when a flow calls a service. Connection failures and flow-logic failures require different fixes.

    Determine whether the problem affects one device, one integration, or every device using the same network path. A single-device failure usually points to power, addressing, credentials, firmware, or device-specific settings. Several failures beginning together point toward Home Assistant, DNS, routing, firewall policy, an upstream service, or a recent update.

    Quick diagnostic table

    Observation Likely layer Next safe check
    Server node says disconnected URL, DNS, TLS, or WebSocket Test the configured base URL from Node-RED’s environment
    401 or unauthorized Token or add-on authentication Replace the revoked token or verify add-on settings
    Connected but entities missing Cache or permissions Deploy, refresh, and inspect user access
    Only one call-service node fails Flow configuration Check domain, service, target, and payload

    Step 1: preserve evidence

    Write down when the failure began, the last known working version, recent updates, router or VLAN changes, and the full error text. Open Settings → System → Logs and the integration entry under Settings → Devices & services. Download diagnostics when available. Evidence collected before a restart is often more valuable than evidence collected afterward.

    Step 2: verify the basic path

    Determine where Node-RED runs. The supervised add-on may use internal connectivity and add-on authentication, while an external container or computer must resolve and reach the configured Home Assistant URL. Test from the Node-RED host or container, not only from your phone.

    Use the least invasive test that separates network reachability from application authentication. A successful ping proves only that an address responds; it does not prove that the required port, protocol, credentials, certificate, or API is working. Likewise, a vendor app working through the cloud does not prove that local communication from Home Assistant is allowed.

    Step 3: check configuration and credentials

    For an external installation, verify the base URL and a valid long-lived access token belonging to an appropriately limited user. For the official add-on, verify the documented add-on authentication settings. Never paste a token into screenshots or public flow exports.

    Prefer the integration’s Reconfigure or Reauthenticate flow over deleting it. Deletion can remove entity-registry relationships and break dashboards or automations. If credentials changed, update only the affected entry and verify one harmless entity before touching anything else.

    Step 4: inspect networking without weakening security

    Reverse proxies must pass WebSocket upgrades and present a certificate trusted by Node-RED. Split DNS can cause an internal client to resolve a public address that hairpin routing cannot reach. Prefer a valid internal route and trusted TLS rather than disabling certificate verification.

    If Home Assistant and the device are on different VLANs, test temporarily on the same trusted network. If that works, restore the intended layout and create the narrowest required rule. Do not expose local APIs to the public internet, disable the firewall globally, or create an unrestricted route from an untrusted IoT network to the main LAN.

    Step 5: read logs and reproduce once

    Compare Node-RED logs with Home Assistant authentication and HTTP logs. Unauthorized errors indicate credentials; name-resolution errors indicate DNS; certificate errors indicate trust or hostname mismatch; repeated WebSocket closes point toward proxy, timeout, or network behavior.

    Enable debug logging only long enough to reproduce the failure once. Then disable it and download the log. Look for the first meaningful error, not every secondary warning that follows. Match timestamps between Home Assistant, the add-on or bridge, the router, and the vendor service when applicable.

    Step 6: make one reversible change

    Correct the server node’s URL or authentication, deploy once, and watch the connection state. If a reverse proxy is involved, repair WebSocket forwarding and certificate trust. Do not regenerate multiple tokens without revoking and documenting obsolete ones.

    After each change, wait through several normal update intervals. Changing DNS, credentials, firmware, firewall rules, and device configuration at the same time may produce a temporary success without revealing the cause. Record the old value and the test result so you can roll back cleanly.

    How to verify the repair

    • The Home Assistant server node remains connected.
    • Entity autocomplete and state events refresh normally.
    • One harmless flow receives an event and calls a low-risk service.
    • The connection returns automatically after a controlled Node-RED restart.

    A repair is not verified by a green icon alone. Confirm fresh state updates, send one low-risk command, verify the physical response, and make sure the returned state matches. Watch long enough to cover normal polling, sleep, or reconnect behavior.

    Rollback and escalation

    Before editing, export the affected flow and record server-node settings without secrets. If a new URL or proxy rule fails, restore the prior value. Revoke tokens that were exposed or created only for testing.

    If escalation is necessary, provide the exact model, firmware, Home Assistant version, integration version, network layout, redacted diagnostics, timestamps, and the checks already completed. A concise evidence package gets better help than a broad statement that the integration is broken.

    Prevent recurrence

    • Use a dedicated Home Assistant user and token for external Node-RED.
    • Document internal DNS and reverse-proxy WebSocket settings.
    • Back up flows before node or add-on updates.
    • Monitor repeated reconnects before they become a total outage.

    Related Troubliq guides

    Sources and review record

    Last reviewed: September 21, 2026. Testing disclosure: This guide follows current official documentation and established diagnostic practice; exact menus can vary by release, installation type, and device firmware.

    Advanced isolation checklist

    When the basic checks do not identify the cause, build a controlled comparison. Test one known-good device, account, or client through the same path, and test the affected device through a simpler path when safe. Compare timestamps, addresses, authentication method, firmware, and permissions. The purpose is to change one boundary at a time, not to keep trying random fixes.

    Review release notes for Home Assistant, the integration, add-on, device firmware, and any reverse proxy or network service updated near the failure. Confirm a reported workaround applies to the same product and version before using it. Prefer an official repair or documented reconfiguration over unsupported downgrades.

    What not to do

    • Do not factory-reset multiple devices together.
    • Do not delete a working integration merely to clear a warning.
    • Do not expose local services or dashboards directly to the internet.
    • Do not post secrets or unredacted diagnostic files.
    • Do not assume a successful mobile-app test proves the Home Assistant path works.

    Detailed evidence checklist for Node-RED cannot connect to Home Assistant

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

  • Home Assistant Bluetooth Proxy Unavailable

    Home Assistant Bluetooth Proxy Unavailable

    Direct answer: When an ESPHome Bluetooth proxy becomes unavailable, confirm the proxy itself is online through the ESPHome native API before troubleshooting Bluetooth devices. Then inspect Wi-Fi stability, API encryption, proxy mode, coverage, and connection-slot limits. A working proxy and a discoverable Bluetooth device are two different checkpoints.

    Safety first: Preserve a current Home Assistant backup and record entity IDs, device names, IP addresses, integration settings, and the exact error before changing anything. Never expose tokens, passwords, encryption keys, webhook URLs, or unredacted diagnostics. Do not factory-reset equipment, delete an integration, or open mains-powered hardware as a first troubleshooting step.

    Confirm the failure boundary

    Separate proxy availability in Home Assistant from Bluetooth discovery and from active connections. If the proxy device is unavailable, fix its ESPHome API path first. If the proxy is online but a sensor is missing, investigate advertisements, distance, interference, and integration support.

    Determine whether the problem affects one device, one integration, or every device using the same network path. A single-device failure usually points to power, addressing, credentials, firmware, or device-specific settings. Several failures beginning together point toward Home Assistant, DNS, routing, firewall policy, an upstream service, or a recent update.

    Quick diagnostic table

    Observation Likely layer Next safe check
    Proxy device itself unavailable ESPHome API or Wi-Fi Check address, power, logs, and encryption key
    Advertisements visible but control fails Active connection path Check active proxy mode and connection slots
    Only distant devices fail RF coverage Move or add a proxy after a temporary range test
    All Bluetooth devices fail Home Assistant Bluetooth layer Review adapters, proxies, and integration logs

    Step 1: preserve evidence

    Write down when the failure began, the last known working version, recent updates, router or VLAN changes, and the full error text. Open Settings → System → Logs and the integration entry under Settings → Devices & services. Download diagnostics when available. Evidence collected before a restart is often more valuable than evidence collected afterward.

    Step 2: verify the basic path

    Check the proxy in ESPHome Device Builder, its DHCP lease, signal level, uptime, and logs. Confirm Home Assistant can reach the native API address and that the encryption key matches. Unstable power can create repeated short connections that resemble weak Bluetooth coverage.

    Use the least invasive test that separates network reachability from application authentication. A successful ping proves only that an address responds; it does not prove that the required port, protocol, credentials, certificate, or API is working. Likewise, a vendor app working through the cloud does not prove that local communication from Home Assistant is allowed.

    Step 3: check configuration and credentials

    Confirm the ESPHome configuration includes the current Bluetooth proxy component and native API. Passive observation and active connections have different requirements. Validate the configuration with the current ESPHome release before compiling, and preserve the working YAML and encryption key.

    Prefer the integration’s Reconfigure or Reauthenticate flow over deleting it. Deletion can remove entity-registry relationships and break dashboards or automations. If credentials changed, update only the affected entry and verify one harmless entity before touching anything else.

    Step 4: inspect networking without weakening security

    The proxy transports Bluetooth data to Home Assistant over IP. Wi-Fi client isolation, VLAN rules, DNS, mDNS, or a changed DHCP address can break that transport. Fix the precise Home Assistant-to-proxy path; do not expose port 6053 publicly.

    If Home Assistant and the device are on different VLANs, test temporarily on the same trusted network. If that works, restore the intended layout and create the narrowest required rule. Do not expose local APIs to the public internet, disable the firewall globally, or create an unrestricted route from an untrusted IoT network to the main LAN.

    Step 5: read logs and reproduce once

    Correlate ESPHome boot messages, Wi-Fi reconnects, API client connections, Bluetooth scan messages, and memory or watchdog warnings. Repeated boots point toward power or firmware. A stable API connection with no advertisements points toward RF range, device advertising, or hardware.

    Enable debug logging only long enough to reproduce the failure once. Then disable it and download the log. Look for the first meaningful error, not every secondary warning that follows. Match timestamps between Home Assistant, the add-on or bridge, the router, and the vendor service when applicable.

    Step 6: make one reversible change

    Reconfigure the correct address or encryption key, stabilize power, or perform a short same-room range test. Add another proxy only after proving coverage is the problem. Update firmware one proxy at a time so a bad build does not remove all Bluetooth coverage.

    After each change, wait through several normal update intervals. Changing DNS, credentials, firmware, firewall rules, and device configuration at the same time may produce a temporary success without revealing the cause. Record the old value and the test result so you can roll back cleanly.

    How to verify the repair

    • The proxy remains available through several Wi-Fi and API intervals.
    • Expected advertisements appear with stable signal strength.
    • A supported active-connection device accepts one harmless command.
    • Home Assistant reconnects to the proxy after a controlled restart.

    A repair is not verified by a green icon alone. Confirm fresh state updates, send one low-risk command, verify the physical response, and make sure the returned state matches. Watch long enough to cover normal polling, sleep, or reconnect behavior.

    Rollback and escalation

    Keep the previous ESPHome YAML and firmware available. If a new build causes instability, restore the known-good configuration using a supported local or USB recovery method rather than repeatedly attempting over-the-air updates.

    If escalation is necessary, provide the exact model, firmware, Home Assistant version, integration version, network layout, redacted diagnostics, timestamps, and the checks already completed. A concise evidence package gets better help than a broad statement that the integration is broken.

    Prevent recurrence

    • Use reliable power supplies and cables for proxies.
    • Create DHCP reservations or dependable local name resolution.
    • Place multiple proxies with overlapping—but not excessive—coverage.
    • Update and test one proxy before rolling changes to the rest.

    Related Troubliq guides

    Sources and review record

    Last reviewed: September 21, 2026. Testing disclosure: This guide follows current official documentation and established diagnostic practice; exact menus can vary by release, installation type, and device firmware.

    Advanced isolation checklist

    When the basic checks do not identify the cause, build a controlled comparison. Test one known-good device, account, or client through the same path, and test the affected device through a simpler path when safe. Compare timestamps, addresses, authentication method, firmware, and permissions. The purpose is to change one boundary at a time, not to keep trying random fixes.

    Review release notes for Home Assistant, the integration, add-on, device firmware, and any reverse proxy or network service updated near the failure. Confirm a reported workaround applies to the same product and version before using it. Prefer an official repair or documented reconfiguration over unsupported downgrades.

    What not to do

    • Do not factory-reset multiple devices together.
    • Do not delete a working integration merely to clear a warning.
    • Do not expose local services or dashboards directly to the internet.
    • Do not post secrets or unredacted diagnostic files.
    • Do not assume a successful mobile-app test proves the Home Assistant path works.

    Detailed evidence checklist for Home Assistant Bluetooth proxy unavailable

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

  • Tuya Devices Unavailable in Home Assistant

    Tuya Devices Unavailable in Home Assistant

    Direct answer: If Tuya or Smart Life devices are unavailable in Home Assistant, verify they still work in the correct vendor account, reauthenticate the existing Tuya integration, and check account region and device sharing before resetting hardware. A cloud-account mismatch can make every device disappear even though Wi-Fi is healthy.

    Safety first: Preserve a current Home Assistant backup and record entity IDs, device names, IP addresses, integration settings, and the exact error before changing anything. Never expose tokens, passwords, encryption keys, webhook URLs, or unredacted diagnostics. Do not factory-reset equipment, delete an integration, or open mains-powered hardware as a first troubleshooting step.

    Confirm the failure boundary

    Determine whether the integration cannot load, every device vanished, only newly added devices are missing, or a device exists but exposes fewer entities than expected. Account linkage, region, product support, and entity capability are separate issues.

    Determine whether the problem affects one device, one integration, or every device using the same network path. A single-device failure usually points to power, addressing, credentials, firmware, or device-specific settings. Several failures beginning together point toward Home Assistant, DNS, routing, firewall policy, an upstream service, or a recent update.

    Quick diagnostic table

    Observation Likely layer Next safe check
    Every device disappeared Account authorization Reauthenticate the existing Tuya entry
    New devices are missing Account/home assignment Confirm the device is in the linked app home
    Login succeeds but no devices Region or account mismatch Verify app, account, country, and home
    Only one function is absent Capability exposure Check the official integration’s supported entities

    Step 1: preserve evidence

    Write down when the failure began, the last known working version, recent updates, router or VLAN changes, and the full error text. Open Settings → System → Logs and the integration entry under Settings → Devices & services. Download diagnostics when available. Evidence collected before a restart is often more valuable than evidence collected afterward.

    Step 2: verify the basic path

    Confirm the devices work in the Tuya Smart or Smart Life app while signed into the account linked to Home Assistant. Note the app name, account country or region, and selected home. A device shared from another account may behave differently from one owned by the linked account.

    Use the least invasive test that separates network reachability from application authentication. A successful ping proves only that an address responds; it does not prove that the required port, protocol, credentials, certificate, or API is working. Likewise, a vendor app working through the cloud does not prove that local communication from Home Assistant is allowed.

    Step 3: check configuration and credentials

    Start the official integration’s reauthentication flow and use the exact linked account. Scan or confirm authorization only through the official app and Home Assistant interface. If the account region changed, document it before relinking because region selection affects which cloud endpoint sees the devices.

    Prefer the integration’s Reconfigure or Reauthenticate flow over deleting it. Deletion can remove entity-registry relationships and break dashboards or automations. If credentials changed, update only the affected entry and verify one harmless entity before touching anything else.

    Step 4: inspect networking without weakening security

    The official Tuya integration depends on Tuya cloud access. Verify outbound HTTPS, DNS, system time, and the absence of filtering that blocks Tuya endpoints. Local ping tests do not validate cloud authorization, and port-forwarding will not repair the integration.

    If Home Assistant and the device are on different VLANs, test temporarily on the same trusted network. If that works, restore the intended layout and create the narrowest required rule. Do not expose local APIs to the public internet, disable the firewall globally, or create an unrestricted route from an untrusted IoT network to the main LAN.

    Step 5: read logs and reproduce once

    Distinguish authorization failures, rate limits, device-not-found responses, and unsupported data points. Do not repeatedly reload the integration during a cloud outage; repeated authentication attempts can complicate diagnosis or trigger temporary limits.

    Enable debug logging only long enough to reproduce the failure once. Then disable it and download the log. Look for the first meaningful error, not every secondary warning that follows. Match timestamps between Home Assistant, the add-on or bridge, the router, and the vendor service when applicable.

    Step 6: make one reversible change

    Reauthenticate once, then reload the entry and allow a full refresh. If only new devices are absent, confirm they are assigned to the same app home and account before removing anything. Avoid switching between Tuya Smart and Smart Life accounts during the same test.

    After each change, wait through several normal update intervals. Changing DNS, credentials, firmware, firewall rules, and device configuration at the same time may produce a temporary success without revealing the cause. Record the old value and the test result so you can roll back cleanly.

    How to verify the repair

    • The integration loads without an authentication repair notice.
    • Owned and intentionally shared devices appear in the expected home.
    • Entity states change after a normal cloud refresh.
    • One low-risk command works and its new state returns to Home Assistant.

    A repair is not verified by a green icon alone. Confirm fresh state updates, send one low-risk command, verify the physical response, and make sure the returned state matches. Watch long enough to cover normal polling, sleep, or reconnect behavior.

    Rollback and escalation

    If relinking creates duplicates, disable the newer entry and preserve the original entity IDs until you can compare both. Restore the prior account or region selection rather than resetting every device.

    If escalation is necessary, provide the exact model, firmware, Home Assistant version, integration version, network layout, redacted diagnostics, timestamps, and the checks already completed. A concise evidence package gets better help than a broad statement that the integration is broken.

    Prevent recurrence

    • Document which Tuya app, account, region, and home Home Assistant uses.
    • Keep account recovery methods current.
    • Avoid moving devices between homes without recording entity dependencies.
    • Check cloud status before making local network changes.

    Related Troubliq guides

    Sources and review record

    Last reviewed: September 21, 2026. Testing disclosure: This guide follows current official documentation and established diagnostic practice; exact menus can vary by release, installation type, and device firmware.

    Advanced isolation checklist

    When the basic checks do not identify the cause, build a controlled comparison. Test one known-good device, account, or client through the same path, and test the affected device through a simpler path when safe. Compare timestamps, addresses, authentication method, firmware, and permissions. The purpose is to change one boundary at a time, not to keep trying random fixes.

    Review release notes for Home Assistant, the integration, add-on, device firmware, and any reverse proxy or network service updated near the failure. Confirm a reported workaround applies to the same product and version before using it. Prefer an official repair or documented reconfiguration over unsupported downgrades.

    What not to do

    • Do not factory-reset multiple devices together.
    • Do not delete a working integration merely to clear a warning.
    • Do not expose local services or dashboards directly to the internet.
    • Do not post secrets or unredacted diagnostic files.
    • Do not assume a successful mobile-app test proves the Home Assistant path works.

    Detailed evidence checklist for Tuya devices unavailable in Home Assistant

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

  • Google Nest Unavailable in Home Assistant

    Google Nest Unavailable in Home Assistant

    Direct answer: When Google Nest devices become unavailable in Home Assistant, first separate an expired Google authorization from a Device Access project, Pub/Sub, network, or camera-event problem. Reauthorize the existing integration, confirm the Google project and Device Access subscription are still active, and verify event delivery before recreating anything.

    Safety first: Preserve a current Home Assistant backup and record entity IDs, device names, IP addresses, integration settings, and the exact error before changing anything. Never expose tokens, passwords, encryption keys, webhook URLs, or unredacted diagnostics. Do not factory-reset equipment, delete an integration, or open mains-powered hardware as a first troubleshooting step.

    Confirm the failure boundary

    Open the Google Nest integration and identify whether the whole integration failed to load, only one structure or device is missing, live video alone fails, or state works but events do not. These symptoms use different paths and should not be treated as one generic outage.

    Determine whether the problem affects one device, one integration, or every device using the same network path. A single-device failure usually points to power, addressing, credentials, firmware, or device-specific settings. Several failures beginning together point toward Home Assistant, DNS, routing, firewall policy, an upstream service, or a recent update.

    Quick diagnostic table

    Observation Likely layer Next safe check
    Every Nest device is unavailable OAuth or project access Reauthenticate the existing entry
    States work but events do not Pub/Sub event delivery Check subscription and event permissions
    One camera is missing Account or home membership Confirm the device is in the authorized Google Home
    Live stream fails only Stream capability or network Check supported stream behavior and local egress

    Step 1: preserve evidence

    Write down when the failure began, the last known working version, recent updates, router or VLAN changes, and the full error text. Open Settings → System → Logs and the integration entry under Settings → Devices & services. Download diagnostics when available. Evidence collected before a restart is often more valuable than evidence collected afterward.

    Step 2: verify the basic path

    Confirm Home Assistant has working outbound HTTPS and correct system time. Verify the Nest device works in Google Home and belongs to the same Google account and home that were authorized. If Google Home also fails, resolve the device or Google service problem first.

    Use the least invasive test that separates network reachability from application authentication. A successful ping proves only that an address responds; it does not prove that the required port, protocol, credentials, certificate, or API is working. Likewise, a vendor app working through the cloud does not prove that local communication from Home Assistant is allowed.

    Step 3: check configuration and credentials

    Use Reconfigure or Reauthenticate. Confirm the OAuth client, Device Access project, project ID, redirect URI, and account match the original setup. Consent-screen or credential changes can invalidate access. Do not create multiple replacement projects until the existing configuration has been examined.

    Prefer the integration’s Reconfigure or Reauthenticate flow over deleting it. Deletion can remove entity-registry relationships and break dashboards or automations. If credentials changed, update only the affected entry and verify one harmless entity before touching anything else.

    Step 4: inspect networking without weakening security

    Nest uses cloud APIs and event delivery, so outbound DNS, HTTPS, and accurate time matter. Local discovery rules will not repair an OAuth or Pub/Sub failure. Check filtered DNS, proxy inspection, and outbound firewall changes without opening inbound router ports.

    If Home Assistant and the device are on different VLANs, test temporarily on the same trusted network. If that works, restore the intended layout and create the narrowest required rule. Do not expose local APIs to the public internet, disable the firewall globally, or create an unrestricted route from an untrusted IoT network to the main LAN.

    Step 5: read logs and reproduce once

    Look for invalid_grant, access_denied, project or subscription errors, event timeouts, and unsupported device traits. An OAuth error requires account attention; a Pub/Sub error requires event-delivery attention; a missing trait may simply mean the device does not expose that feature.

    Enable debug logging only long enough to reproduce the failure once. Then disable it and download the log. Look for the first meaningful error, not every secondary warning that follows. Match timestamps between Home Assistant, the add-on or bridge, the router, and the vendor service when applicable.

    Step 6: make one reversible change

    Reauthorize the existing entry first. If state works but events fail, repair the documented Pub/Sub subscription and permissions. Change one project setting at a time and allow event delivery to resume before judging the result.

    After each change, wait through several normal update intervals. Changing DNS, credentials, firmware, firewall rules, and device configuration at the same time may produce a temporary success without revealing the cause. Record the old value and the test result so you can roll back cleanly.

    How to verify the repair

    • All expected structures and devices appear once, without duplicates.
    • A fresh temperature, mode, or camera state reaches Home Assistant.
    • A supported event arrives and creates a new logbook entry.
    • The integration reloads after a Home Assistant restart without requesting authentication again.

    A repair is not verified by a green icon alone. Confirm fresh state updates, send one low-risk command, verify the physical response, and make sure the returned state matches. Watch long enough to cover normal polling, sleep, or reconnect behavior.

    Rollback and escalation

    If a project edit worsens the problem, restore the recorded identifier, redirect URI, permission, or subscription setting. Do not delete the Device Access project while it may still own the authorization used by Home Assistant.

    If escalation is necessary, provide the exact model, firmware, Home Assistant version, integration version, network layout, redacted diagnostics, timestamps, and the checks already completed. A concise evidence package gets better help than a broad statement that the integration is broken.

    Prevent recurrence

    • Keep a secure record of the Google project and Device Access project IDs.
    • Review Google account-security changes before they expire active authorizations.
    • Use a dedicated, documented cloud project for Home Assistant.
    • Test events after major Home Assistant or Google account changes.

    Related Troubliq guides

    Sources and review record

    Last reviewed: September 21, 2026. Testing disclosure: This guide follows current official documentation and established diagnostic practice; exact menus can vary by release, installation type, and device firmware.

    Advanced isolation checklist

    When the basic checks do not identify the cause, build a controlled comparison. Test one known-good device, account, or client through the same path, and test the affected device through a simpler path when safe. Compare timestamps, addresses, authentication method, firmware, and permissions. The purpose is to change one boundary at a time, not to keep trying random fixes.

    Review release notes for Home Assistant, the integration, add-on, device firmware, and any reverse proxy or network service updated near the failure. Confirm a reported workaround applies to the same product and version before using it. Prefer an official repair or documented reconfiguration over unsupported downgrades.

    What not to do

    • Do not factory-reset multiple devices together.
    • Do not delete a working integration merely to clear a warning.
    • Do not expose local services or dashboards directly to the internet.
    • Do not post secrets or unredacted diagnostic files.
    • Do not assume a successful mobile-app test proves the Home Assistant path works.

    Detailed evidence checklist for Google Nest unavailable in Home Assistant

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

  • Duplicate devices after Home Assistant 2026.8: safe repair

    Duplicate devices after Home Assistant 2026.8: safe repair

    Direct answer: If devices appear duplicated after upgrading to Home Assistant 2026.8, do not immediately delete one, merge registries manually, or re-pair the hardware. The release changed how Home Assistant represents some physical products that are supplied by more than one integration. Review Settings, System, Repairs, follow the official repair when one is offered, and then check automations or scripts that target a device ID directly. Entity-based actions usually continue to address the same entities, but unusual configurations need verification.

    What changed in Home Assistant 2026.8

    Home Assistant’s August 2026 release introduced groundwork for more flexible device handling. The official release notes explain that a product previously represented as one device can be split when different integrations provide different parts of it. In rarer cases where the same device was configured through more than one integration, Home Assistant may raise a repair.

    The release notes state that automations and scripts generally keep working because actions are still sent to the appropriate devices. They specifically identify device-ID-based automations and unusual setups as areas that may deserve review. This is not the same as a random duplicate created by pairing a radio device twice, restoring an old registry, or adding both a local and cloud integration.

    Symptoms covered by this guide

    • One physical product appears as two device cards after the 2026.8 upgrade.
    • Entities that were grouped together now appear under separate devices.
    • A new repair mentions a device represented by multiple integrations.
    • An automation using a device trigger or device action behaves differently.
    • A dashboard still works but the device page looks reorganized.
    • You cannot tell whether the second device is intentional or stale.

    Before making changes

    1. Create and download a current Home Assistant backup.
    2. Record the Core version and installation type.
    3. Capture the repair text and both device pages.
    4. List the integrations shown on each device page.
    5. Record entity IDs, device IDs where visible, area assignments, and disabled entities.
    6. Export or copy important automations and scripts that reference the device.

    Do not edit the device registry or entity registry files manually on a running system. Do not delete database rows. Registry corruption can affect more than the visible duplicate and may leave automations pointing to identifiers that no longer exist.

    Step 1: Determine whether the split is expected

    Open each device card under Settings, Devices & services, Devices. Compare manufacturer, model, serial or hardware identifiers, entities, and the integrations listed. An expected split may place different functional groups under separate representations because distinct integrations provide them.

    For example, one integration may provide local device controls while another provides a service-level function. The visible names may be similar even though the representations have different ownership. Do not rename them solely to make the distinction disappear; first understand which integration supplies each entity.

    Step 2: Read the Repairs entry completely

    The Repairs integration is enabled by default and lists issues under Settings, System, Repairs. Each repair either offers a guided fix or provides information about the required action. Open the item and read every step before confirming it.

    If the repair is related to the 2026.8 device-handling change, follow the official flow. Avoid using a generic “ignore” choice until you know what remains unresolved. Take screenshots or notes so you can compare device and entity mappings after completion.

    Step 3: Identify other causes of apparent duplicates

    Not every duplicate after an upgrade is caused by the new device model. Check whether the same product was added through multiple paths:

    • A manufacturer cloud integration and a local protocol integration.
    • HomeKit Device and Matter for the same accessory.
    • ZHA and Zigbee2MQTT records from a migration.
    • Two configuration entries for the same network service.
    • A restored backup plus newly discovered hardware.
    • An old unavailable device with no entities and a new active device.

    Multiple integrations can be intentional. A cloud entry may expose functions that the local path does not, while the local path offers better responsiveness. Decide based on ownership, reliability, privacy, and entity requirements rather than the number of cards alone.

    Step 4: Compare entity registries before deleting anything

    Open each entity and record its entity ID, integration, device association, state, and where it is used. Home Assistant’s interface can show related automations, scripts, scenes, and dashboards. An unavailable entity can still be referenced by an automation, so absence of a current state does not prove it is safe to delete.

    Look for equivalent entities with different IDs, such as a cloud switch and local switch controlling the same relay. Test only a non-critical control and confirm which physical function changes. Do not experiment with locks, garage doors, alarms, mains-powered heating, irrigation, or other safety-sensitive systems without appropriate safeguards.

    Step 5: Audit device-based automations

    Automations can target entities or devices. Entity actions reference an entity ID, while device triggers, conditions, and actions can store a device identifier and integration-specific details. The 2026.8 release notes call out device-ID-based automations for review after a split.

    Open each related automation in the visual editor and inspect triggers, conditions, and actions. If YAML mode is used, save a copy before editing. Confirm which new device contains the required trigger or action. Do not replace every reference mechanically; the correct representation can differ by function.

    After a repair, trigger each non-critical automation under controlled conditions. Check traces to verify that the expected trigger fired, conditions evaluated correctly, and the intended entity received the action.

    Step 6: Check scripts, scenes, dashboards, and areas

    Scripts and scenes usually reference entities, but device actions are also possible. Dashboards can contain entity cards, device pages, conditional cards, and area-based views. Search for unavailable or renamed entities and update only confirmed stale references.

    Check area assignments on both device representations. A split can leave functions in different areas, which affects area-based voice commands, dashboards, and automations. Assign each representation according to the physical location and how Home Assistant uses the area.

    Step 7: Decide whether one integration should be removed

    Remove a configuration entry only after proving it is redundant and documenting what it owns. Use the integration’s official removal flow. Some integrations remove devices and entities immediately; others leave registry entries until cleanup conditions are met.

    Before removal, list unique capabilities, authentication requirements, cloud dependencies, update frequency, and automations using its entities. Prefer the path that meets your reliability and privacy needs, but do not assume “local” and “cloud” are interchangeable. The local path may not expose every function.

    Step 8: Handle a stale unavailable device

    If one device has no active entities and belongs to a removed configuration entry, Home Assistant may allow it to be deleted. Confirm that it is not a bridge, service device, or parent of hidden entities. Check disabled entities as well as visible ones.

    Delete through the user interface only when Home Assistant offers the action and all references have been reviewed. If deletion is unavailable, investigate the owning integration instead of manipulating registry storage manually.

    Step 9: Review custom integrations

    The 2026.8 release notes say most custom integrations require no immediate changes, but developers working directly with device information should review the developer guidance. If the duplicate involves a custom integration, check its repository for a release compatible with your exact Core version.

    Do not copy unreviewed patches into production. Custom integrations are outside the official project’s normal support boundary and can affect registry behavior. Back up, read release notes, and test updates one at a time.

    How to verify the repair

    1. Clear or complete the relevant Repairs item.
    2. Restart Home Assistant once under controlled conditions.
    3. Confirm the expected device representations return.
    4. Check that all required entities have current states.
    5. Run important non-critical automations and inspect traces.
    6. Verify scripts, scenes, dashboards, area controls, and voice exposure.
    7. Review logs for registry, config-entry, or platform errors.
    8. Wait through at least one normal integration update cycle.

    Common mistakes to avoid

    • Deleting the first device that shows unavailable.
    • Assuming similar names prove two records are duplicates.
    • Removing a cloud integration before checking unique entities.
    • Editing registry JSON files directly.
    • Re-pairing Zigbee, Z-Wave, Matter, or HomeKit hardware without evidence.
    • Ignoring device-based automations after the split.
    • Restoring an old backup without considering later changes.
    • Renaming entities before recording their original IDs.

    Rollback and recovery

    If a guided repair or integration removal breaks automations, stop additional changes. Restore saved automation YAML or update references to the verified new device and entities. If many registry relationships are damaged, a full backup restore may be safer than manual reconstruction, but it also reverses changes made after the backup. Review the backup date and preserve the current system before restoring.

    When radio devices are involved, avoid factory resets during registry cleanup. Radio pairing state can reside in both the controller and endpoint. A reset can turn a user-interface organization problem into a network re-pairing problem.

    When to escalate

    Collect the Core version, previous version, installation type, repair text, integration names, device identifiers with sensitive values redacted, entity mappings, relevant logs, and steps that reproduce the problem. State whether the setup uses official or custom integrations and whether the duplicate existed before 2026.8.

    Search the Home Assistant Core issue tracker and the relevant integration repository. If filing a new report, focus on one reproducible behavior. Do not upload a complete backup, secrets file, tokens, precise location, or unreviewed diagnostic archive.

    Prevention and maintenance

    • Read release notes before major monthly upgrades.
    • Keep verified backups and matching recovery material.
    • Document integrations that represent the same physical product.
    • Prefer stable entity naming and avoid unnecessary renames.
    • Review device-based automations after device-registry changes.
    • Remove obsolete configuration entries through supported interfaces.
    • Track custom-integration compatibility separately.

    Use automation traces to find hidden device references

    A device-based automation can look correct in the visual editor while its stored reference still points to the representation that changed. Open the automation’s recent traces and inspect the trigger, conditions, and action path. A trace can show whether the trigger never fired, a condition evaluated against an unavailable entity, or an action targeted a device that no longer offers the expected capability.

    When correcting a reference, change only the affected trigger or action and save a copy of the previous YAML. Then reproduce the event safely and compare the new trace. This is more reliable than replacing every similar device name across the system.

    How names can make an intentional split look like an error

    Home Assistant may derive names from the product, integration, room, and entity descriptions. After a split, two legitimate records can inherit nearly identical names. Give them clear display names only after you identify their roles—for example, distinguishing a local control representation from a cloud service representation. Renaming improves clarity but does not merge ownership or change which integration updates an entity.

    Avoid changing entity IDs during the first investigation. Entity-ID changes can ripple through YAML, templates, dashboards, notifications, and external consumers. Stabilize the device relationships first, then make naming changes deliberately with a reference audit.

    Check voice assistants and external consumers

    Google Home, Alexa, HomeKit bridges, Node-RED, MQTT consumers, and dashboards outside Home Assistant may refer to entity IDs or exposed-device selections. After completing the repair, review exposed entities and look for a duplicate display name in the external platform. Do not delete the external copy until Home Assistant’s source entity is understood.

    If an external platform retains a stale device, sync or rediscover through its supported procedure after Home Assistant is stable. Re-linking an entire account can affect rooms, routines, and names, so use the smallest supported refresh first.

    Special care for bridges and multi-channel products

    A bridge, power strip, multi-relay module, or climate system can legitimately contain many entities and child devices. Two cards do not necessarily represent two copies of the hardware. One may represent the bridge or service while others represent endpoints. Check the “via device” relationship and integration ownership before removing the parent.

    For Zigbee, Z-Wave, Matter, and HomeKit, registry cleanup is not the same as radio removal. Exclusion, unpairing, or factory reset changes network credentials and should be reserved for a proven communication or ownership problem. A device-page reorganization after 2026.8 does not by itself justify radio changes.

    2026.8 duplicate-device decision table

    What you see Likely meaning Safest next step
    Two device pages, each owned by a different integration The former cross-integration merged device was split as designed Keep both until you confirm which entities and automations belong to each integration
    A Repairs notification after upgrading Home Assistant detected a device-registry case that needs guided review Follow the repair text; do not delete registry records first
    Duplicate-looking cards but different entity sets One physical product is represented by separate integration responsibilities Rename the device pages for clarity and leave entity ownership intact
    An entity is unavailable or orphaned The issue may be an integration/config-entry failure rather than the 2026.8 split Check the entity’s integration, config-entry status, and logs before cleanup
    An automation reports an unknown device A device-based trigger or action may reference the pre-split registry entry Re-select the intended device/entity in a copy of the automation, test it, then replace the original

    Verify before deleting or merging anything

    Open each device page and record its integration, identifiers, entities, and automation links. The official 2026.8 change assigns a device to one config entry instead of merging information from several integrations. A physical product may therefore appear once for its primary integration and again for a router or tracker integration. That is not automatically corrupt data.

    Use a reversible test: rename each device page temporarily with its integration name, run one device-based automation, and operate one entity from each page. If both pages control or report distinct functions, keep them. If a repair explicitly instructs you to choose an entry, follow that guided flow and recheck automations afterward. Do not unpair Zigbee, exclude Z-Wave, reset Matter credentials, or factory-reset HomeKit accessories merely because the registry presentation changed.

    Expected result: entities remain attached to the correct integration-owned device, existing entity-based automations continue working, and any affected device-based automation is deliberately remapped. Rollback: restore the original automation from its backup or traceable copy and reverse temporary display-name changes. Registry deletion is not a rollback strategy because it can remove references without fixing the owning integration.

    Evidence and testing disclosure: This diagnostic order is based on the Home Assistant 2026.8 release notes and the official developer explanation of single-config-entry device ownership. Community reports are treated only as examples of impact, not proof of a universal defect. Troubliq did not reproduce every integration combination. Last reviewed October 1, 2026.

    Sources

    Last reviewed: September 8, 2026.

    Related Troubliq guides: Use the least-destructive diagnostic method, browse all troubleshooting guides, and read Matter device unavailable troubleshooting when the apparent duplicate involves a Matter accessory.

    Decision summary

    Follow the official repair when Home Assistant identifies a 2026.8 representation issue. Audit device-based references when functions moved between device records. Keep multiple integrations when each supplies needed capabilities. Remove an entry only after documenting its entities and dependencies. Delete a stale device only through the supported interface after confirming that it owns nothing required. This evidence-first process prevents a cosmetic duplicate from becoming lost automations, missing entities, or an unnecessary radio rebuild.

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

  • Home Assistant backup asks for an encryption key: find the emergency kit and restore safely

    Home Assistant backup asks for an encryption key: find the emergency kit and restore safely

    Direct answer: If Home Assistant asks for an encryption key during restore, the backup is encrypted and must be unlocked with the matching key from its backup emergency kit. The key is not your Home Assistant login password, cloud password, or device PIN. If the original Home Assistant installation still works, open its backup settings and download the emergency kit again before doing anything destructive. If the old installation is unavailable, search the safe locations where you stored the kit and check any supported cloud backup account. Do not overwrite the old system or delete backup files while searching.

    Symptoms and scope

    • A backup uploads successfully but restore requests an encryption key.
    • Your normal Home Assistant password is rejected.
    • A migration stops because you cannot find the emergency kit.
    • An automatic backup exists in cloud or network storage, but you cannot decrypt it.
    • You have several emergency kits and do not know which matches the backup.
    • A restore begins but fails because the file is incomplete, damaged, or from an incompatible environment.

    This guide applies to Home Assistant’s current encrypted backup system introduced with the backup overhaul in 2025. It covers the safe decision process around finding the key, verifying the backup, and restoring. It does not provide a method to bypass encryption; strong backup encryption is specifically intended to prevent that.

    What the emergency kit contains

    When automatic encrypted backups are configured, Home Assistant generates an encryption key and offers an emergency kit for download. Home Assistant’s official backup guidance says encrypted backups require this key for restoration. The kit records the recovery information and identifies the backup configuration it belongs to.

    The emergency kit should be stored separately from the Home Assistant machine. If the only copy is on the same disk that fails, the backup may become unusable precisely when it is needed.

    Before attempting another restore

    1. Preserve the original backup file without renaming or modifying its contents.
    2. Make a second copy on another storage device.
    3. Record the backup filename, creation date, size, and storage location.
    4. Do not wipe the old Home Assistant installation if it may still contain the working backup configuration.
    5. Do not post the encryption key, backup file, or emergency kit publicly.
    6. Keep power stable during any restore, especially on Raspberry Pi or removable storage.

    A backup can contain credentials, tokens, Wi-Fi details, device keys, location history, and personal automation data. Treat both the archive and emergency kit as sensitive secrets.

    Step 1: Confirm that the prompt is for backup encryption

    Read the restore screen carefully. An encryption-key prompt is different from the Home Assistant owner login, onboarding account creation, full-disk encryption, a network-storage password, or a cloud-provider sign-in.

    The emergency-kit key is associated with Home Assistant backups. Trying account passwords will not decrypt the archive and can waste time or trigger unrelated account protections.

    Step 2: Re-download the emergency kit from the working system

    If the original Home Assistant installation is accessible:

    1. Open Settings → System → Backups.
    2. Open the automatic-backup configuration.
    3. Locate the emergency-kit or encryption-key option.
    4. Download a fresh copy.
    5. Save it to two separate secure locations.
    6. Label it with the Home Assistant instance and date.

    Home Assistant’s 2025 backup announcement states that the emergency kit is available to download again from backup settings. Do this before migrating storage, replacing hardware, reinstalling Home Assistant OS, or experimenting with the old disk.

    Step 3: Search likely safe locations methodically

    If the old instance is unavailable, search without changing the backup:

    • Your computer’s Downloads and Documents folders.
    • An encrypted password-manager attachment or secure note.
    • An encrypted USB drive or external backup disk.
    • A private cloud-storage folder you intentionally chose.
    • A printed recovery folder or sealed offline record.
    • Another administrator’s approved secure storage.

    Search by the Home Assistant instance name, “emergency kit,” “backup,” the approximate setup date, and likely file extensions. Verify the contents locally without sharing them.

    Do not use random online “decrypt backup” services. Uploading a Home Assistant backup to an unknown site can expose every secret stored in the installation.

    Step 4: Check the configured backup destination

    Home Assistant can store automatic backups in enabled locations. The official documentation lists local storage, Home Assistant Cloud for subscribers, network storage, and locations supplied by backup-capable integrations. Determine which destination was enabled when the backup was created.

    If Home Assistant Cloud was used, the latest stored backup may be accessible through the authorized cloud account even when the Home Assistant hardware has failed. Cloud-stored backups are encrypted, so the emergency key is still required. Sign in only through the official service.

    Step 5: Match the kit to the backup

    Do not assume the newest key unlocks every old archive. A backup may belong to an earlier installation or backup configuration. Keep multiple kits clearly labeled rather than replacing older copies automatically.

    1. Start with the kit whose date and instance name best match the backup.
    2. Enter the key exactly, avoiding added spaces or line breaks.
    3. If it fails, stop and verify the backup and kit identity.
    4. Try another legitimate kit only when you have evidence it may match.
    5. Never edit the archive to remove encryption markers.

    Step 6: Verify backup integrity before blaming the key

    A damaged or incomplete archive may produce a restore failure that looks like a key problem. Compare the file size with the source storage and copy it again if the transfer was interrupted. Avoid restoring directly from an unstable browser upload, failing SD card, or unreliable network share.

    If the source system still works, create a new manual backup, download its emergency kit, and test with that known pair. Home Assistant’s general backup guidance recommends excluding large media and share folders when appropriate because oversized backups take longer to create and restore. Do not exclude essential configuration merely to make the file smaller.

    Step 7: Prepare the destination correctly

    Use the restore path supported by your Home Assistant installation type. A complete Home Assistant OS migration differs from moving a Container installation or restoring selected folders manually. Confirm the destination has enough free storage—ideally comfortably more than the archive size because extraction requires working space.

    Connect the destination to stable power and a reliable network. On small single-board computers, avoid suspect SD cards or underpowered adapters. A restore interrupted by power loss can leave the destination inconsistent even though the original backup remains safe.

    Step 8: Restore with the correct key

    1. Upload or select the preserved backup through the supported restore interface.
    2. Enter the matching encryption key from the emergency kit.
    3. Select a full or partial restore intentionally.
    4. Start the restore and allow it to finish without refreshing repeatedly.
    5. Expect the interface to become temporarily unavailable during restart.
    6. Reconnect using the appropriate local address after sufficient time.

    A large backup can take a long time. Repeatedly restarting the host because the page is temporarily unavailable can convert a slow restore into a failed one. Check host activity and network reachability before intervening.

    How to verify the restored system

    1. Confirm the expected Home Assistant version and installation type.
    2. Check integrations for reauthentication or missing hardware.
    3. Verify Zigbee, Z-Wave, Matter, Thread, Bluetooth, and USB adapter mappings.
    4. Test several non-critical automations.
    5. Check dashboards, users, areas, scripts, and helpers.
    6. Review logs for repeated database, storage, or integration errors.
    7. Create a new backup only after the restored instance is stable.

    Some integrations intentionally require reauthentication after migration. USB device paths, IP addresses, multicast routing, and radio assignments can also change. These are post-restore environment issues, not proof that the backup was bad.

    If you cannot recover the key

    There is no responsible shortcut around correctly implemented encryption. If the original instance is still accessible, recover or re-download the emergency kit from it. If a trusted cloud service holds the backup, check its official recovery path. If neither the matching key nor a functioning original system exists, you may have to build a new Home Assistant installation and reconnect devices.

    Before rebuilding, preserve the old storage and all backup copies. A later discovery of the correct emergency kit may make restoration possible. Rebuilding immediately on the same disk can destroy that option.

    Rollback and recovery

    If a restore fails, do not modify the original archive. Save logs and error text, shut down the destination cleanly if possible, and return to the previous known-good boot disk or instance. When migrating hardware, keep the old system powered off but intact until the new one has operated successfully for several days.

    When to escalate

    Contact official Home Assistant support channels or the relevant installation project with the Home Assistant version, installation type, destination hardware, backup creation date and size, exact error text, and restore stage. Remove secrets from screenshots and logs. Never provide the emergency key or backup archive to strangers offering to fix it.

    Prevention: a practical 3-2-1 plan

    • Keep at least three copies of important data.
    • Use at least two different storage types or locations.
    • Keep at least one copy off the Home Assistant host.
    • Store the emergency kit separately in two secure places.
    • Label kits with the instance and date.
    • Test that a backup and its key are available before major updates.
    • Review retention rules so a bad new backup does not replace the only good copy.
    • Create a fresh manual backup before hardware, radio, database, or network migrations.

    Plan for the case where no matching emergency kit can be found

    If every legitimate storage location has been checked and no matching encryption key exists, pause before reinstalling or overwriting anything. Encryption is intended to prevent recovery without the key. A normal account password, recovery-mode login, cloud subscription, or new emergency kit cannot substitute for the key that protected an older backup.

    Preserve every remaining source: the original Home Assistant disk, downloaded backup archives, network-storage snapshots, cloud copies, and older emergency kits. Label copies with dates and do not run repair utilities directly against the only surviving disk. If the original system can still boot intermittently, prioritize downloading a fresh backup and its matching emergency kit. If storage hardware is failing, make a sector-level image with appropriate recovery expertise before repeated boots cause further damage.

    A partial manual rebuild may be the only safe path when the key is unavailable. Recreate the new Home Assistant owner account, reinstall integrations from official sources, reauthenticate cloud services, and add radios or devices carefully. Do not copy unknown database fragments or secret files into a clean installation without understanding their compatibility and security impact.

    Build a backup recovery drill instead of trusting an untested archive

    A backup is useful only when its archive, key, storage location, and restore procedure remain available together. Schedule a periodic recovery review. Confirm that automatic backups are completing, verify their sizes are plausible, download the current emergency kit, and store it separately in at least two protected locations. Keep one offline copy when practical and document which Home Assistant instance it belongs to.

    Do not expose a backup or emergency kit merely to test it. Use an isolated, supported environment and prevent the restored instance from taking control of production radios, locks, alarms, thermostats, or automations. A test restore should confirm that the key unlocks the archive and that essential configuration is present without allowing two controllers to operate the same home simultaneously.

    Information to record before requesting help

    Record the Home Assistant version that created the backup, installation type, archive filename and size, destination type, restore environment, exact stage of failure, and the complete redacted error. Say whether the key prompt rejects the key immediately or whether failure occurs later during extraction. This distinction helps separate a mismatched key from damaged storage, insufficient space, or a restore-process problem. Never upload the archive, emergency kit, secrets file, tokens, or unredacted diagnostics to a public forum.

    Sources

    Last reviewed: September 8, 2026.

    Related Troubliq guides: Use the safe diagnostic method and browse all troubleshooting guides.

    Decision guide: which recovery path should you choose?

    If the original Home Assistant system still starts, the safest path is to re-download the emergency kit there, create a fresh backup, copy both items off the host, and then retry the migration. If the original system does not start but its disk is intact, preserve that disk before attempting repair. Work from a clone or separate destination whenever possible.

    If the backup is stored in Home Assistant Cloud or another supported destination, retrieve it only through that provider’s official authenticated interface. A cloud copy does not eliminate the encryption requirement; it protects availability, while the emergency kit protects confidentiality. You need both the archive and its matching key.

    If you have the correct key but restoration still fails, investigate file integrity, free disk space, installation type, and transfer errors before concluding the encryption is wrong. If you have no key but retain access to the old instance, recover the kit there. If neither the matching key nor the original instance exists, preserve all media and prepare for a clean rebuild rather than repeatedly modifying the only backup.

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

  • Home Assistant Energy dashboard sensor is missing from the selection list

    Home Assistant Energy dashboard sensor is missing from the selection list

    Direct answer: The Energy dashboard only offers compatible sensor entities. Check the entity domain, device class, state class, unit, and long-term statistics errors before changing the dashboard.

    Symptoms

    • A working power or energy entity is absent from the Energy dashboard selector.
    • The entity appears elsewhere but cannot be chosen for grid, solar, battery, gas, or water.

    Prerequisites

    Record the entity ID and current attributes. Do not edit recorder data or entity registries as a first step.

    Diagnostic steps

    1. Open Settings → Developer tools → States and find the entity.
    2. Confirm it belongs to the sensor domain.
    3. Check device_class: electricity normally requires energy or power; gas and water require their matching classes.
    4. Check state_class. Power measurements normally use measurement; accumulated energy normally uses total or total_increasing.
    5. Confirm the unit is supported and correctly written.
    6. Open Settings → Developer tools → Statistics and resolve any issue shown for the entity.
    7. If an integration supplies incorrect attributes, update it and report the problem to that integration rather than masking it blindly.

    Verify the fix

    After valid statistics are generated, reopen Energy configuration and confirm the sensor appears. Add it, then verify new readings and totals rather than relying on the selector alone.

    Recovery and rollback

    If you created a template sensor, keep the original entity unchanged until the replacement has accumulated valid data. Remove the template only after reverting the dashboard selection.

    Prevention

    Prefer integration-provided energy entities, document templates, and check Statistics after unit or firmware changes.

    Sources

    Last reviewed: September 4, 2026.

    Related Troubliq guides

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

    Detailed evidence checklist for Home Assistant Energy dashboard sensor is missing from the selection list

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

    For checkpoint 1, inspect measurement unit rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 1: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 2 — device class: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 2: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 3 focuses on state class. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 3: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 4, inspect numeric state rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 4: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 5 — statistics ID: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 5: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 6 focuses on statistics repair. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 6: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 7, inspect power integration helper rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 7: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 8 — utility-meter source: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 8: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 9 focuses on metric prefix. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 9: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 10, inspect dashboard refresh rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 10: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 11 — controlled-load comparison: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 11: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Confirm that the entity qualifies for the Energy dashboard

    The Energy dashboard does not list every sensor that displays watts or kilowatt-hours. A consumption source normally needs a supported device class, an appropriate state class and a cumulative energy unit such as Wh or kWh. Open Developer Tools, inspect the entity and record its unit, device_class, state_class and current state. A power sensor measured in W describes a rate; it must be integrated over time before it can represent energy.

    For a cumulative meter, determine whether it increases continuously, resets periodically or can decrease. Use the state class that matches the sensor’s real behavior rather than forcing metadata solely to make the entity appear. Incorrect statistics metadata can produce misleading totals and long-term-statistics warnings.

    Check statistics before editing helpers

    Open Developer Tools and the statistics repair interface. Look for unit changes, unsupported units, non-numeric states, duplicate statistic IDs or a discontinuity caused by replacing an entity. Correct the upstream sensor when possible. A template or utility meter can be appropriate, but it should have a clearly documented source and should not duplicate an already valid cumulative reading.

    If the source is instantaneous power, create an integration helper using the correct time unit and metric prefix, then allow it to accumulate before selecting it. If a daily or monthly view is needed, create a Utility Meter from a valid cumulative energy sensor. Do not chain helpers without checking the resulting unit and statistics behavior.

    Verify the dashboard data path

    • The entity exposes a numeric state in Wh or kWh.
    • Its device and state classes match the measurement behavior.
    • Long-term statistics appear without repair warnings.
    • The Energy configuration accepts the entity after statistics refresh.
    • Totals increase plausibly when a known load operates.

    Allow enough time for the statistics cycle; the dashboard is not an instantaneous display. Compare a controlled appliance run with the change in the cumulative sensor and the dashboard total. If the value is off by a factor of 1,000, inspect unit conversion and metric-prefix settings instead of compensating with an arbitrary dashboard adjustment.