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

Mal sehen wie das mit dem Apache funktioniert ? Wie gesagt eigentlich ein Noob auf dem Gebiet, probiere aber viel und bin hartnäckig wenn was nicht funktioniert.

Habe momentan einen Kodak W1030 (nicht 1020). Damit scheint es aber nicht zu funktionieren da man keinen RSS-Feed eingeben kann.
 
Hi ralalla!
Leider hat das Benutzerhandbuch von dem QNAP (es heißt übrigends TS-219 PII) 674 Seiten! Da liest man sich nicht so schnell ein. Ist aber ein geiles Teil. Das hat doch Speicher ohne Ende, da stellt sich doch die Frage, was du mit einem Stick an der 7390 für InfoFrame sollst? Und den Webserver/MySQL stellt QNAP doch auch.
 
Ja klar. Der Webserver und MySQL läuft ja auch schon auf dem QNAP.
Wenn ich im Browser die IP vom QNAP aufrufe bekomme ich ja auch schon das Bild zu sehen wie es sein soll.
Dachte nur um den Callmonitor zu nutzen und das Bild auf den Rahmen zu bekommen muss das über die FritzBox laufen.

Denke ht81 kann mir vielleicht weiterhelfen ?

Wer sieht sich oben die Dateien noch mal an ?
Finde den Fehler beim BenzinPlugin nicht wirklich. Aktualisiert sich nicht. Und wenn ich auf 1 Station umstelle bekomme ich nur noch ein weißes Bild. Bei 2 gehts wieder.
Ebenso wird die Uhrzeit immer noch doppelt bzw. sehr seltsam angezeigt.
 
edit:

Habe es nun so eingebunden und funktioniert

Code:
// copy (resized) webcam image on background
$webcamimagefile = 'http://xxxx.eu/xxxx/cambild.jpg';
$bg = @ImageCreateFromJpeg ($webcamimagefile); /* Versuch, Datei zu öffnen */
if ($bg) {
	imagecopyresampled($im, $bg, 15, 165,  0,  0, 400, 300, imagesx($bg), imagesy($bg));
}

hatte gerade erst einen kleinen gedankenfehler

danke für deine hilfe

gruß

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.
 

Anhänge

  • infoframe.JPG
    infoframe.JPG
    70.6 KB · Aufrufe: 97
Zuletzt bearbeitet:
Habe die Sache nun angepasst so das es ohne Stick funktionieren sollt. Komme zumindest nach dem Aufruf von fritz.box:5050 wieder auf die "Feed Seite".
Kann sich noch mal jemand die Codes ansehen ob das passt bzw. ob noch was geändert werden muss ?

rc.custom
Code:
# Make directory for QNAP and copy files
mkdir /var/tmp/infoframe
cd /var/tmp/infoframe
wget ftp://user:[email protected]/Web/Setup/setup.sh
wget ftp://user:[email protected]/Web/Setup/download.sh
wget ftp://user:[email protected]/Web/Setup/refresh.sh
wget ftp://user:[email protected]/Web/Setup/wait.sh
wget ftp://user:[email protected]/Web/Setup/error.jpg

       sh ./setup.sh

done

setup.sh
Code:
#!/bin/sh
# setup infoframe handling


# create webserver on port 5050 for serving images to picture frame
httpd -p 5050 -h /var/tmp/infoframe/ -r InfoFrame


# make clone
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_clone.jpg

# make more clones
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_1.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_2.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_3.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_4.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_5.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_6.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_7.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_8.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_9.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_10.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_11.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_12.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_13.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_14.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_15.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_16.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_17.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_18.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_19.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_20.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_21.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_22.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_23.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_24.jpg
ln -s /var/tmp/infoframe/info.jpg /var/tmp/infoframe/info_25.jpg

# refresh picture for first time
sh /var/tmp/infoframe/wait.sh &

Doch wieder auf Standard (QNAP, Stick an FritzBox geändert) da so nicht funktioniert.
 
Zuletzt bearbeitet:
Hat Google eigentlich was geändert die letzten Tage am Kalender?

infoframe2.JPG

Warum steht da jetzt bei ganztägigen ereignissen (von 23.00 bis 23.00)

Das war doch vorher nicht!
 
