Mit der Zeit hat es mich ziemlich gestört, dass mir permanent verfügbare Updates für diverse Integrationen und auch für HAOS angezeigt werden. Mein Gedanke war, dass ich mir einen Update-Tag im Monat vornehme, an dem ich mich konzentriert darum kümmere und dann entscheide, welches Update ich machen möchte und welches nicht.
Dafür habe ich jetzt eine Lösung gefunden. Kurz gesagt funktioniert es so:
Mithilfe einer Automation werden einmal im Monat (bei mir immer am 2.Sonntag) alle Entitäten der Domain “update” aktiviert. Diese Entitäten bleiben dann für 12 Stunden aktiv. In diesen 12 Stunden kann ich mich damit befassen. Nach den 12 Stunden, werden alle vorhandenen Entitäten der Domain “Update” als Liste in dem Attribut einer Helfer-Entität gespeichert und anschließend wieder deaktiviert. Einen Monat später werden die Entitäten aus dieser Liste wieder aktiviert.
Was braucht man dafür:
- Spook Integration - konkret die Action homeassistant.disable_entity
- Ein Trigger-basierter Sensor, in dessen Attribut die Liste mit den Update-Entitäten gespeichert werden kann - In den Attributen deshalb, weil man im Zustand eines Sensors nur max. 255 Zeichen speichern kann. - Dieser Sensor muss manuell in der configuration.yaml angelegt werden
- Eine Automation
a. Trigger - immer am 2. Sonntag des des Monats
b. Entitäten aus der Liste aktivieren
c. 12 Stunden warten
d. Neue Liste speichern
e. Update-Entitäten deaktivieren.
In einer Liste muss man deshalb speichern, weil man nach der Deaktivierung unter der Domain “update” ja keine aktiven Entitäten mehr findet - man muss sie aber dennoch irgendwie benennen, um sie wieder aktivieren zu können…
Meine Trigger-Entität heißt update_entitäten_speicher
- trigger:
- platform: event
event_type: "speichere_update_liste"
sensor:
- name: "Update Entitäten Speicher"
unique_id: update_entitaten_speicher
state: "{{ now().isoformat() }}"
attributes:
# Hier wird die eigentliche Liste der Entitäten als Attribut abgelegt
entity_list: "{{ states.update | map(attribute='entity_id') | list }}"
Hiermit kann man sich die LIste zum Test anzeigen lassen (Entwicklerwerkzeuge - Template)
{{ states.update | map(attribute='entity_id') | list }}
Mit dieser Automation wird aktiviert/deaktiviert:
alias: auto_update_HA
description: >-
Aktiviert Updates am 2. Sonntag im Monat für 12h, Update Entitäten werden anschließßend wieder deaktiviert
triggers:
- at: "04:00:00"
trigger: time
conditions:
- condition: template
value_template: "{{ now().weekday() == 6 }}"
- condition: template
value_template: "{{ 8 <= now().day <= 14 }}"
actions:
- action: homeassistant.enable_entity
target:
entity_id: >
{% set liste = state_attr('sensor.update_entitaten_speicher',
'entity_list') %} {{ liste if liste is not none else states.update |
map(attribute='entity_id') | list }}
data: {}
- delay: "12:00:00"
- event: speichere_update_liste
- delay: "00:00:05"
- action: homeassistant.disable_entity
target:
entity_id: "{{ states.update | map(attribute='entity_id') | list }}"
data: {}
Viel Spaß damit