NEWS
Kamera Erkennung Personen/ Bewegung - Sendesperre
-
Hi zusammen,
ich habe eine Reolink rlc1224 an meiner Haustür montiert. Die Kamera ist über den Reolink Adapter in iob eingebunden. Ich habe es per Blockly so realisiert, dass wenn eine Person erkannt wird, ich sofort (über einen ffmpeg Befehl) ein Bild per Telegram geschickt bekomme und eine Aufnahme. Nun ist es aber so, dass die Kamera natürlich, wenn sich die Person vor der Kamera bewegt, mehrfach die Personenerkennung true ist. Dafür brauche ich eine Logik, die z.B. nur alle 2 Minuten die vorangegangene Logik (Bild sofort + Video) schickt. Ich habe eine Sperrvariable eingeführt. Es kommen jedoch weiterhin immer wieder Benachrichtigungen, ich gehe davon aus, dass alle Bewegungserkennungen in eine Queue gestellt werden. Wie kann ich, wenn die Sperrvariable auf true geht, alle anderen Erkennungen verwerfen? Meine aktuelle Logik:
vorhandene DP:
Hat jemand einen Tipp?
-
Ich habe das über eine Variable gelöst, in der ich den Zeitstempel des letzten Alarms für die Kamera ablege:
-
@martinp sagte in Kamera Erkennung Personen/ Bewegung - Sendesperre:
Ich habe das über eine Variable gelöst, in der ich den Zeitstempel des letzten Alarms für die Kamera ablege:
danke dir, könntest du mal das gesamte Skript zeigen? Mich wundert nur, warum du die Zeit letzter Alarm ausserhalb des Erkennungs-Triggers setzt. Funktioniert es bei dir, dass sich die Alarme dann nicht aufstauen? Ich teste das mal, danke!
-
@mading sagte in Kamera Erkennung Personen/ Bewegung - Sendesperre:
Mich wundert nur, warum du die Zeit letzter Alarm ausserhalb des Erkennungs-Triggers setzt.
Das, was man ausserhalb eines Triggers oder Funktionsklammerung in einem Blockly definiert wird einmalig beim Start des Blockly ausgeführt ...
Sonst sind die Variablen "...._last_alarm" beim ersten Aufruf des Trigger undefiniert, und man kriegt bei der Abfrage der Zeitdifferenz zum letzten Alarm Probleme ...Genauer wäre es, wenn man die Variablen mit der Aktuellen Zeit Minus 10 Minuten vorbesetzt - so wie es jetzt ist, werden die Alarme der ersten 10 Minuten nach Script Start verschluckt ...
Soweit ich das sehe, "verpuffen" die Alarme in der Zeit, wenn die 10 Minuten nicht abgelaufen sind ...
Ich schicke mir nur ein Thumbnail-JPEG per Mail - und die Datei wird schlichtweg überschrieben durch den neueren Alarm ....
Hier noch das Abholen des Thumbnails direkt von der Kamera - das Blockly ist schon etwas älter, aktuell könnte man das Benutzen von exec vermeiden.
-
@mading sagte in Kamera Erkennung Personen/ Bewegung - Sendesperre:
Mich wundert nur, warum du die Zeit letzter Alarm ausserhalb des Erkennungs-Triggers setzt.
Das, was man ausserhalb eines Triggers oder Funktionsklammerung in einem Blockly definiert wird einmalig beim Start des Blockly ausgeführt ...
Hier dient es dazu, sinnvolle Werte für den Zeitpunkt des letzten Alarms vorzudefinieren. Sonst sind die Variablen "...._last_alarm" beim ersten Aufruf des Trigger undefiniert, und man kriegt bei der Abfrage der Zeitdifferenz zum letzten Alarm Probleme ...Genauer wäre es, wenn man die Variablen mit der Aktuellen Zeit Minus 10 Minuten vorbesetzt - so wie es jetzt ist, werden die Alarme der ersten 10 Minuten nach Script Start verschluckt ...
Soweit ich das sehe, "verpuffen" die Alarme in der Zeit, wenn die 10 Minuten seit dem letzten Alarm nicht abgelaufen sind ...
Ich schicke mir nur ein Thumbnail-JPEG per Mail - und die Datei wird schlichtweg überschrieben durch den neueren Alarm ....
Hier noch das Abholen des Thumbnails direkt von der Kamera - das Blockly ist schon etwas älter, aktuell könnte man das Benutzen von exec vermeiden.
-
@martinp danke, du könntest auch mit dem trigger-zeitstempel arbeiten!
-
@mading Danke für den Hinweis. Es ist immer wieder überraschend, was sich an Vielfalt zeigt, wenn man die Picklist des "Wert" Bausteins aufklappt .... Deutliche Vereinfachung, und wahrscheinlich auch Ressourcenschonender...