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

Hallo Michi,

ups...natürlich nicht. DigiTemp + Callmonitor läuft per Freetz Image alleine auf der Fritzbox. Der Rest natürlich auf einem Hoster im Netz, der soll aber demnächst durhc mein NAS ersetzt werden, der in meinem Netzwerk auch als Webserver läuft.

Wenn ich das jetzt von Dir richtig interpretiere, dann kommt da nichts, weil er den Pfad den ich im Weather.plugin zur FritzBox angebe, auf meinem Hoster sucht, und da nix findet?! Sollte da denn nicht auch eine Fehlermeldung kommen? Bin jetzt durcheinander :confused:
 
Wenn ich das jetzt von Dir richtig interpretiere, dann kommt da nichts, weil er den Pfad den ich im Weather.plugin zur FritzBox angebe, auf meinem Hoster sucht, und da nix findet?! Sollte da denn nicht auch eine Fehlermeldung kommen? Bin jetzt durcheinander :confused:

Dann kann das auch nicht funktionieren. ;-)
Die index.php die dann das Weatherplugin importiert versucht natürlich auf dem Webserver das rrdtool aufzurufen. Das funktioniert natürlich nicht. Eine Fehlermeldung gibt es sicherlich, aber die landet höchstens im php-Logfile wenn es denn eines gibt.

Um digitemp Werte anzuzeigen muß beides idealerweise auf einem System laufen. Alternativ sollte mindestens ein Webserver auf der Fritzbox laufen, dann kannst Du mit einem kleinen Skript die Werte von digitemp auch von remote abrufen, und auf einem anderen System weiterverarbeiten.

Gruß
Stefan
 
