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

Vergleiche mal in deiner Index.php diese Zeile aus deiner Virtuellenumgebung mit deiner Produktionsumgebung. Die Einträge bei dir sollten gleich sein. Meine unterscheiden sich mit sicherheit von deiner, also nicht meine kopieren.!!!!
PHP:
$plugins['CallsPlugin']->processCallEvent($_GET['event'], $_GET['src_name'], $_GET['src_number'], $_GET['dst_name'], $_GET['dst_number'], $_GET['duration'], $_GET['answermashine']);

Erstell mal ne getCheck.php mit folgendem Inhalt:
PHP:
<?php

if (isset($_GET['test']) && $_GET['test'] != 'hier was eintragen'){

	if (empty($_GET['test']) ) {
		echo '$get ist leer, also keine uerbergabe';
	}else{
		echo 'variable wurde uerbergeben: '.$_GET['test'];
	}
}else{
	echo '<form action="getCheck.php" method="GET">
		hier was eintragen:  <input type="text" name="test" value="" size="30" />
		<br />
    		<input type="Submit" name="" value="absenden" />
    		</form>';
    	}
 ?>
und ruf das ganzen dann mit deinem browser auf, schreib was in das eingabefeld und schick das ganze ab...
mal sehen ob $_GET jetzt übergeben wird oder nicht.
 
Zuletzt bearbeitet:
Hallo Spoon3er
Erst mal vielen Dank das Du mir hilfst .

Meine Index.php sind genau identisch, die Zeilen siehen so aus
PHP:
	$plugins['CallsPlugin']->processCallEvent($_GET['event'], $_GET['src_name'], $_GET['src_address'], $_GET['dst_name'], $_GET['dst_address'], $_GET['duration']);

Deine Php habe ich erstellt das Ganze über den Browser aufgerufen,Hilfe eingegeben und als Antwort kam
Code:
variable wurde uerbergeben: Hilfe
Scheint also auch zu gehen.
Nun ist die große Frage wo liegt das Problem??

Knusterus
 
Hmmm, dann muss es eigentlich mit dem datenbankzugriff zu tun haben.
In der config.ini hast du alles richtig eingetragen?
Versuch das mal:
Im gleichen Ordner wie die Index.php zB test.php anlegen, dann mitm browser aufrufen
PHP:
<?php
$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."); 
   $query  = "SELECT * FROM if_calls";
   $result = mysql_query($query) or die ("Select query fehlgeschlagen");
   if (mysql_num_rows($result) > 0) {
     $row = mysql_fetch_assoc($result);
     var_dump($row);
  } else {
  	echo 'Keine datensaetze vorhanden';
  }
?>
 
So ich habe jetzt Deine Test .php erstellt,wenn ich sie über den Browser aufrufe kommt
Code:
Keine datensaetze vorhanden
Ich habe das Ganze mal mit meiner virtuellen Maschine getestet gleiches Ergebnis.
So jetzt habe ich das komlette Datenpaket von meiner Virtuellen Maschine auf mein Laptop geschoben und erneut getestet.geht auch nicht.
Jetzt habe ich xampp nochmal auf meinem Hauptrechner installiert,gleiches Datenpaket wie oben geht auch nicht.
Mir fällt halt auf ,das der Text beim Freetztestanruf über meine virtuelle Maschine sofort kommt und bei Xampp fast 25 sec dauert bis ich folgenden Text sehe
Code:
including /usr/lib/callmonitor/actions.d/config.sh
including /usr/lib/callmonitor/actions.d/dboxlcd.sh
including /usr/lib/callmonitor/actions.d/dial.sh
including /usr/lib/callmonitor/actions.d/mail.sh
including /usr/lib/callmonitor/actions.d/messages.sh
including /usr/lib/callmonitor/actions.d/musicpal.sh
including /usr/lib/callmonitor/actions.d/rc.sh
including /usr/lib/callmonitor/actions.d/roku.sh
including /usr/lib/callmonitor/actions.d/samsung.sh
>>> in:request ID=1 TIMESTAMP=21.06.13 14:18 SOURCE=********** DEST=********** EXT=4 DURATION=16 PROVIDER=
[0] event detected:
  EVENT=in:request
  SOURCE='*************'
  DEST='***************'