@ralalla: Ich melde mich sobald ich Daheim bin. Ist gestern etwas spät geworden....
 
Habe immer noch das Problem mit der RSS-Feed Seite. Wenn ich meine fritz.box:5050/ aufrufe bekomme ich im Firefox die Seite mit den info.jpg Links.
Wenn ich dann einen anklicke kommt die 404....... Meldung. (siehe oben)

Habe die setup.sh noch mal ausgeführt. Das Ergebniss sieht dann so aus:
Code:
sh ./setup.sh
mkdir: can't create directory '/var/tmp/infoframe': File exists
httpd: bind: Address already in use
cp: can't stat '/var/tmp/qnap/error.jpg': No such file or directory
ln: /var/tmp/infoframe/info_clone.jpg: File exists
ln: /var/tmp/infoframe/info_1.jpg: File exists
ln: /var/tmp/infoframe/info_2.jpg: File exists
ln: /var/tmp/infoframe/info_3.jpg: File exists
ln: /var/tmp/infoframe/info_4.jpg: File exists
ln: /var/tmp/infoframe/info_5.jpg: File exists
ln: /var/tmp/infoframe/info_6.jpg: File exists
ln: /var/tmp/infoframe/info_7.jpg: File exists
ln: /var/tmp/infoframe/info_8.jpg: File exists
ln: /var/tmp/infoframe/info_9.jpg: File exists
ln: /var/tmp/infoframe/info_10.jpg: File exists
ln: /var/tmp/infoframe/info_11.jpg: File exists
ln: /var/tmp/infoframe/info_12.jpg: File exists
ln: /var/tmp/infoframe/info_13.jpg: File exists
ln: /var/tmp/infoframe/info_14.jpg: File exists
ln: /var/tmp/infoframe/info_15.jpg: File exists
ln: /var/tmp/infoframe/info_16.jpg: File exists
ln: /var/tmp/infoframe/info_17.jpg: File exists
ln: /var/tmp/infoframe/info_18.jpg: File exists
ln: /var/tmp/infoframe/info_19.jpg: File exists
ln: /var/tmp/infoframe/info_20.jpg: File exists
ln: /var/tmp/infoframe/info_21.jpg: File exists
ln: /var/tmp/infoframe/info_22.jpg: File exists
ln: /var/tmp/infoframe/info_23.jpg: File exists
ln: /var/tmp/infoframe/info_24.jpg: File exists
ln: /var/tmp/infoframe/info_25.jpg: File exists
root@fritz:/var/tmp/qnap# Connecting to 192.168.178.100 (192.168.178.100:80)
wget: server returned error: HTTP/1.1 404 Not Found
Connecting to 192.168.178.100 (192.168.178.100:80)
wget: server returned error: HTTP/1.1 404 Not Found
mv: can't rename '/var/tmp/infoframe/tmp.jpg': No such file or directory

normal müsste das doch funktionieren ?

Wie kopiere ich den eine Datei aus /var/tmp/infoframe nach /var/media/ftp/uStor01

wenn ich eingebe:

ls -s /var/tmp/infoframe/info_1.jpg /var/media/ftp/uStor01/info_1.jpg

bekomme ich immer die Meldung "No such file or directory"

Kann es sein das die Datei Info.jpg die vervielfältigt wird leer ist und das deshalb nicht funktioniert ?
Wo bzw. mit welcher Datei bzw. Befehl wird die Datei info.jpg erzeugt ?

Ist hier jemand mit einem QNAP und einem Kodak Rahmen der mir seine Files mal zusenden kann ?
 
Zuletzt bearbeitet:
Probier mal cp /var/tmp/infoframe/info_1.jpg /var/media/ftp/uStor01/info_1.jpg
 
Hi ralalla!
Du mußt dir noch mindestens darüber klar werden, dass du mit freetz einen Webserver auf der FRITZ!Box hast, der unter fritz!box:5050 läuft. Dieser liefert dir auch wie in den Dateien eingestellt die rss-Datei mit den leeren Bildern. Diese werden ja auch vom Apache auf dem QNAP (192.168.178.100:80 ?) erzeugt. Vielleicht kann dir jemand entsprechende Dateien zusenden.
 
