InfoFrame: Digitaler Bilderrahmen (Anzeige von Anrufen, E-Mails, Termine, Wetter...)

Hi,

ich habe mal eine "dumme" frage. Ich würde infoframe gern benutzen um auf meinem SNOM 870 Telefon bestimmt Informationen anzuzeigen.
Gibt es eine Möglichkeit das infoframe so zu konfigurieren das das erzeiugte jpg wirklich physikalisch in einem subdir liegt und dort alle 5 Minuten überschrieben wird?
Das SNOM kommt leider mit eine Webseite nicht klar und braucht eine XML in der ich nur ein JPG als Ziel angeben kann.
Ich bin leider auch kein php Freak. Mein Workarround momentan ist ein curl Aufruf alle 5 Minuten der das ganze als JPG abspeichert. Jedoch ist das nicht das wäre und ich würde gern infoframe dazu bringen das Bild direkt abzuspeichern.

mfG

bicmac
 
Gibt es eine Möglichkeit das infoframe so zu konfigurieren das das erzeiugte jpg wirklich physikalisch in einem subdir liegt und dort alle 5 Minuten überschrieben wird?

Hi bicmac,

über
Code:
wget "$serverscript?$1" -O $localpath/tmp.jpg
in der refresh.sh wird das Bild tmp.jpg in den Ordner $localpath heruntergeladen. Dann hast Du doch Dein Bild, das Du dann nach Belieben weiterverarbeiten kannst.

Gruß
Hoobert
 
Hallo zusammen,

heute möchte ich Euch meine neueste Errungenschaft bei meinem Infoframe vorstellen:
Wenn jemand an meiner Haustüre klingelt bekomme ich nun das Bild einer IP-Cam (INSTAR-3011) auf meinem Infoframe angezeigt.
Wie habe ich das gemacht:
Meine Türklingel ist eine Siemens Gigaset HC450, die an meiner Siemens Gigaset C475-Basis einen internen Ruf erzeugt, wenn jemand klingelt. Diesen internen Ruf bekommt die FritzBox und somit der Callmonitor leider nicht mit. Dank der Hilfe durch Telefonmännchen habe ich mir eine Gigaset 1000TAE Funk-TAE-Dose zugelegt und diese mit dem Y-Kabel an meine FritzBox angeschlossen. Diese Funk-TAE-Dose funktioniert wie ein weiteres Mobilteil an meiner Gigaset-Basis und erzeugt einen Anruf an der Fritzbox, wenn ein interner Gigaset-Ruf gestartet wird. Dies funktioniert, da ich bei 1&1 einen Komplettanschluss mit VoIP habe.
Das Bild der IP-Cam wird dann über die "eingebaute" DynDNS vom Callsplugin aufgerufen.

Ein paar Schwachstellen hat die Programmierung zwar noch, aber entweder ich arrangiere mich damit oder mir fällt da noch was ein. Vor allem dauert es relativ lange, bis das Bild auf dem Infoframe erscheint (ca. 10-15 Sekunden). Hat hier vielleicht jemand einen Tipp, wie das schneller gehen könnte?

Gruß
Hoobert
 
Vor allem dauert es relativ lange, bis das Bild auf dem Infoframe erscheint (ca. 10-15 Sekunden)

Wie lang dauert es bis Du einen nochmalen Anruf angezeigt bekommst? Bei mir dauert es ca. 7 - 10 sec... Wie rufst Du das Bild genau auf? Wird es evtl noch gerendert? Wie groß ist es....
 
Hi Thomas,

ein normaler Anruf dauert so ca. 3-5 Sekunden. Das Bild wird folgendermaßen aufgerufen und eingebunden:
Code:
      $bgimagefile = "http://XXXXX.cipcam.com:1234/snapshot.cgi?user=XXXX&pwd=XXXX";
      $bg = @ImageCreateFromJpeg ($bgimagefile);
      imagecopyresampled($im, $bg, 160, 120, 0, 0, 640, 480, imagesx($bg), imagesy($bg));
Mittlerweile habe ich mal ausprobiert, das Bild direkt in der index.php einzubinden (ohne den Umweg ins CallsPlugin), allerdings ist dies auch nicht schneller.