[0+] detailed event data:
  SOURCE_DISP='****************'
  SOURCE_ENTRY='*****************************'
    SOURCE_NAME='***********************'
    SOURCE_ADDRESS='*******************'
  DEST_DISP='7647'
  DEST_ENTRY=''
    DEST_NAME=''
    DEST_ADDRESS=''
  ID=1
  EXT=4
  DURATION=16
  TIMESTAMP='21.06.13 14:18'
  PROVIDER=
  UUID=afe73ede-09b7-4a47-a340-6b7eb3a1134b
[0:0] processing rule '*:*' '^' '^' '/var/tmp/infoframe/refresh.sh "action=call&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&dst_name=$(urlencode "$DEST_NAME")&dst_address=$(urlencode "$DEST_ADDRESS")&duration=$DURATION"'
[0:0] event 'in:request' matches pattern '*:*'
[0:0] parameter SOURCE='*********' matches pattern '^'
[0:0] parameter DEST='********' matches pattern '^'
[0:0] SUCCEEDED
[0:0] ACTION: '/var/tmp/infoframe/refresh.sh "action=call&event=$EVENT&src_name=$(urlencode "$SOURCE_NAME")&src_address=$(urlencode "$SOURCE_ADDRESS")&dst_name=$(urlencode "$DEST_NAME")&dst_address=$(urlencode "$DEST_ADDRESS")&duration=$DURATION"'
Connecting to 192.168.178.** (192.168.178.**:80)
Connecting to 192.168.178.** (192.168.178.**:80)
Connecting to 192.168.178.** (192.168.178.**:80)

Was mich noch stutzig macht ,wenn es funktioniert steht am Ende des obigen Textes nur einmal CONNECTING.
Wenn es nicht funktioniert 3 mal.

Aber wie schon oben beschrieben ,es hat schon mit xampp und dem Datenpaket funktioniert.Allerdings das erste mal ca 1.Woche und das 2 mal ca 2 Wochen.
Nach dem ersten Fehler habe ich alles neu gemacht,neues Datenpaket und neues freetzimage auf die Box.Beim 2 mal nur Datenpaket neu,und beim letzten mal Datenbank mit Username und Passwort gesichert.

Ich weiss nicht mehr was ich machen soll:doof:

So ich habe jetzt nochmal die komplette Infoframe-Datenbank gelöscht und neu angelegt .Apache und MySQL neu gestartet und es geht wieder.
Kann es sein ,das ich beim Erstellen der Datenbank einen Fehler gemacht habe?
Ich habe die Datenbank immer mit "utf8_general_ci" erstellt.
Jetzt habe ich sie nur mit "Kollation" erstellt. Liegt dort evtl. der Fehler???

Knusterus
 
Zuletzt bearbeitet:
HA!!! hatte doch was mit der datenbank zu tun :D

Kann natürlich schon sein, weil zeichen bei utf-8 anders kodiert werden als bei latin1_general zb. Ganz dramatisch wird es bei Sonderzeichen äüöß usw. Da gibt es gefüjlt 1millionen threads im netz über umlaute und datenbank :D.

Naja, hautsache es funzt wieder :)
 
Tja das ist jetzt die Frage ,ob es das war.
Ist denn die Einstellung Kollation richtig oder soll ich es nochmal auf latin umstellen??

Knusterus
 
Bei mir werden alle Datenbanken von Haus aus mit utf8_general_ci erstellt. da aber die ganzen Tables in der dbconn.php mit latin_general_cs erstellt wurden, habe ich damals die Datenbank auch auf latin_general_cs umgestellt.
Um es kurz zu machen: stell auf latin, schau obs geht, wenn nmicht stell doch einfach wieder um :) Mit phpadmin unter Infoframe->Operationen->Kollation zu finden.
 
