Aktiver Bilderrahmen mit der DS...

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Bei der dynamischen Variante sind derzeit auch nur wenige Bilderrahmen auf dem Markt, die das können. Aber es muss ja nicht gleich ein Bilderrahmen sein.
Solange die Rahmen JS und html können, kannst du auch regelmässig die Daten vom Server abfragen lassen
 

adahmen

Benutzer
Mitglied seit
12. Okt 2009
Beiträge
559
Punkte für Reaktionen
10
Punkte
38
Hallo Zusammen,

also ich wäre wirklich schon damit zufrieden wenn ein statisches Bild in regelmäßige Abständen generiert werden kann. Das aber dann in einer flexiblen Größe und mit flexiblem Inhalt.

Für alles andere wird es sicherlich Geräte geben, die das können (mit Flash, Browser, ...).

Sollten wir nichtmal im Ip-Phone-Forum nachfragen ... dort hat ja schon jemand eine Lösung gebaut die man ggf. nur noch auf die DS portieren und aufbohren muß ....

VG Albert
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
also ich wäre wirklich schon damit zufrieden wenn ein statisches Bild in regelmäßige Abständen generiert werden kann.

Das ist doch mal ne Aussage, mit der wir beginnen können.
Grenzen nach oben können eh nie gesetzt werden. :D

Beginnen wir doch mal mit dem Thema Wetter.
Die Sache von Google, die nicknick gefunden hat, ist doch schon mal gar nicht schlecht.
Wir generieren eine html-Seite, die sich die Wetterdaten für einen vordefinierten Ort zusammensammelt.
Diese sollte dann als *.jpg an einer definierten Stelle wieder abgelegt und in einem definierten Intervall aktualisiert werden.

Der Bilderrahmen schaut in das Verzeichnis und gibt das Bild aus.

Was brauchen wir?
Unsere "Picture Frame" - Basis, in der vorerst folg. Variablen definiert werden müssen:
- Location (Wohnort des User)
- Bildgröße (Auflösung)
- Ablageverzeichnis (für das Bild)
- Intervall (Aktualisierung)
sonst noch was?

Die php-Datei verarbeitet die lokalen und Google-Daten, baut eine hübsche Website auf und kreiert ein Bild.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die php-Datei verarbeitet die lokalen und Google-Daten, baut eine hübsche Website auf und kreiert ein Bild.
Die Sache mit dem Erstellen des Bildes mit den Wetterdaten müsste mit PHP machbar sein. Für meine Webseite habe ich den Code im Link von nicknick mal etwas angepasst. Wer's brauchen kann, der kanns nehmen ;)
PHP:
<?php
//error_reporting(E_ALL|E_STRICT);
function website_wetter($ort="", $sprache="de",$icons_src="http://www.google.com"){
    $station=$ort;
    $api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache)));
    if(@is_null($api->weather->problem_cause->attributes()->data) === false){
        return false;
    }
    $wetter = array();
    $wetter['stadt'] = $api->weather->forecast_information->city->attributes()->data;
    $wetter['datum'] = $api->weather->forecast_information->forecast_date->attributes()->data;
    $wetter['zeit'] = $api->weather->forecast_information->current_date_time->attributes()->data;
    $wetter[0]['zustand'] = $api->weather->current_conditions->condition->attributes()->data;
    $wetter[0]['temperatur'] = $api->weather->current_conditions->temp_c->attributes()->data;
    $wetter[0]['luftfeuchtigkeit'] = $api->weather->current_conditions->humidity->attributes()->data;
    $wetter[0]['wind'] = $api->weather->current_conditions->wind_condition->attributes()->data;
    $wetter[0]['icon'] = $icons_src.$api->weather->current_conditions->icon->attributes()->data;
    $i = 1;
    foreach($api->weather->forecast_conditions as $weather){
        $wetter[$i]['wochentag'] = $weather->day_of_week->attributes()->data;
        $wetter[$i]['zustand'] = $weather->condition->attributes()->data;
        $wetter[$i]['tiefsttemperatur'] = $weather->low->attributes()->data;
        $wetter[$i]['hoechsttemperatur'] = $weather->high->attributes()->data;
        $wetter[$i]['icon'] = $icons_src.$weather->icon->attributes()->data;
        $i++;
    }
    return $wetter;
}