Oh, ok. Und was kann ich jetzt im besten Fall machen? Habe jetzt extra DigiTemp aufgespielt um dieses im Frame zu nutzen :(
 
Oh, ok. Und was kann ich jetzt im besten Fall machen? Habe jetzt extra DigiTemp aufgespielt um dieses im Frame zu nutzen :(

Also ich mach das in der refresh.sh auf der Fritzbox so:
(Username, Passwort und ftpserver musst du natürlich anpassen)

Code:
# Temperatur  auslesen
cd /var/tmp/infoframe 
digitemp -a -l /var/tmp/infoframe/temp.txt
tail -n 2 /var/tmp/infoframe/temp.txt >>/var/tmp/infoframe/akttemp.txt
ftpput -v -u username -p passwort ftp-server cache/akttemp.txt /var/tmp/infoframe/akttemp.txt
rm /var/tmp/infoframe/akttemp.txt

Er führt das digitemp aus. Piped die Ausgabe in temp.txt. Zieht dann die letzten beiden Zeilen per tail in die Datei akttemp.txt. Die legt er per FTP auf der Webserver. Danach löscht er die akttemp.txt.

Auf dem Webserver lesen ich dann in der index.php die Werte wieder ein:

Code:
// read Temperature File
$TEMPhandle = fopen ("cache/akttemp.txt", "r");
    $TEMPbuffer = fgets($TEMPhandle, 100);
    $TEMPbuffer1 = fgets($TEMPhandle, 100);
fclose ($TEMPhandle);


// print temperature
//Sensor0
$pos = strpos($TEMPbuffer, 'C:') + 3;
$posa = strpos($TEMPbuffer, ' ', $pos);

$TempAkt = substr($TEMPbuffer, $pos, $posa - $pos);
//Sensor1
$pos1 = strpos($TEMPbuffer1, 'C:') + 3;
$pos1a = strpos($TEMPbuffer, ' ', $pos1);

$TempAkt1 = substr($TEMPbuffer1, $pos1, $pos1a - $pos1);

				$opt1 = array(
					'width' => 150,
					'align' => ALIGN_RIGHT
				);
imagettftextboxopt($im, 24, 0, $image_width-164, 210, $style['textcolor'], $style['font'], 'A: '.str_pad(number_format($TempAkt,2),5,'0',STR_PAD_LEFT).'∞C', $opt1);
imagettftextboxopt($im, 24, 0, $image_width-167, 240, $style['textcolor'], $style['font'], 'I: '.str_pad(number_format($TempAkt1,2),5,'0',STR_PAD_LEFT).'∞C', $opt1);

Hoffe das hilft. Schön ist der Code leider noch nicht.
Viele Grüße
Michi
 
Oh, ok. Und was kann ich jetzt im besten Fall machen? Habe jetzt extra DigiTemp aufgespielt um dieses im Frame zu nutzen :(

Hier ein Lösungsvorschlag.

Auf der Fritzbox muß ein Webserver laufen, der von aussen erreichbar ist, so daß du von Deinem Webserver beim Hoster darauf zugreifen kannst.

Auf der Fritzbox die folgende Datei im document_root des Webservers anlegen, Dateiname wetter.php:

PHP:
<?
// to be run on the digitemp server
$prog = "/usr/bin/rrdtool lastupdate /var/tmp/persistent/one_60-106BFCDC01080089_C.rrd";
$ph = popen($prog,'r') or die($php_errormsg);
if ($ph) {
  while (!feof($ph)) {
    $zeile = trim(fgets($ph));
#   echo $zeile."<p>";
    if (preg_match('/(\d*): (.*)/',$zeile,$var)) {
      $unixtime = $var[1];
      $temp1 = $var[2];
    }
  }
}
fclose($ph);

$prog = "/usr/bin/rrdtool lastupdate /var/tmp/wetter_2.rrd";
$ph = popen($prog,'r') or die($php_errormsg);
if ($ph) {
  while (!feof($ph)) {
    $zeile = trim(fgets($ph));
#   echo $zeile."<p>";
    if (preg_match('/(\d*): (.*)/',$zeile,$var)) {
      $temp2 = $var[2];
    }
  }
}
fclose($ph);

echo $unixtime.":".$temp1.":".$temp2;

?>

Ob das funktioniert kannst Du mit http://deine.fritzbox.de/wetter.php testen. Die Ausgabe sollte etwa wie folgt aussehen:

Code:
1290414638:2.1:20.3

Auf dem Webserver die Weatherplugin Datei wie folgt anpassen (anstelle des Blocks mit dem rrdtool Aufruf):

PHP:
<?


$infile = "http://deine.fritzbox.de/wetter.php";
$fh = fopen($infile,'r') or die($php_errormsg);
if ($fh) {
	while (!feof($fh)) {
		$zeile = trim(fgets($fh));
//      echo $zeile;
		if (preg_match('/(\d*):(.*):(.*)/',$zeile)) {
			$current_temp = $var[2];
			$current_temp2 = $var[3];
		} # if preg_match
	}
}
fclose($fh);
?>

Du liest dann also auf dem Webserver die Ausgabe des Skriptes von der Fritzbox ein. Diese Methode wird auch später noch funktionieren, wenn Du die infoframe Dateien auf einem NAS im eigenen Netz betreibst.

Gruß
Stefan
 
Kodak W1020

Hallo,

leider hat sich mein Polaroid wohl per Defekt verabschiedet, er startet nicht mehr und zeigt nur noch das Logo an. :mad:

Daher suche ich nun nach einem Ersatz, und ziehe dabei den Kodak W1020 in die engere Wahl:

- startet der Kodak nach dem einschalten direkt eine Diashow vom RSS-Feed?
- kann man dies Gerät auch per Zeitschaltuhr ausschalten?
- Gibt es sonst irgendwelche Bemerkungen zum Gerät?

Gruß
Stefan
 
ich habe bei mir 2 Fritzboxen.

1.) 7270 ohne Modifikationen für Internet und Telefon

2.) 7170 mit Freetz + digitemp für den Infoframe.

Jetzt hätte ich gerne die Anrufe von (1) auf meinem Infoframe angezeigt, der ja aber seine Daten von (2) bekommt.

Hat damit jemand Erfahrungen oder irgendeine Idee?

Ich antworte mal selber auf meine Frage.

Es geht ganz einfach. Man baut sich ein Freetz mit Callmonitor, klickt auf der Weboberfläche Experten Ansicht an und trägt dann die IP der Fritzbox ein, die die Anrufe entgegen nimmt. Dort muss natürlich der Port geöffnet werden per Telefon #96*5*

Viele Grüße
Michi
 
Samsung SPF-105V

Hallo,

was Samsung SPF-105V angeht, ich überlege ob ich mir den nicht kaufe.
Es gibt die hier in Polen noch in einigen Online Shops.
Was wird nicht funktionieren wenn Refresh über Weblink nicht unterstützt wird?

beste Grüße

Chemik2222
 
Endgültige Version meines InfoFrames

Hallo zusammen,

ich möchte euch meinen aktuellen / endgültigen Stand meines InfoFrames vorstellen. Kurze Erläuterung:

DigiTemp mit 2 Sensoren zeigen eine "echte" Temperatur für Innen und Aussen.
Die Glassbuttons für eingehende Emails fehlen komplett, Buttons für den Kalender duch hübschere kleine weiße ersetzt.
FeedPlugin deaktiviert und daraus 3 Plugins gebaut

1. ToDo Liste inkl. eigenem Logo, holt sich die Daten von todooo.com

2. TV-Movie inkl. eigenem Logo, wird noch ergänzt damit er nur von 18 Uhr bis 22 Uhr eingeblendet wird.

3. Benzin. Holt sich die Daten von der nächsten Tankstelle um die Ecke. (Raiks Plugin konnte ich leider nicht so anpassen wie ich es wollte und bgxs läuft nicht, deswegen die Eigenkreation)

Das ganze läuft im Moment auf meinem externen Hoster (Jahresvertrag bis Ende März) und parallel auf meinen QNAP TS-110, wobei ich noch den Stand abgleichen muss, aber das ist eine reine Copy & Paste Aktion von 3 Minuten.

Im ganzen ist der InfoFrame nun endlich genau so, wie ich es mir gewüscht habe und deswegen möchte ich mich nochmals bei allen bedanken die dazu beigetragen haben meinen InfoFrame so zu formen.
Besonderen Dank gilt Postfach2000 der sich die letzten Tage mit mir zusammengetan hat um das BenzinPlugin zu bauen, das DigiTemp einzubauen und diverse Schönheitskorrekturen am Frame durchzuführen. :)