He Spoo3er.
Jo das hab ich gemacht ,erst auf latin ging nicht.Kalender und Benzin auch nicht.
So wieder neue Datenbank angelegt mit kollation ,geht auch nicht mehr.
Was ist da nur los??

Knusterus
 
keine ahnung was da geht.... anscheinend irgend etwas nicht richtg :(
 
Tja wenn Du es als Spezi nicht mehr weist ,dann sieht es ja echt Sch... aus für mich.
Also ich habe die Datenbank eben nochmal gelöscht ,nochmal mit kollation neu angelegt und es geht nicht.

Hast Du denn wirklich keine Idee mehr??Bitte Bitte:noidea:

Soderle ich habe jetzt die Datenbank nochmal gelöscht,dann das Infoframepaket von meiner viruellen Maschine auf mein Laptop geschoben,neue Datenbank erstellt,geht wieder.
Orginalinfoframepaket vom Laptop zurückgespielt,geht auch.
Irgenwo ist doch da der Wurm oder??
Ich glaube ehrlich gesagt nicht ,das es jetzt dauerhaft funktioniert.
Vielleicht hast du ja doch noch ne Idee ,muss auch nicht heute und morgen sein.
Ich sage trotzdem schon mal danke für Deine Hilfe


Knusterus
 
Zuletzt bearbeitet:
*offtopic*

nur mal eine zwischenfrage gilt das Projekt so wie in Post 1 beschreiben immer noch seine gültigkeit oder sollte man sich die 98 Seiten durchlesen um das Projekt umsetzen zu können, denn wir beziehen eine neue Wohnung, wo ich solch einen CallMonitor gerne benutzen würde, also das Projekt gerne umsetzen würde.
Den Threadstarter habe ich angeschrieben aber bisher leider keine Antwort bekommen.
Oder gibt es schon etwas was einfacher umzusetzen ist, der Aufwand ist mir eigentlich egal nur der Umgang mit den Scripts oder so gesellt sich für mich etwas schwer, aber man lernt ja auch durch das umsetzen eines gut beschriebenen Projektes etwas.

Also vielleicht kann mir jemand einen Link oder ein Wiki weisen wo es so ein Projekt noch gibt, weil der Bilderrahmen in Post 1 ist ja leider nicht mehr bekommbar.

Liebe Grüße
Alex
 
Willkommen im Forum :)

Naja, sowohl als auch. Die Infos auf der ersten Seite sind immer noch Ausgangsbasis. Weitere Aufbauten sind hier im ganzen Thread verstreut... Es gab wohl mal ein wiki, wo alle Infos gebündelt zentral lagen aber das ist schon seit ewigzeiten offline.

Wg. Bilderrahmen: http://www.ip-phone-forum.de/showthread.php?t=207272
 
Zuletzt bearbeitet:
Okay danke erstmal, also doch alles lesen und weisst du ob es im moment einen Rahmen gibt der aktuell ist und den man kaufen kann ? Den Thread habe ich gesehen mit den Bilderrahmen aber ich wollte eben keinen 270 Euro ausgeben :-) Wollte eigentlich nur einen Rahmen der mit dem aus Post 1 angefangenen Projekt funktioniert.
Habe gerade erstmal mich mit dem Freetz auseinandergesetzt und nun kommt das nächste dran.
Aber Danke schon einmal für deine Hilfe.
 
Bei mir geht's zur Zeit auch nicht mehr. Das Image wird nicht erzeugt weil die Grafik Fehler enthält. Erster Test ergab das, das MoonPlugin Probleme mit der Twitter API hat. Habe das Plugin deaktiviert und es geht wieder. Werde das bei Gelegenheit mal näher anschauen.
 