Da hast du recht. Wenn ich im Browser 192.168.178.100:80 aufrufe bekomme ich ja auch ein Bild angezeigt so wie ich es gerne hätte.
Die FritzBox soll sich dieses besagte Bild info.jpg ja dann holen und für den Kodak Rahmen verfielfältigen, so das in jedem Link das selbe Bild steht denke ich.

Das Problem ist halt das da irgend etwas nicht funktioniert, die FBox bekommt das Bild nicht und legt leere Links an.
Deshalb auch die Ausgabe oben wenn ich die Setup.sh ausführe.
 
Hi!
Was soll die FRITZ!Box denn mit dem Bild anfangen? Du schreibst vervielfältigen, wozu? Hängt das mit der Übertragung an den Rahmen zusammen? Wie erfolgt die Übertragung an den Rahmen, mittels einer RSS-Datei wie bei mir?
Die setup.sh-Datei dient ja zum einrichten nach einem Neustarten der FRITZ!Box, Ansonsten wird das Bild ja mit der refresh.sh erneuert.
Da du genauso wie ich Webserver und Datenbank auf einem anderen Gerät laufen haben müssen die Scripte auch eher dort eingebunden werden. Leider stelle ich mich mit dem konvertieren ungeschickt an. Ich benötige es auch nur um den Callmonitor zu nutzen.
Für das Zusammenspiel von Bildern und Datenbank reicht bei meinem Rahmen die RSS-Datei aus. Auch die Aktualisierung der Bilder (mehrere, nicht gleicher Inhalt da nicht alle Informationen iiin ein Bild passen) funktioniert über die RSS-Datei einwandfrei.
 
So wie ich es eingerichtet habe steht es hier im Forum beschrieben für einen Kodak Rahmen.

Mit dem W1030 geht es wohl nicht. Bekomme aber die Tage einen 1020 zum testen. Dann sehe ich wie es praktisch funktioniert.
 
So ich denke wenn ich diesen Fehler behoben habe, hoffentlich mit eurer Hilfe, läuft mein Infoframe auch auf dem Kodak.
Ich denke das Problem ist, das die download.sh bzw die refresh.sh nicht ausgeführt bzw geholt werden kann und damit auch kein Bild erzeugt wird und auch nicht auf die Box geholt wird.
Die download.sh sieht so aus:
Code:
#!/bin/sh
# refresh infoframe image
wget "http://user:[email protected]/web/index.php" -O /dev/null
wget "http://user:[email protected]/web/cache/info.jpg" -O /var/tmp/infoframe/tmp.jpg

# rename to info.jpg
mv /var/tmp/infoframe/tmp.jpg /var/tmp/infoframe/info.jpg

exit 0

Die download.sh sieht so aus:
Code:
#!/bin/sh
# refresh infoframe image for a call

wget "http://user:[email protected]/Web/index.php?$1" -O /dev/null
sh /var/tmp/infoframe/download.sh
exit 0

Was muss ich bei den Zeilen mit http:// user:pass@.......... eingeben ?
Muss ja auf mein QNAP zugreifen um an die Dateien ran zu kommen, da hängt es glaube ich.
 
Zuletzt bearbeitet:
Das geht ja nicht, schon probiert.

In der refresh.sh oben bei serverscript greift der Code doch auch auf die "Index.sh" zu die auf dem QNAP liegt ?
Was muss den dort eingetragen werden ? Wäre doch eigentlich das selbe was da hin kommt wie das was ich oben probiert habe ?
 
So wie es aussieht gehts jetzt.
Werde, wenn der W1020 da ist mal testen ob es geht und dann die Dateien hier und im neuen WIKI posten.

Was noch nicht funktioniert bzw. was bisher Nebensache war ist der Benzinpreis.
Dieser wird nicht aktualisiert. Die Uhrzeit und das Datum davon schon.
Ebenso scheint sich der Sonnenauf und Untergang nicht zu ändern.

Das werde ich mir aber später ansehen, für heute ist Schluß.info.jpg

Danke erst mal, vor allem ht81 der mich sehr gut unterstützt hat.
 