Der WAF beträgt mindesten 100% :) Was will man(n) mehr?
 

Anhänge

  • index.jpg
    index.jpg
    124 KB · Aufrufe: 242
Zuletzt bearbeitet von einem Moderator:
Hi ht81!
..und stell unbedingt deine Stiefel zu Nikolaus raus.

Apropos: infoframe.org scheint down zu sein. Naja die Beteiligung war ja nicht so berauschand.
 
Leute, ich brauche von euch etwas hilfe. Das Ganze läuft bei mir auf Debian Squeeze, apache2, php5.

alles ausser, Wetter und RSS funktioniert! Woran könnte es liegen dass er das Wetter nicht angezeigt bekommt?
 

Anhänge

  • infoframe.jpg
    infoframe.jpg
    96.8 KB · Aufrufe: 100
Hi mosjka1!
Vielleicht gibt es bei dir in der Gegend kein Wetter und RSS?

Mal im Ernst: Wie soll einer der dir helfen soll (will) das aus dem Bild rauslesen. Sollen wir das vor die Glaskugel halten oder bist du auch bereit mitzuteilen was du wie und wo eingestellt hast.
 
..nach langem frickeln hatts nun geklappt. Dennoch danke.
 
Das Ganze sieht schon einigermassen aus :) Ich würde gerne noch den Preis von Super in der selben Zeile haben. Kann da jemand mit dem Code aushelfen?

sollte in etwa so aussehen "Symbol D 1,279 EUR/l, S 1,410 EUR/l Spritpreisdatum "

config.ini

PHP:
[BenzinPlugin]
; maximales Alter der Preisangaben in Stunden
max_age_in_hours = 72
; maximale Anzahl angezeigter Tankstellen
max_displayed_stations = 3
; Auswahl einer Karftstoffsorte - Normal/Super/Diesel (weitere siehe URL oben )
sorte = "Diesel"
; welche Tankstellen sollen ausgewertet werden, Angabe Ort oder PLZ
ort_1 = "56567"
;ort_2 = "Simmern"
;ort_3 = "Hof"


Benzinplugin:

PHP:
<?php
/***************************************************************************
 * InfoFrame (image generator for digital picture frames)
 * Copyright (C) 2010
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see http://www.gnu.org/licenses/
 ***************************************************************************/

