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

Hmm....ok. Ich erstell mal heute Abend noch kurz ein neues Image und dann sehen wir weiter.
 
Aus dem Ticket :

Geändert vor 9 Stunden durch buehmann

In 10175:

callmonitor-1.20.9:

•New default (simulated) IP address for accessing the Web interface: 169.254.255.255; might solve login problems on 7390 boxes.
 
Ah, ok. Muss ich diese IP irgendwo eintragen? Oder was muss jetzt beachtet werden? Irgendwas bestimmtest zu beachten oder Callmonitor behandeln wie zuvor auch bei den früheren Versionen?
 
Ah, ok. Muss ich diese IP irgendwo eintragen? Oder was muss jetzt beachtet werden? Irgendwas bestimmtest zu beachten oder Callmonitor behandeln wie zuvor auch bei den früheren Versionen?


Behandeln wie zuvor. Im Callmonitor hab ich noch
Benutzername im Mehrbenutzer-Modus: ftpuser
ausgewählt.
 
Zuletzt bearbeitet:
ich nochmal,

ich hab ja die call-version von spoon3r erfolgreich integriert aber irgendwas stimmt noch nicht

- wenn ich einen anruf tätige, dann steht oben bei "aktuelles gespräch mit" -> unbekannt,
und nicht die nr die ich gewählt habe

- wenn jmd anruft, dann erzeugt mein server (qnap) zwar das bild mit dem grünen symbol, der src-nr und der dest-nr
aber am rahhmen wirds nicht gezeigt. auch nicht nach über 1 minute.

- komisch, bei einem testanruf von meinem handy klingelte es ewig lang. als ich auflegte zeigt der rahmen
den verpassten anruf an, aber mit (-8s) und ohne rotes AB-symbol, obwohl der AB aus ist

------------------------------------------------------------------

edit:
jetzt wird durch cron ja NUR das call.sh minütlich ausgeführt, aber was ist eigentlich mit der refresh.sh?
da steht ja einiges mehr drin, auch notwendiges für den spf-83v. den hab ich ja hier.

z.b.
samsung_ip_address, oder die samsung_rss_id
die wird doch irgendwie gebraucht, oder?

# Samsung SPF-83v specific tasks
# ===============================
# disable and enable picture cache for this rss feed to make immediately refresh possible
wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=false"
wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=true"

# force samsung picture frame to immediately refresh picture by simulate clicking on "next" in web interface
wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"
 
Zuletzt bearbeitet:
jetzt wird durch cron ja NUR das call.sh minütlich ausgeführt, aber was ist eigentlich mit der refresh.sh?
da steht ja einiges mehr drin, auch notwendiges für den spf-83v. den hab ich ja hier.

z.b.
samsung_ip_address, oder die samsung_rss_id
die wird doch irgendwie gebraucht, oder?

Das was zusätzlich in der refresh steht muss natürlich auch in die call.sh da lediglich nur noch diese ausgeführt wird. Oder aber Du lässt alles in der refresh drin (also nur das was für den Samsung notwendig ist) und führst dieses Zeitgleich mit der call.sh aus. Bleibt Dir überlassen.
 
meine call.sh sieht jetzt so aus
Code:
#!/bin/sh

