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

hat noch jemand das Problem das Diesel seit längerem 1,359 je Liter kostet?

Tankst Du mein Audi voll? Bei uns kostet der Diesel im Moment 1,489 der Liter! :mad:

@ralalla: Der Code für den Sonnenaufgang gehört ganz normal in das Weather.plugin reinkopiert.
 
Wenns denn mal 1,359 kosten würde. Egal welche PLZ ich nehme, es steht immer 1,359 da. Auf clever-tanken steht der echte Preis. Bei Super habe ich das Problem aber nicht.

p.s. im dem Beitrag #1114 von ralalla steht auch überall 1,359
 
Hallo,

ich habe keine Fritzbox im Einsatz. Wenn ich die URL am Websapce aufrufe dann sehe ich das gewünschte Bild. Leider bin icvh kein .php Experte
Wie lautet denn die URL für das erzeugte Bild? Leider können vom Samsung Bilderrahmen keine .php Scripst sondern nur URLS zu Bildern aufgerufen.

Danke
LG Bernd
 
@t0156rabe: Bitte 1ten Post von Pacman lesen, da steht doch alles dran.
@h-p-d: Jetzt versteh ich das Dilema. ;)
 
@ilmtuelp0815: Das Dilema mit dem 1,359 Euro Bug, der überall im Plugin erscheint.

@ralalla:

Code:
class WeatherPlugin implements IPlugin
{
    private $dbconn = NULL;
	private $config = NULL;
	
	public function __construct($dbconn, $config) {
		$this->dbconn = $dbconn;
		$this->config = $config;		
	}
	
	
	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);
		}
	}

	public function doOutput($image, $style, $updateData, &$yoffset) {
		$filename = 'cache/weather.xml';
		if ($updateData || !file_exists($filename))
			$this->doUpdate();
		
		if(file_exists($filename) && (filesize($filename) > 0)) {
			
			$xml = simplexml_load_file($filename);
			if($xml) {
				// parse weather data
				// ===================
				// current conditions
				$current_condition = $xml->weather->current_conditions->condition['data'];
				$current_temp = $xml->weather->current_conditions->temp_c['data'];
				$current_humidity = $xml->weather->current_conditions->humidity['data'];
				$current_wind_condition = $xml->weather->current_conditions->wind_condition['data'];
				$night = !isDaylight();
				$current_icon = $this->getLocalWeatherImage($xml->weather->current_conditions->icon['data'], $night);
				
				$wicon = ImageCreateFromPNG ( $current_icon );
				ImageCopy($image, $wicon, imagesx($image)-190, 5, 0, 0, imagesx($wicon), imagesy($wicon));
				ImageDestroy($wicon);
				$opt = array(
					'width' => 280,
					'align' => ALIGN_RIGHT
				);
				//$text = $current_temp."°C";
				//imagettftextboxopt($image, 24, 0, imagesx($image)-300, 105, $style['textcolor'], $style['font'], $text, $opt);
				//
				//$text = "Wetter für ";
				//imagettftextboxopt($image, 15, 0, imagesx($image)-300, 148, $style['textcolor'], $style['font'], $text, $opt);
				// Google
				$text = "Aktuell: $current_condition\n$current_humidity\n".str_replace('Windgeschwindigkeiten von ', '', $current_wind_condition);
				imagettftextboxopt($image, 15, 0, imagesx($image)-300, 145, $style['textcolor'], $style['font'], $text, $opt);
				// display sunrise and sunset 
				date_default_timezone_set('Europe/Berlin'); 
				$longitude = 52.17611111; // longitude 
				$latitude = 8.12027778;   // latitude 
				$sunrise =  date_sunrise(time(), SUNFUNCS_RET_STRING, $longitude, $latitude, 90); 
				$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, $longitude, $latitude, 90); 
				$text = "Sonnenaufgang: ".$sunrise." - Sonnenuntergang: ".$sunset; 
				$opt = array( 
				'width' => 270, 
				'align' => ALIGN_RIGHT 
							); 
				imagettftextboxopt($image, 10, 0, imagesx($image)-280, 575, $style['textcolor'], $style['font'], $text, $opt);  

				// forecast for today and next 3 days
				for ($i = 0; $i <= 3; $i++) {
					// pixel offset for placing day 0-3 in different rows from top to bottom
					if (imagesy($image) <= 500) {
						$offset = 225+(85*$i); // smaller spacing for low resolution displays (vertical=480px)
					} else {
						$offset = 235+90*$i; // normal spacing for high resolution diplays (vertical=600px)
					}
					if ($offset > (imagesy($image)-80))
						break; // offset out of range, skip output of further weather forecast days

					// format data
					$day = $xml->weather->forecast_conditions[$i]->day_of_week['data'];
					if ($i == 0)
						$day = 'Heute';
					if ($i == 1)
						$day = 'Morgen';
					$low = $xml->weather->forecast_conditions[$i]->low['data'];
					$high = $xml->weather->forecast_conditions[$i]->high['data'];
					$condition = $xml->weather->forecast_conditions[$i]->condition['data'];
					$icon = $this->getLocalWeatherImage($xml->weather->forecast_conditions[$i]->icon['data'], false);
					
					// output
					$wicon = ImageCreateFromPNG ( $icon );
					ImageCopyResampled($image, $wicon, imagesx($image)-95, $offset+5, 0, 0, imagesx($wicon)/2, imagesy($wicon)/2, imagesx($wicon), imagesy($wicon));
					ImageDestroy($wicon);
					$opt = array(
						'width' => 150,
						'align' => ALIGN_RIGHT
					);
					$text = $day."\n".$high."° | ".$low."°\n".$condition;
					imagettftextboxopt($image, 15, 0, imagesx($image)-240, $offset, $style['textcolor'], $style['font'], $text, $opt);

				}
				
			}
		} 
	}
	















	// replace google specific path with local path and image file names
	private function getLocalWeatherImage($googleWeatherImage, $night) {
		$localImagePath = 'resources/weather/' . substr(strrchr($googleWeatherImage, "/"), 1 ); // get all chars after last slash
		$localImagePath = str_replace('-40.gif', '.png', $localImagePath);
		$localImagePath = str_replace('.gif', '.png', $localImagePath);
		$localImagePathNight = str_replace('.png', '_night.png', $localImagePath);
		// if parameter $night is true and night image exist use it
		if ($night && file_exists($localImagePathNight))
			$localImagePath = $localImagePathNight;
		else if (!file_exists($localImagePath))
			// if daylight image doesn't exist display N/A image
			$localImagePath = 'resources/weather/na.png';
		return $localImagePath;
	}
	

}
 
