Home Assistant vollautomatisch auf einwandfreie Funktion überprüfen

Ich nutze diese Karte:

type: custom:battery-state-card

Sie zeigt nicht nur Batterie-Stati an, sondern auch, wenn man sie entsprechend konfiguriert, nicht verfügbare Geräte.

Ich habe drei Rubriken. Oben werden nur zwei angezeigt. Die der nicht erreichbaren Geräte wird gerade nicht angezeigt, weil alle Geräte erreichbar sind. Die nicht verfügbaren Geräte sind einfach Geräte, die gerade keine Batterie mehr haben.

Bitte auf den kleinen Unterschied achten: nicht erreichbar und nicht verfügbar.

Die Karte ist sehr umfangreich. Man muss sich ein bisschen mit ihr beschäftigen. Die Konfigurationen, die ich in den Karten habe, sind ebenfalls sehr umfangreich.

Darüber hinaus frage ich mit Node-RED wichtige Komponenten alle vier Stunden ab, ob sie da sind.

Hallo @GLehnhoff ,
das sieht doch super aus.
Willst du deinen Code teilen?

Klar, @dennis , hier ist mein Code der drei Karten “Verbindungs-Problem”, “Geräte nicht verfügbar” und “Gerät (bald) nicht verfügbar”. Sie befinden sich in einer vertical-stack-Karte mit der Überschrift “Verfügbarkeit”.

Du brauchst neben der vertical-stack-Karte (ist ja Standard in HA) die battery-state-card und musst sicherlich den Code anpassen. Die Karte und die Möglichkeiten sind, wie bereits beschrieben, sehr komplex. Ein Einlesen in die Dokumentation der battery-state-card ist ein Muss.

Beachte, wenn du den Code einfach übernimmst, die Karten werden nur angezeigt, wenn mindestens ein Treffer der jeweiligen Karte vorliegt.

Das 4-stündige Abfragen von wichtigen Komponenten ist eine andere Baustelle und bei mir mit Node-RED umgesetzt.

type: vertical-stack
title: Verfügbarkeit
cards:
  - type: custom:battery-state-card
    title: Verbindungs-Problem
    sort: name
    icon: mdi:lan-disconnect
    collapse: 4
    tap_action: more-info
    filter:
      include:
        - name: entity_id
          value: xxx*lqi
        - name: entity_id
          value: "*connectivity"
        - name: entidy_id
          value: "*linkquality"
      exclude:
        - name: state
          value: 0
          operator: ">"
        - name: state
          value: Connected
    bulk_rename:
      - from: LQI
        to: ""
      - from: Zigbee-Konnektivität
        to: ""
    state_map:
      - from: unavailable
        to: nicht verfügbar
      - from: unknown
        to: unbekannt
      - from: connectivity_issue
        to: Verbindungsprobleme
  - type: custom:battery-state-card
    title: Geräte nicht verfügbar
    sort_by_level: asc
    colors:
      steps:
        - value: 0
          color: red
    tap_action: more-info
    filter:
      include:
        - name: entity_id
          value: "*_battery_level"
        - name: entity_id
          value: "*_battery_health"
        - name: attributes.device_class
          value: battery
      exclude:
        - name: state
          value: 0
          operator: ">"
        - name: entity_id
          value: sensor.sonos_roam*
        - name: entity_id
          value: sensor.pixel_4a_*
        - name: entity_id
          value: sensor.lenovo_tab_*
        - name: entity_id
          value: sensor.roam_stereo_batterie
        - name: entity_id
          value: sensor.nest_protect*
        - name: entity_id
          value: sensor.galaxy_tab_3*
        - name: entity_id
          value: sensor.centralite_3400*
        - name: entity_id
          value: sensor.nexus_6_*
        - name: entity_id
          value: sensor.sm_t825_*
        - name: entity_id
          value: binary_sensor.fernbedienung_alarmsystem*
    state_map:
      - from: "off"
        to: 99.9
      - from: good
        to: 99.9
      - from: normal
        to: 99.9
      - from: "false"
        to: 99.9
      - from: "on"
        to: 4.9
      - from: true
        to: 4.9
      - from: unknown
        to: unbekannt
      - from: unavailable
        to: nicht verfügbar
    bulk_rename:
      - from: Battery
        to: ""
      - from: battery
        to: ""
      - from: Batterie
        to: ""
      - from: level
        to: ""
      - from: Level
        to: ""
      - from: Percent
        to: ""
      - from: Akkufüllstand
        to: ""
  - type: custom:battery-state-card
    title: Gerät (bald) nicht verfügbar
    sort: state
    sort_by_level: asc
    collapse: 10
    colors:
      steps:
        - value: 2
          color: red
        - value: 5
          color: coral
        - value: 10
          color: orange
        - value: 20
          color: gold
        - value: 100
          color: green
    tap_action: more-info
    filter:
      include:
        - name: entity_id
          value: "*_battery_level"
        - name: entity_id
          value: "*_battery_health"
        - name: attributes.device_class
          value: battery
      exclude:
        - name: state
          value: Unavailable
          operator: "="
        - name: state
          value: Status unbekannt
          operator: "="
        - name: state
          value: 0
          operator: "="
        - name: state
          value: 25
          operator: ">"
        - name: entity_id
          value: sensor.sonos_roam_batterie*
        - name: entity_id
          value: sensor.nexus_6_*
        - name: entity_id
          value: sensor.pixel_4a_*
        - name: entity_id
          value: sensor.sm_t825_*
    state_map:
      - from: "off"
        to: 100
      - from: good
        to: 100
      - from: "false"
        to: 100
      - from: "on"
        to: 4.9
      - from: true
        to: 4.9
      - from: unknown
        to: Status unbekannt
      - from: nicht mehr verfügbar
        to: 0
    bulk_rename:
      - from: Battery
        to: ""
      - from: battery
        to: ""
      - from: Batterie
        to: ""
      - from: level
        to: ""
      - from: Level
        to: ""
      - from: Percent
        to: ""
      - from: Akkufüllstand
        to: ""
      - from: health
        to: ""
      - from: Health
        to: ""

1 „Gefällt mir“

Wow, das ist eine tolle Lösung. Ich habe den Code von GLehnhoff für Batteriegeräte genutzt (excludes angepasst) und den von SebastianVogt zusäzlich:

type: markdown
content: >-
  **Nicht verfügbare Geräte:**


  {{ states

  | selectattr('domain','in',['binary_sensor', 'climate', 'light', 'sensor',
  'switch'])

  | selectattr('state', 'in', ['unavailable'])

  | map(attribute='entity_id')

  | map('device_attr', 'name_by_user') 

  | reject('match', 'None')

  | unique

  | list 

  | sort 

  | join('\n')

  }}

1 „Gefällt mir“