localpath="/var/media/ftp/uStor01/infoframe"
serverscript="http://192.168.0.5"
LOG="/var/media/ftp/uStor01/infoframe/logs/infoframe.log"
ANRUFBEANTWORTER="/var/media/ftp/uStor01/FRITZ/voicebox/rec"
[COLOR=#ff0000]samsung_ip_address="192.168.0.11"
samsung_rss_id="143560439"[/COLOR]

if [ -z $1 ]; then
 wget "$serverscript?$1" -O $localpath/tmp.jpg
 echo "hier sollte der innhalt von \$1 stehen. Da kein anruf ,also leer. Normaler cron refresh" $1 > $LOG
else
 L=$1'&answermachine='
 cd $ANRUFBEANTWORTER
 if [ `echo $L | grep -c "in:disconnect"` -ge 1 ]; then
     if [ `find . -type f -mmin -1` ]; then
        L=$L'1'
        echo "EVENT in:disconnect und file JUENGER als 1min, also AB BESPROCHEN!!" $L > $LOG
       else
        echo "EVENT in:disconnect, ABER file AELTER als 1min!!" $L > $LOG
     fi
    else 
        echo "KEIN event in:disconnect!!" $L > $LOG
 fi
 wget "$serverscript?$L" -O $localpath/tmp.jpg
 echo "nach wget" $L >> $LOG
fi

[COLOR=#ff0000]# Samsung SPF-83v specific tasks
# ===============================
# disable and enable picture cache for this rss feed to make immediately refresh possible
wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=false"
wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=true"

# force samsung picture frame to immediately refresh picture by simulate clicking on "next" in web interface
wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"[/COLOR]

trotzdem aktualisiert nur jede minute durch cron. irgendwas stimmt da noch nicht. aber ich finde nicht was.

btw.
mit dem benzin-plugin stimmt auch was nicht, denn es zeigt mir falsche preise an
geholt werden sie ja von clever-tanken.de. die uhrzeit des preises stimmt mit der auf der webseite überein. aber der preis bleibt immer exact der gleiche. diesel=1,359 bei allen gefundenen tankstellen der gleiche preis
 
Zuletzt bearbeitet:
Ich hab keinen Samsung Bilderrahmen, deswegen weiß ich nicht, ob die ersten zwei zeilen auch jedesmal ausgeführt werden müssen. Aber die letzte zeile musst definitiv bei jedem aufruf ausgeführt werden. Ich würde es mal so versuchen:
Code:
#!/bin/sh

localpath="/var/media/ftp/uStor01/infoframe"
serverscript="http://192.168.0.5"
LOG="/var/media/ftp/uStor01/infoframe/logs/infoframe.log"
ANRUFBEANTWORTER="/var/media/ftp/uStor01/FRITZ/voicebox/rec"
samsung_ip_address="192.168.0.11"
samsung_rss_id="143560439"

if [ -z $1 ]; then
 wget "$serverscript?$1" -O $localpath/tmp.jpg
 wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"
 echo "hier sollte der innhalt von \$1 stehen. Da kein anruf ,also leer. Normaler cron refresh" $1 > $LOG
else
 L=$1'&answermachine='
 cd $ANRUFBEANTWORTER
 if [ `echo $L | grep -c "in:disconnect"` -ge 1 ]; then
     if [ `find . -type f -mmin -1` ]; then
        L=$L'1'
        echo "EVENT in:disconnect und file JUENGER als 1min, also AB BESPROCHEN!!" $L > $LOG
       else
        echo "EVENT in:disconnect, ABER file AELTER als 1min!!" $L > $LOG
     fi
    else 
        echo "KEIN event in:disconnect!!" $L > $LOG
 fi
 wget "$serverscript?$L" -O $localpath/tmp.jpg
 wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"
 echo "nach wget" $L >> $LOG
fi
klappt das nicht, dann die zwei anderen zeilen auch noch einfügen:
Code:
#!/bin/sh

localpath="/var/media/ftp/uStor01/infoframe"
serverscript="http://192.168.0.5"
LOG="/var/media/ftp/uStor01/infoframe/logs/infoframe.log"
ANRUFBEANTWORTER="/var/media/ftp/uStor01/FRITZ/voicebox/rec"
samsung_ip_address="192.168.0.11"
samsung_rss_id="143560439"

if [ -z $1 ]; then
 wget "$serverscript?$1" -O $localpath/tmp.jpg
 wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=false"
 wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=true"
 wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"
 echo "hier sollte der innhalt von \$1 stehen. Da kein anruf ,also leer. Normaler cron refresh" $1 > $LOG
else
 L=$1'&answermachine='
 cd $ANRUFBEANTWORTER
 if [ `echo $L | grep -c "in:disconnect"` -ge 1 ]; then
     if [ `find . -type f -mmin -1` ]; then
        L=$L'1'
        echo "EVENT in:disconnect und file JUENGER als 1min, also AB BESPROCHEN!!" $L > $LOG
       else
        echo "EVENT in:disconnect, ABER file AELTER als 1min!!" $L > $LOG
     fi
    else 
        echo "KEIN event in:disconnect!!" $L > $LOG
 fi
 wget "$serverscript?$L" -O $localpath/tmp.jpg
 wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=false"
 wget -s "http://$samsung_ip_address:5050/configuration/storage.htm?CheckRssNameId=$samsung_rss_id&Checked=true"
 wget -s "http://$samsung_ip_address:5050/configuration/photo_frame.htm?next"
 echo "nach wget" $L >> $LOG
fi

- wenn ich einen anruf tätige, dann steht oben bei "aktuelles gespräch mit" -> unbekannt,
und nicht die nr die ich gewählt habe

- wenn jmd anruft, dann erzeugt mein server (qnap) zwar das bild mit dem grünen symbol, der src-nr und der dest-nr
aber am rahhmen wirds nicht gezeigt. auch nicht nach über 1 minute.

- komisch, bei einem testanruf von meinem handy klingelte es ewig lang. als ich auflegte zeigt der rahmen
den verpassten anruf an, aber mit (-8s) und ohne rotes AB-symbol, obwohl der AB aus ist

Zu 1.: Es gibt insgeasammt 3 events im CallPlugin: incomming_calls, missed_calls und active_calls
Dein Prob ist das 3.event sprechen: Wegen Platzmangel bei mir auf dem Bilderrahmen konnte ich nicht beide Nummern anzeigen. Also entweder src_name oder dst_name. Für mich persöhnlich war es wichtiger den src_name bei laufenden Anrufen anzuzeigen, sprich wer anruft. Rufst jetzt du jemanden an wird da natürlich auch die src_name, sprich deine eigene Rufnummer angezegit, bzw dein Name. Zumindest läuft das bei mir so ab.
Da es keine Unterscheidung bei der Ausgabe für active_calls gibt, könnte man zB bei der eventabfrage 'out:connect' durch einen kleinnen hack den Inhalt von $src_name und $dst_name tauschen und dadurch sollte die Anzeige wie gewünscht wieder funktionieren...

Zu 2: Das hängt, wie du schon richtig bemerkt hast mit diesem samsung eintrag ab. Siehe oben meine Vorschläge

zu 3: ??? kein AB --> kein roter punkt. Wo ist das Problem?
 
ich habe die samsung einträge wie du vorgeschlagen hast eingetragen, aber ändern tut sich nichts
scheint so als würden sie nicht ausgeführt werden. liegt es an meinen pfaden?

zu 1
könnte man zB bei der eventabfrage 'out:connect' durch einen kleinnen hack den Inhalt von $src_name und $dst_name tauschen und dadurch sollte die Anzeige wie gewünscht wieder funktionieren...
wie geht das?

zu 3
??? kein AB --> kein roter punkt. Wo ist das Problem?
genau, ABER wieso erscheint dann ab und zu hinter der src-number TROTZDEM (-8s), obwohl kein AB an ist
dies passiert glaube ich immer dann, wenn in der gleichen minute mehrere anrufe von der gleichen nr eingegangen sind
--------------------------------------

könntest du noch miteinbauen, nur für mich ;)
wenn ein call -> bestimmte dest_nr, dann Faxsymbol anstatt AB-symbol

weil eine nr ist bei mir nur für fax auf der FB, soll heißen, wenn dort ein anruf war dann ist es ein Fax
 
Zuletzt bearbeitet:
@Spoon3er

soo bin etwas weiter,
die call.sh wird zwar aufgerufen, aber definitif zu KEINEM zeitpunkt ausgeführt.
nicht bei einem anruf, nicht durch cron und auch nicht wenn ich sie per hand in der console starte!

das bild wird NUR durch die refresh.sh auf dem webserver der fritte aktualisiert (minütlich durch cron)
und das hat ja erstmal nix mit den samsung spezifischen zeilen zu tun.
 
btw.
mit dem benzin-plugin stimmt auch was nicht, denn es zeigt mir falsche preise an
geholt werden sie ja von clever-tanken.de. die uhrzeit des preises stimmt mit der auf der webseite überein. aber der preis bleibt immer exact der gleiche. diesel=1,359 bei allen gefundenen tankstellen der gleiche preis
bei wem läuft das benzinplugin denn noch?
hat keiner diese probleme?
 
danke funzt wieder :)

