fix(zigbee): revive orphaned approved devices on re-import (#167)
When a Zigbee device was approved (PendingDevice.status=approved + Node created) and the user later deleted the canvas Node, the PendingDevice row was left orphaned as approved. On re-import _persist_pending_import found the existing row, refreshed its fields but left status=approved, so it never reappeared in the Pending list (which filters status==pending) — the import reported devices found but Pending stayed empty. Reset such orphaned approved rows back to pending on re-import. Hidden devices stay hidden (explicit user intent). Adds regression tests for both revive-approved and keep-hidden paths. ha-relevant: yes
This commit is contained in:
@@ -223,7 +223,13 @@ async def _persist_pending_import(
|
||||
pending.vendor = n.get("vendor") or pending.vendor
|
||||
if n.get("lqi") is not None:
|
||||
pending.lqi = n.get("lqi")
|
||||
if pending.status == "hidden":
|
||||
if pending.status == "approved":
|
||||
# The device was approved earlier but its canvas Node no longer
|
||||
# exists (no Node matched the IEEE above) — it was deleted. Revive
|
||||
# the row to "pending" so it reappears in the Pending list on
|
||||
# re-import instead of being silently swallowed. (Issue #167)
|
||||
pending.status = "pending"
|
||||
elif pending.status == "hidden":
|
||||
# Re-imported a hidden device → leave it hidden, just refresh fields.
|
||||
pass
|
||||
pending_updated += 1
|
||||
|
||||
Reference in New Issue
Block a user