Änderungsdatum einer Datei über http überwachen:

Begonnen von Pille90, 21 Januar 2021, 10:42:47

Vorheriges Thema - Nächstes Thema

Pille90

Hallo Zusammen,

ich bin momentan dabei mir einen Auslöser zu basteln welche mir sagt, dass jemand vor meiner Kamera steht.

=> Leider bietet die Ctronics sowas scheinbar nicht so schön an wie beispielsweise meine anderen Foscams sodass ich eine umgehungslösung suche.
=> Auch in der Kameralog ist keine Eintrag einer Bewegungserkennung.
=> Andere spezifischere KameraForen haben auch keine Lösung

Folgende Überlegung habe ich jetzt angestellt:

In meiner Kamera wird bei Auslösung eine Datei aktualisert:

http://Kamera:Port/log/spap.jpg?usr=admin&pwd=admin

Diesen snap kann ich ja ohne Probleme in FHEM einbinden. Meine Frage kann ich mir hier auch den LAST CHANGE einbinden und daraus einen Trigger machen?

Vielen Dank.

Florian
>> RPi 4: FHEM 5.9 als SmartHomeServer und Head of PIs <<
>> RPi 3B+; RPi 3; RPi 2 und RPi 1 als dezentrale Satelliten << 
>> mit insgesamt an die 800 Geräten, Modulen, Auslösern:  KNX (Licht, Heizung, Rollos), 1-Wire (Temperatur), Homematic, S0 (Zählerlogging), Regensensor, Füllstandssensor, uvm.

MadMax-FHEM

Es gibt ein Modul iNode-Irgendwas.

"help inotify" in FhemWeb-cmd...

Das überwacht lokale Dateisysteme und gibt dann entsprechende Events von sich darauf dann notify/DOIF etc.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Dazu müsste er aber das http-Dateisystem "einbinden". Geht zwar .... aber ....

@Pille
Welche "Auflösung" brauchst Du denn? Du könntest z.B. jede Minute pollen, würde aber im WorsCase bedeuten, das Du eine Bewegung erst eine Minute später mitkriegst.

Kann Deine Cam wirklich keine Aktion (außer Dateischreiben) machen, wenn ausgelöst wird? FTP/Mail oder andere Aktionen könntest Du anderweitig Abgraben und einen Event generieren lassen ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MadMax-FHEM

Zitat von: Wernieman am 21 Januar 2021, 11:06:30
Dazu müsste er aber das http-Dateisystem "einbinden". Geht zwar .... aber ....

Ja darüber bin ich auch erst gestolpert...
...habe aber das dann so interpretiert als ginge das/wäre schon geschehen ;)

Zitat
Diesen snap kann ich ja ohne Probleme in FHEM einbinden. Meine Frage kann ich mir hier auch den LAST CHANGE einbinden und daraus einen Trigger machen?

Jep. Die Anmerkung, bzgl. z.B. per FTP was ablegen hatte ich auch schon auf der Zunge... ;)
Wäre für Kameras die ich so angesehen habe meine "Notlösung" gewesen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Ich habe es hier mit einem Gerät, das eine nur eMail generiert .... schnell eine eigene Domain (intern) mit "Mailserver" aufsetzen und dort eMail (geht in Linux supereinfach) verarbeiten lassen ....
Dieses dann in FHEM reinpusten war nur noch eine Fingerübung ...

Mit anderen "Diensten" ist es meistens ebenso, solange das Gerät überhaupt irgendetwas "Trickert" oder "Pushed". Sonst bleibt nur pollen übrig ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pille90

Danke für die schnellen Antworten. Ja das Teil kann die nomalen Auslöser FTP, Mail, etc. Ich dachte nur mit dem Snap wäre die einfachste.

Ich lasse mir bei jeder Auslösung ein Bild auf den FTP-Server speichern. Die Cam macht für jeden Tag einen neuen Ordner. Wie könnte ich hier abgrabben das eine neue Datei gkommen ist.

Verwenden wir folgendes Beispiel.

Mutterverzeichnis ftp://192.168.178.666/Kamera/
Tagesverzeichnis ftp://192.168.178.666/Kamera/20200121

Was muss ich dann in FHEM genau machen, damit im gesamten Mutterverzeichnis als auch in den Unterverzeichnissen auf neue Dateien überwacht wird?

Zur Info FTP und FHEM sind auf verschiedenen Systemen

Danke nochmal
>> RPi 4: FHEM 5.9 als SmartHomeServer und Head of PIs <<
>> RPi 3B+; RPi 3; RPi 2 und RPi 1 als dezentrale Satelliten << 
>> mit insgesamt an die 800 Geräten, Modulen, Auslösern:  KNX (Licht, Heizung, Rollos), 1-Wire (Temperatur), Homematic, S0 (Zählerlogging), Regensensor, Füllstandssensor, uvm.

Christoph Morrison

Was sagt denn z.B. (mit deinen Daten)

curl -I http://Kamera:Port/log/spap.jpg?usr=admin&pwd=admin

?

Wernieman

Ich würde auf dem Server ein Scrip ablegen, was es prüft ...

z.B. so: (Auf die Schnelle, Ohne Verabreitung etc.)
#!/bin/bash
while true; do
  inotifywait -qr -e create "./testdir"
  find "./testdir" -cmin -1
done


Wie gut ist Dein Linux?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pille90

Mein Linux ist jetzt nicht so ausgeprägt, nur Einsteigerlevel ;)