Das Bild selbst hat ca. 30 KB (kann's also eigentlich nicht sein).

Gruß
Hoobert
 
@Hoobert: Du Du speicherst das Bild vorher ab? Oder holst Du es "on the fly". Geht es schneller wen Du es schon Lokal hast und dann Anzeigst?

@all: Schaut mal hier. Evtl. könnten wir hierdurch die "alte" Infoframe.org rekonstruieren ....
 
darf ich das nochmal fragen?

Hallo, lese schon seit längerem hier im Forum mit. Nun ist es wohl an der Zeit auch mal was zu schreiben:

Ich benutze für infoframe diesen Rahment. Ich war auch länger auf der Suche und war mir unschlüssig ob die anderen Frames die Voraussetzungen für dieses Porjekt haben. Vorsicht:
Die RSS-Feeds können nur online Verwaltet werden und somit gehen keine selbst erstellten Feeds, zumindest nicht lokal gespeicherte. Dafür bietet dieser Rahmen eine smb-freigabe, welche einfach gemountet werden kann oder man "füttert" den Rahmen über UPnp mit einem Mediaserver. Die Bilder können alle 2 sekunden gewechselt werden, was für das callplugin völlig ausreichend ist.

Mein infoframe ist komplett lokal eingerichtet und ich mounte die cifs-freigabe auf meinem Heimserver. Ich habe auch die UPnP-Geschichte ausprobiert, auch diese funktioniert einwandfrei.
 
@Spoon3er: Wäre schön wenn Du deinen funktionierenden Rahmen inkl. einer kurzen Beschreibung über die Einrichtung hier Posten würdest. Danke.
 
@Hoobert: Du Du speicherst das Bild vorher ab? Oder holst Du es "on the fly". Geht es schneller wen Du es schon Lokal hast und dann Anzeigst?

Hallo Thomas,

das Bild wird über die von INSTAR vergebene DynDNS-Adresse bei cipcam.com "on the fly" aufgerufen. Das Ganze funktioniert über die Portweiterleitung in der FritzBox. Mir ist natürlich klar, dass die Prozedur eine gewisse Zeit in Anspruch nimmt, allerdings ist diese Zeit in der Praxis fast schon zu lange (ein Paketdienstler wäre beinahe schon wieder gegangen ;-) ). Die Cam könnte das Bild auch lokal bzw. per ftp zwischenspeichern, allerdings muss ich ja immer die Adresse der Kamera aufrufen wenn jemand klingelt, da ich ja ein aktuelles Bild haben möchte - und dann sind wir wieder bei der langen Ladezeit, oder?. Leider bin ich beim Zusammenspiel php, FritzBox, Portweiterleitung, etc. etwas minderbemittelt, so dass ich hier weiter Unterstützung bräuchte.

Vielen Dank und Gruß
Hoobert
 
Hallo Hoobert,

tja, wenn es der Zalando Paketdienstler ist, ist doch halb so schlimm ;) Hoffe hier ließt jetzt niemand mit :weg:
Probier mal aus wie schnell das Bild angezeigt wird wenns Lokal im "richtigen" Moment da wäre.....
 
Hallo,
wie im "Digitale Bilderrahmen für das Infoprojekt - Thread" angekündigt hier mal mein HowTo für diesen Rahmen:

Ich beschreibe alles anhand meiner Config. Bei mir werden die Bilder auf meinem Home-Server Debian7 generiert. Alles bis auf die Anrufe werden vom Server erledigt. Für die Anrufe wird die Index.php ähnlich wie im Startpost von der fritzbox mit wget anufgerufen.
Aber das ganze läuft auch mit einem externen Server. Eigentlich müssen dafür nur die Pfade angepasst und meine zwei scripts in ein script auf der Fritzbox zusammengefrickelt werden. Das ist dann nur noch copy and paste :D

-Um mit mount.cifs als user Laufwerke einbinden zu können muss das SUID-Bit für mount.cifs gesetzt sein. Sollte eigentlich Standard sein, aber mal kurz schauen schadet nicht. Zu finden in: /sbin/mount.cifs

-Eintrag in /etc/fstab. Hier als Beispiel mein Eintrag: //192.168.XXX.XXX/share/Pix-Star/inbox /mnt/pixstar cifs noauto,user,guest,uid=XXXX,forceuid,gid=XXXX,forcegid,file_mode=0764,dir_mode=0777 0 0
wobei IP, mountpunkt, uid und gid selbstverständlich angepasst werden müssen. :)

mein refresh-script auf dem server wird per cron jede Minute aufgerufen zwischen 7 und 22Uhr:
Code:
#!/bin/sh

# config
LOCALPATH="/home/infoframe"
SERVERSCRIPT="http://192.168.XXX.XXX/infoframe/index.php"
IP_PIXSTAR="192.168.XXX.XXX"
PIXSTAR="/mnt/pixstar"
LOG="/var/log/mylogs/infoframe.txt"