function printWeather($ret){
    $re= "<div class=\"item\" style=\"float:left;width:230px;\">Wetter in <strong>".htmlspecialchars(utf8_decode($ret['stadt'][0]))."</strong><br />Aktuell um ".date('G:i:s',time()).'<br />';
$re .= '<div style="float:left;height:60px;margin-right:15px;"><img src="'.$ret[0]['icon'].'" /></div>';
foreach($ret[0] as $key=>$wert){
    switch ($key) {
        case 'zustand':
            $re .= 'Zustand: '.htmlspecialchars(utf8_decode($wert)).'<br />';
        break;
        case 'temperatur':
            $re .= 'Temperatur: '.htmlspecialchars(utf8_decode($wert)).' ?<br />';
        break;
        case 'luftfeuchtigkeit':
            $re .= htmlspecialchars(utf8_decode($wert)).'<br />';
        break;
        case 'icon':
        break;
        default:
            $re .= htmlspecialchars(utf8_decode($wert)).'<br />';
        break;
    }
}
$re .= '</div>';
$re .= '<div class="item" style="width:99%;">';
$re .= 'Wettervorhersage für die nächsten Tage:<br />';
    for($i=1;$i<count($ret);$i++){
        if(!array_key_exists($i,$ret)){
            break;
        }else{
            $re .= '<div style="display:inline;float:left;width:230px;">';
            $re .= $ret[$i]['wochentag'].'<br />';
            $re .= '<div style="float:left;height:60px;margin-right:15px;"><img src="'.$ret[$i]['icon'].'" /></div>';
            foreach($ret[$i] as $key=>$wert){
            switch ($key) {
            case 'zustand':
                $re .= 'Zustand: '.htmlspecialchars(utf8_decode($wert)).'<br />';
            break;
            case 'tiefsttemperatur':
                $re .= 'Tiefst-Temperatur: '.htmlspecialchars(utf8_decode($wert)).' ?<br />';
            break;
            case 'hoechsttemperatur':
                $re .= 'Höchst-Temperatur: '.htmlspecialchars(utf8_decode($wert)).' ?<br />';
            break;
            default:
            break;
        }
            }
            $re .= '</div>';
        }
        }
    $re .= '</div>';
        $re .= '<span style="display:block;clear:both;">&nbsp</span>';
    return $re;
}
$loc = array('Stockholm','Oslo','Trondheim','Alta','Narvik','Kiruna');
echo "<html>
<head>
<title>Wetter @ MEINE_SEITE</title>
<style type=\"text/css\">
.item {
 font-family:verdena;
 font-size:0.7em;
 margin-left:20px;
}
</style>
</head>
<body>";
if(!isset($_GET['loc']) || $_GET['loc'] == ''){
    foreach($loc as $wert){
        website_wetter($wert) === false?$t='':$t=printWeather(website_wetter($wert));
        echo $t;
    }
}else{
     foreach($_GET as $key=>$wert){
         if(strpos($key,'loc') !== false){
             website_wetter($wert) === false?$t='':$t=printWeather(website_wetter($wert));
            echo $t;
         }
     }
}
echo '</body></html>';
?>
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Für PHP-Anfänger:

Wenn ihr nur eure Stadt anzeigen wollt, müsst ihr folg. Zeile ändern:

PHP:
$loc = array('Stockholm','Oslo','Trondheim','Alta','Narvik','Kiruna');

nach Ort in:
PHP:
$loc = array('Berlin');

oder nach PLZ in:
PHP:
$loc = array('14199');
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Habe mal die GDLib rangezogen und die Ausgabe des Wetters in ein PNG umgeleitet. Da die meisten Frames 640x480px Größe besitzen, hat das Bild natürlich auch diese Maße. Das Ergebnis schaut dann so aus (Farben und Font sind nur exemplarisch):
 

Anhänge

  • google-wetter.php.png
    google-wetter.php.png
    7,8 KB · Aufrufe: 82

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Uns fehlt jetzt erst mal die Grundlage auf der DS.
Ich denke, dass nicht jeder in der php-Datei Änderungen vornehmen möchte...
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Uns fehlt jetzt erst mal die Grundlage auf der DS.
Ich denke, dass nicht jeder in der php-Datei Änderungen vornehmen möchte...

Eigentlich reicht uns ja auch ein einfaches Textfile, in dem die notwendigen Variablen wie z.B. "Location" stehen, welches wir dann mit dem php-Script auslesen.
Das sollten wir dann in ein sinnvolles Verzeichnis legen, wo man auch ran kommt.(zumindest für die unversierten User)
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Habe mal die GDLib rangezogen und die Ausgabe des Wetters in ein PNG umgeleitet. Da die meisten Frames 640x480px Größe besitzen, hat das Bild natürlich auch diese Maße. Das Ergebnis schaut dann so aus (Farben und Font sind nur exemplarisch):

Wie schaut es mit grafischen Symbolen aus? Bekommen wir die problemlos ins png mit rein?
Wenn die von Google nicht so schön sind, könnten wir uns ja auch eigene machen...