Stehe was auf dem Schlauch. Auf dem Server (QNAP) läuft die Grundkonfiguration meines Infoframe. Die FritzBox mit Freetz auch.
Wie bzw. womit greife ich jetzt vom PC auf den USB Stick zu um dort Dateien anzupassen ?

Ist ja auch schon spät :-)
Vielleicht hilft mir ja ab diesem Punkt jemand ?
Ebenso könnte ich ein wenig Hilfe ,dann, bei der weiteren Verarbeitung aus der Word Datei zum Kodak Rahmen gebrauchen Bitteeeee ;-)
 
Entweder Du benutzt Filezilla oder Du bindest das USB Laufwerk als Netzlaufwerk ein. Die URL lautet "fritz.nas" oder direkt mit ftp://192.168.178.1

Editieren kannst Du mit Notepad++
 
HI @All!
Ein mühsames Geschäft, aber das Zusammenspiel von FHEM auf der FRITZ!Box und die Darstellung der Ergebnisse auf dem InfoFrame zeigt langsam Wirkung. Leider fehlen mir noch einige Aktoren und Sensoren.

Anhang anzeigen 61645
 
Hi, das sieht sehr gut aus.

wie bekommst Du die temperaturen von deinen Sensoren? Habe mir FHEM mal angesehen als alternative zum 1-Wire. Hast Du einen CUL am USB der FritzBox? Wenn ja, kann man die Temperaturen in eine txt Datei schreiben lassen?
 
Hat jemand eine Info wie ich das Bild auf den Kodak bekomme. Hier wurden ja ein paar Word Dokumente gepostet. Muss nicht irgendwo noch was am Rahmen eingestellt werden, auf welche Adresse der zugreifen soll bzw. muss ?
Über die IP Adresse des Rahmen kommt man mal an kein Web Menü vom Rahmen um da was einzustellen.

Wird das an dem Kodak anders gelöst ?
Falls mir jemand helfen kann bitte melden, wäre ja auch für andere Interessant ???

Am W1020 kommt man wohl an ein Menü ran wo man RSS Feeds eintragen kann.

