Automatische Valetudo Consumables Benachrichtigungen in Home Assistant

Seit einiger Zeit nutze ich fรผr meine Roborock Saugroboter Valetudo als Firmware. Natรผrlich habe ich meine Valetudos mittels MQTT auch an Home Assistant angebunden. In diesem Beitrag erklรคre ich, wie man mit sehr wenigen Zeilen Code automatische Benachrichtigungen erhรคlt, wenn die Consumables (also Verbrauchsteile des Saugroboters) Aufmerksamkeit benรถtigen. Sobald Home Assistant dies feststellt, erhรคltst du also eine Push-Benachrichtigung!

Tatsรคchlich nutze ich die folgende Automation bereits fรผr die Batterie-Zustรคnde verschiedener Sensoren. Das Vorgehen ist eigentlich immer das Gleiche: 1. Man legt eine Gruppe bestehend aus den zu รผberwachenden Entitรคten an. 2. Man erstellt eine Automation, die regelmรครŸig die Zustรคnde der Gruppenmitglieder prรผft.

Bei Batterie-betriebenen Gerรคten kann man entsprechend den Ladezustand der Batterien prรผfen (sofern die Entitรคt diesen รผbermittelt) und bei einem mit Valetudo geflashten Saugroboter kann man die noch verbleibende Zeit bis zum Wechsel eines Verbrauchteils รผberwachen.

Da ich meine Valetudos mittels MQTT an mein Home Assistant angebunden habe, erhalte ich je Valetudo Sensoren fรผr die verbleibenden Zeiten von:

  • Hauptbรผrste
  • rechte Bรผrste
  • Hauptfilter
  • Sensorreinigung

In Home Assistant heiรŸen diese Sensoren dann beispielsweise sensor.main_brush, sensor.main_filter, sensor.right_brush und sensor.sensor_cleaning. Jeder dieser Sensoren liefert einen Wert in Minuten, welcher fรผr die verbleibende Zeit bis zu einem Wechsel beziehungsweise einer notwendigen Reinigung steht.

Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:

Follow Home Assistant
( 424 Followers )
X

Follow Home Assistant

E-mail : *
* Ich stimme der Datenschutzerklรคrung zu!

Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!

Diese Entitรคten packe ich zunรคchst in eine neue Gruppe:

  valetudo_status:
    name: Valetudo Zustรคnde
    entities:
      - sensor.sensor_cleaning_2
      - sensor.right_brush_2
      - sensor.main_filter_2
      - sensor.main_brush_2
      - sensor.main_brush
      - sensor.main_filter
      - sensor.right_brush
      - sensor.sensor_cleaning

Da derzeit zwei unserer Saugroboter mit Valetudo geflasht sind, gibt es jeden Sensor zweimal („…_2“)!

Nun erstellen wir noch eine Automation, die die Zustรคnde (also Minutenangaben) der Mitglieder der Gruppe „Valetudo Zustรคnde“ รผberwacht. Anstelle jeden Sensor einzeln zu รผberprรผfen, „loopen“ wir durch die Gruppenmitglieder und prรผfen fรผr jedes Gruppenmitglied, ob ein Schwellwert unterschritten wird:

- id: notify_valetudo_status
  alias: Notification-Alert for Valetudo Status
  initial_state: 'on'
  trigger:
    - platform: time
      at: '10:00:00'
  condition:
    condition: or
    conditions:
      - condition: template
        value_template: >
          {% set min_time = 10 -%}
          {% set ns = namespace(found=false) -%}
          {% for entity_id in states.group.valetudo_status.attributes.entity_id -%}
            {% set parts = entity_id.split('.') -%}
            {% if (states(entity_id) | replace("%","") | int) < min_time -%}
              {% set ns.found = true -%}
            {% endif -%}
          {% endfor -%}
          {{ ns.found }}
  action:
    - service: notify.telegram
      data_template:
        title: Valetudo-Alarm!
        message: >
          {%- set min_time = 10 -%}
          {%- for entity_id in states.group.valetudo_status.attributes.entity_id -%}
            {%- set parts = entity_id.split('.') -%}
            {%- if (states(entity_id) | replace("%","") | int) < min_time -%}
              {{ states[parts[0]][parts[1]].name }} remaining minutes: {{ states(entity_id) }}.{{ '\n' }}
            {%- endif -%}
          {%- endfor -%}

Jeden Tag um 10 Uhr wird die Automation abgefeuert und es ist eine Condition, dass mindestens ein Gruppenmitglied weniger als 10 Minuten รผbrig hat. Trifft dies auf ein Gruppenmitglied zu, wird der Name des Gruppenmitglieds sowie die verbleibenden Minuten ausgegeben „… remaining minutes: …“.

Das Ganze kann dann wie folgt aussehen, wenn man, wie in meinem Code-Beispiel, Telegram als Push-Kanal nutzt:

Valeduto Push-Notification mit Home Assistant

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

1 Gedanke zu „Automatische Valetudo Consumables Benachrichtigungen in Home Assistant“

Schreibe einen Kommentar