Gruß Jochen
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Für PHP-Anfänger:

Wenn ihr nur eure Stadt anzeigen wollt, müsst ihr folg. Zeile ändern:

PHP:
$loc = array('Stockholm','Oslo','Trondheim','Alta','Narvik','Kiruna');
nach Ort in:
PHP:
$loc = array('Berlin');
oder nach PLZ in:
PHP:
$loc = array('14199');
Oder gleich den loc-Parameter via GET übergeben. Dann wird das Array ignoriert
Code:
http://domain.tld/weather.php?loc=bielefeld&loc1=koeln&loc2=bonn
siehe http://tobisworld.homeip.net/class.php?loc=bielefeld&loc1=koeln&loc2=bonn
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Eine auszulesende und mit entsprechenden Werten befüllbare Textdatei macht mehr Sinn als via GET zu übergeben, denn man kann somit mehrere Orte mit Temperaturen darstellen á la
Rich (BBCode):
Dusseldorf|40217|Germany
Torremolinos
Los Angeles||US
Eine solche Datei ist auch von Unversierten leicht zu handhaben. Ich setze mich mal dran. Grafiken können ebenfalls eingebunden werden. Mein Vorschlag ist ja nicht in Stein gemeißelt, sondern sollte nur die Machbarkeit demonstrieren.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Eine auszulesende und mit entsprechenden Werten befüllbare Textdatei macht mehr Sinn als via GET zu übergeben, denn man kann somit mehrere Orte mit Temperaturen darstellen á la
Rich (BBCode):
Dusseldorf|40217|Germany
Torremolinos
Los Angeles||US
Eine solche Datei ist auch von Unversierten leicht zu handhaben. Ich setze mich mal dran. Grafiken können ebenfalls eingebunden werden. Mein Vorschlag ist ja nicht in Stein gemeißelt, sondern sollte nur die Machbarkeit demonstrieren.
Du kannst doch bei meinem Code mehrere GET loc Parameter angeben. Soviele du willst resp soviele Zeichen wie via URL erlaubt sind (afaik 2048).
Ist zudem für einen "Anfänger" imho einfacher, als eine Textdatei auf der DS zu bearbeiten. Die fixen Städte kannst du ja im Array hinterlegen und der User kann immer noch über GET bestimmen was er sehen will
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hei Jochen

willkommen im 200-er und damit im Avatar Club :D
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Für den Anfang können wir die GET Parameter nehmen.

Und für später könnten wir auch mySQL nehmen. Ist doch alles da.
Da können wir sämtliche Variablen ablegen und auch später modifizieren.

Das anlegen der Datenbank kann dann mal eine Install.php durchführen und zum modifizieren der Daten erstellen wir eine kleine Konfigurationsseite.

Somit umgehen wir text-Dateien und die DS.

Eine Schnittstelle zur DS kann dann später immer noch entwickelt werden,
die uns das Installieren und konfigurieren abnimmt. :)
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Okay, erstmal mit Textdatei. Um die GET-Parameter und die entsprechend formatierte Ausgabe kümmere ich mich heute Abend - muss ja auch noch was arbeiten... :D

Die Textdatei wurde so gefüllt:

Rich (BBCode):
Dusseldorf|40217|Germany
Toronto||Kanada
Honolulu||

Die PNG-Datei schaut so aus:
 

Anhänge

  • google-wetter.php.png
    google-wetter.php.png
    8 KB · Aufrufe: 74

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
@Steini:

Die Textdatei wurde so gefüllt:

Kannst du dein Daten nur ausschließlich aus einer Text-Datei laden?

Oder besteht die Möglichkeit, die Daten aus der SQL-DB zu entnehmen?
Wenn ja, würde ich mich mal an die SQL-DB setzen...

Gruß Jochen
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Wo die Daten herkommen ist egal. Die können via GET übergeben oder aus einer Textdatei oder einer Datenbank ausgelesen werden. Allerdings: Eine MySQL-Datenbank für ein paar Wetterdaten einzusetzen wäre wie wenn man mit Kanonen auf Spatzen schießen würde.
 

anjoho

Benutzer
Mitglied seit
05. Jan 2010
Beiträge
366
Punkte für Reaktionen
0
Punkte
22
Wo die Daten herkommen ist egal. Die können via GET übergeben oder aus einer Textdatei oder einer Datenbank ausgelesen werden. Allerdings: Eine MySQL-Datenbank für ein paar Wetterdaten einzusetzen wäre wie wenn man mit Kanonen auf Spatzen schießen würde.

Das soll doch erst der Anfang sein ! Ich denke mal, wenn das erste funktioniert, werden weitere folgen.
Und dann wäre eine DB von Anfang an sinnvoll ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat