Läuft die Automation – oder ist mal wieder was kaputt?

Kennst du das auch? Du fragst dich, ob eine deiner komplexeren Automationen gerade läuft – oder ob mal wieder irgendwas nicht funktioniert, wie es soll? Gerade bei Home Assistant kann das schon mal undurchsichtig werden. Klar, bei einfachen Automationen, wie „Licht an bei Bewegung“, sieht man sofort, ob sie ausgelöst wurden. Aber was ist mit…

Da die Frage gerade in den Kommentaren aufkam: Mit folgendem Code kriegt man die letzten Automationen aufgelistet:

|D|H|M||Name|
|----:|----:|----:|:--:|:----|
{% for state in states.automation
   |selectattr('attributes.last_triggered', 'defined')
   |selectattr('attributes.last_triggered')
   |sort(attribute='attributes.last_triggered', reverse=true) -%}
  {%- set t = now() - state.attributes.last_triggered -%}
  {%- set days = t.days if t.days > 0 else ' ' -%}
  {%- set hrs = t.seconds//3600 %}
  {%- set hrs = hrs if hrs > 0 else ' ' -%}
  |{{days}}|{{hrs}}|{{(t.seconds//60)%60}}||_{{state.name}}_|
{% endfor %}

Den Code habe ich so im HA-Forum gefunden.

Ich habe bei mir mal einen identischen Ansatz verfolgt. Anstatt die laufenden Automationen und Skripte als Text wiederzugeben, zeige ich diese (wenn Attribut Current nicht gleich 0) als Kachelkarte an. Zusätzlicher Vorteil: Beim Klick auf die Kachel navigiert man gleich auf die Entität.

Interessiert? :slight_smile: https://github.com/users/chrisannen/projects/1?pane=issue&itemId=53269111

@chrannen Mega gut umgesetzt, danke fürs Teilen!

Da die Frage aufkam, wie man eine Automation aus der Auflistung ausschließt, hier eine entsprechende Ergänzung bzw. der komplette Code inkl. der Ergänzung:

|D|H|M||Name|
|----:|----:|----:|:--:|:----|
{%- for state in states.automation
   |selectattr('attributes.last_triggered', 'defined')
   |selectattr('attributes.last_triggered')
   |rejectattr('name', 'in', ['NSPanel Configuration', 'Automation1', 'Automation2'])
   |sort(attribute='attributes.last_triggered', reverse=true) -%}
  {%- set t = now() - state.attributes.last_triggered -%}
  {%- if (t.total_seconds() / 60) <= 120 -%}
    {%- set days = t.days if t.days > 0 else '&nbsp;' -%}
    {%- set hrs = t.seconds//3600 -%}
    {%- set hrs = hrs if hrs > 0 else '&nbsp;' -%}
    {{ '\n' }}|{{days}}|{{hrs}}|{{(t.seconds//60)%60}}||_{{state.name}}_|
  {%- endif -%}
{%- endfor -%}

In der Zeile

|rejectattr('name', 'in', ['NSPanel Configuration', 'Automation1', 'Automation2'])

können statt NSPanel Configuration und Automation1 und Automation2 beliebige Automationen ergänzt werden.

Zusätzlich habe ich zwischenzeitlich auch noch ergänzt, dass nur jene Automationen aufgelistet werden, die in den letzten 120 Minuten gelaufen sind. Dieser Wert kann natürlich individuell angepasst werden.

ich hab das auch mit den custom:auto-entities gemacht. Ist genial, wenn man schauen kann, was gerade aktuell läuft, oder auch in den letzten 60 Minuten von welcher Automation ausgelöst wurde. Hat mir schon öfter geholfen “unerklärliches“ zu klären :slight_smile:

Ist schon alt das Thema und der Link zu Github geht leider nicht mehr, ich scheitere beim Helfer.

Er gibt mir den Namen der aktiven Automation aus, ich hätte aber gern, dass er mir zwei Zustände ausgibt (wenn irgendeine Automation läuft oder eben keine) um dies als Voraussetzung von „visibility“ der Markdown Karte zu machen.

Geht das irgendwie?

Danke

ich finde das Thema auch richtig gut und würde mich freuen, mehr darüber zu erfahren :slightly_smiling_face:

Danke für den Hinweis auf „custom:auto-entities“ war mir noch nicht bekannt :slightly_smiling_face:

ich bin mir nicht sicher, was genau Du meinst. Wie gesagt, ich hab das mit auto-entities gemacht.

Da kann man einstellen, wie lange zurück die letzten Automatisierungen sichtbar sind, bei mir z.B. 1 Stunde, ich geb Dir mal den Code (Du musst natürlich erst auto-entities installieren):slight_smile:

type: custom:auto-entities
show_empty: true
sort:
  method: last_triggered
  reverse: true
card:
  square: false
  type: grid
  columns: 1
  title: In den letzten 60 Minuten ausgelöste Automatisierungen
card_param: cards
filter:
  include:
    - options:
        type: tile
        hide_state: false
        color: disabled
        state_content:
          - last_triggered
        tap_action:
          action: more-info
        icon_tap_action:
          action: more-info
      domain: automation
      attributes:
        current: "! 1"
        last_triggered: < 60m ago
    - options:
        type: tile
        hide_state: false
        color: disabled
        state_content:
          - last_triggered
        tap_action:
          action: more-info
        icon_tap_action:
          action: more-info
      domain: script
      attributes:
        current: "! 1"
        last_triggered: < 60m ago

sieht dann so aus:

@paule was ich jetzt schreibe, ist nur mein Verständis und muss nicht vollständig oder richtig sein.

Lt. meinem Wissen ist „custom:auto-entities“ keine Integration, sondern eine benutzerdefinierte Lovelace-Karte (Custom Card) aus dem HACS.

…suche im HACS einfach nach „auto-entities“ und installiere es.

Ich füge dann im Dashboard irgendeine neue Karte ein, tippe dann auf „Code-Editor anzeigen“, lösche den vorhandenen Inhalt und füge dann meinen gewünschten Inhalt ein, wie z.B. den von @Jogi hier netterweise geteilten (vielen Dank von mir @Jogi :+1:t2:) ein und speichere dann die Karte ab.

… und das war’s meiner Meinung nach auch schon…

VG Micha

Danke euch beiden, die Anzeige der Automationen hab ich schon.

Ich habe es mit nem Code in einerr Mushroom Card gelöst, ähnlich wie oben beschrieben.

Allerdings möchte ich die Karte nur Sichtbar machen wenn eine Automation läuft, ansonsten soll sie ausgeblendet werden.

Ich bekomme das hin wenn ich Automation xy dafür als Bedingung nehme, aber dann wird die Karte auch nur sichtbar wenn xy gerade läuft, bei allen anderen ist nicht.

Ich bräuchte alls Bedingung etwas wie "es läuft gerade eine Automation"

Ich hoffe das war verständlich

Danke

Hiermit kriegst du true/false ob überhaupt eine Automation läuft:

{{ states.automation | selectattr('attributes.current', 'defined') | selectattr('attributes.current', 'gt', 0) | list | count > 0 }}

Und so müsstest du dir einen Sensor dafür erstellen können:

template:
  - binary_sensor:
      - name: "Automation läuft gerade"
        state: >
          {{ states.automation | selectattr('attributes.current', 'defined') | selectattr('attributes.current', 'gt', 0) | list | count > 0 }}

Vielen Dank!

Funktioniert perfekt

Super, danke für das Feedback!

Schau mal ggf. noch hier vorbei: GitHub - olli-dot-dev/ha-automation-monitor: Home Assistant custom integration: detects failed automation runs from trace data and exposes them as a structured sensor · GitHub

Ich habe mich an einer HACS-Integration versucht, die fehlerhafte Automationen erkennt. Also nicht solche, die inhaltlich einen Fehler haben wegen ungültiger Entitäten oder so, sondern solche die technisch in Ordnung sind, aber aufgrund von bspw. temporären Problemen gescheitert/abgebrochen sind.

Die Idee dahinter ist, dass ich hoffe so früher solche Probleme mit Automationen erkennen zu können. Und das dann eben nicht durch das Sichten der zuletzt gelaufenen Automationen, sondern durch aktive Info über problematische Automationen.

Das Ding ist aber noch sehr neu und kann noch Denkfehler (von Claude oder mir) enthalten :wink:

menno, kaum installiert schon 5 Probleme! :sweat_smile:

41 waren es bei mir… :see_no_evil_monkey:

Die Integration ist wirklich noch unausgereift, aber es freut mich zu hören, dass sie zu funktionieren scheint.

Wenn du Vorschläge jeglicher Art dafür hast, gerne her damit! :slight_smile:

Du glaubst gar nicht wie hilfreich das Tool ist!

Ich zieh gerade die letzten Geräte von der HmIP-HCU auf einen HmIP-AP um, da kommen die Automatisierungen in HA ganz schön durcheinander. Vor allem wenn da eine Geräte ID drin steckt, da isses egal ob der Sensor gleich benannt wurde … hab ich jetzt bemerkt :wink:

ich kann da leider nicht mitreden, da mir bei dem Tool nichts angezeigt wird… oder ich mache etwas falsch…

Failed automations = 0
Linked entities unavailable = 0

mich würde Interessieren, warum Du eine HmIP-AP/HmIP-HCU verwendest und nicht einfach Homematic(IP) Local for OpenCCU mit einem Homematic IP RF-USB-Stick… wo ist da der Mehrwert?