Naja, ganz selten mal geht einer von den geeigneten WiFi-Rahmen in der Bucht übern Tisch. Da brauchst Du aber viel Gedult für - sind alles nur noch Privatverkäufer und ganz ganz selten mal ein Rest-bestand. Der Einzige, der aktuelle Rahmen besitzt/vertreibt, ist eben nur dieser Knipsy K1 für 270 ganze euronen. Wobei der Rahmen sicherlich am geeignetsten wäre, da es eigentlich ein hängendes Tablet ist. Um das ganze Potential ausnutzen zu können müsste man das infoframe-Projekt jedoch von Grund auf umbauen. So wären beispielsweise auch interaktionen am Rahmen möglich - was bisher nicht der Fall ist.

Es gibt bei Amazon diese "Dual PV 8-2 WiFi 8 Zoll Digitaler Bilderrahmen", jedoch habe ich nicht herausfinden können ob die Rahmen dazu geeignet sind. Wenn Du lange weile hast, technikaffin und im worst-case bereits bist die 45€ zu verlieren - könntest Du das Teil ja mal ausprobieren.
 
Zuletzt bearbeitet:
Hallo mllerj

wenn du mit kleine Aussetzern und ein paar kleinen Problemen leben kannst ,gibt es aktuell im Promarkt meinen Mororrola für ca 70€.Ich habe meinen neu für 40 bekommen.Habe einfach gesagt ,ich habe ihn in einem anderen Markt für den Preis gesehen und dann bekommst Du ihn auch für den Preis.
Wenn Du ihn im Markt kaufst ,hast Du auch 30Tage Rückgaberecht falls es nicht funktioniert.
Aber Du musst halt mit kleinen Problemen leben können,das heist er läuft nicht immer durch und hängt sich manchmal auf ,über FB aus und wieder anschalten und dann ist gut.Also mir reicht es vor allem für den Preis.

Knusterus
 
Bei mir geht's zur Zeit auch nicht mehr. Das Image wird nicht erzeugt weil die Grafik Fehler enthält. Erster Test ergab das, das MoonPlugin Probleme mit der Twitter API hat. Habe das Plugin deaktiviert und es geht wieder...

