Es funktioniert alles!
Allerdings, wird das weatherplugin nicht aktualisiert!
Gruß
Langerhannes
infoframe.jpg
Es funktioniert alles!
Allerdings, wird das weatherplugin nicht aktualisiert!
Gruß
Langerhannes
infoframe.jpg
Hi,
ja das ist richtig. Du hast ja mit dem "//curl" die Schleife deaktiviert. Du musst nun mit einem anderen Code dafür sorgen das die xml gedownloaded wird und in das Verzeichnis wandert. So wie Du es manuell gemacht hast. Ein Code Schnipsel wäre (bitte oberhalb vor dem "//curl" Befehl einfügen):
Auch hier gilt: http://yoursite.com/yourxml.xml muss durch http://www.google.de/ig/api?weather=$city&oe=UTF8 ersetzt werden. Und /path/to/file/yourxml.xml muss die Pfadangabe zum "cache" Ordner werden. Achte darauf die Datei nicht "yourxml.xml" zu nennen, sondern weather.xmlCode:$xml = file_get_contents("http://yoursite.com/yourxml.xml"); // your file is in the string "$xml" now. file_put_contents("/path/to/file/yourxml.xml", $xml); // now your xml file is saved.
Probiers aus und berichte![]()
Geändert von ht81 (28.10.2011 um 21:26 Uhr) Grund: Ergänzung / Verbesserungen
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
Habe es ausprobiert!
Die Datei weather.xml wird erzeugt, allerdings mit 0KB
Ich erhalte über E_ALL folgende Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in ***************************WeatherPlugin.php on line 46
für folgenden Eintrag: $xml = file_get_contents("http://www.google.de/ig/api?weather=$city&oe=UTF8");
Geändert von langerhannes (28.10.2011 um 21:25 Uhr) Grund: Ergänzung
Achtung: $xml = file_get_contents("http://www.google.de/ig/api?weather=$city&oe=UTF8");
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
Manchmal sieht man den Wald vor lauter Bäumen nicht
Ich habe nun folgendes im Script stehen:
public function doUpdate() {
// download google weather XML into local file for caching
$city = urlencode( $this->config['city'] );
//$curl = curl_init();
$file = fopen("cache/weather.xml", "w");
if ($file)
{
curl_setopt($curl, CURLOPT_URL, utf8_encode("http://www.google.de/ig/api?weather=$city&oe=UTF8"));
curl_setopt($curl, CURLOPT_FILE, $file);
curl_exec($curl);
curl_close($curl);
fclose($file);
}
$xml = file_get_contents("http://www.google.de/ig/api?weather=$paderborn&oe=UTF8");
// your file is in the string "$xml" now.
file_put_contents("cache/weather.xml", $xml);
// now your xml file is saved.
}
Leider werden die Temp. Werte usw. nicht angezeigt. Die weather.xml ist 1KB groß, und es ist folgendes enthalten:
<?xml version="1.0"?><xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1"/></xml_api_reply>
infoframe.jpg
Geändert von langerhannes (28.10.2011 um 22:08 Uhr) Grund: Korrektur
Ich glaube der Code ist an der falschen Stelle. Stell den mal so um:
So sollte es funktionierenCode:public function doUpdate() { // download google weather XML into local file for caching $city = urlencode( $this->config['city'] ); //$curl = curl_init(); $xml = file_get_contents("http://www.google.de/ig/api?weather=$paderborn&oe=UTF8"); // your file is in the string "$xml" now. file_put_contents("cache/weather.xml", $xml); // now your xml file is saved. $file = fopen("cache/weather.xml", "w"); if ($file) { curl_setopt($curl, CURLOPT_URL, utf8_encode("http://www.google.de/ig/api?weather=$city&oe=UTF8")); curl_setopt($curl, CURLOPT_FILE, $file); curl_exec($curl); curl_close($curl); fclose($file); } }
Geändert von ht81 (28.10.2011 um 22:10 Uhr) Grund: Ergänzung
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
DANKE Thomas!!!
Ich verbringe schon den ganzen Tag vor meinen Rechner und google, und google
Aber erst dank Deiner Hilfe ist es geschafft!
Nun werde ich noch das FeedPlugin entsprechend anpassen!
Hier das Ergebnis und das mit einem GRATIS-Hoster!!!
infoframe.jpg
Gruß
Langerhannes
Hallo Thomas,
zu Früh gefreut, nach der nächsten Aktualisierung ist das kompl. Wetter wieder weg!![]()
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
Ah, danke. Jetzt hab ichs. Vielleicht kannst Du mir auch bei meinem letzten Problem helfen. Ich würde gerne die echte Außentemperatur auf meinem Frame anzeigen. Dazu habe ich eine html Datei erstellt die ich über die IP meiner Heizung abrufen kann (liegt auf dem internen Speicher meiner Heizung, kann ich auch aus dem Internet abrufen) Der Code sieht so aus:
Nur wie binde ich das am geschicktesten ein?Code:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <!--tagparser="/pcotagfilt"--> <head> <meta content="text/html; charset=ISO-8859-15" http-equiv="content-type"> <title>pCOWeb Configuration</title> </head> <body> <div style="color: black"> <%var(0,2,27)%>°C</div> </body> </html>
Hallo,
für alle die einen Hoster verwenden, der mit der CURL-Funktion nicht klar kommt, habe ich zusammen mit Ht81 das Weather&FeedPlugin wie folgt abgeändert:
WeatherPlugin.php
[Edit frank_m24: Bitte benutzt PHP Tags für PHP Files.]
FeedPluginPHP-Code:public function doUpdate() {
// download google weather XML into local file for caching
$city = urlencode( $this->config['city'] );
$xml = file_get_contents("http://www.google.de/ig/api?weather=$city&oe=UTF8");
file_put_contents('cache/weather.xml', $xml);
}
GrußPHP-Code:// update only the feed with the given feed number
private function updateFeed($feednumber) {
// download feeds XML into local files for caching
$feed_url = $this->config['feed_url_'.$feednumber];
if ($feed_url) {
$xml = file_get_contents($feed_url);
file_put_contents('cache/feed_'.$feednumber.'.xml', $xml);
}
}
Langerhannes
Ich lasse meine Daten in eine Text Datei schreiben. Der Inhalt sieht dann so aus:
Jul 05 22:00:49 Sensor 0 C: 22.88 F: 73.18
Jul 05 22:00:51 Sensor 1 C: 25.69 F: 78.24
da kann ich dann in der Zeile meine Position suchen und die Werte auslesen. Was bewirkt bei Dir (0,2,27)? Sind das die Zeilen, Spalten oder Positionen? Werden deine Daten nur dynamisch auf HTML erstellt oder auch irgendwo in eine Datei? Wie sieht den dein Output per HTML aus?
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
Ja genau 0,2,27 wird bei jedem Aufruf der html dynamisch abgefragt. Es wird keine Datei erstellt. Die Zahlenkombi ist die Kombination für die Außentemperatur. Die Kombination:0,2,28 wäre dann beispielsweise die Wassertemperatur. Ausgegeben wird nur der derzeitige Wert als Zahl.
Hallo h-p-d,
somit gibt es wohl mindestens 2 php Seiten bei Dir. Einmal mit intern 27 (Aussentemp)und einmal mit 28 (Wassertemp). Du könntest entweder den Content in eine Datei speichern lassen und diese anschließend auslesen und die Werte anzeigen lassen oder gleich den ganzen Code in der Index.php oder Weather.php integrieren und anschließend über die Funktion "imagettftextboxopt" an die entsprechende Stelle schieben. Glaube die 2te Lösung ist eleganter.
Gruß Thomas
Router: AVM FRITZ!Box Fon WLAN 7390 | FW FRITZ!OS 05.50
Statusmonitor: Phillips 8FF3WMI | freetz devel 10175 | Callmonitor 1.20.9
DSL: 1&1 Doppel-FLAT 16000 (14755kBits/1141kBits) | LD 25dB/15dB | S/R 6dB/6dB
Vermittlungstelle: Broadcom 163.65 | DSL - Treiber 1.68.22.14 | HVt = 1027m
Ja, ich habe jeweils eine php Seite: außentemp.php
gibt mir die Außentemperatur aus. Nur wie binde ich das jetzt in meinen Frame ein? Ich habe jetzt schon ein paar Stunden rumprobiert und bin langsam am verzweifeln.Code:<?PHP if(preg_match("/<body.*?>(.*)<\/body>/s" ,file_get_contents('http://meine.url/http/example.html') ,$html)) echo $html[1]; ?>
Hallo zusammen,
mittlerweile bin ich etwas verzweifelt bei dem Versuch hinzubekommen, dass man per Telefon die Monatsansicht des Kalenders anzeigen lassen kann. Meine Listeners des Callmonitor schauen so aus:
Wenn ich 9# wähle wird auch die richtige ACTION ausgeführt, allerdings tut sich in der index.php nichts. Kann mir hier vielleicht jemand noch einen Tipp geben?Code:*:* !^(02319180|0038649425052|095151950|091113294712) !^9 /var/tmp/infoframe/refresh.sh "action=call&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&src_numb=$SOURCE&dst_name=$(urlencode "$DEST_NAME")&dst_address=$(urlencode "$DEST_ADDRESS")&dst_numb=$DEST&duration=$DURATION" *:* ^ ^9 /var/tmp/infoframe/refresh.sh "action=kalender&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&src_numb=$SOURCE&dst_name=$(urlencode "$DEST_NAME")&dst_address=$(urlencode "$DEST_ADDRESS")&dst_numb=$DEST&duration=$DURATION""
Letztenendes stelle ich mir das so vor, dass mit 1-12# die Monatsansicht des entsprechenden Monats angezeigt wird.
Vielen Dank schon mal und Gruß
Hoobert
@Hoobert:
hast du denn die index.php angepasst? Ausserdem solltest du mal deine Telefon nr. weg x'en. Gut wäre es wenn du mal ein Syslog auszug zeigst.
gruß
UPDATE 03.12.2011 -> Infoframe Administration mit Online DEMO
- Paketverfolgung DHL und Hermes | Roundbox beliebig ändern (Farbe, Eckenradius und Transparenz)
Das neue InfoframeWIKI: http://infoframe.fanol.de
Hardware:
- FritzBox Fon WLan 7390 | FW: / Freetz freetz-devel-xxx
- 2x MT-D | FW: 01.02.xx
- 1x MT-F | FW: xx
- 1x C2 | FW: xx
InfoFrame:
- Philips 8FF3WMI / Samsung SPF-83V / Samsung SPF-83M
Willy.Tel Hamburg:
willy.duoflat national | VoIP / ISDN
Down / Up: 100MBit / 30MBit
Hallo dampfkessel,
die index.php habe ich von bgx so übernommen, zumindest was den Monatskalender angeht. Dort wird ja mit
der entsprechende "action"-Parameter abgefragt. Sollte doch so funktionieren, oder?Code:if(($_GET['action'] == 'kalender'))
Ein entsprechender Eintrag im Syslog wäre:
Meine Telefonnummer steht doch gar nicht im post, im Listener stehen nur Nummern, die ich nicht im Infoframe angezeigt bekommen möchte.Code:Nov 1 19:32:30 fritz daemon.debug callmonitor: <<< timestamp=01.11.11 19:32:30 event=CALL id=0 ext=0 source=XXXXXX dest=9# provider=SIP0 Nov 1 19:32:30 fritz daemon.debug callmonitor: >>> out:request ID=0 TIMESTAMP=01.11.11 19:32:30 SOURCE=XXXXXX DEST=9 EXT=0 DURATION= PROVIDER=SIP0 Nov 1 19:32:30 fritz daemon.info callmonitor: [98] event detected: Nov 1 19:32:30 fritz daemon.info callmonitor: EVENT=out:request Nov 1 19:32:30 fritz daemon.info callmonitor: SOURCE='XXXXXX' Nov 1 19:32:30 fritz daemon.info callmonitor: DEST='9' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98+] detailed event data: Nov 1 19:32:30 fritz daemon.debug callmonitor: SOURCE_DISP='XXXXXX' Nov 1 19:32:30 fritz daemon.debug callmonitor: SOURCE_ENTRY='1und1' Nov 1 19:32:30 fritz daemon.debug callmonitor: SOURCE_NAME='1und1' Nov 1 19:32:30 fritz daemon.debug callmonitor: SOURCE_ADDRESS='' Nov 1 19:32:30 fritz daemon.debug callmonitor: DEST_DISP='9' Nov 1 19:32:30 fritz daemon.debug callmonitor: DEST_ENTRY='9; "Stadt"' Nov 1 19:32:30 fritz daemon.debug callmonitor: DEST_NAME='9' Nov 1 19:32:30 fritz daemon.debug callmonitor: DEST_ADDRESS='Stadt' Nov 1 19:32:30 fritz daemon.debug callmonitor: ID=0 Nov 1 19:32:30 fritz daemon.debug callmonitor: EXT=0 Nov 1 19:32:30 fritz daemon.debug callmonitor: DURATION= Nov 1 19:32:30 fritz daemon.debug callmonitor: TIMESTAMP='01.11.11 19:32:30' Nov 1 19:32:30 fritz daemon.debug callmonitor: PROVIDER=SIP0 Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:0] processing rule '*:*' '!^(02319180|0038649425052|095151950|091113294712)' '!^9' '/var/tmp/infoframe/refresh.sh "action=call&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS" Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:0] event 'out:request' matches pattern '*:*' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:1] processing rule '*:*' '^' '^9' '/var/tmp/infoframe/refresh.sh "action=kalender&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&src_numb=$SOURCE&dst_name=$(urlencode "$DES Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:1] event 'out:request' matches pattern '*:*' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:1] parameter SOURCE='XXXXXX' matches pattern '^' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:1] parameter DEST='9' matches pattern '^9' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:1] SUCCEEDED Nov 1 19:32:30 fritz daemon.info callmonitor: [98:1] ACTION: '/var/tmp/infoframe/refresh.sh "action=kalender&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&src_numb=$SOURCE&dst_name=$(urlencode "$DEST_NAME")&dst_address=$( Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:0] parameter SOURCE='XXXXXX' matches pattern '!^(02319180|0038649425052|095151950|091113294712)' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:0] parameter DEST='9' does NOT match pattern '!^9' Nov 1 19:32:30 fritz daemon.debug callmonitor: [98:0] FAILED
Gruß
Hoobert
Geändert von Hoobert (03.11.2011 um 18:57 Uhr)
Hi web-ranger!
JaZitat von web-ranger