Benachrichtigung (1x) wenn Ladezustand 100%

Hallo,

  1. würde gerne für meinen Roborock eine Benachrichtigung haben, wo er mir meldet wenn der Akku wieder voll aufgeladen wurde (also 100%) und nicht x Mal eine Meldung, dass er noch immer 100% Ladezustand hat.

  2. Eine andere Überlegung wäre auch, wenn der Wassertank <20% hat, dieser den aktuellen Reinigungsvorgang pausieren soll, zur einer bestimmten Position fahren und dort warten soll. Idealerweise gibt es dann eine Nachricht, welche ich nach dem Auffüllen bestätigen könnte und der Robo fährt dann an die ursprüngliche Position und fährt mit seiner Reinigung fort.

Hätte jemand für diese 2 Punkte eine Idee wie man es realisieren könnte?

Hier mal eine Automation von mir die mich über den Akkustand von Geräten informiert. Kannst du ggf. als Basis nutzen und dir dann anpassen.

alias: "Benachrichtigung: Akkustand"
description: ""
triggers:
  - alias: "Hersteller: Nuki - Gerätetyp: Smart Lock"
    trigger: state
    entity_id:
      - sensor.nuki_smart_lock_pro_battery
conditions: []
actions:
  - sequence:
      - variables:
          entity_id: "{{ trigger.entity_id }}"
        alias: "Definiert die Variable: entity_id"
      - choose:
          - conditions:
              - alias: Akkustand ist ≤ 25%
                condition: template
                value_template: |
                  {{ trigger.to_state.state | float < 26 }}
            sequence:
              - action: script.benachrichtigung_an_martin_s_smartphone_senden
                metadata: {}
                data:
                  data:
                    channel: Benachrichtigungen
                    importance: high
                    sticky: true
                  title: >-
                    {{ area_name(entity_id) }}: {{ device_attr(entity_id,
                    'name_by_user') }}
                  message: |
                    Akkustand: {{states(entity_id) }}%

                    Behalte den Akkustand im Auge und lade diesen bald auf.
            alias: "Akkustand: ≤ 25%"
          - conditions:
              - alias: Akkustand ist 100%
                condition: template
                value_template: >-
                  {{ trigger.from_state.state | float < 100 and
                  trigger.to_state.state | float == 100 }}
            sequence:
              - action: script.benachrichtigung_an_martin_s_smartphone_senden
                metadata: {}
                data:
                  data:
                    channel: Benachrichtigungen
                    importance: high
                    sticky: true
                  title: >-
                    {{ area_name(entity_id) }}: {{ device_attr(entity_id,
                    'name_by_user') }}
                  message: >
                    Akkustand: {{states(entity_id) }}%


                    Der Akku ist vollständig geladen, du kannst das Ladekabel
                    entfernen.
            alias: "Akkustand: 100%"
mode: parallel
max: 10

Danke für die schelle Antowrt, jedoch bin ganz neu und bitte um etwas Nachsicht :innocent:

wo erstelle ich dieses Template (ein neues Script ?) bzw. muss ich da irgendwo meine Entität einsetzen ?

Du gehst auf die Bedingungen und dort musst du dann Template auswählen, dann einfach den Code einfügen. Dass war es dann auch schon.

Kopier am besten mal meinen Code in eine leere Automation dann siehst du wie alles zusammen gehört.

2 „Gefällt mir“