echo `date` ": INFOFRAME WURDE GESTARTET!!!" | sed 's/$/\r/' >> $LOG

   if (ping -c 1 -q -w 1 "$IP_PIXSTAR" > /dev/null); then 
     if !(mount | grep "mnt/pixstar" > /dev/null 2>&1); then
    	  mount $PIXSTAR/
     fi
	   wget "$SERVERSCRIPT?$1" -O $LOCALPATH/tmp.jpg > /dev/null 2>&1	  	 
	     filesize=0
	   if [ ! -f $PIXSTAR/info.jpg ] || [ `du $PIXSTAR/info.jpg | cut -f1` -lt 10 ]; then
		  	cp $LOCALPATH/error.jpg $PIXSTAR/info.jpg
	  	  	echo `date` ": FEHLER Infoframe: Error.jpg wurde kopiert"  | sed 's/$/\r/' >> $LOG  
       else
	      	 echo `date` ": Infoframe wurde aktualisiert" | sed 's/$/\r/' >> $LOG	
	   fi
    else
     cp $LOCALPATH/error.jpg $PIXSTAR/info.jpg
     echo `date` ": Pix-Star nicht online: Error.jpg wurde kopiert" | sed 's/$/\r/' >> $LOG     
   exit 1
   fi
exit 0

cron eintrag:

Code:
* 7-21 * * * /home/infoframe/refresh.sh

call-script auf der Fritzbox könnte so aussehen. Sollte auch refresh.sh heißen, dann sind keine Umbennenungen im Callmonitor zu machen:

Code:
#!/bin/sh
#config
localpath="/var/media/ftp/UStor01/infoframe"
serverscript="http://192.168.1.XXX/infoframe/index.php"


wget "$serverscript?$1" -O $localpath/tmp.jpg
exit


Um bei einem Anruf das Bild gleich anzuzeigen habe ich in der Index.php von Infoframe noch eine Zeile bei der Bildausgabe fast ganz unten eingefügt. Zum testen mit dem Browser: ImageJpeg($im); wieder aktivieren:
Code:
// send the new PNG image to the browser
//ImageJpeg($im);
// bild zum gemounteten bilderrahmen kopieren
ImageJpeg($im, '/mnt/pixstar/info.jpg');

So das wars dann... Nicht vergessen die scripts ausführbar zu machen und evtl. Rechte zu setzen!
 
Zuletzt bearbeitet:
Anrufbeantworter

Einen hab ich noch:

Bestimmt nicht die eleganteste- und auch nicht die universal Methode, aber bei mir klappt das soweit ganz gut.

Zur Überlegung: Ich nehme an, daß nach einem Anruf, welcher beendet wurde auf der Fritzbox, im Anrufbeantworter-Ordner, eine neue Datei entsteht. Der Name ist mir erstmal egal, wobei man mit dem Dateinamen theoretisch (da weiß ich nicht wie Callmonitor das handhabt) auch bei zwei parallelen Anrufen, die beide auf dem AB sprechen die Anzeigen hinbekommen sollte....
Also filtere ich den string vom Callmonitor nach dem Eintrag "in:disconnect". Sendet Callmonitor "in:disconnect" druchsuche ich den AB-Ordner nach files, die nicht älter als eine Minute sind(ist). Finde ich so eine Datei, dann muss es zwangsläufig ein gerade aufgenommene Sprachdatei sein, welche zu dem Anruf von gerade eben passt.
Der Rest ist dann nur noch bischen Fleißarbeit. Die if_calls Dateinbank um einen Parameter erweitern und diese in der Callsplugin.php abfragen.

Mein jetztiger calls.sh auf meiner Fritzbox mit sehr vielen echos um zu sehen ob die Parameter wie gewünscht übergeben werden. Vorsicht da kommt schnell einiges an kByte logs zusammen!!!(nach erfolgreichem testen sollte man sie auskomentieren oder löschen):
Code:
#!/bin/sh

localpath="/var/media/ftp/infoframe"
serverscript="http://192.168.XXX.XXX/infoframe/index.php"
LOG="/var/media/ftp/uStor01/logs/infoframe.log"
ANRUFBEANTWORTER="/var/media/ftp/uStor01/FRITZ/voicebox/rec"


if [ -z $1 ]; then
 wget "$serverscript?$1" -O $localpath/tmp.jpg
 echo "hier sollte der innhalt von $1 stehen" $1 >> $LOG
else
 L=$1'&answermachine='
 cd $ANRUFBEANTWORTER
 if [ `echo $L | grep -c "in:disconnect"` == 1 ]; then
    if [ `find . -type f -mmin -1` ]; then 
        L=$L'1'
        echo "file ist juenger als 60sekunden" $L >> $LOG
	    else 
           echo "file ist aelter als 60sekunden--> regulaerer anruf" $L >> $LOG
    fi
 	else 
  	echo "kein event in:disconnect auflegen" >> $LOG
 fi
 wget "$serverscript?$L" -O $localpath/tmp.jpg
 echo "nach wget" $L >> $LOG
