Hilfe: Wie lösche ich nicht löschbare, aber nicht existierende Entitäten?

Ich habe eine Reihe von in ehemals YAML selbstdefinierten Entitäten, die sich nicht löschen lassen Dies sind typischerweise Templates, aber auch input_number Helfer und anderes.

Nicht verfügbare Entität (Beispiel):

Nicht löschbar:

Laut Statistiken der Entwickler-Tools „kein Problem“

die zugehörigen Templates waren in configuration.yaml und später in einer includierten templates.yaml definiert. Dort habe ich sie entfernt.
Dann die templates per Entwicklertools neugeladen - ohne Effekt,
Dann Home Assistant neu gestartet - ohne Effekt
Das ganze HAOS neu gestartet - ohne Effekt.

habe alle yaml-Dateien im config-Ordner durchsuchen lassen, der template Sensor ist dort nicht.

=> Wie entferne ich diesen „Schrott“?

Ich habe erst mal die altenlasten so entfernt das ich die Integration mal gelöscht habe und dann wieder neu angelegt, dann waren die alten Entitäten auch weg! Anderen Möglichkeit habe ich nicht gefunden!

Danke Dir

ja, das fuktioniert für „echte“ Integrationen. Bei mir hier basierten die Entitäten auf REST-Abfragen an APIs.
Die APIs gibt’s nicht mehr, die REST-Abfragen auch nicht. Aber die darauf basierenden Entitäten sind noch da obwohl auch gelöscht.

Schon mal das ganze System neu gestartet? Vllt sind sie dann weg!

ja, hab ich:

Soweit ich weiß gibt es da mehrere Möglichkeiten.

  • Die gefährlichste ist, den Eintrag in der core.entity_registry zu löschen.
    Das habe ich mal gemacht und wohl nicht gut aufgepasst - danach war ein Restore fällig.

  • Relativ sicher ist der Weg über die Konsole.
    Falls du Zugriff auf das Terminal (SSH & Web Terminal Add-on) hast, kannst du versuchen, die Entität über die HA-Befehlszeile zu entfernen:

ha entity delete sensor.dein_alter_sensor
  • Das funktioniert nur, wenn die Entität nicht mehr aktiv von einer Integration oder YAML-Datei bereitgestellt wird.

Oder

  • Geister-Einträge in der core.restore_state

  • Manchmal „überleben“ Entitäten im wiederhergestellten Zustand. Wenn der Sensor unter Entwicklerwerkzeuge → Zustände noch auftaucht, aber den Status unavailable hat:

  1. Gehe zu .storage/core.restore_state.
  2. Suche dort nach der Entität.
  3. Lösche den entsprechenden Eintrag.
  4. Starte HA neu.

Das habe ich noch nie gemacht, nur davon gelesen.
:warning: Auch das ist eine „Operation am offenen Herzen“ :warning:

1 „Gefällt mir“

Das werde ich mal versuchen - und mich dann mit dem Ergebnis melden.

Danke Dir @Schorsch

Hatte ich auch schon. Ein Neustart kann nichts genützt. Erst als ich mich in Home Assistant abgemeldet und wieder angemeldet habe, sind die Entitäten verschwunden :thinking:

Sollte eigentlich über die Purge Funktion möglich sein. Aber da würde ich vor dem Ausführen definitiv ein Backup erstellen.

Hi, du könntest versuchen die Entität einfach noch einmal kurzzeitig in deine templates.yaml einzutragen und nutzt dafür die ursprüngliche unique_id oder zumindest den exakt gleichen Namen. Wenn du danach die YAML-Konfiguration neu geladen hast, erkennt Home Assistant den Sensor wieder als aktiv, was dann den Löschen Button unter Einstellungen > Entitäten erst wieder entsperrt/aktiviert. Sobald du die Entität dann erfolgreich über die Benutzeroberfläche gelöscht hast, kannst du den zugehörigen Code-Block einfach wieder aus deiner YAML-Datei entfernen und das Problem sollte damit eigentlich erledigt sein.

Ansonsten würde ich auch den Weg über .storage gehen und die Entität unter core.restore_state heraussuchen und dort löschen (wie schorsch schon beschrieben hat). Aber der erste Wege müsste eigentlich der einfache sein und funktionieren.

Was ist eigentlich mit Spook, müsste das damit nicht auch funktionieren. :thinking:

Das kannst vergessen, klappt bei o.g. Geister-Entitäten nie (eigene Erfahrung).

Durch rumspielen an “core.restore_state” hab ich mir auch schonmal mein System abgeschossen :wink:

@Schorsch
habe nun deinen Vorschlag versucht

allerdings ohne Erfolg

➜  ~ ha entity
Error: unknown command "entity" for "ha"
Run 'ha --help' for usage.
Error: unknown command "entity" for "ha"

➜  ~ ha entity delete ec4_charging_rate
Error: unknown command "entity" for "ha"
Run 'ha --help' for usage.
Error: unknown command "entity" for "ha"

Offenbar kennt ha kein Kommando entity

Tja, Spook, finde ich meistens gut, doch wenn sein Scan mir wieder den ganzen HA lahmlegt, find ich’s wieder nicht so gut :wink:

Ich probier’s mal.

EDIT
spook stellt keine Aktion zum Löschen einzelner Entities zur Verfügung.
es gibt nur homeassistant.delete_all_orphaned_entities und das löscht alle vermeintlichen Waisen. Auch wenn sie evtl doch noch gebraucht werden.

=> Werde ich also nicht machen

Ich habe es auch nur ab und an laufen um mal zu kontrollieren. Ansonsten ist bei spook mir immer ausgeschaltet. Wäre auf jeden Fall einen Versuch und wenn nicht kannst ja mal mein anderen beschriebenen Weg testen. :slight_smile:

habe nun

action: recorder.purge_entities
data:
  keep_days: 0
  entity_id:
    - sensor.ec4_charging_rate

ausgeführt.

Noch ist sensor.ec4_charging_rate zu sehen, evtl braucht die Datenbank für das Purge ein wenig Zeit, oder macht das in der Nacht. Schauen wir mal.

Hab ich versucht, leider erfolglos. HA erzeugt eine neue Entität, und lässt den Zombie parallel existieren:

Naja schade, war ein Versuch wert.

1 „Gefällt mir“

Ja, das dauert gefühlt ne Ewigkeit. Ich bin mir nicht sicher, kann sein daß er das mit dem regulären Purge um 04:12Uhr macht.

Leider sind auch heute Morgen die Entitäten trotz purge noch vorhanden.
Irgendwie auch verständlich, denn purge arbeitet auf der Datenbank während die Entitäten/Geräte und ihre Definition (nicht historischen Daten) in den Dateien in .storage stehen.

Jetzt werde ich mich also in Ruhe und mit Backup an die Reinigung ebendort in .storage begeben.

Oder hat noch jemand eine Idee? :folded_hands:

1 „Gefällt mir“

Eigentlich kann der Fall ja nicht so kompliziert sein. Gut Purge geht nur auf die Statistiken, das ist abgehakt. Ich meine auch mal gelesen zu haben das HA innerhalb von zehn Tagen verweiste Entitäten aufräumt. Das ist aber auch nur eine Info, die ich nur überflogen habe.

Wenn ich so eine Funktion einbauen müsste, würde ich darauf achten ob die Entität Aktiviert ist. Also so wie bei Dir, die drei kleinen Schalter. Mach die drei Mal aus und und schau mal was passiert.