twitter hat sein api von 1.0 auf 1.1 umgestellt. Das bedeutet es gibt keine xml-dateien mehr zum auslesen. Wenn du weiter die tweets für das moonPlugin behalten willst musst du die api1.1 nutzen.
Um diese zu nutzen muss man sich einen dev-account bei twitter zulegen. https://dev.twitter.com, dann unter my aplications ein neues projekt anlegen.
Für diese Projekt bekommst du dann :
Code:
Consumer key 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Consumer secret xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Access token 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Access token secret 	xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Diese keys habe ich dann in der config.ini unter system angelegt und die moonplugin abgeändert:
PHP:
<?php
    require_once 'Zend/Loader/Autoloader.php';
    Zend_Loader_Autoloader::getInstance();

 $last_querry = "SELECT * FROM if_moon WHERE id=1";
 $fetch = mysql_query($last_querry, $this->dbconn);
 
 
  if (mysql_num_rows($fetch) > 0) { 
    $row = mysql_fetch_assoc($fetch);
    $last_tweet_update = strtotime($row['tweetUpdate']);
    $last_balken_update = $row['balken'];
    $last_tweet_shown = $row['tweetNr'];
    $last_tweet_rotate = strtotime($row['tweetRotate']);
    
    
//*************************************** Mondphasen-Berechnung "tagesgenau" +- 7Stunden  *********************************************************	
//credits: http://www.die-seite.eu/wm-mondphasen.php 
	$ursprung = mktime(18,31,18,12,22,1999);
$akt_date = time();
define('ZYCLUS', floor(29.530588861 * 86400));
$mondphase = round(((($akt_date - $ursprung) / ZYCLUS) - floor(($akt_date - $ursprung) / ZYCLUS)) * 100, 0);

$mondphasen_img = round(($mondphase /50),1) *50; 
	if ($mondphasen_img == 100) $mondphasen_img = 0;	
	$mondphasen_balken = $mondphase;

	if ($mondphase <= 1 || $mondphase >= 99 ) {
		$phase_text = 'Vollmond';
	}elseif ($mondphase > 1 && $mondphase < 49){
		 $phase_text = 'abnehmender Mond';
		 $mondphasen_balken = 100-($mondphasen_balken*2);
		 if ($mondphasen_balken <= 50) $mondphasen_balken = $mondphasen_balken/2;
	}elseif ($mondphase >= 49 && $mondphase <= 51){
	 	$phase_text = 'Neumond';
	}else {
		$phase_text = 'zunehmender Mond';
		$mondphasen_balken = ($mondphasen_balken -50) *2;
	}
	if ($mondphase <= 8) {
			$textversatz = ($mondphase*3)+5;
		} else {
			$textversatz = ($mondphase*3)-20;
			}
				
//**************************************   Mondkalender tweet *****************************************
// update tweet

    $config = parse_ini_file("Absoluter/Pfad/zur//infoframe/config.ini", true);
    $sysconfig = $config['System'];
  if (strtotime('today 0:00:01') < strtotime('now') and strtotime('now') < strtotime('today 10:05')){
		$next_tweet_update = strtotime('yesterday 10:05');
	}else { 
		$next_tweet_update = strtotime('today 10:05');
	}    
  		if ($next_tweet_update >= ($last_tweet_update+(24*3600))) {
				$accessToken = new Zend_Oauth_Token_Access();
				$accessToken->setToken($sysconfig['service.twitter.oauth.oauth_token']);
				$accessToken->setTokenSecret($sysconfig['service.twitter.oauth.oauth_token_secret']);
				$twitter = new Zend_Service_Twitter(
    						array('username' => 'USERNAME',
						        	'accessToken' => $accessToken,
						        	'oauthOptions' => array(
						          'consumerKey' => $sysconfig['service.twitter.consumerKey'],
						          'consumerSecret' => $sysconfig['service.twitter.consumerKey_secret']
						       		)
						   )
				);
				$options = array('screen_name' => 'mondkalender',
												 'count' => '3',
												'trim_user' => '1'
											);
				$results = $twitter->statusesUserTimeline($options);
				$i=2;
				foreach ($results->toValue() as $result) {
					if ( strtotime($result->created_at) >= strtotime('today 00:01') ) {
						$query = "UPDATE if_moon SET tweetText='".mysql_real_escape_string($result->text)."' WHERE id=$i";
						$update = mysql_query($query, $this->dbconn);
					}
					$i++;
				}
													
			}else{
			$next_tweet_update = $last_tweet_update;	
		}
	
	
	
		
//  open tweet

				
						if ( ($last_tweet_rotate+3600) <= $akt_date ) {
								 $last_tweet_shown = $last_tweet_shown + 1;
								 $last_tweet_rotate = $akt_date;
								}
						if ($last_tweet_shown == 5) $last_tweet_shown = 2;
							$result = mysql_query("SELECT	tweetText, id FROM if_moon WHERE id='$last_tweet_shown'");
							$row = mysql_fetch_assoc($result);
							$text = $row['tweetText'];
							if (!empty($text) ) {	
							$text = str_replace("\n", "", $text);
							// dirty trick for replacing inch-symbol \xE2\x80\xB3 by nomal " (because not supported by imagettftext)
							$text = str_replace("\xE2\x80\xB3", "\"", $text);
							$pattern = array('/^(mondkalender:)?.*?(\d{1,2}\.\d{1,2}\.\d{4})?.*?(.*?[M|m]ond,)?(.*?\d{1,2}\:\d{2} MEZ,)?/', '/,?$/');
							$replace = '';
							$tweet = preg_replace($pattern, $replace, $text);
						} else{ 
							$last_tweet_shown = 2;
							$last_tweet_rotate = $last_tweet_rotate - 3600;
						}
							
				

	
	
	//************************************************ balken *************************************	
		if ($mondphasen_balken != $last_balken_update){
		 $last_balken_update = $mondphasen_balken;
		   	// create Image from Content
			header("Content-Type: image/png");
			$width = 300; 
			$height = 8; 
			$img = ImageCreate($width, $height); 
			$balken = ImageColorAllocate($img, 075, 075, 075);
			$background = ImageColorAllocate ($img, 140, 140, 140);
			$black = ImageColorAllocate($img, 0, 0, 0);
			$white = ImageColorAllocate($img, 255, 255, 255);
			ImageFill($img, 0, 0, $background);
			ImageFilledRectangle($img, 0, 0, $mondphase*3, 8, $balken);
			ImageString($img, 1, $textversatz, 0, $mondphasen_balken."%", $white); 
			ImagePNG($img, 'resources/icons/balken.png'); 
			ImageDestroy($img);
		}
		mysql_query("REPLACE INTO if_moon SET id=1, tweetUpdate = FROM_UNIXTIME('$next_tweet_update'), balken = '$last_balken_update', tweetNr = '$last_tweet_shown', tweetRotate = FROM_UNIXTIME('$last_tweet_rotate')") or die ('MoonPlugin, replace'.mysql_error());
} else {
	mysql_query("INSERT INTO if_moon SET id=1, tweetUpdate = FROM_UNIXTIME('NOW()'), balken = 1, tweetNr = 1, tweetRotate = FROM_UNIXTIME('NOW()')") or die ('Moonplugin INSERT'.mysql_error());
		exit('Konnte Datenbank nicht oeffnen.');
	}

