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.

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.

AngebotBestseller Nr. 1
Netatmo Smarte Wetterstation - WLAN, Funk, Innen- und...*
  • Messung der Umgebungstemperatur innen und aussen in echzeit:...
  • Warnmeldungen in echzeit: Mit unserer Wetterstation können Sie...

*= Preis inkl. MwSt., ggf. zzgl. Versandkosten. Letzte Aktualisierung vor 60 Minuten / Affiliate Links / Bilder von der Amazon Product Advertising API. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Schreibe einen Kommentar

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulares wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.