Zähle Sensoränderungen in bestimmter Zeit (sec)

Hallo zusammen,

ich hab folgende Anforderung, die ich in meinem alten Logikserver abbilden konnte, aber mit HA schaffe ich es einfach nicht…

Mein Briefkasten ist smart und beim öffnen der Klappe bekomme ich das Signal, dass Post vorhanden ist. Zum quittieren der Entnahme drücke ich im Haus einen Taster und meine Anzeige erlischt… soweit erstmal alles möglich.

Wenn nun der Nachbar die Post aus dem Briefkasten holt, dann musste er bis jetzt nicht extra ins Haus um zu quittieren, sondern hat die Briefkastenklappe in 15 sec. 5 mal (oder öfter) auf und zu gemacht.

Und genau das mit dem quittieren über die Klappe schaffe ich nicht…
Ich müsste irgendwie einen Timer laufen lassen, in der Zeit den Status der Klappe counten und wenn der Count >= 15 ist und der Timer noch läuft das Ganze zurück setzen. Das würde ich vermutlich auch mit 3 Automationen hinbekommen… aber schön ist was anderes :frowning:

Ich bin aber auch Anfänger… vielleicht gibts was schöneres…

vielen Dank schon mal

Markus

Mit History stats solltest Du weiter kommen

Dieser Sensor zählt wie oft der binary_sensor.xyz in 15 s in den Zustand on wechselt.

sensor:
  - platform: history_stats
    name: Briefkasten 
    entity_id: binary_sensor.xyz
    state: "on"
    type: count
    end: "{{ now() }}"
    duration:
      seconds: 15

Gruß
Osorkon

Hallo Osorkon,

danke, den Sensor hatte ich auch schon mal gesehen aber nicht zum Laufen gebracht. Deine Vorlage ging erst auch nicht… erst als ich HA neu gestartet habe, gings. (Muss man immer HA neu starten, wenn man in die Config was einträgt? Manchmal genügt es ja, nur die YAML neu zu laden!)

Noch eine andere Frage… denn die duration ist nicht optimal

Wenn man z.b. in der ersten sec. 3x betätigt und dann x sec wieder… kann es sein, dass er nicht korrekt addiert, da die Zeitspanne vorher ja ggf. auch bereits einmal betätigt wurde. Besser wäre es, über die Zeit zu gehen (also ab jetzt + 15 sec). Geht sowas auch?

Hallo,
ich habe sowas ähnliches gemacht. Ich habe in der Einfahrt einen Bewegungssensor. Manchmal spielen dort aber Kinder. Wenn das der Fall ist schalte ich auf einen anderen Sensor um. Dazu lasse ich einfach bei jeder erkannten Bewegung einen Zähler hochzuählen. Der Zähler ist auf Max. 5 Begrenzt. Ist der Zählerwert größer 4 ist der zweite Sensor aktiv. Einmal pro Minute reduziere ich den Zählerwert wieder um 1.

Also im Grunde kannst du das genauso machen.

Nicht immer. Bei den meisten Änderungen, reicht es aus die Konfiguration der jeweiligen Integration neu zu laden (Entwicklungswerkzeuge → YAML -< Neuladen der YAML-Konfiguration)

Die History stats Integration gehört nicht dazu. In diesem Fall ist ein Home Assistant Neustart notwenig, damit die Änderungen wirksam werden.

Die Daten kommen ja us der Datenbank.

Es werden immer die Dauer von 15 Sekunden bis jetzt berücksichtigt.

Eine andere Möglichkeit wäre:

  - platform: history_stats
    name: Briefkasten
    entity_id: binary_sensor.xyz
    state: "on"
    type: count
    start: "{{ now() - timedelta(seconds=15) }}"
    end: "{{ now() }}"

Aber diese ist identisch und zählt auch wie oft der Status on in den letzten 15 Sekunden vorgeherrscht hat.

Gruß
Osorkon

Hallo Osorkon,

danke für die Hilfe. Ich hab das nochmal genau durchüberlegt… normal sollte es ja egal sein. Wenn in den 15 sec die Klappe oft genug betätig wurde, dann sollte das ja passen, da vorher ja normal die Klappe ja nicht betätig wurde.

Alternativ halt dann doch über einen Timer der über eine Automation gestartet wird und nach 15 sec z.b. auf 0 geht. In der Zeit wenn er 1 ist kann dann eine zweite Automation counten und eine Aktion vornehmen

Noch kurz eine Frage zu deine Lösung. Kann ich auch über die Automation den History stats zurücksetzen? Also wenn der Counter auf über 15 ist schalte die LED aus und setze den Briefkasten hist. auf 0 ?