class BenzinPlugin implements IPlugin
{
    private $dbconn = NULL;
	private $config = NULL;
	
	public function __construct($dbconn, $config) {
		$this->dbconn = $dbconn;
		$this->config = $config;
	}
	
	
	public function doUpdate() {
	
		// Preise und Tankstellen lesen - fsockopen-Version
		$i=0;
		$ortnumber = 0;
		// jeden in config.ini eingetragenen Ort in file einlesen
		while ($ort = $this->config['ort_'.++$ortnumber]) {
			$uri  = '/liste_payed.asp?'.'ort='.$ort.'&typ='.$this->config['sorte'];
			header("Content-type: text/html");
			$sock = fsockopen("www.clever-tanken.de", 80, $errno, $errstr, 5); // 80 = Port, 5 = Timeout
			if (!$sock) {
				return;//$title = "keine Tankstellen in $orte_fehlen gefunden";
			} else {
				fputs($sock, "GET ".$uri." HTTP/1.1\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);
			}
		}
/*
		// Preise und Tankstellen lesen - fopen-Version
		$i=0;
		$ortnumber = 0;
		// jeden in config.ini eingetragenen Ort in file einlesen
		while ($ort = $this->config['ort_'.++$ortnumber]) {
			$url = 'www.clever-tanken.de/liste_payed.asp?ort='.$ort.'&typ='.$this->config['sorte'];
			$file = fopen ($url,"r");
			if (!$file) {
				return;//$title = "keine Tankstellen in $orte_fehlen gefunden";
			} else {
				while (!feof($file)) {
					$zeile[$i] = fgets($file,512);
					$i++;
				}
				fclose($file);
			}
		}
*/
		// Datenbankeinträge löschen
		mysql_query("START TRANSACTION", $this->dbconn);
		$query = "Delete from if_tanken";
		mysql_query($query, $this->dbconn) or die('Error, delete query failed');

		// file zeilenweise einlesen und gefiltert entsprechend den Einträgen in config.ini.
		$ortnumber = 0;
		for ($j=0;$j<$i;$j++) {
			// Auswertung aller Orte, siehe config.ini
			while ($ort = $this->config['ort_'.++$ortnumber]) {
				if ((stripos($zeile[$j],$ort))>0) { // Ort gefunden
					// Tankstelle extrahieren und Adresse formatieren
					$tankstelle = strip_tags(trim($zeile[$j]),'<br>');	// sinnlose Zeichen und html-Tags außer <br> entfernen
					$tankstelle = str_replace('<br>','|',$tankstelle);	// <br> mit Texttrenner | ersetzen
					$adresse = explode('|',$tankstelle);	// Tankstelle im Array umwandeln, für spätere Ausgabe in Datenbank 
					$merken = 10; // die nach einem gefundenen Ort folgenden 10 Zeilen werden für die Preissuche berücksichtigt
				}
			}
			if ((strpos($zeile[$j],'Euro')>0) or (strpos($zeile[$j],',')>0)) {	// Text Euro gefunden
				if ($merken>=1) { // Text Euro oder Komma in einer der folgenden 10 Zeilen enthalten?
					$preis = strip_tags(trim($zeile[$j]));
					$preis = str_replace('Euro','',$preis); // Euro-zeichen umwandeln
				}
			} else {
				if (strpos($zeile[$j],':')>0) {	// Text : gefunden (als Indikator für Datum)
					if ($merken>=1) { // Text : in einer der folgenden 10 Zeilen enthalten?
						// Datum extrahieren
						$d_arr = date_parse(strip_tags(trim($zeile[$j])));
						// und in Unix-Zeitstempel konvertieren
						$datum = mktime($d_arr['hour'],$d_arr['minute'],$d_arr['second'],$d_arr['month'],$d_arr['day'],$d_arr['year']);
						// nur Preise mit aktuellem Datum berücksichtigen, siehe config.ini
						$alter = $this->config['max_age_in_hours'];
						if ($datum>=strtotime("-$alter hours")) {	// Preis ist aktuell
							// Datensatz für Datenbank anlegen, Adresse ohne PLZ
							$this->addStation($preis, $datum, substr($adresse[2],11).' - '.$adresse[0].' - '.$adresse[1]);
						}
					}
				}
			}
			// Zeilenzähler für Datensuche in file
			if ($merken>0) $merken--;
			else $ortnumber = 0; // 10 Zeilen wurden erreicht, dann Orte neu bestimmen
		}	// Ende for-Schleife

		// in Datenbank schreiben
		mysql_query("COMMIT", $this->dbconn);
	}


	public function doOutput($image, $style, $updateData, &$yoffset) {

		if ($updateData) $this->doUpdate();

		$query = "SELECT * FROM `if_tanken` ORDER BY `datum` DESC, `preis` ASC";
		$result = mysql_query($query, $this->dbconn);
		if (mysql_num_rows($result) == 0) return;

		
		// define styles Überschrift "Kraftstoffpreise" nach unten oben verschieben
		$opt_header = array(
			'width' => imagesx($image)-290,
			'line_height' => 16,
			'align' => ALIGN_LEFT
		);

		$opt_entry = array(
			'width' => imagesx($image)-290,
			'height' => 12,
			'line_height' => 12,
			'align' => ALIGN_LEFT,
			'word_wrap_hyphen' => '...',
			'aggressive_word_wrap' => false,
		);

		// print header
		#$text = 'Spritpreis ('.$this->config['sorte'].')';
		$text = ''.$this->config['sorte'].'';
		#imagettftextboxopt($image, 18, 0, 450, $yoffset, $style['textcolor'], $style['font'], $text, $opt_header);
		imagettftextboxopt($image, 15, 0, 470, 117, $style['textcolor'], $style['font'], "D", $opt_header);
		$icon = ImageCreateFromPNG ( 'resources/icons/tank.png' );
		#ImageCopy($image, $icon, 20, $yoffset-3, 0, 0, imagesx($icon), imagesy($icon));
		ImageCopy($image, $icon, 440, 115, 0, 1, imagesx($icon), imagesy($icon));
		ImageDestroy($icon);
		$yoffset += 10;

		while ($row = mysql_fetch_assoc($result)) {
			$counter++;
			$rest = (mysql_num_rows($result) - $counter) + 1;
			$entrylimit = $this->config['max_displayed_stations'];
			if ( (($entrylimit) && ($counter > $entrylimit)) || (($yoffset >= (imagesy($image) - 36)) && ($rest > 1)) ) {
				// show only n mails. If more mails are available show hint "x more stations..."
				$rest = (mysql_num_rows($result) - $counter) + 1;
				if ($rest > 1)
					$text = "... $rest weitere Tankstellen";
				else
					$text = "... $rest weitere Tankstelle";
				imagettftextboxopt($image, 10, 0, 24, $yoffset, $style['textcolor'], $style['fontb'], "D", $opt_header);
				$yoffset += 20;
				break;
			}

			// Preis
			$text = ' EUR/l'; // Euro-Zeichen geht nicht
			$text = $row['preis'].$text;
			// Datum
			$text = $text.'  '.strftime( "%d.%m.-%H:%M", strtotime($row['datum']));
			// Tankstelle
			#$text = $text.'  '.$row['station'];
			#$text = $text.'  ';
			// determine button color
			$colorArray = htmlColorToRgb('#424242');
			$color = ImageColorAllocate ($image, $colorArray[0], $colorArray[1], $colorArray[2]);

			// print appointment text and button
			#if (stripos($text,'aral')>0)			$png = 'resources/icons/aral.png';	// Aral-Tankstelle
			#elseif (stripos($text,'agip')>0)		$png = 'resources/icons/agip.png';	// Agip-Tankstelle
			#elseif (stripos($text,'bft')>0)			$png = 'resources/icons/bft.png';	// BFT-Tankstelle
			#elseif (stripos($text,'esso')>0)		$png = 'resources/icons/esso.png';	// Esso-Tankstelle
			#elseif (stripos($text,'heinlein')>0)		$png = 'resources/icons/h.png';		// Heinlein-Tankstelle
			#elseif (stripos($text,'jet')>0)			$png = 'resources/icons/jet.png';	// Jet-Tankstelle
			#elseif (stripos($text,'omv')>0)			$png = 'resources/icons/omv.png';	// OMV-Tankstelle
			#elseif (stripos($text,'shell')>0)		$png = 'resources/icons/shell.png';	// Shell-Tankstelle
			#else 	$png = 'resources/icons/t.png';
			$wicon = ImageCreateFromPNG ( $png );
			#ImageCopy($image, $wicon, 25, $yoffset, 0, 0, imagesx($wicon), imagesy($wicon));
			ImageDestroy($wicon);

			imagettftextboxopt($image, 12, 0, 485, 120, $style['textcolor2'], $style['font'], $text, $opt_entry);

			$yoffset += 18;
		}
		$yoffset += 10;
		mysql_free_result($result);
	}


	private function addStation($preis, $datum, $station) {
		$query = "REPLACE INTO `if_tanken` SET 
					`preis`= '".mysql_real_escape_string($preis)."', 
					`datum`= FROM_UNIXTIME($datum), 
					`station`= '".mysql_real_escape_string($station)."'";

		mysql_query($query, $this->dbconn) or die('Error, insert query failed: '.mysql_error());
	}

}
 

Anhänge