fi

Der listener Eintrag bei Callmonitor (Habe sie um $source_number und $dest_number erweitert, weil ich im Callsplugin mit den standard Parametern nicht zurecht kam. evtl. kann sich das mal einer anschauen, der von php auch Ahnung hat, ich hab auf jedenfall keine :p )
Code:
*:*     ^      ^     /var/media/ftp/infoframe/call.sh "action=call&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_number=$(urlencode "$SOURCE")&src_address=$(urlencode "$SOURCE_ADDRESS")&dst_name=$(urlencode "$DEST_NAME")&dst_number=$(urlencode "$DEST")&dst_address=$(urlencode "$DEST_ADDRESS")&duration=$DURATION"

Nun gehts ans php :D :

/library/dbconn.php habe ich if_calls wie folgt abgeändert:
Code:
	// table "if_calls"
	if(mysql_num_rows( mysql_query("SHOW TABLES LIKE 'if_calls'", self::$connection) ) != 1) {
		$query = "CREATE TABLE `if_calls` (
				`id` int(11) NOT NULL auto_increment,
				`type` int(11) NOT NULL,
				`timestamp` datetime NOT NULL,
				`name` varchar(100) collate latin1_general_cs default NULL,
				`address` varchar(100) collate latin1_general_cs default NULL,
		  		`number` varchar(100) collate latin1_general_cs default NULL,					
				`duration` int(11) default NULL,
				`answermachine` int(11) default NULL,
				PRIMARY KEY  (`id`),
				KEY `type` (`type`,`timestamp`)
				) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs; ";
		mysql_query($query, self::$connection) or die('Error, insert query failed: '.mysql_error());
	}

Jetzt fehlt nur noch die CallsPlugin.php. und ein AB-icon. Die hänge ich mal als Anhang mit drann. Ich hoffe ich hab keine Fehler gemacht, denn meine eigene CallsPlugin.php sieht anders aus, weil ich für verschiedene Rufnummern verschiedene Farben verwende.

Sooo, nun viel Spaß damit, hoffe es klappt bei euch auch ohne Probleme. Verbesserungsvorschläge, Weiterentwicklungen gerne gesehen. :)
info.jpg

€ Screenshot eingefögt, hab ich gestern irgendwie vergessen....
 

Anhänge

  • CallsPlugin.zip
    6.1 KB · Aufrufe: 27
Zuletzt bearbeitet:
Hallo Spoon3er,

jetzt hast Du mich neugierig gemacht. Kannst Du uns mal bitte ein Screenshot deines Frames schicken? Also wie deine Index.php aussieht?
 
Super, gefällt mir.
 
Hi,

gibt es eine Möglichkeit, eine eigene -mit PHP generierte- Ausgabe auf das Bild zu bekommen, ohne das ganze als Plugin schreiben zu müssen?
 
So ich habe meinen Bilderrahmen heute bekommen. Toshiba JournE air801 und wifi.
Ich habe echt keinen plan und kenne mich mit php usw überhaupt nicht aus. Ich habe eine Fritzbox 7390 und die hat ja bekannter weise 2 Host usb anschlüsse. Jetzt habe ich ein paar Fragen.
1. ich habe schon einen 8GB usb-Stick im einsatz. Könnte ich darauf die sachen mit dem webspace php und mysql installieren und zum laufen bringen oder funktioniert das nicht ? Dann könnte man sich ja den Webspace-Anbieter mit php und mysql sparen und ich wäre unabhängig.
2. Da ich wie schon erwähnt keine Ahnung habe, wäre ich für jede Hilfe dankbar.

Ich hoffe auf Eure Hilfe und vielen Dank im voraus.

MfG Benne007
 
Dann könnte man sich ja den Webspace-Anbieter mit php und mysql sparen und ich wäre unabhängig.

Hi, Du wirst um einen Hoster nicht rumkommen. Entweder einen Hoster oder ein eigener Server (NAS von QNAP / Synology etc.) oder Lokal auf deinem Rechner. Dann geht der Frame halt nur solange dein Rechner läuft^^. Im ernst: Für 10€ im Jahr bekommste bereits ein gutes / brauchbares Angebot. Ein eigener Server kostet mittlerweile auch nicht mehr die Welt und hat ja noch etliche Zusatznutzen.....

Du kannst die PHP Scripte nicht auf der 7390 laufen lassen. Probier doch erstmal das ganze Lokal auf deinem Rechner einzurichten. Das kostet nix und macht Spass.....Schau doch bitte hier im Thread weit Vorne nach der XAMMP Installation. Da ist alles beschrieben um den Frame erstmal lokal laufen zu lassen.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.