habe es soweit geschafft dass es funktioniert (komischer Weise dauert es einige (ca20sec) Zeit bis ich die Meldung bekomme - wobei dass ist schon OK

In der Meldung schreibt er dann „wohnzimmer: none“

Gut die Benachrichtigung für mich angepasst und läuft bei mir über ein Script das die Benachrichtigung speziell an mein Handy angepasst versendet.

Hab aktuell weil zu Besuch keinen Rechner da, aber kann gern mal schauen was ich für dich machen kann wenn ich zu Hause bin.

Müsste nur mal im Detail wissen was du genau vor hast und welche Entitäten da reinspielen. Vielleicht kann ich dir dann was passendes basteln.

Habe mir ein Skript anhand vom Video Smarthome&More https://youtu.be/pLhTYshBGwk gemacht (etwas angepasst und zum testen der einzelnen Notifizierungseinstellungen).

Hier mein Skript, dank deiner Hilfe:

alias: "Benachrichtigung: Roborock Akkustand"
description: ""
triggers:
  - alias: "Hersteller: Xiaomi - Gerätetyp: Roborock S7"
    trigger: state
    entity_id:
      - sensor.roborock_s7_2_batterie
conditions: []
actions:
  - sequence:
      - variables:
          entity_id: "{{ trigger.entity_id }}"
        alias: "Definiert die Variable: entity_id"
      - choose:
          - conditions:
              - alias: Akkustand ist ≤ 25%
                condition: template
                value_template: |
                  {{ trigger.to_state.state | float < 26 }}
            sequence:
              - action: script.notify_all_v1
                metadata: {}
                data:
                  HA_Ap1: false
                  Whatsup: false
                  Ap1_Whatsup: true
                  critical: false
                  message: |
                    Akkustand: {{states(entity_id) }}%

                    Behalte den Akkustand im Auge und lade diesen bald auf.
                  title: >-
                    {{ area_name(entity_id) }}: {{ device_attr(entity_id,
                    'name_by_user') }}
            alias: "Akkustand: ≤ 25%"
          - conditions:
              - alias: Akkustand ist 100%
                condition: template
                value_template: >-
                  {{ trigger.from_state.state | float < 100 and
                  trigger.to_state.state | float == 100 }}
            sequence:
              - action: script.notify_all_v1
                metadata: {}
                data:
                  HA_Ap1: false
                  Whatsup: false
                  Ap1_Whatsup: true
                  critical: false
                  message: >
                    Akkustand: {{states(entity_id) }}%


                    Der Akku ist vollständig geladen, du kannst das Ladekabel
                    entfernen.
            alias: "Akkustand: 100%"
mode: parallel
max: 10

Guck ich mir dann mal genauer an wenn ich zu Hause bin. :wink:

Bin wieder zu Hause, jetzt wäre nur die Frage was genau soll in der Benachrichtigung die an dein Handy geschickt wird stehen.

Sprich bei mir hatte ich es folgendermaßen aufgebaut:

Titel: Bereich: Gerätename
Nachricht: Akkustand: X% + Text

Müsste halt nur wissen, was genau bei dir stehen soll, da hat ja jeder andere Vorstellungen.

So wie du es gemacht hat finde ich super und macht Sinn :slight_smile:

Ich weißt nicht, ob das aktuelle Datum bzw. Uhrzeit zusätzlich einen Sinn machen würde (gehe mal nicht davon aus, dass die Benachrichtigung stark verzögert ankommen würde und ich somit ein „Problem“ in der Performance erkennen würde.

Wasserstand wäre zwar ganz nett, dürfte jedoch ein Binärwert sein :frowning:

Verzögert sollte da nichts sein, mit deinem Script bzgl. der Nachricht kenne ich mich nicht aus. Da ich den Code nicht kenne, aber ich sehe keinen Titel. Da wäre es ggf. meiner Meinung nach besser wenn im Titel halt ein Teil stehen würde und dann in der Nachricht der Rest.

Edit:

Hab nur das Ende vom Code gelesen, weiter oben steht es mit Titel also minimaler Fehler im Code. Korrigiere ich mit.

OK. Weiß ich aber estmal Bescheid.

alias: "Benachrichtigung: Roborock Akkustand"
description: ""
triggers:
  - alias: "Hersteller: Xiaomi - Gerätetyp: Roborock S7"
    trigger: state
    entity_id:
      - sensor.roborock_s7_2_batterie
conditions: []
actions:
  - sequence:
      - variables:
          entity_id: "{{ trigger.entity_id }}"
        alias: "Definiert die Variable: entity_id"
      - choose:
          - conditions:
              - alias: Akkustand ist ≤ 25%
                condition: template
                value_template: |
                  {{ trigger.to_state.state | float < 26 }}
            sequence:
              - action: script.notify_all_v1
                metadata: {}
                data:
                  HA_Ap1: false
                  Whatsup: false
                  Ap1_Whatsup: true
                  critical: false
                  message: |
                    Akkustand: {{states(entity_id) }}%

                    Behalte den Akkustand im Auge und lade diesen bald auf.
                  title: >-
                    {{ area_name(entity_id) }}: {{ device_attr(entity_id,
                    'name_by_user') }}
            alias: "Akkustand: ≤ 25%"
          - conditions:
              - alias: Akkustand ist 100%
                condition: template
                value_template: >-
                  {{ trigger.from_state.state | float < 100 and
                  trigger.to_state.state | float == 100 }}
            sequence:
              - action: script.notify_all_v1
                metadata: {}
                data:
                  HA_Ap1: false
                  Whatsup: false
                  Ap1_Whatsup: true
                  critical: false
                  message: >
                    Akkustand: {{states(entity_id) }}%


                    Der Akku ist vollständig geladen, du kannst das Ladekabel
                    entfernen.
                  title: >-
                    {{ area_name(entity_id) }}: {{ device_attr(entity_id,
                    'name_by_user') }}
            alias: "Akkustand: 100%"
mode: parallel
max: 10

So sollte es passen.

Wichtig ist das jedem Gerät ein Bereich (Flur, Wohnzimmer usw.) zugewiesen ist, auch ein Name muss zugewiesen sein damit der Gerätename erfasst werden kann.

Ist das alles gemacht, dann sollte es Reibungslos funktionieren.

Tipp, du musst diese Automation nicht für jedes Akkugerät neu schreiben du kannst hier einfach weitere Geräte bzw. Batterie-Entitäten als Trigger hinzufügen und schon funktioniert diese Automation auch für verschiedene andere Geräte. Hab ich mir gebastelt, da ich diese Blueprint-Varianten nicht so prickelnd finde, da du immer auf Updates von den Entwicklern angewiesen bist.

Hoffe es klappt alles so wie du dir es wünscht und hast damit eine Menge Freude. :wink:

1 „Gefällt mir“

Vielen Dank für deine Bemühungen und deine Unterstützung.

Ein Name ist dem Gerät vergeben wie auf deinem Bild ersichtlich ist. In der Meldung erscheint trotzdem „Wohnzimmer: none“ → ist aber nicht weiter wichtig (eher ein Schönheitsfehler). Natürlich wenn mehrere Geräte da integriert sind in der Überwachung, dann bekommt es mehr an Bedeutung zu wissen, zu welchem Gerät die Meldung gehört.

Hat jemand vielleicht eine Idee zum Punkt 2. von meiner Initialen Frage:

  1. Eine andere Überlegung wäre auch, wenn der Wassertank <20% hat, dieser den aktuellen Reinigungsvorgang pausieren soll, zur einer bestimmten Position fahren und dort warten soll. Idealerweise gibt es dann eine Nachricht, welche ich nach dem Auffüllen bestätigen könnte und der Robo fährt dann an die ursprüngliche Position und fährt mit seiner Reinigung fort.

Ich denke irgendwo und irgendwie dürfte diese Information vorhanden sein, denn wenn der Akku zu niedrig ist, bricht der Robo ja auch ab, lädt auf 100% und setzt dann fort - denke aber dass es wahrscheinlich in deren Software verankert sein wird und so nicht auszulesen sein wird.

Die Position auszulesen, auch wenn es möglich sein sollte, wäre zwar hilfreich, jedoch sehe ich es als Problem, wie dem Robo dann noch vorgeben, was die restliche Fläche wäre, welche noch zu reinigen ist.

Ja, genau. Kann aufgrund dessen das es nicht definiert ist nicht ausgelesen werden mehr auch nicht.

Kannst so lassen wenn du willst. Hauptsache es funktioniert so wie du es möchtest. :wink:

1 „Gefällt mir“

danke !