aber noch besser wird es, wenn das offizielle meldesystem und die datenbank online gehen die ja dieses jahr kommen soll.
dann brauchen wir eh wieder ein ganz neues plugin dafür
 
Hier ein fast fertiges script für deine AB-Nachrichten anzeige. Es wird mittles ftp auf auf die FritzBox zugegriffen und im Ordner uStore/FRTIZBOX/voicebox/rec die Anzahl der Dateien gezählt und in der Variable $result gespeichert.
Das ganze unter Plugins zB als ABPlugin.php speichern.
Code:
<?php
$ftp_server = "192.168.XXX.XXX";
$ftp_user = "foo";
$ftp_pass = "bar";

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

if (ftp_chdir($conn_id, "/uStor01/FRITZ/voicebox/rec")) {
    $a = ftp_pwd($conn_id);
    $b = ftp_nlist($conn_id, $a);
    $result = count($b);
   // mysql_query("REPLACE INTO if_ab SET id=1, anzahl = '$result'") or die ("nicht moeglich");
}

// Verbindung schließen
ftp_close($conn_id);
?>

Dann in einer anderen Plugin.php aufrufen. z.B. im WeatherPlugin.php
Code:
require('plugins/ABPlugin.php');
Dann noch mit sowas in der Art anzeigen lassen:
Code:
imagettftextboxopt($image, 13, 0, imagesx($image)-370, 450, $style['textcolor'], $style['fontb'], 'Noch '.$result.' Anruf auf dem AB vorhanden', $opt);

