Fehlende Sensoren bei Code ausblenden möglich?

HA-DAU

Active member
Hallo zusammen,

ich bin wieder mal beim aufräumen von HA.
Da habe ich eine Markdownkarte mit folgenden yaml Code..., der mir fehlende Sensoren anzeigen soll.
YAML:
type: markdown
content: >-
  ## Fehlende Sensoren

  {% for dev in states|selectattr("state", "eq",
  "unavailable")|map(attribute="entity_id")|map("device_attr",
  "name")|unique|reject("in", [None, "unknown"]) -%} • {{dev}} {{- '\n' -}} {%
  endfor %}

1754562629807.png

Nicht ganz unwichtig.
Aber da sind z.B. Home Assistant Cloud und Systemmonitor gelistet.
Gut die beiden fehlen ja immer und die würde ich gerne aus dem Code eliminieren.

Geht da überhaupt?
Oder ist das nur Wunschdenken?
 
YAML:
YAML:

type: markdown
content: >-
  ## Fehlende Sensoren

  {% for dev in states|selectattr("state", "eq",
  "unavailable")|map(attribute="entity_id")|map("device_attr",
  "name")|unique|reject("in", [None, "unknown", "System Monitor", "Home Assistant Cloud"]) -%} • {{dev}} {{- '\n' -}} {%
  endfor %}

Einfach reject erweitern und schon werden Wunschträume wahr.
 
Hallo @HA-DAU,
wenn Du schon am aufräumen bist hätte ich noch etwas. Damit könntest Du ermitteln ob ein Sensor überhaupt gebraucht wird.

YAML:
# Übersicht der Sensoren und ihrer letzten Nutzung

{% for sensor in states.sensor %}
  - **{{ sensor.name }}** 
    Letzte Aktualisierung: {{ ((now() - sensor.last_updated).total_seconds()/3600) | int }} Stunden her
{% endfor %}
 
Oder vielleicht etwas modifiziert: Alles mehr als z.B. 8 Stunden nicht aktualisiert. Dann wird die Liste kürzer:
YAML:
{% for sensor in states.sensor %}
  {% set hours_since_update = ((now() - sensor.last_updated).total_seconds() / 3600) | int %}
  {% if hours_since_update > 8 %}
- **{{ sensor.name }}**  Letzte Aktualisierung: {{ hours_since_update }} Stunden her
  {% endif %}
{% endfor %}

Die Zeit kannst Du ja beliebig anpassen.
 
Genau, einfach in eine Markdown Karte einbinden. Wie Du unerwünschte Sensoren ausblendest musst Du selbst herausfinden.:)
 
IMHO ein nützliches Tool um etwas aufzuräumen. Ein Eingabefeld für die Zeit und absteigende Sortierung sind in der Gratisversion nicht enthalten. :cool:
 
Was auch noch fehlt wäre eine Liste von Sensoren die nicht angezeigt werden sollen. Aber man muss ja nicht immer übertreiben.
 
Na gut, ich bin ja nicht so. Hier die sortierte Liste damit Du die Übersicht nicht verlierst bei 500 Sensoren:

YAML:
Länger nicht benutzte Sensoren
{% for sensor in states.sensor | sort(attribute='last_updated', reverse=False) %}
  {% set hours_since_update = ((now() - sensor.last_updated).total_seconds() / 3600) | int %}
  {% if hours_since_update > 20 %}
- **{{ sensor.name }}**  Letzte Aktualisierung: {{ hours_since_update }} Stunden her
  {% endif %}
{% endfor %}

So, den Rest überlasse ich dir: Rote Schrift = Länger als xx Stunden, Diverse Sensoren ausblenden, Parametereingabe über ein Eingabefeld usw. Kannst ja mal die Endversion hier vorstellen.👋
 
Verbesserungsvorschlag: Leg im Script die Nutzungsdauer als Variable fest: "{% set nutzdauer = 20 }"
Einblenden mit "Länger als {{ nutzdauer }} Stunden nicht genutzte Sensoren"
und beim Vergleich "{% if hours_since_update > nutzdauer %}"
Wenn Du Dir einen input_number Helfer erstellst kannst Du die Zeit sogar extern ohne Programmänderung vorgeben.
 
Hab ich mir gerade so gebastelt und es funktioniert gut. Wäre vielleicht etwas für die Programmierecke.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.959
Beiträge
67.648
Mitglieder
7.336
Neuestes Mitglied
luiluiboy014
Zurück
Oben