anzumerken ist:
  • Du BRAUCHST ZWINGEND Zend-framework 1.12.3
  • Ich hab mein ZF in der php.ini includet. Hast du das nicht wirst du evtl den include wie in der index.php brauchen
  • Dein USERNAME angeben
  • Den Absoluten Pfad zur config.ini anpassen
Die neue API ist wirklich nett, mann kann theoretisch alles mögliche anzeigen. Habe da auch schon ein halbes Plugin fertig...

Alternativ kannst du auch das Plugin nutzen ohne die tweets, dann halt dementsprechend die tweet-geschichte aus dem plugin auskommentieren.

€dith: Ich hab in der Datenbank if_moon noch eine Spalte an das ende mit dem Namen: "tweetText" varchar 500 latin1_genral_cs hinzugefügt. Danach habe ich noch 5leere datensätze erstellt, weil ich zu faul war eine if abfrage einzubauen ob schon datensätze vorhanedn sind. So werden immer die aktuellen tewwts geupdatet (UPDATE) statt eingefügt(INSERT).
 
Zuletzt bearbeitet:
@Spoon3er thx, werde es mal probieren
 
Hab's doch gleich mal probiert und bekomme keine Ausgabe der Grafik.
Ich habe nach deiner Anleitung die Dateien & DB angepasst, eine neue App im DEV Twitter angelegt, Zend_Gdata auf Version 1.12.3 gehoben
(bis ich merkte Du benutzt Autoloader und somit die ZF Full)
Erste DB ist auch gefüllt mit (1 2013-06-22 10:05:00 96 2 2013-06-22 17:44:45)

Mal sehen ob ich eine Fehlerausgabe erzwingen kann, bis jetzt kommt nur Fehler im Image ;-(
 
ich nutze die minimal, aber da ist auch der autoloader drinn :) oder mal kurz E_ALL anschalten und error.log abchecken. ich habe bestimmt was vergessen mitzuteilen...
habe das letzte woche quick and dirty runtergeballert :D

€: So sieht if_moon aus bei mir: if_moon_inhalt.jpgif_moon_struktur.jpg

€2: meine config.ini Denke es liegt an den Bezeichnungen!?
Code:
[System]
.
.
.
.
.
.

; Twitter service
service.twitter.oauth.username = "XXXXXXXXXXXXXXXXXXXXX"
service.twitter.oauth.oauth_token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
service.twitter.oauth.oauth_token_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXc"
service.twitter.consumerKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
service.twitter.consumerKey_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,889
Beiträge
2,304,013
Mitglieder
378,570
Neuestes Mitglied
domitrader