Zuletzt bearbeitet:
Habe in den Weiten des Internet ein Script gefunden.
Da ich aber, wie schon geschrieben, nicht ganz so viel Ahnung habe kann ich damit nicht so viel anfangen. Sollte aber evtl. ein Teil für die Lösung für die Pulse Serie sein ?
So wie ich das deute horcht das Script auf Port 80 &443 und leitet die Anfragen des Rahmens auf eine Adresse um so das die Daten dann von dort gelesen werden ?
Kann mir hier jemand weiterhelfen, wie das genau funktioniert und was man noch alles benötigen würde ?

Code:
<?php

/**
 *
 * kodak-pulse-picture-frame-server.php V1.02
 *
 * Kodak Pulse Picture Frame Server (KCS Kodak Cloud Services) Emulator
 *
 * (C) Hajo Noerenberg 2010
 *
 * http://www.noerenberg.de/hajo/pub/kodak-pulse-picture-frame-server.php.txt
 *
 * Proof-of-concept code, you'll quickly get the idea about how the protocol works.
 *
 * Tested with a W730 model and firmware version '02/23/2010'.
 *
 * +++ WARNING +++
 * MODIFYING YOUR DEVICE WILL VOID YOUR WARRANTY! IT IS
 * POSSIBLE TO BRICK YOUR DEVICE! USE AT YOUR OWN RISK!
 * I AM NOT LIABLE FOR ANY DAMAGES TO YOUR SYSTEM OR
 * ANY LOSS OF DATA!
 *
 *
 * KODAK and PULSE are trademarks of Eastman Kodak Company, Rochester, NY 14650-0218.
 *
 *
 * - Setup
 *
 * Apache Web Server, listening on port 80 and 443 (SSL), config file:
 * RewriteRule /DeviceRest.* /kodak-pulse-picture-frame-server.php
 *
 * iptables -t nat -I PREROUTING -d device.pulse.kodak.com -p tcp --dport  80 -j DNAT --to <APACHE IP>
 * iptables -t nat -I PREROUTING -d device.pulse.kodak.com -p tcp --dport 443 -j DNAT --to <APACHE IP>
 *
 * (alternatively, you can re-route device.pulse.kodak.com via DNS)
 *
 *
 * - GUIDs/IDs used in this emulator
 *
 * ba538605-038e-b8ee-02c4-6925cad67189 = 'secret' Kodak API key
 * 55555555-deaf-dead-beef-555555555555 = device (picture frame) activation ID
 * 22222222-1234-5678-9012-123456789012 = user 'admin' profile ID
 * 13333337-1337-1337-1337-424242424242 = session auth token
 * 66666666-5555-3333-2222-222222222222 = user 'collection author' profile ID
 * 77777777-fefe-fefe-fefe-777777777777 = (picture) collection ID
 * 99999999-1111-2222-3333-420000000001 = entity (picture) ID (Example Pic 1)
 * 99999999-1111-2222-3333-420000000002 = entity (picture) ID (Example Pic 2)
 *
 * KCMLP012345678 = frame serial number (printed on the device)
 * NXV123456789 = activation code (printed on package)
 * 123789 = PIN (website activation)
 *
 *
 * - Security 
 *
 * There is a serious security issue with the official Kodak API Server (details
 * are not disclosed here). As of today, I strongly suggest not to
 * upload any personal data to Kodak's server.
 *
 *
 * - Download firmware image
 *
 * curl -v 'http://www.kodak.com/go/update?v=2010.02.23&m=W730&s=KCMLP012345678'
 * curl -v -O 'http://download.kodak.com/digital/software/pictureFrame/autoupdate_test/2010_09_06/Kodak_FW__Fuller.img'
 *
 *
 * - Misc details
 *
 * The picture frame uses the AVOS OS ('AVOS/1.1 libhttp/1.1'),
 * the MatrixSSL client lib and ZyDAS WLAN.
 *
 */

$r = $_SERVER['REQUEST_URI'];

$e = '<?xml version="1.0" encoding="UTF-8"?' . '>';

if ('/DeviceRest/activate' == $r) {

    /**
     *
     * Step 1: The picture frame connects to https://$deviceActivationURL and
     *         requests activation status and auth URL. Fortunately, the picture
     *         frame does not validate the SSL certificate's hostname.
     *
     * $deviceActivationURL is hardcoded into the firmware and thus
     * cannot be changed (at least, until someone decodes the fw image ;-))
     *
     * curl -v -k -d '<?xml version="1.0"? >
     *     <activationInfo>
     *         <deviceID>KCMLP012345678</deviceID>
     *         <apiVersion>1.0</apiVersion>
     *         <apiKey>ba538605-038e-b8ee-02c4-6925cad67189</apiKey>
     *         <activationCode>NXV123456789</activationCode>
     *     </activationInfo>'
     *     https://device.pulse.kodak.com/DeviceRest/activate
     *
     */


    if (1) { // always activated

        header('HTTP/1.1 412 Precondition Failed');

        print $e . '<activationResponseInfo>' .
                       '<deviceActivationID>55555555-deaf-dead-beef-555555555555</deviceActivationID>' .
                       '<deviceAuthorizationURL>https://device.pulse.kodak.com/DeviceRestV10/Authorize</deviceAuthorizationURL>' .
                       '<deviceProfileList>' .
                           '<admins>' .
                               '<profile>' .
                                   '<id>22222222-1234-5678-9012-123456789012</id>' .
                                   '<name>Firstname Lastname</name>' .
                                   '<emailAddress>[email protected]</emailAddress>' .
                               '</profile>' .
                           '</admins>' .
                       '</deviceProfileList>' .
                   '</activationResponseInfo>';

    } else {

        print $e . '<activationResponseInfo>' .
                       '<deviceActivationID>55555555-deaf-dead-beef-555555555555</deviceActivationID>' .
                       '<deviceAuthorizationURL>https://device.pulse.kodak.com/DeviceRestV10/Authorize</deviceAuthorizationURL>' .
                       '<consumerActivation>' . 
                           '<pin>123789</pin>' .
                           '<url>http://www.kodakpulse.com</url>' .
                       '</consumerActivation>' .
                       '<deviceProfileList><admins /></deviceProfileList>' .
                   '</activationResponseInfo>';

    }

    exit;

} elseif ('/DeviceRestV10/Authorize' == $r) {

    /**
     *
     * Step 2: The picture frame connects to $deviceAuthorizationURL (->Step 1) and
     *         requests auth token and API URL
     *
     * curl -v -k -d '<?xml version="1.0"? >
     *     <authorizationInfo>
     *         <deviceID>KCMLP012345678</deviceID>
     *         <deviceActivationID>55555555-deaf-dead-beef-555555555555</deviceActivationID>
     *         <deviceStorage>
     *             <bytesAvailable>447176504</bytesAvailable>
     *             <bytesTotal>448143360</bytesTotal>
     *             <picturesAvailable>4500</picturesAvailable>
     *             <picturesTotal>4500</picturesTotal>
     *         </deviceStorage>
     *     </authorizationInfo>'
     *     https://device.pulse.kodak.com/DeviceRestV10/Authorize
     *
     */

    if (1) { // always authorized

        print $e . '<authorizationResponseInfo>' .
                       '<authorizationToken>13333337-1337-1337-1337-424242424242</authorizationToken>' .
                       '<apiBaseURL>http://device.pulse.kodak.com/DeviceRestV10</apiBaseURL>' .
                       '<status>' .
                           '<overallStatus>1287525977004</overallStatus>' .
                           '<collectionStatus>1287525977004</collectionStatus>' .
                           '<settingsStatus>1287525781312</settingsStatus>' .
                           '<pollingPeriod>300</pollingPeriod>' .
                       '</status>' .
                       '<deviceProfileList>' .
                           '<admins>' .
                               '<profile>' .
                                   '<id>22222222-1234-5678-9012-123456789012</id>' .
                                   '<name>Firstname Lastname</name>' .
                                   '<emailAddress>[email protected]</emailAddress>' .
                               '</profile>' .
                           '</admins>' .
                       '</deviceProfileList>' .
                   '</authorizationResponseInfo>';

    } else {

        header('HTTP/1.1 400 Bad Request');

    }

    exit;

}