Eigetnlich wollte ich es ja nicht komplett vorkauen, aber bitte sehr: Guten Apettit. :D
 
Zuletzt bearbeitet:
cool danke,

der text wird angezeigt, jedoch nicht der wert von $result

hab im weatherplugin an erster zeile require('plugins/ABplugin.php');
eingetragen
Code:
 ***************************************************************************/
require('plugins/ABplugin.php');
class WeatherPlugin implements IPlugin

aber warum die abfrage über ftp? du liest doch schon in deiner sh das ab-verzeichnis aus
 
Zuletzt bearbeitet:
cool danke,

der text wird angezeigt, jedoch nicht der wert von $result

aber warum die abfrage über ftp? du liest doch schon in deiner sh das ab-verzeichnis aus
Ich hab den php-Code oben nochmal verändert. Habe gestern eine zeile vergessen. :(
Trage das "require...." direkt über die Ausgabe Zeile "imagettftextboxopt...." ein. Damit bist du sicher, daß die Variable $result nicht irgendwo im laufe des scripts überschrieben wird.

Um den einen Parameter in die Datenbank zu übergeben muss man das komplette CallPlugin und Index.php um diesen Parameter erweitern. (also in jeder abfrage der CallPlugin.php $AB anfügen und in der Index.php $GET['AB'] bei processCallEvent mit einbauen. In der CallPlugin sind damit extrem viele Fehlerquellen vorhanden bis die Abfrage wieder gewünsch laufen würde. So geht es halt um einiges einfacher und da Du deinen AB auf dem stick hast ist dieser extrem einfach über ftp und php abzufragen. :)

Anderer Lösungsansatz wäre es die AB-Abfrage in der refresh.sh zu erledigen, dann erst mit scp das Ergebnis von der Frtibox auf dem Server zu kopieren und mit Hilfe von ssh den Datenbankeintrag zu erledigen. Dazu würdest du aber einen SSH server/client auf der fritzbox benötigen und diesen mit Public Key Authentication einrichten müssen, um eine passwortfreie Verbindung zwischen Fritzbox und Server zu ermöglichen. Das funktioniert auch, habe es schon getestet ist aber um einiges aufwendiger von der Einrichtung.
 
Zuletzt bearbeitet:
danke nochmal jetzt läuft es,

aber wenn jemand auf band spricht, dann wird dieser anruf genau 2mal in den missed_calls angezeigt.
 
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.