Nur eine Benachrichtigung am Tag erhalten über den Füllgrad der Zisterne....

HA-DAU

Active member
Hallo zusammen,

ich brauche mal wieder Eure Hilfe....
Das Problem ist, ich bekomme am Tag x Nachrichten, dass die Zisterne einen Füllgrad von sagen wir 80% hat.
Einmal am Tag würde reichen, oder sogar wirklich nur einmal wenn die 80% gesendet wurden, dann nie wieder, außer dann wieder bei 70%

Das wäre die aktuelle Einstellung in der Automation....
1750829284943.png

1750829346624.png

YAML:
id: '1744363272243'
alias: Zisterne Füllstand
description: ''
triggers:
  - trigger: state
    entity_id:
      - sensor.zisterne_prozentberechnung
conditions: []
actions:
  - if:
      - condition: state
        entity_id: sensor.zisterne_prozentberechnung
        state: '80'
    then:
      - action: notify.conversation
        metadata: {}
        data:
          message: Füllstand Zisterne 80 %
Kann man das anders steuern?
Es gibt ja bekanntlich viele Wege nach Rom.....

Welche Infos braucht Ihr noch von mir?
 
Ich würde vorschlagen einen Trigger zu verwenden. Z.b. Wenn es 12:00 Uhr ist dann Füllstand senden.

Oder: wenn Stand > 80 % und Merker nicht gesetzt dann melden und Merker setzen
(Wenn kleiner 79 dann Merker rücksetzen)
Der Merker wäre eine numerische Entität der der Wert 1 oder 0 zugewiesen wird.
(Das Ganze dann auch für unter 70%)
So etwas sollte direkt mit einer Automation funktionieren.
 
Hallo @Loxley,

danke für den Tipp.
Mit Triggern hatte ich noch nie Berührung.
Kann ich nicht in der yaml Datei nach if oder then irgendeinen Code einfügen?
Der diese Aufgabe über nimmt?

Feste Uhrzeit kommt nicht in Frage.
Nur die Prozente sind ausschlaggebend.
Die können immer zwischen 0:00:00 und 23:59:59 Uhr kommen.

Hast Du ein Beispiel für mich zum nacharbeiten??
 
Zuletzt bearbeitet:
Kann ich nicht in der yaml Datei nach if oder then irgendeinen Code einfügen?
Ja das geht auch, aber mit der Automatisierung geht das ganz einfach und ohne über yaml nachzudenken.

Ein Trigger in der Template Datei einrichten geht so:
YAML:
- trigger:
  - trigger: time
    at"23:59"
  sensor:
    - name: Oelverbrauch Total
      unique_id: oiltotal
      state: >
        {{( (states('sensor.oelverbrauch_total')|float(0)) +  (states('sensor.oelverbrauch_tag')|float(0)) )}}
      unit_of_measurement: L

Damit summiere ich jeden Abend den Ölverbrauch des Tages.
 
Kann man einen Templatesensor machen, den man auf 10er % rundet und diesen benutzen? der löst dann einfach seltener aus. Oder sonst eine passende der Statistikfunktionen mit geglätteten Werten.
 
Hallo zusammen,

das heißt für mich im Umkehrschluss, ich muss einen neuen Templatesensor anlegen mit allen 100%, 90%, 80% bis 0%.

Oder verstehe ich das falsch??
 
Die ursprüngliche Frage war doch "einmal täglich". Das ginge mit dem Trigger. (Jeden Tag um 12:00 den Stand auslesen und in einen Sensor schreiben.)

Oder wenn Stand X erreicht. Das wäre die Sache mit dem Merker. Dafür würde ich dann eine oder mehrere Automationen verwenden.

Runden auf 10-er Schritte geht auch: ( ((Wert / 10)|Round(0)) * 10 )
 
Die Anzahl der Klammern stimmt nicht. Das Verfahren ist so: Den Wert durch 10 teilen und vom Ergenis die Nachkommastellen abschneiden (geht auch mit INT). Danach wieder mit 10 multiplizieren.
Ich habe es mal in den Template Editor von HA eingegeben. (Der Wert muss mit float in eine Zahl gewandelt werden.)
YAML:
- sensor:
  - name: Zisterne_10round
    unique_id: Zisterne_Prozentberechnung
    state: >
      {{ ((states('sensor.Zisterne_Prozentberechnung')|float(0)/10)|round(0)) * 10 }}
 
Hallo @Loxley,

danke, super Arbeit....
Code ist in die Template.yaml eingefügt und ich habe mal das über Aktion ausführen gemacht.
Es kam schon mal eine Nachricht auf dem Handy an mit 0%, klar es wurde ja kein Wert zwischen 80% und 70% ermittelt.
1750913936807.png
Habe jetzt mal zum testen einen Wert von 75% dazwischen geschoben.