/**
 *
 * Step 3++: The picture frame connects to $apiBaseURL (->Step 2) and
 *           requests device settings, collection status, ...
 *
 * The following functions are only available for picture frames with a
 * valid device (auth) token.
 *
 * curl -v -k -H 'DeviceToken: 13333337-1337-1337-1337-424242424242' <URL>
 *
 *     http://device.pulse.kodak.com/DeviceRestV10/status/0
 *     http://device.pulse.kodak.com/DeviceRestV10/status/1287591702353
 *     http://device.pulse.kodak.com/DeviceRestV10/settings
 *     http://device.pulse.kodak.com/DeviceRestV10/collection
 *     http://device.pulse.kodak.com/DeviceRestV10/profile/66666666-5555-3333-2222-222222222222
 *     http://device.pulse.kodak.com/DeviceRestV10/entity/99999999-1111-2222-3333-420000000001
 *     http://device.pulse.kodak.com/DeviceRestV10/entity/99999999-1111-2222-3333-420000000002
 *
 */

if ('13333337-1337-1337-1337-424242424242' != $_SERVER['HTTP_DEVICETOKEN']) {

    header('HTTP/1.1 424 Failed Dependency');
    exit;

}

if ('/DeviceRestV10/status/' == substr($r, 0, 22)) {

    $s = substr($r, 22);

    if ('1287591702353' != $s) {	// dummy mode: fixed serial, increment on change

        header('HTTP/1.1 425 Unordered Collection');
        print $e . '<status>' .
                       '<overallStatus>1287591702353</overallStatus>' .
                       '<collectionStatus>1287591701461</collectionStatus>' .
                       '<settingsStatus>1287525781312</settingsStatus>' .
                       '<pollingPeriod>300</pollingPeriod>' .
                   '</status>';
    }

} elseif ('/DeviceRestV10/settings' == $r) {

    print $e . '<deviceSettings>' .
                   '<name>My lovely Pulse Frame</name>' .
                   '<slideShowProperties>' .
                       '<duration>10</duration>' .
                       '<transition>FADE</transition>' .
                   '</slideShowProperties>' .
                   '<displayProperties>' . 
                       '<displayMode>ONEUP</displayMode>' .
                       '<showPictureInfo>false</showPictureInfo>' .
                       '<renderMode>FILL</renderMode>' .
                   '</displayProperties>' .
                   '<autoPowerProperties>' .
                       '<autoPowerEnabled>true</autoPowerEnabled>' .
                       '<wakeOnContent>false</wakeOnContent>' .
                       '<autoPowerTime autoType="ON">8:00:00</autoPowerTime>' .
                       '<autoPowerTime autoType="OFF">22:00:00</autoPowerTime>' .
                   '</autoPowerProperties>' .
                   '<defaultCollectionOrder>NAME</defaultCollectionOrder>' .
                   '<respondToLocalControls>true</respondToLocalControls>' .
                   '<language>en-us</language>' .
                   '<timeZoneOffset>0:00:00+2:00</timeZoneOffset>' .
                   '<managePictureStorage>false</managePictureStorage>' .
                   '<logLevel>OFF</logLevel>' .
                   '<enableNotification>true</enableNotification>' .
                   '<modificationDate>2010-10-20T20:18:03Z</modificationDate>' .
                   '<modificationTime>1287605883011</modificationTime>' .
              '</deviceSettings>';

} elseif ('/DeviceRestV10/collection' == $r) {

    print $e . '<collection>' .
                   '<story>' .
                        '<id>77777777-fefe-fefe-fefe-777777777777</id>' .
                        '<title>My Kodak Hacking Session Pics</title>' .
                        '<displayDate>2010-10-19T22:14:30Z</displayDate>' .
                        '<modificationDate>2010-10-19T22:14:31Z</modificationDate>' .
                        '<modificationTime>1287526470836</modificationTime>' .
                        '<authorProfileID>66666666-5555-3333-2222-222222222222</authorProfileID>' .
                        '<source>EMAIL</source>' .
                        '<contents>' .
                            '<pictureSpec>' .
                               '<id>99999999-1111-2222-3333-420000000001</id>' .
                               '<modificationDate>2010-10-19T22:14:31Z</modificationDate>' .
                               '<modificationTime>1287526470727</modificationTime>' .
                            '</pictureSpec>' .
                            '<pictureSpec>' . 
                               '<id>99999999-1111-2222-3333-420000000002</id>' .
                               '<modificationDate>2010-10-19T22:14:24Z</modificationDate>' .
                               '<modificationTime>1287526463446</modificationTime>' .
                            '</pictureSpec>' .
                        '</contents>' .
                   '</story>' .
              '</collection>';

} elseif ('/DeviceRestV10/profile/' == substr($r, 0, 23)) {

    print $e . '<profile>' .
                      '<id>66666666-5555-3333-2222-222222222222</id>' .
                      '<name>Firstname Lastname</name>' .
                      '<emailAddress>[email protected]</emailAddress>' .
                  '</profile>';

} elseif ('/DeviceRestV10/entity/' == substr($r, 0, 22)) {

    // /DeviceRestV10/entity/<id> accepts GET and DELETE

    if ('99999999-1111-2222-3333-420000000001' == substr($r, 22)) {

        print $e . '<picture>' .
                      '<id>99999999-1111-2222-3333-420000000001</id>' .
                      '<title>Hohenzollernbruecke (bridge), Cathedral, Museum Ludwig. Cologne, Germany</title>' .
                      '<captureDate>2004-09-06T16:07:12Z</captureDate>' .
                      '<modificationDate>2010-10-19T22:14:23Z</modificationDate>' .
                      '<modificationTime>1287526463445</modificationTime>' .
                      '<fileURL>http://upload.wikimedia.org/wikipedia/commons/e/ee/Koeln_Hohenzollernbruecke.jpg</fileURL>' .
                  '</picture>';

    } else {

        print $e . '<picture>' .
                      '<id>' . substr($r, 22) . '</id>' .
                      '<title>The Brandenburg Gate in Berlin, Germany</title>' .
                      '<captureDate>2008-05-03T16:07:12Z</captureDate>' .
                      '<modificationDate>2010-10-19T22:14:23Z</modificationDate>' .
                      '<modificationTime>1287526463445</modificationTime>' .
                      '<fileURL>http://upload.wikimedia.org/wikipedia/commons/a/a6/Brandenburger_Tor_abends.jpg</fileURL>' .
                  '</picture>';
    }

} else {

    header('HTTP/1.1 404 Not Found');

}
 