  • index.php.jpeg
    index.php.jpeg
    118.1 KB · Aufrufe: 119
Zuletzt bearbeitet:
Hi moskja1!
Du bist ja mächtig am ackern und hast deine Wünsche wieder komplett geändert. :p

Ungetestet:
In der config.ini musst du eine Zeile sorte_2="super" einführen.
In der BenzinPlugin in Zeile 149: $text2 = ''.$this->config['sorte_2'].'';
In Zeile 176: $text2 = $row['preis'].$text2;

Allerdings finde ich im Moment keine Ausgabezeile bei dir. Bzw. Zeile 199 duplizieren und anpassen!
 
ilmtuelp0815, vielen Dank für deine Hilfestellung. Ich das Ganze soweit angepasst, allerdings erscheint in der Mysql Datenbank nur ein Eintrag (diesel), der Zweite wird nicht angelegt (Super). Auch taucht die der neue Eintrag auf dem Bild nicht auf.

kannst du bitte nochmal drüberschauen.

EDIT: ES GEHT! leider nicht!! Ich glaube mit der Einträgen ist es nicht getan, der braucht für Super eine eigene Datenbank. oder!? Aufjeden Fall zeigt er mit in der Zeile mit "sorte" und "sorte2" die selben Preise an und zwar von Diesel.
 
Zuletzt bearbeitet:
Hallo mosjka1,

Suche auf dem Webserver nach der Datei "tools.php".

Dann in der Datei folgende Zeilen Suchen:

// draws a colored button with glass effect
function drawGlassButton($dst_image, $color, $centered_xpos, $centered_ypos) {
$button_width = 24;
$button_height = 15;

Das Problem ist, das der Eintrag "$button_width" und "$button_height" nicht den selben Wert hat. Also entweder

$button_width = 24;
$button_height = 24;


oder

$button_width = 15;
$button_height = 15;
 
Learning by doing! :) Hab für 'Super' eine zweite Datenbank erstellt. Nun schaut es so aus, wie ich es mir vorgestellt habe.

PS.: Jetzt muss noch RSS für Staumeldungen und Blitzer noch rein. Allerdings hab ich keine Ahnung davon wie ich den Code für die RSS für meinen Ort erstelle.

Wäre sehr erfreut, wenn jemand diesen für mich erstellen könnte und vielleicht kurz erklären wie er das gemacht hat. Ort = raum Koblenz, Neuwied die Autobahnen um diese Gegend halt. Danke im Vorraus. Irgendwie hat es mir dieses Projekt angetan :)
 

Anhänge

  • index.php.jpeg
    index.php.jpeg
    117.2 KB · Aufrufe: 137
Zuletzt bearbeitet:
Hallo

also ich verstehe die welt nicht mehr. Ich bekomme bei meinem Kodak w820 eine fehlermeldung das ich ein ungültigen RSS habe. hat jemand noch so ein Kodak?
 
Hallo Leute,

tolle Sache die IHR hier mach, RESPEKT !!!

Wollte mich euch anschließen.
Aber welchen "Rahmen" sollte ich mir jetzt nur Kaufen ? Möchten den meiner Frau schenken als Fotorahmen,,,, und den dann später "modifizieren" :)

Gruß Hilgi
 
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.