Habe natürlich den yaml Code aktuell auf
YAML:
 {{ ((states('sensor.Zisterne_Prozentberechnung')|float(0)/5)|round(0)) * 5 }}
umgeschrieben
Ich hoffe, ich hatte keinen Denkfehler.
Kann aber sein, das es heute regnet, der Himmel sieht bescheiden aus.....
 
Zuletzt bearbeitet:
Hallo @HA-DAU,
nein kein Denkfehler. Aber warum bekommst Du den Wert 0 angezeigt? Bei 76% sollte (/10) 70% herauskommen und bei /5 75%.
 
Hallo @Loxley,

die Frage kann ich Dir leider nicht beantworten?
Wert 0 angezeigt? Bei 76% sollte (/10) 70% herauskommen und bei /5 75%.
Das wäre natürlich richtig was Du sagst.

Habe nochmals an dem Template rumgefummel...

1750938587039.png

Hier der yaml Code dazu zum 10round....

YAML:
- sensor:
  - name: Zisterne_10round
    unique_id: Zisterne_10round
    icon: mdi:car-coolant-level
    state: >
      {{ ((states('sensor.Zisterne_Prozentberechnung')|float(0)/5)|round(0)) * 5 }}


Bis jetzt kam noch keine Messsage auf das Handy vom 10round Code
 
:unsure: komisch. Eigentlich sollte das so funktionieren. Warte mal ich versuche es mal life mit einem Sensor. Ich melde mich.
 
1750941582863.png
Ein Screenshot von meiner Template Datei. Verwendet habe ich die Außentemperatur. Bei mir funktioniert das problemlos.
Kann es sein dass Du den Namen des Sensors falsch geschrieben hast?
So als Test: Lass mal die Ganze Berechnung weg und nimm: {{ states('sensor.zisterne_Prozentberechnung')|float(0) }}
den Sensornamen lassen wie er ist - nicht neu eintippen. (Und nicht vergessen yaml Dateien neu laden.)
 
Hallo @Loxley,

gerade bekam ich zwei Messsage, einmal Füllstand Zisterne = 0%
Nach einer Minute später dann eine zweite Nachricht mit Füllstand Zisterne = 75%

Ok, ich behalte das mal im Auge...

Dein aktueller Test stelle ich mal hinten an, wenn das mit den 70% nicht gehen sollte....
 
Meine Außentemperatur wird permanent gemessen - vielleicht liegt es daran. Einen Fehler kann ich nicht erkennen.
Berichte mal.
 
Also laut des ESP alle 20 Sekunden
YAML:
# ADC Kanal A0 zur Messwerterfassung
sensor:
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 4.096   #oder diese Zahl?= 1.024*6 = 6.144
    name: "Wasserstand Zisterne cm"
    id: levelraw
    update_interval: 20s
    unit_of_measurement: cm
    accuracy_decimals: 1
    icon: "mdi:car-coolant-level"
# Messwerte glätten:
    filters:
      - sliding_window_moving_average:
          window_size: 20
          send_every: 20
# Spannungen nach Messreihe in Füllhöhe cm umrechnen
      - calibrate_linear:
          - 0.286 -> 0.0
          - 0.5 -> 23.0
          - 0.73 -> 46.0
          - 0.97 -> 69.0
          - 1.21 -> 92.0
          - 1.45 -> 115.0
          - 1.69 -> 138.0
          - 1.90 -> 161.0
          - 2.16 -> 184.0
          - 2.40 -> 207.0
          - 2.66 -> 230.0

Hier die Umrechnung in Prozent bei der yaml im ESP...

YAML:
# Spannungen nach Messreihe in Prozent Füllhöhe umrechnen 
  - platform: template
    name: "Zisterne %"
    lambda: |-
      return id(levelraw).state;
    
    filters:
      - calibrate_linear:
    
          - 0.0 -> 0
          - 23.0 -> 10         
          - 46.0 -> 20               
          - 69.0 -> 30         
          - 92.0 -> 40         
          - 115.0 -> 50         
          - 138.0 -> 60         
          - 161.0 -> 70         
          - 184.0 -> 80         
          - 207.0 -> 90       
          - 230.0-> 100
          
    unit_of_measurement: prozent
    accuracy_decimals: 0
 
Zuletzt bearbeitet:
Also bekommt die Prozentberechnung alle 20 Sekunden einen neuen Wert.
Wüsste ich jetzt keine plausible Antwort warum da 0 kommt. Beobachte mal ob der Wert nur "nachhinkt".
Du weist ja: Alle Angaben ohne "Gewehr" - zu Risiken und Nebenwirkungen frage den Elektriker Deines Vertrauens. :cool:
(Oder sende den Diener um nachzusehen.)
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.815
Beiträge
65.822
Mitglieder
7.131
Neuestes Mitglied
Magdalena
Zurück
Oben