Das Script anlegen und dann im Hintergrund laufen lassen oder? (Sprich mit dem "Autostart" wie auch immer der bei LInux gleich wieder heißt) starten lassen

Denkst du dass das auf den Rapi laufen würde oder dass eine Permanente Überwachung vom Raspi auf den FTP die Performance frisst?

>> RPi 4: FHEM 5.9 als SmartHomeServer und Head of PIs <<
>> RPi 3B+; RPi 3; RPi 2 und RPi 1 als dezentrale Satelliten << 
>> mit insgesamt an die 800 Geräten, Modulen, Auslösern:  KNX (Licht, Heizung, Rollos), 1-Wire (Temperatur), Homematic, S0 (Zählerlogging), Regensensor, Füllstandssensor, uvm.

Wernieman

durch inotifywait wird das Script nur getrickert, wenn eine Änderung im Verzeichnis (oder darunter) eintrifft. In diesem Falle sogar "nur" ein CREATTE. Gibt auch andere Events. Auch der Speicherverbraucht sollte "minimal" sein.

Ist jetzt nur die Frage, wie "genau" Du die Info brauchst. Also wie genau Du gegen "Fehlalarme" abgesichert sein willst, da ein "das Verzeichnis anlegen" ein create auslöst.

ist Dein FHEM per telnet oder nur per http erreichbar?

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pille90

Also in dem Verzeichnis aus meinem Beispiel passiert nichts anderas als Speicherungen von der Kamera, dass heißt selbst wenn alle Creates getriggert werden würde das passen, da ja maximal einer mehr pro Tag kommet, nämlich wenn der Tagesordner erstellt wird, oder?!

FHEM ist sowohl per http als auf telnet erreichbar.

Ziel des Spieles soll halt am Schluss sein, dass ich in FHEM einen Dummy habe, welcher mir  entweder das Datum der letzten Änderung (Create) gibt oder auch nur den Wert "Neu" aktualisiert. Aus diesem Dummy würde ich dann immer bei Statusänderung/Aktualisierung eine Aktion auslösen lassen wollen (Bild per Telegrambot an mich senden)
>> RPi 4: FHEM 5.9 als SmartHomeServer und Head of PIs <<
>> RPi 3B+; RPi 3; RPi 2 und RPi 1 als dezentrale Satelliten << 
>> mit insgesamt an die 800 Geräten, Modulen, Auslösern:  KNX (Licht, Heizung, Rollos), 1-Wire (Temperatur), Homematic, S0 (Zählerlogging), Regensensor, Füllstandssensor, uvm.

Wernieman

Mal auf die schnelle, die systemd Einrichtung kann ich Dir aktuell nicht sagen:
#!/bin/bash
while true; do
  message=$(inotifywait -qr -e create "./testdir")
  #find "./testdir" -cmin -1
  #echo $message
  if [ ! -z "$message" ] && $(echo "$message" | grep -q -v ISDIR)
  then
    datei=$(echo "$message" | sed "s/^.* //g")
    echo $datei   
    echo -en "set <Dummy> <Tricker>\nquit\n" | nc -w 5 <FHEM-server> 7072 >/dev/null    # <- Hier jetzt die FHEM Benachrichtigung, bitte anpassen!
  fi
done


Habe aber jetzt kein Fehlercode, Fehlerbehandlung eingebaut. Ist erstmal "Quick and Dirty"

Nur mal am Rande und weil ich es vor mir habe, ein Shell-Programm zur Info von FHEM über telnet würde z.B. lauten
#!/bin/bash
# Programme
nc="/bin/nc"
echo="/bin/echo"
log="/var/log/fhem/schalte_fhem"
server="<FHEM-Server>"
debug=0

if [ $# -lt 2 ];
then
  echo "Zuwenig Parameter!"
  echo "1. Was"
  echo "2. Wie (on,off)"
  exit 1
fi

if [ "$debug" -ne 0 ]
then
  echo "`date` : Debug: Schalte Fhem mit \"$0 $@\"" >>$log
fi

$echo -en "set ${1} ${2}\nquit\n" | $nc -w 5 ${server} 7072 >/dev/null
error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\"" >>$log
  exit 1
fi


Wenn Du ein Passwort für Telbet hast, kann dieses mit eingebaut werden:
#!/bin/bash
# Programme
nc="/bin/nc"
echo="/bin/echo"
log="/var/log/fhem/schalte_fhem"
server="<FHEM-Server>"
passwd="<Passwort>"
debug=0

if [ $# -lt 2 ];
then
  echo "Zuwenig Parameter!"
  echo "1. Was"
  echo "2. Wie (on,off)"
  exit 1
fi

if [ "$debug" -ne 0 ]
then
  echo "`date` : Debug: Schalte Fhem mit \"$0 $@\"" >>$log
fi

$echo -en "${passwd}\nset ${1} ${2}\nquit\n" | $nc -w 5 ${server} 7072 >/dev/null
error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\"" >>$log
  exit 1
fi

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

frank

oder mit einer mail plus modul mailcheck trigger generieren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Wernieman

Zitatmodul mailcheck
Meines Wissens "pollt" das aber ... oder?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

frank

Zitat von: Wernieman am 21 Januar 2021, 13:25:42
Meines Wissens "pollt" das aber ... oder?
wenn man ein imap mailkonto hat, wird auch gepusht.
eventuell auch providerabhängig, ob das imap protokoll "kompatibel" genug ist.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html