Seite 1 von 1

Webcam Gerät Frage

Verfasst: 03.04.2015, 20:36
von nicolas-eric
Hallo.

Ich habe mir eben mal das Webcam Gerät angeschaut.
Das vorkonfigurierte Kamera Modell 4 funktioniert auf Anhieb mit meinen ganzen Foscam 8906W.
Ds ist ja mal eine coole Sache!
Dank an den Programmierer!!! :lol:

Nun habe ich dazu nochmal zwei Fragen:

1.
In der Anleitung steht bei CMD_EXEC:

Code: Alles auswählen

Befehlszeile, die nach dem erfolgreichen Ausführen eines Snapshots ausgeführt werden soll. Um den Snapshot dann weiterverarbeiten zu können (z.B. Email-Versand o. ä.), werden beim Aufruf neben den üblichen CUxD-Umgebungsvariablen (siehe Seite 83) zusätzlich die Umgebungsvariablen CUXD_SNAPDIR auf das aktuelle Snapshot- Verzeichnis und CUXD_SNAPFILE auf den aktuellen Snapshot- Dateinamen gesetzt.
Wie bekomme ich denn diesen Snapshot per E-Mail versendet?
Am besten sogar 2 von 2 Kameras.

Ich würde gerne ein Programm erstellen, das Snapshots von Kamera 1 und Kamera 2 macht (das funktioniert jetzt schon) und das dann diese Snapshot per Mail verschickt


2.
Kann ich das Snapshot Verzeichnis auch ändern z.B. auf den per FTP zugänglichen USB Stick an meiner Fritzbox?


Danke schonmal für Eure Antworten!
Gruss Nico :)

Re: Webcam Gerät Frage

Verfasst: 03.04.2015, 21:14
von uwe111
Hallo Nico,
nicolas-eric hat geschrieben:Wie bekomme ich denn diesen Snapshot per E-Mail versendet?
Das habe ich doch in der Doku beschrieben. Du musst ein Programm/Script schreiben, das den Snapshot per Email versendet. Eintragen kannst Du den Programmaufruf dann bei diesem CMD_EXEC-Parameter für jede Kamera.
nicolas-eric hat geschrieben:Kann ich das Snapshot Verzeichnis auch ändern z.B. auf den per FTP zugänglichen USB Stick an meiner Fritzbox?
Das steht auch in der CUxD-Doku. Dafür gibt es den CUxD-Parameter WEBCAMSNAPSHOT. Das Verzeichnis kann auch im Netzwerk liegen. Es muss nur lokal gemoutet sein.

Viele Grüße

Uwe

Re: Webcam Gerät Frage

Verfasst: 03.04.2015, 21:47
von nicolas-eric
Danke Uwe für Deine schnelle Antwort! :)

Leider kann ich solche Scripts nicht selber schreiben.

Ich habe mal das Script umgewandelt, mit dem ich mir sonst direkt von 2 Kams die Bilder geholt und gemailt habe. Es funktioniert auch.
Ist das so ok oder viel zu umständlich?
Wenn es einfacher gehen sollte, wie bekomme ich das hin?
Hat eventuell wer schon mal so ein Script geschrieben und kann mir das zur Verfügung stellen?

Code: Alles auswählen

package require base64
 
set EMAIL_SUBJECT ""
set EMAIL_BODY ""
set SEND_TO ""
set SEND_TO1 ""
set SEND_FROM ""
set SMTP_HOST ""
set SMTP_USER ""
set SMTP_PASSWD ""
set SMTP_DOMAIN ""


# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"
 
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain
 

$EMAIL_BODY

--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"photo.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo.jpg\"

