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

Also mit dem Feed für die Zeitung sehe ich mal. Habe noch das Benzin Problem wie oben dargestellt mit der Uhrzeit.
Dann würde ich auch gerne rechts unten den Sonnenaufgang Untergang anzeigen.
Hier gibt es ja ein Beispiel wie der Plugin Code aussehen muss. (Stadt noch einstellen) Dieses neu erstelle Plugin muss ich doch dann in der config.ini aufrufen ? Wie mache ich das ?

das SunrisePlugin.php würde dann so aussehen ?
Code:
// display sunrise and sunset
date_default_timezone_set('Europe/Berlin');
$longitude = 53.855767; // Kaltenkirchen - longitude
$latitude = 9.974213;   // 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, 454, $style['textcolor'], $style['font'], $text, $opt);
 
Zuletzt bearbeitet:
Diese Datei speicherst du ab in dem Ordner plugins/
Dann schreibst du in der Index.php:
ziemlich zum schluß (nach "print Date Time") folgendes:
PHP:
 // Sonnenaufgang
 include("plugins/SunrisePlugin.php");

Gruß Olli
 
Zuletzt bearbeitet:
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.
 
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.