...
ja ich glaube jede minute läuft das.
...
warum mußte man dafür überhaupt nen sttick haben? die fb hat doch 4mb eingebaut. reicht das nicht.
weil wenn mein stick dran ist läut die fb mit 79% energie
ohne nur 47%
Wenn Du die mysql-Datenbank benutzt (sie ist ja atm auskommentiert), könntest du, bevor du zu der FRITZ!Box per ftp connectest, mit einer mysql_query abfragen ob die Anzahl =0 ist. Ist sie 0 wird das ganze übersrungen und gut.:
PHP:
<?php
$ftp_server = "xxx.xxx.x.x";
$ftp_user = "xxxx";
$ftp_pass = "yyyyy";
$result = mysql_query("SELECT anzahl FROM if_ab WHERE id=1");
$AB = mysql_result($result, 0);
if ( $AB != 0 ) {
// 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")) {
//if (ftp_chdir($conn_id, "./data/tam/rec")) { <--- ***geht leider nicht***
$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);
}
?>
Jetzt müsstest du noch in der CallsPlugin, falls einer auf dein Ab-Spricht, das mysql_query("REPLACE....") statement aus deinem Code einfügen. Somit würde sich die Anzahl ändern und beim nächsten mal würde das AB-script durchlaufen und die Nachrichten gezählt werden.
Beim löschen läuft das Ab-Plugin einmal durch und setzt dann im if_ab die anzahl=0. Beim nächsten query (nach einer minute) würde die anzahl aus der mysql_datenbank gelesen. Ist sie null beendet sich das script und gut.
Um den Aufruf im Ab-Plugin machen zu können müsstest du einen Eintrag in die config.ini setzen und das AB-Plugin komplett als Methode einer
Klasse ip_config umschreiben... Das ist für die paar Zeilen Code nicht wirklich ratsamm.
Aufrufen kannst du es in jedem Plugin. Wichtig ist es nur, daß es minütlich ausgeführt wird, was zB im CallsPlugin nicht der Fall ist, da dieser nur bei einem Anruf triggert. Somit hättest du zB, wenn du die Nachrichten aus dem AB löscht erst nach einem Anruf wieder die richtige Anzahl an AB-Nachrichten angezeigt.
Also prinzipiell sollten 4MB für das ganz Projekt langen. probieren geht hier über studieren...
einfach den AB auf Web-config der FRTIZ!Box auf den internen Speicher umleiten, den Infoframe Ordner auch dahin kopieren und ALLE Links in den dezugehörigen scripts ändern. Dann siehst du schon ob es klappt
€dith: oder elganter und wahrscheinlich auch effizienter:
Du fügst der Tabelle if_ab noch ein Spalte mit dem name zB "geaendert" hinzu.
der code am Anfang wäre dann folgender:
PHP:
<?php
$ftp_server = "xxx.xxx.x.x";
$ftp_user = "xxxx";
$ftp_pass = "yyyyy";
$result = mysql_query("SELECT geaendert FROM if_ab WHERE id=1");
$geaendert_durch = mysql_result($result, 0);
if ( $geaendert_durch == "Calls_Plugin" ) {
// 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")) {
//if (ftp_chdir($conn_id, "./data/tam/rec")) { <--- ***geht leider nicht***
$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', geaendert='AB_Plugin'") or die ("nicht moeglich");
}
// Verbindung schließen
ftp_close($conn_id);
}
?>
Dann im CallsPlugin, nachdem was auf Band gesprochen wurde sowas in der Art:
PHP:
$insert = mysql_query("REPLACE INTO if_ab SET id=1, geaendert='Calls_Plugin'") or die (REPLACE nicht moeglich");
......
Vielleicht kann mir jemand Tipps geben. Es brennt schon in meinen Fingern und ich würde gerne mit dem Projekt starten. Tipps gerne auch per PM.
Danke
Gibt es eine liste mit Bilderrahmen die man für die Funktion nutzen kann?
Danke
Ich habe einen
PixStar Rahmen. Dieser funktioniert sehr gut, hat einen Samba-share und ist auch UPNP/DLNA-fähig. Kostet natürlich einiges, da wird wohl ein billiges Android-Tablet die günstigere Variante sein. Hab das Vorgängermodell und nach 3 maligen hin und her Senden zwischen Frankreich und Deutschland läuft das Ding jetzt auch ohne probleme. Nebenbei erwähnt war/ist der Support wirklich Klasse von den Teilen....
Aktuelle Rahmen mit Wifi + RSS-Reader oder sonstawas sind wirklich schwer aufzutreiben...
Hallo Zusammen,
leider hat clever-tanken die Internetseite geändert. Hat da jemand schon das Benzinpreis-Plugin drauf angepasst?
Gruß xxolli
Die Seite habe ich schon "zerlegt", sprich die regex fertig. Der rest ist "nur" noch fleißarbeit:
PHP:
<?php
/*
/ ACHTUNG UTF-8 !!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
//!include_path anpassen!!!!
$loc = setlocale(LC_ALL, 'de_DE.UTF8', 'de_DE', 'de', 'ge');
$config = parse_ini_file("config.ini", true);
$sysconfig = $config['System'];
mysql_connect($sysconfig['db_host'], $sysconfig['db_user'], $sysconfig['db_password']) or die ("Verbindung nicht möglich");
mysql_select_db( $sysconfig['db_name']) or die ("Die Datenbank existiert nicht.");
// spritsorte und ort kommen spaeter aus der config.ini
$uri="/tankstelle_liste?spritsorte=5&r=10&ort=90402";
header("Content-type: text/html");
$sock = fsockopen("www.clever-tanken.de", 80, $errno, $errstr, 10); // 80 = Port, 5 = Timeout
if (!$sock) {
return;//$title = "keine Tankstellen in $orte_fehlen gefunden";
} else {
fputs($sock, "GET ".$uri." HTTP/1.1\r\n");
//------ (FD 15.01.2012) Damit Clever-tanken glaubt es handelt sich um eine Browser
//------ löst das Problem des Diesel Einheitspreises, zumindest bei mir
fputs($sock, "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204\r\n");
//------
fputs($sock, "Host: www.clever-tanken.de\r\n");
fputs($sock, "Connection: close\r\n\r\n");
while(!feof($sock)) {
$zeile[$i++] = trim(fgets($sock,512));
}
fclose($sock);
}
$inhalt = implode($zeile);
//$inhalt = file_get_contents('/var/www/infoframe/speichern');
preg_match_all('#<div class="price">(.*)</div><div class="location_distance">(.*)</div>#isU', $inhalt, $matches);
$i=0;
foreach ($matches[0] as $match) {
$i++;
echo strip_tags($match)."\n";
$ergebnis[$i] = explode('|', preg_replace('#<.*?>#', '|', $match));
}
$ergebnis = array_filter(array_map('array_filter', $ergebnis));
print_r($ergebnis);
?>
Mal sehen ob ich das am WE noch zusammenschustern kann...