{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk


--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"photo1.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo1.jpg\"

{IMGDATA1}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"

# READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE
set fp [open "/tmp/snapshots/CUX9104004/CUX9104004_000.jpg" r]
fconfigure $fp -translation binary
set imgdata [read $fp]
set encodeddata [::base64::encode $imgdata]
close $fp

set fp [open "/tmp/snapshots/CUX9104001/CUX9104001_000.jpg" r]
fconfigure $fp -translation binary
set imgdata1 [read $fp]
set encodeddata1 [::base64::encode $imgdata1]
close $fp
 
# REPLACE IMG DATA WITH REAL IMAGE DATA
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl
regsub -all "{IMGDATA1}" $tmpl $encodeddata1 tmpl
# WRITE READY EMAIL TO A TMP FILE
set fp [open "/tmp/ready.eml" w]
puts $fp $tmpl
close $fp
 
set config "
defaults
tls on
tls_certcheck off
logfile /var/log/email.log
account provider
host $SMTP_HOST
from $SEND_FROM
domain $SMTP_DOMAIN
auth login
user $SMTP_USER
password $SMTP_PASSWD
account default: provider
"
 
set fp [open "/tmp/msmtp.conf" w]
puts $fp $config
close $fp
 
exec chmod 0600 /tmp/msmtp.conf
 
# SEND EMAIL USING MSMTP
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO

# CLEAN UP
exec rm -f /tmp/msmtp.conf
exec rm -f /tmp/ready.eml
Das Programm schaut dann so aus:
Bildschirmfoto 2015-04-03 um 22.04.04.png

Aber ehrlich gesagt, lasse ich das lieber so wie es war.
Wenn ich eh ein TCL Script brauche zum Bilder per Mail versenden, dann kann ich mir auch mit diesem Script gleich die Bilder von den Kams holen.
Jetzt pro Kam einen Snapshot mit einem CuxD Gerät zu machen und dann noch ein TCL Script auszuführen, ist ganz schön umständlich und belastet die CCU sicherlich mehr, als einfach nur ein Script auszuführen.

Ich hoffte, das gibt z.B. beim CuxD Mail Gerät eine Funktion, um mit einem CuxD Webcam Gerät gemachte Snapshots zu versenden.

Aber um regelmässig Snapshots auf einen FTP Server (USB Stick an der FB) zu spielen ist das echt praktisch finde ich.
Fehlt nur noch ein Punkt, wo man einstellen kann, dass z.B. alle 30 Sekunden ein Snapshot gemacht wird.

Re: Webcam Gerät Frage

Verfasst: 03.04.2015, 22:11
von nicolas-eric
Ich hab dann nochmal eine Frage zum Verzeichnis, wo die Snapshot gesichert werden sollen. :shock:

Im CuxD Setup steht ja standardmässig:
WEBCAMSNAPSHOT=/tmp/snapshots

Kann ich da einfach anstatt "/tmp/snapshots" eine URL zu einem FTP Server eingeben mitsamt Nutzername und Passwort drin?

Re: Webcam Gerät Frage

Verfasst: 04.04.2015, 12:39
von uwe111
nicolas-eric hat geschrieben:Kann ich da einfach anstatt "/tmp/snapshots" eine URL zu einem FTP Server eingeben mitsamt Nutzername und Passwort drin?
Nein, so geht das nicht! Das Verzeichnis muss im lokalen Filesystem gemountet sein. Eine URL geht nicht.

Viele Grüße

Uwe

Re: Webcam Gerät Frage

Verfasst: 04.04.2015, 13:21
von nicolas-eric
Danke für Deine Antwort Uwe!

Leider kenne ich mich mit dem Filesystem der CCU nicht aus.
Ist es denn möglich, dort einen FTP Server zu mounten, auf den dann die Snapshot gesichert werden?
Wenn ja wie geht das dann?

Was passiert dann, wenn der FTP Server beim Snapshot erstellen mal nicht gemountet ist?
Kommt es dann zu Fehlermeldungen oder gar einem Absturz der CCU2?

Edit:
Ich übertrage die Bilder jetzt einfach mit einem Script auf den fTP Server, das das CUXD system EXEC gerät dafür nutzt. Klappt super.

Re: Webcam Gerät Frage

Verfasst: 13.05.2017, 01:50
von Joef75
@Nicolas

wie machst du das mit der Übertragung der Bilder auf den FTP Server?

Gruß und Danke

JoeF

Re: Webcam Gerät Frage

Verfasst: 13.05.2017, 11:21
von nicolas-eric
Mit diesem Script hatte ich das gemacht:

Code: Alles auswählen

WriteLine("Hole Bild von cam und speichere es im Tip Verzeichnis der CCU");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -O /tmp/Bild.jpg 'URLzumKamerabild'");
WriteLine("Lade das Bild per FTP hoch");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd/ /usr/local/addons/cuxd/curl -T /tmp/Bild.jpg ftp://FTPSERVER --user FTPUsername:FTPPasswort");
WriteLine("Bild von CCU wieder loeschen");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("rm /tmp/Bild.jpg");
WriteLine("Fertig");

Re: Webcam Gerät Frage

Verfasst: 22.05.2017, 23:51
von Joef75
Dank dir :-)