Falls es für den W1030 keine Lösung gibt werde ich den wohl wieder verkaufen und nach was anderem umsehen :-(
 
Zuletzt bearbeitet:
Hi ht81!
Es ist doch ganz schön komplex. Auf der 7390 läuft der erste FHEM-Server mit einem C U L. Der Temperaturwert kommt von einem FHT80b. Da auf der 7390 kein MySQL läuft, sondern auf dem SuSE-Server, habe ich auf Suse auch einen FHEM-Server und einen MySQL laufen. Die beiden FHEM sind per FHEM2FHEM verbunden. Mittels DbLog werden die über FHEM anfallenden Werte in die DB geschrieben. Dort lese ich sie in die PHP-Datei und erzeuge das Bild für den InfoFrame.
 
Hallo ilmtuelp0815,
Danke für dein Feedback. Weist du Zufällig ob man die Werte des Temperatur Senders in eine txt Datei schreiben lassen kann?
 
Hi ht81!
Meinst du die vom FHT80b gemessene Temperatur in FHEM? Ja, die wird neben der Temperaturkurve auch in der Form
"2011-12-11_19:13:54 bad_FHT_5e4e measured-temp: 18.4 (Celsius)"
automatisch in eine Textdatei geschrieben
 
Hat jemand eine Info wie ich das Bild auf den Kodak bekomme
Eine ausführliche Anleitung die auch für den W1030 gilt steht im Infoframe-Wiki und auch weiter vorne hier im Thread.
 
Eine ausführliche Anleitung die auch für den W1030 gilt steht im Infoframe-Wiki und auch weiter vorne hier im Thread.

So wie ich das verstanden habe muss man aber die IP des Rahmens aufrufen und dort im Menü die Adresse des Bildes bzw. erzeugten Bildes als Feed angeben ???
Beim W1030 gibt es aber kein Menü welches über die IP aufzurufen ist.
 
Hi web-ranger!
Das Bild der IP-Cam ruft man genauso auf wie auch das Hintergrundbild.
Also in der index.php ab den Zeilen $bgimagefile= bzw. $webcamimagefile=, nur das man als Bildquelle das von der Webcam gelieferte Bild eingibt z.B. bei meiner Kamera 'http://<IP-Adresse-der-Kamera>/loginfree.jpg') und die Abmesungen in imagecopyresampled entsprechend konfiguriert.
 
Ich habe die Sache für den Kodak Rahmen jetzt so weit konfiguriert daß, wenn ich fritz.box:5050 im Firefox eingebe ein InfoFrame Feed angezeigt wird. Habe die Dateien von Ktw2003 aus Beitrag #750 für mich angepasst.
Nach dem aufrufen von fritz.box:5050 wird mir folgender Feed angezeigt:
IF
Medien Dateien
info.jpg

IF2
Medien Dateien
info_clone.jpg

IF3
Medien Datei
info1.jpg

usw.

Wenn ich jetzt auf einen der info.jpg Link oder IF3 Link klicke kommt aber immer :404 Not Found
The request URL was not found.

Eigentlich sollte doch dann im Firefox auch ein Bild angezeigt werden, oder ?
Die Dateien (info1.jpg usw. gibt es, zumindest namentlich, auch im Verzeichniss var/tmp/infoframe)
So sieht meine rc.custom aus:
Code:
# Wait until we have a network connection.
# Script can be disabled by removing network cable
# At least one of the web sites must must respond to ping before we continue
SITE_1=web.de
SITE_2=www.google.com
SITE_3=192.168.178.100
while !(ping -c 1 $SITE_1>/dev/null) && !(ping -c 1 $SITE_2>/dev/null) && !(ping -c 1 $SITE_3>/dev/null); do
    sleep 15
done

# Wait until drive has been mounted
while !(mount | grep -q /var/media/ftp); do
    sleep 15
done

#Look for start script on usb disk
BASEDIR=/var/media/ftp/*/infoframe
for f in $BASEDIR; do
    cd $f
    if [ -x setup.sh ]; then
        ./setup.sh
    fi
done
Hier sind meine Dateien die einmal im Web Ordner auf dem QNAP gespeichert sind, sowie die Dateien vom USB Stick (uStor01) der FritzBox.
Anhang anzeigen Infoframe.zip

Vielleicht kann sich ja ein "alter Hase" mal die Dateien ansehen und findet den Fehler. Ich als Noob kann eigentlich nur anhand von Beispielen vergleichen. So langsam lerne ich aber immer mehr. Die weiteren Fehler (Benzinpreis usw.) probiere ich dann später zu korrigieren.
Erst mal sehen ob noch jemand Hilfe für den Kodak W1030 geben kann, da dort kein Webmenü zum eintragen eines rss-feed verfügbar ist,
oder ob ich mir was neues suchen muss.
 
Hi ralalla!
Das sieht doch erst mal gut aus. Der Firefox ist doch auch kein RSS-Reader. Zur Anzeige deines Bildes im Firefox solltest du es über den Apache auf dem QNAP aufrufen. Die RSS-Datei soll ja dein W1020 abarbeiten. Mit diesem Rahmen habe ich mich aber mangels Masse noch nicht beschäftigt.
 
Kostenlos!

Statistik des Forums

Themen
248,882
Beiträge
2,303,893
Mitglieder
378,556
Neuestes Mitglied
1491585