Hi,

also das sieht so aus, als ob Du die Anfrage des Kodak Rahmens per DNS auf einem Webserver leiten musst. Du kannst quasi den Kodak Service, worauf der Rahmen normal zugreift, selber Emulieren und "Daheim" laufen lassen.Das scheint echt cool zu sein.

Schieb doch einfach mal die *.php auf deinen QNAP und fülle alle relevanten Daten in der php aus. Also, die ID, Passwort etc.....dann gibst Du bei den file_URL den Pfad zur Info.jpg (FritzBox Webserver Port 5050) an und richtest in der FritzBox für die WLAN IP des Bilderrahmens ein Portumleitung auf deinen QNAP Server wo die Emulator PHP läuft. Das sollte dann eigentlich so funktionieren.....

Ah...Stop: Sehe grade das Du nicht die IP des Rahmens umleiten musst, sondern lediglich die Anfrage. Siehe hier:
(alternatively, you can re-route device.pulse.kodak.com via DNS)

Also der Rahmen fragt device.pulse.kodak.com ab, diese Anfrage musst Du mit der FritzBox abfangen und umleiten auf die Emulator PHP
 
Zuletzt bearbeitet von einem Moderator:
Kannst du mir noch etwas genauer erklären wie ich die Anfrage auf der FB umleite ? Die "Kodak.php" läg ja dann z.B. unter QNAP/Web/Kodak.php, wie muss dann der Zielpfad abgefragt werden, da ich ja schon eine index.php am laufen habe ?
Oder ist das egal, kann man mehrere Index.php laufen lassen, bzw. vergibt der einen anderen Namen und dann funktionieren beide ?
Komme aber wohl erst morgen dazu, habe heute bis in den späten abend noch Termine.
Aber bis dahin besteht ja hier dann die Möglichkeit mir das zu erklären ;-)

webranger hat im Forum myEZcontrol auch schon mal einen Benutzer Namens netsrac angefragt. Dieser zeigt dort wie er einen Kodak Rahmen mit Webserver und Bildern von diesem Betreibt, jedoch nur erklärt, aber keine Beschreibung oder Anleitung.
vielleicht hat webranger ja eine brauchbare Lösung erhalten?

Werde mich spätestens morgen im Laufe des Tages bzw. morgen abend melden.
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

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