InfoFrame: Digitaler Bilderrahmen auf dem Raspberry PI

Hallo Marvin,

Du hast natürlich recht, bei mir ist es im Moment die pure Verzweiflung die da ihr Unwesen treibt ;)
Ich bin echt geknickt und kann es einfach nicht nachvollziehen wieso es hier nicht klappt und wir den Fehler nicht finden können.

Ich wollte es einfach ausprobieren damit wir wirklich alles probiert haben. Nichts weiter.

Eine andere Überlegung wäre noch den Philips Frame zu Verkaufen und mir anstelle des Frames ein Tablet zuzulegen und dann mittels Daydream und der App "Website Daydream" das ganze laufen zu lassen. Meint Ihr das des vielleicht besser funktionieren könnte?
 
Hallo Thomas,
so richtig wissen, woran es hakt tun wir nicht, oder?

Loggen wir doch mal die Zeiten: access.log im apache einschalten falls sie nicht per default an ist, in /etc/apache2/sites-available/default
PHP:
CustomLog ${APACHE_LOG_DIR}/access.log combined

dann im infoframe.php bei der Erstellung des Bildes die Zeit loggen.
PHP:
error_log(strftime("[%d/%m/%Y:%T]") . " start wiriting JPG", 0);
ImageJpeg ($im, 'cache/info.jpg', 90);
error_log(strftime("[%d/%m/%Y:%T]") . " finished wiriting JPG", 0);

Jetzt kannst Du im error.log sehen, wann das Bild erstellt wird und im access.log wann der Bilderrahmen auf die XML zugreit, sind die Zeiten identisch wenn es hakt?

Die XML ist fix, oder lässt Du sie bei jedem Durchlauf erstellen?

Gruß, Michael...
 
Zuletzt bearbeitet:
Hallo jono,

klar, lässt sich dagegen etwas unternehmen, dazu musst Du aber etwas präziser werden.
FROM_UNIXTIME wird in mehreren Plugins verwendet, es wäre schön zu wissen, welches nach dem error nicht korrekt anzeigt.
 
Hallo Michael,

wollte eigentlich vorher Michael schreiben, habe dann aber aus Reflex wieder Marvin geschrieben. Sorry.

Also habe grad nochmals eine Entdeckung gemacht, es passiert folgendes am Bilderrahmen: Es kommt die Meldung im Bilderrahmen, dann verschwindet diese und exakt 5s später wird das aktualisierte Bild angezeigt.

Wenn ich z.B. das WLAN an der FritzBox abschalte kommt diese Meldung auch, und er zeigt noch das letzte Bild an. Wenn ich das WLAN wieder einschalte, verschwindet die Meldung, bleibt erstmal beim zuletzt angezeigten Bild und exakt 5s später aktualisiert er das Bild wieder.

Meine sichere Erkenntnis ist aber das es nicht an der XML liegt und auch nicht an der WLAN Verbindung.

Dann habe ich folgendes gemacht: Habe mir mit F5 das Bild im Explorer mit der Größe angeschaut und festgestellt das es 0kb anzeigt, parallel der Bilderrahmen den Fehler anzeigt und erst nachdem das Bild 180kb hat wieder "normal" funktioniert.

Dann habe ich versucht im "richtigen" Moment das Bild zu öffnen, und es kommt zu diesem Bild welches im Anhang im Post ist.
 

Anhänge

  • Leer.jpg
    Leer.jpg
    66.8 KB · Aufrufe: 27
steht etwas in der error.log zu diesem Zeitpunkt?
 
Hallo Michael,

das habe ich so beobachtet. Deine geposteten Änderungen / Ergänzungen muss ich später einbauen. Melde mich dann mit dem Ergebnis. Danke Dir nochmals für deine gute Unterstützung :D
 
InfoFrame: Digitaler Bilderrahmen auf dem Ra

ich meinte das jetzt eigentlich unabhängig von meinem vorherigen Beitrag: steht etwas im error.log, wenn die Datei info.jpg die Größe 0 hatte?



Nachtrag:

also ich habe jetzt eine Art RSS Reader simuliert, indem ich alle 5 Sekunden die info.jpg von meinem Rechner *.178.20 aus lade.

Das läuft jetzt bereits seit Stunden, ohne murren, ohne knurren.



Wenn der infoframe eine neue info.jpg erzeugt hat, wird das Bild neu eingelesen (200), danach kommt es aus dem cache (304)

/var/log/apache2/access.log

127.0.0.1 - - [07/Mar/2015:18:22:01 +0100] "GET /infoframe.php HTTP/1.1" 200 246 "-" "Wget/1.13.4 (linux-gnueabihf)"

192.168.178.20 - - [07/Mar/2015:18:22:08 +0100] "GET /cache/info.jpg HTTP/1.1" 200 171797 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0 Waterfox/36.0"

192.168.178.20 - - [07/Mar/2015:18:22:08 +0100] "GET /cache/info.jpg HTTP/1.1" 304 188 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0 Waterfox/36.0"



So langsam beschleicht mich das Gefühl, dass es gar nicht an irgendwelchen Kollisionen beim Zugriff liegt sondern, dass infoframe.php von Zeit zu Zeit ein kaputtes File erstellt.

Füg mal folgendes in die infoframe.php, nach Erstellen des Bildes ein.



ImageJpeg ($im, 'cache/info.jpg', 90);

error_log("Size of info.jpg: " . filesize ('cache/info.jpg') . "; Header: " . file_get_contents('cache/info.jpg', NULL, NULL, 6, 4) . ", " . file_get_contents('cache/info.jpg', NULL, NULL, 24, 56), 0);

if ($updatePlugins) error_log("doUpdate () was true.");

else error_log("doUpdate () was false.");



Wenn eine plausible Dateigröße im error.log erscheint, scheint alles ok.

[Sat Mar 07 20:26:39 2015] [error] [client 192.168.178.20] Size of info.jpg: 172985; Header: JFIF, CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90

[Sat Mar 07 20:26:39 2015] [error] [client 192.168.178.20] doUpdate () was false oder true.



So, jetzt hast Du genug zum probieren:p
 
Zuletzt bearbeitet:
Hallo Michael,

also Test zu Post Nr. 142. Fehler trat zwischen 10:46 und 10:48 auf. 10:47 fehlt im log ganz. Schau Anhang
 

Anhänge

  • access.zip
    2.2 KB · Aufrufe: 3
Hallo Michael,

hier der Nachtrag zum Post 147. Der Philips Bilderrahmen steht seit 12:11 Uhr mit dem Fehler und aktualisiert sich nicht mehr. Anbei der Log. Hoffe Du erkennst das Problem.
 

Anhänge

  • access.zip
    18.4 KB · Aufrufe: 14
InfoFrame: Digitaler Bilderrahmen auf dem Ra

Hallo Thomas,

Die access.ZIP enthält die error.log mit den Erweiterungen aus #142.

Schick sie mir mal mit den Erweiterungen aus 147 und schalte bitte das error_reporting auf E_ERROR statt E_ALL.
 
Zuletzt bearbeitet:
Hallo Michael,
ich fand nur folgende Fehlermeldungen zu meinem Post vom 06.03. bzgl. Unix-Time:
Code:
[Sun Mar 08 07:53:05.045689 2015] [:error] [pid 14971] [client 127.0.0.1:51255] PHP Deprecated:  Function split() is deprecated in /var/www/library/magpierss/rss_parse.inc on line 153
[Sun Mar 08 07:53:05.047198 2015] [:error] [pid 14971] [client 127.0.0.1:51255] PHP Notice:  Undefined index: title_regex_1 in /var/www/plugins/FeedPlugin.php on line 109
[Sun Mar 08 07:53:39.240780 2015] [:error] [pid 14972] [client 127.0.0.1:51256] PHP Notice:  Undefined index: feed_url_3 in /var/www/plugins/FeedPlugin.php on line 82
Im C1 ist eine Hardwareuhr enthalten, der ich noch eine Pufferbatterie spendiert habe. Insofern benötige ich keine Internetzeit.
 
Hallo Michael,

seit der Modifikation aus Post 147 und dem E_ERROR läuft der Frame jetzt komischerweise echt super und ohne Meldung. Gestern schon de halbe Tag und heute auch schon. Das soll mal einer verstehen. Ich würde es erst mal so belassen und nichts weiter machen und beobachten. ABER ich habe noch eine Ladung offener Fragen an Dich, also:

1. Ich habe per DECT ein Telefon angeschlossen, funktioniert das #96*5* auch damit oder MUSS ein Telefon per "Kabel" an FON1 angeschlossen werden?
2. Wenn ich den Callmonitor aktiviere, kommt dann eine Meldung im Webif der FritzBox wie bei Telnet? (In Ihrer FRITZ!Box wurden vom Hersteller nicht unterstützte Änderungen durchgeführt)
3. Muss ich if_phonebook benutzen bzw. das Google Konto mit den Nummern? Habe auf Google nur die Kontakte meines Smartphone, das FritzBox Telefonbuch hat andere Einträge. Kann man das FritzBox Telefonbuch irgendwie nach if_phonebook kopieren oder anstelle von if_phonebook verwenden?
4. Wie und mit was mache ich ein Backup des Pi zur Sicherung oder evtl. Portierung auf ein 2ten Pi?
5. Wie sieht es mit den Schreibzyklen und der Lebensdauer des Pi an im Bezug auf den InfoFrame?
6. Wenn ich auf das Moon Plug-In verzichte, kann ich dann "Aktives Gespräch mit" wieder an der selben Stelle des Moon Plug-Ins hinschieben?
 
Zuletzt bearbeitet:
@JL3: Danke für die Links, die werde ich mir nachher durchlesen. :)
@Michael: Zu früh gefreut. Heute Morgen gab es wieder massiv Probleme. Der Philips stand um 7:18 still. Um 7:40 habe ich dann zugegriffen um die Logs mit Filezilla runterzuziehen, seit dem Zugriff funktioniert es wieder. Anbei die Logs
 

Anhänge

  • Post 147.zip
    78.6 KB · Aufrufe: 3
Hallo Thomas,
1. Ich habe per DECT ein Telefon angeschlossen, funktioniert das #96*5* auch damit oder MUSS ein Telefon per "Kabel" an FON1 angeschlossen werden?
2. Wenn ich den Callmonitor aktiviere, kommt dann eine Meldung im Webif der FritzBox wie bei Telnet? (In Ihrer FRITZ!Box wurden vom Hersteller nicht unterstützte Änderungen durchgeführt)
3. Muss ich if_phonebook benutzen bzw. das Google Konto mit den Nummern? Habe auf Google nur die Kontakte meines Smartphone, das FritzBox Telefonbuch hat andere Einträge. Kann man das FritzBox Telefonbuch irgendwie nach if_phonebook kopieren oder anstelle von if_phonebook verwenden?
1. geht auch mit DECT-Telefonen, Kabel nicht notwendig
2. stört doch nicht, FB arbeitet normal weiter, 1x per Telnet einloggen bedeutet: Ausschrift kommt und bleibt, auch wenn Telnet deaktiviert wird
3.if_phonebook brauchst du nicht unbedingt, ich lasse auch nur verpasste Anrufe loggen, siehe entsprechende Beschreibungen von Michael hier im Forum, weil bei unbekannten Anrufern eh nichts an Daten vorhanden ist. Den Rest gibt es in der Fritzbox, Abspeichern der Telefonate geht z. B. mit JFritz hervorragend.
 
2. stört doch nicht, FB arbeitet normal weiter, 1x per Telnet einloggen bedeutet: Ausschrift kommt und bleibt, auch wenn Telnet deaktiviert wird
.

Ich glaube ich habe mich nicht korrekt ausgedrückt. Mit ist bewusst das die Meldung kommt wenn ich Telnet aktiviere und das diese nicht wieder weg zu bekommen ist, nur durch ein Recover. Meine Frage war, ob die Meldung auch kommt wenn ich den Callmonitor aktiviere.

3.if_phonebook brauchst du nicht unbedingt, ich lasse auch nur verpasste Anrufe loggen.

Mir würde es reichen wenn im InfoFrame nur die verpassten Anrufe sehen würde. Also ich benötige den "Wer ruft grade an" Screen nicht. Nur "Aktives Gespräch mit:" und "Verpasste Anrufe"

Wie muss ich das Script anpassen damit er den Screen nicht wechselt?
 
Moins

ht81 schrieb:
Ich glaube ich habe mich nicht korrekt ausgedrückt. Mit ist bewusst das die Meldung kommt wenn ich Telnet aktiviere und das diese nicht wieder weg zu bekommen ist, nur durch ein Recover. Meine Frage war, ob die Meldung auch kommt wenn ich den Callmonitor aktiviere
Nur ein telnetd auf Port 23 wird von AVM getrackt.
Das Aktivieren verursacht die Meldung nicht, sondern das Einloggen.

Auch ein Recover ist nicht notwendig, wenn man schon mit telnet rummacht.
Meldung verschwinden lassen...
Code:
echo clear_id 87 > /proc/tffs
...auf der Box natürlich.
 
Zuletzt bearbeitet:
Alles Andere hätte mich auch gewundert. Bin im Urlaub, melde mich später:)
 
... Bin im Urlaub, ...:)
Im Urlaub sollte man sich komplett unsichtbar machen, ist nervenschonender, und andere User können auch Probleme lösen, also: schönen Urlaub!!!

Hallo Thomas,
im Post 1 und 2 ist hier das CallsPlugin beschrieben, auch im vorherigen Thread
http://www.ip-phone-forum.de/showthread.php?t=206194&p=2066901&viewfull=1#post2066901 mit nachfolgende Posts. Hier ein Auszug aus meiner listen2fritz.conf
Code:
....
[fritzboxfon]
        host=fritz.box
        port=1012
[phonenumber]
        prefix_city=Vorwahl
        prefix_state=+49
        nonumber=KEINE NUMMER
[lookup:mysql]
        host=localhost
        username=DB-User
        password=PW
        database=infoframe
        table=if_phonebook
[log:file]
        file=/var/log/listen2fritz.log
        format=%W; %t-%T; %p-%P; %l; %D; %c-%C; %a-%A\n
[log:mysql]
        host=localhost
        username=DB-User
        password=PW
        database=infoframe
        table=if_call_log
        lognumber=Deine_Rufnummer_ohne_Vorwahl
Das lässt sich möglicherweise auch noch vereinfachen. Michael hat das CallsPlugin angepasst, so dass die Anzeigedauer auf dem Schirm geändert und vergangene Anrufe aus der Datenbank gelöscht werden können. Allerdings erscheint der Screen des aktuellen Anrufers, stört mich aber nicht, da ich aller 30 s aktualisiere.
 
@Jono,

ich fand nur folgende Fehlermeldungen zu meinem Post vom 06.03. bzgl. Unix-Time:

[Sun Mar 08 07:53:05.045689 2015] [:error] [pid 14971] [client 127.0.0.1:51255] PHP Deprecated: Function split() is deprecated in /var/www/library/magpierss/rss_parse.inc on line 153
[Sun Mar 08 07:53:05.047198 2015] [:error] [pid 14971] [client 127.0.0.1:51255] PHP Notice: Undefined index: title_regex_1 in /var/www/plugins/FeedPlugin.php on line 109
[Sun Mar 08 07:53:39.240780 2015] [:error] [pid 14972] [client 127.0.0.1:51256] PHP Notice: Undefined index: feed_url_3 in /var/www/plugins/FeedPlugin.php on line 82

das sind keine Fehlermedlungen und haben mit dem Problem nichts zu tun.
Im C1 ist eine Hardwareuhr enthalten, der ich noch eine Pufferbatterie spendiert habe. Insofern benötige ich keine Internetzeit.
FROM_UNIXTIME hat nichts mit Deiner Uhr im Rechner zu tun sondern ist ein MySQL Befehl um ein Unix Time Format (Sekunden seit 1.1.1970) in die Form YYYYY-MM-DD HH:MM:SS zu bringen.
Ich vermute den Fehler im Bezinplugin: wenn eine Tankstelle eine merkwürdiges Datum liefert, wird im Script mit der Variable $datum ein Null-Wert übergeben und FROM_UNIXTIME(NULL) bringt dann diese Fehlermeldung.

@Thomas
3. Muss ich if_phonebook benutzen bzw. das Google Konto mit den Nummern? Habe auf Google nur die Kontakte meines Smartphone, das FritzBox Telefonbuch hat andere Einträge. Kann man das FritzBox Telefonbuch irgendwie nach if_phonebook kopieren oder anstelle von if_phonebook verwenden?
Möglich ist alles. Ich erinnere mich an ein Script von Spoon3er in http://www.ip-phone-forum.de/showthread.php?t=206194 welches die phonebook.xml der Fritzbox ausliest und bearbeitet. Dü müsstest Das dann mit ein paar MySQL Befehlen in die if_phonebook schreiben. Oder die Tabelle if_phonebook per Hand mit entsprechenden Daten füllen.

5. Wie sieht es mit den Schreibzyklen und der Lebensdauer des Pi an im Bezug auf den InfoFrame?
Darüber wird im Internet viel geschrieben und verschiedene Lösungsansätze angeboten. Die meisten verhindern Schreibzyklen indem sie die Logfiles auf eine Ramdisk auslagern. Beim Infoframe macht das meiner Meinung nach aber nicht viel Sinn, da sowieso ständig Daten in die MySQL Datenbank geschrieben werden. Da kommts auf die paar Logs auch nicht mehr an, als dass ich RAM für eine Disk opfern würde.
Die Speichercontroller erhöhen die Lebensdauer der Karten indem sie versuchen alle Speicherzellen gleichmäßig auszulasten, ich benutze daher eine überdimensionierte SD-Card, so läuft der Infoframe bei mir bereits seit über einem Jahr.

6. Wenn ich auf das Moon Plug-In verzichte, kann ich dann "Aktives Gespräch mit" wieder an der selben Stelle des Moon Plug-Ins hinschieben?
Na klar.

Zu früh gefreut. Heute Morgen gab es wieder massiv Probleme. Der Philips stand um 7:18 still. Um 7:40 habe ich dann zugegriffen um die Logs mit Filezilla runterzuziehen, seit dem Zugriff funktioniert es wieder. Anbei die Logs
Leider keine weiteren Erkenntnisse :( es sieht nicht so aus, als würden defekte JPGs erstellt.

Wie muss ich das Script anpassen damit er den Screen nicht wechselt?
Diese Zeilen (bei mir 146 bis 148 ) in infoframe.php entfernen.
PHP:
if (isset($plugins['CallsPlugin']) && isPhoneRinging ($dbconn))
	$plugins['CallsPlugin']->doOutput ($im, $style, $updatePlugins, $currentYOffset);
else

die Zeile 38 bis 86 in Callsplugin.php entfernen.
PHP:
		// print incomming/outgoing call
		$query = "SELECT * FROM if_call_log WHERE `idx` = (SELECT Max(`idx`) AS M FROM if_call_log) AND (type=2 OR type=1)";
		$result = $this->dbconn->query($query);
		$CallActive = false;
		
		if ($result->rowcount() > 0)
		{
			$CallActive = true;
			$row = $result->fetch(PDO::FETCH_ASSOC);

			$imageWidth = imagesx($image);
			$imageheight = imagesy($image);


			$call_image = $row['caller_image'];
			$tel_nr = $row['caller_number'];
			$text = $row['caller_name'];
			if (($row['caller_type'] != '') && ($row['caller_type'] != null))
				$text = $text . " [" . $row['caller_type'] . "]";
			
			$size = getBiggestFontsizeForText($style['font'], $imageWidth-200, $text);
			$sizen = getBiggestFontsizeForText($style['font'], $imageWidth-200, $tel_nr);
			if ($sizen < $size) $size = $sizen;
			
			// Bildausgabe
			
			
			if (($call_image != null) && ($call_image != ""))
			{
				$wicon = ImageCreateFromJPEG ($call_image);
				$wiconx = imagesx($wicon);
				$wicony = imagesy($wicon);
			}
			else
			{
				$wicon = ImageCreateFromPNG ('resources/icons/phone.png');
				$wiconx = imagesx($wicon);
				$wicony = imagesy($wicon);
			}
			$opt = array(
				'width' => $imageWidth,
				'align' => ALIGN_CENTER
				);

			ImageCopy($image, $wicon, $imageWidth/2-$wiconx/2, $imageheight/2 - $wicony, 0, 0, $wiconx, $wicony);
			imagettftextboxopt($image, $size, 0, 0, $imageheight/2, $style['textcolor'], $style['font'], $text, $opt);
			imagettftextboxopt($image, $size, 0, 0, $imageheight/2 + $size + $size/2, $style['textcolor'], $style['font'], $tel_nr, $opt);
			ImageDestroy($wicon);
		}

Dann brauchst Du in listen2fritz.conf natürlich auch nicht mehr die Sectionen

[notify:script]
script=wget "http://Infoframe/infoframe.php" -qO /dev/null
parameters=
call=in:request
called_number=123456789

und

[notify:script]
script=wget "http://Infoframe/infoframe.php" -qO /dev/null
parameters=
call=in:cancel
called_number=123456789


Wenn Du aktive Gespräche sehen willst, solltest Du aber in:disconnect und in:connect drin lassen.

Grüße....
 
Zuletzt bearbeitet:

Statistik des Forums

Themen
244,885
Beiträge
2,220,163
Mitglieder
371,618
Neuestes Mitglied
kitachris
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.