Kindle als Fhem-Display

Begonnen von alexmetz, 25 März 2014, 22:59:15

Vorheriges Thema - Nächstes Thema

MegaData

Hi !
Hat eigentlich jemand Erfahrungen mit einem Kindle Touch ? In Fhem läuft alles soweit, das Kindle hat alle Software aufgespielt bekommen. Ich bekomme auch das PNG als Bildschrimschoner, aber:

a) sobald der Bildschirmschoner hoch kommt flackert das Display, als würde er gefühlte 20 mal die Seite aktualisieren bis es dann irgendwann zum Stillstand kommt
b) es wird nichts aktualisiert :(

Ideen ?

StefanStrobel

Hallo,

Mit dem Touch habe ich keine Erfahrung. Ein flackerndes Bild klingt aber nach der falschen Auflösung.

Beim 45€ Kindle kommt es darauf an, was es für ein Modell ist. Er muss zunächst gejailbreakt werden können und dann muss der Onlinescreensaver darauf laufen. Am Jailbreak kann es bei neuen Modellen schon scheitern.
Ich hatte hier eine Spezialversion des Onlinescreensavers für den alten K4/5 gepostet, für den ich rtcwake kompiliert habe. Für den normalen Paperwhite sollte der ursprüngliche funktionieren ...

Gruß
   Stefan

MegaData

Hi !

Also ich habe jetzt mal einfach ein Bild konvertiert und auf nen Webserver hochgeladen... Wenn ich das als Ziel-URL einstelle, ist der Effekt der Gleiche... Lt. specs hat der Kindle aber 600*800 Pixel. Mit der anderen Version des Online Screensavers geht es auch nicht...
Also ist der Touch scheinbar generell nicht kompatibel :-( ?!

Timmy.m

Hallo Stefan.

Ist es eigentlich auch möglich im RepXXReading eine DOIF Anweisung zu verwenden. Ich würde gerne ohne Dummy einen Three-state-contact auswerten.

Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

Gernott

Zitat von: Timmy.m am 11 August 2015, 20:34:59
Ich würde gerne ohne Dummy einen Three-state-contact auswerten.
Bin zwar wer anders, aber Du kannst im RepXXReading nur Readings auswerten (wie der Name sagt). In RepXXExpr kannst Du Perlcode abarbeiten. DOIF ist ein fhem-Element, daß auf Trigger reagiert und kein Perl an sich. Du müßtest stattdessen mit Perl-if einen Code schreiben.

Hier mal ein Beispiel aus meinem System mit if:

if( ReadingsVal("OG.RolloStatus", "state", 0 ) eq "on" ) { "fts_blade_arc_close_00" } elsif( ReadingsVal("OG.RolloStatus", "state", "on") eq "off" ) {"fts_blade_arc_close_night" } elsif(ReadingsVal("OG.RolloStatus", "state", "on" ) eq "heat" ) { "fts_blade_arc_open" } elsif(ReadingsVal("OG.RolloStatus", "state", "on") eq "cool" ) { "fts_blade_arc_close_50" }


Ähnlich wie meinen Dummy OG.RolloStatus kannst Du auch Dein Device auslesen. Tip zum Testen: Wenn der Befehl in {..} in der fhem-Eingabezeile einen sinnvollen Wert auswirft, kannst Du ihn ohne geschweifte Klammern in das RepXXExpr übernehmen.

Gruß
G.

Timmy.m

Hallo Gernott,

herzlichen Dank. Das ist die Lösung für mich!

Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

StefanStrobel

Hi MegaData,

Ich würde nicht gleich von einer kompletten Inkompatibilität ausgehen. So ein flackerndes Bild hat meistens etwas mit dem Bildformat zu tun.
Schau doch mal die Eigenschaften der System-Bilder auf Deinem Gerät an (Bildgröße, Farbtiefe etc.).

Gruss
    Stefan

MegaData

Das habe ich schon getan... Auflösung und Farbtiefe sind da überall mit den gleichen Werten angegeben. Ich habe eher das Gefühl irgendwas haut da mit dem Online-Screensaver nicht hin. Für mich sieht das aus wie eine kleine Endlosschleife, irgendwann gibt er dann auf. Am nächsten Morgen ist dann auch der Akku tot... Wäre schade wenn ich dafür nen neues altes Kindle bräuchte - ich finde die Idee sehr klasse. Hat jemand schon mal noch ein schickes Gehäuse gebastelt um sowas an die Wand zu bekommen ? Könnte man ja wirklich stromlos betreiben und mit einer Power-Bank aufladen...

StefanStrobel

Hallo,

im Prinzip ist der Onlinescreensaver ja nur ein Shellscript mir einer große Endlosschleife, die ein Bild per wget abholt, es mit eips anzeigt und dann schläft. In der Originalversion für den Paperwhite über die Echtzeituhr per Dateischnittstelle und in meine Anbpassung für den K4 über ein dafür compiliertes rtcwake.
Es kann schon sein, dass das bei Dir nicht funktioniert und der Kindle statt zu schlafen gleich wieder ein wget macht.
Du kannst ja einfach mal ein paar Debug-Anweisungen ins Script schreiben und statt dem rtcwake ein normales sleep einbauen. In einer früheren Version (bevor ich das rtcwake hatte) war es auch in der Anpassung für den K4 ein sleep. Das müsste in einem der früheren Posts eigentlich noch zu sehen sein:
http://forum.fhem.de/index.php/topic,21821.30.html

Gruss
    Stefan

Gernott

Hallo Stefan

Ich dachte immer, der K4 hat keine RTC? Steht auch so im Wiki: http://www.fhemwiki.de/wiki/Kindle_Display

Gruß
G.

StefanStrobel

Hallo Gernott,

das Wiki müsste wohl mal aktualisiert werden ;-)
Eine RTC ist im K4 drin, nur konnte man die "Weckzeit" nicht einfach wie beim PW in eine Datei schreiben.
Mit einem per crosscompiler erzeugten rtcwake hat es dann aber doch funktioniert. Am 23.12.14 hatte ich das hier gepostet. Mein K4 läuft so eine gute Woche bis er geladen werden will. Mit dem sleep vorher waren es nur 2-3 Tage.

Gruss
    Stefan

ChrisK

Da ja hier die Experten unterwegs sind, will ich sicher gehen:
Habe ich es richtig verstanden, dass ein Kindle mit der Firmware 5.6.2.1 nicht* "ge-jailbreaked" werden kann, was notwendig ist, damit der Kindle vernünftig als fhem-display genutzt werden kann?


(*) es geht wohl schon, wenn man auch hardware-mäßig dran geht: http://www.mobileread.xyz/forums/showthread.php?t=263113

Gernott

#342
Zitat von: StefanStrobel am 18 August 2015, 19:56:58
Eine RTC ist im K4 drin, nur konnte man die "Weckzeit" nicht einfach wie beim PW in eine Datei schreiben.
Mit einem per crosscompiler erzeugten rtcwake hat es dann aber doch funktioniert.

Hallo Stefan
Cool, das muß ich dann gleich mal probieren. Wo bekomme ich die modifizierte rtcwake her? - o.k., habe es gefunden, ist in Deinem modifizierten onlinescreensaver-Paket (letzte Version vom 08. April 15)

Update/Frage:
1. Ist im FHEMwiki der Teil mit den sleep-Settings und den cron-Settings für den K4 noch aktuell?
2. Muß in der Congig.sh der Eintrag DISABLE_WIFI=0 auf ein oder aus stehen?

Gruß
G.

Gernott

Zitat von: StefanStrobel am 13 März 2015, 17:25:41
In Fhem macht man zusätzlich zur FReplacer-Definition folgendes:

define kindleweb HTTPSRV kindle /opt/fhem/kindle Kindle Web
attr kindleweb readings KindleBatt


Damit kann man das Status-Bild von FReplacer nach /opt/fhem/kindle legen lassen und HTTPSRV stellt es dort bereit und akzeptiert beim Request einen Query-String mit KindleBatt=Wert. Der Wert kommt in ein Reading mit Namen KindleBatt beim HTTPSRV device.

Hallo Stefan
Ich stehe etwas auf dem Schlauch.

  • Das Zielverzeichnis OUTPUT muß im FReplacer nach /opt/fhem/kindle geändert werden, wenn z.B. vorher     
    /opt/fhem/www/images/status.svg?
  • Vorher muß ich diesen Unterordner sicher erzeugen, oder geht das von allein?
  • Im Kindle muß ich dann sicher auch noch das Abholverzeichnis nach /opt/fhem/kindle anpassen?

Gruß
G.

Gernott

Hallo Stefan

Ich mülle den Faden gerade mit Anfragen an Dich zu.
Nachdem ich gerade einen zweiten Kindle von Dauer-an mit cron-Aufrufen auf OSS umgestellt habe, ist mir aufgefallen, daß das wget-Timing nicht mit der voreingestellten Periode übereinstimmt. Laut Schedule-Setting soll das Bild alle 2 Minuten vom Server geholt werden. Laut log ist dieser Zeitraum allerdings deutlich größer:
Wed Aug 19 16:22:20 UTC 2015: Updating image on screen
Wed Aug 19 16:22:20 UTC 2015: Schedule 07:00-22:00=2 used, next update in 2 minutes
Wed Aug 19 16:22:20 UTC 2015: Next update in 2 minutes
Wed Aug 19 16:22:20 UTC 2015: wait_for called with 120, now=1440001340, Powerd state: Screen Saver, defer_suspend:0, Remaining time in this state: 199798.476865, Battery Level: 82% Battery logging: On
Wed Aug 19 16:22:23 UTC 2015: go to RTC sleep for 120 seconds, wlan off
Wed Aug 19 16:23:28 UTC 2015: woke up again, switch wireless back on
Wed Aug 19 16:23:30 UTC 2015: killget called, ps:
Wed Aug 19 16:23:30 UTC 2015: root 5007 1 0 16:19 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 6677 1 0 16:23 ? 00:00:00 sh -c sleep 10; /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 6853 5007 0 16:23 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 6939 6677 0 16:23 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 6953 6939 0 16:23 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 6957 6953 0 16:23 ? 00:00:00 grep online
Wed Aug 19 16:23:30 UTC 2015: root 7003 7001 0 16:23 ? 00:00:00 grep wget
Wed Aug 19 16:23:30 UTC 2015: no need for kill
Wed Aug 19 16:24:19 UTC 2015: wget http://192.168.1.200/weather-display/weather-script-output.png?KindleBatt=81
Wed Aug 19 16:24:19 UTC 2015: Screen saver image file updated
Wed Aug 19 16:24:19 UTC 2015: Schedule 07:00-22:00=2 used, next update in 2 minutes
Wed Aug 19 16:24:20 UTC 2015: Next update in 2 minutes
Wed Aug 19 16:24:20 UTC 2015: wait_for called with 120, now=1440001460, Powerd state: Active, defer_suspend:0, Remaining time in this state: 569.457307, Battery Level: 81% Battery logging: On
Wed Aug 19 16:24:29 UTC 2015: killget called, ps:
Wed Aug 19 16:24:29 UTC 2015: root 5007 1 0 16:19 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 7190 1 0 16:24 ? 00:00:00 sh -c sleep 10; /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 7278 5007 0 16:24 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 7279 7190 0 16:24 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 7282 7279 0 16:24 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 7284 7282 0 16:24 ? 00:00:00 grep online
Wed Aug 19 16:24:30 UTC 2015: root 7288 7286 0 16:24 ? 00:00:00 grep wget
Wed Aug 19 16:24:30 UTC 2015: no need for kill
Wed Aug 19 16:25:23 UTC 2015: go to RTC sleep for 59 seconds, wlan off
Wed Aug 19 16:26:28 UTC 2015: woke up again, switch wireless back on
Wed Aug 19 16:27:20 UTC 2015: wget http://192.168.1.200/weather-display/weather-script-output.png?KindleBatt=73
Wed Aug 19 16:27:20 UTC 2015: Screen saver image file updated
Wed Aug 19 16:27:20 UTC 2015: Updating image on screen
Wed Aug 19 16:27:21 UTC 2015: Schedule 07:00-22:00=2 used, next update in 2 minutes
Wed Aug 19 16:27:21 UTC 2015: Next update in 2 minutes
Wed Aug 19 16:27:21 UTC 2015: wait_for called with 120, now=1440001641, Powerd state: Screen Saver, defer_suspend:0, Remaining time in this state: 199928.258779, Battery Level: 73% Battery logging: On
Wed Aug 19 16:27:23 UTC 2015: go to RTC sleep for 120 seconds, wlan off
Wed Aug 19 16:29:28 UTC 2015: woke up again, switch wireless back on
Wed Aug 19 16:29:30 UTC 2015: killget called, ps:
Wed Aug 19 16:29:30 UTC 2015: root 5007 1 0 16:22 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 7753 1 0 16:29 ? 00:00:00 sh -c sleep 10; /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 7916 5007 0 16:29 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 8089 7753 0 16:29 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 8092 8089 0 16:29 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 8094 8092 0 16:29 ? 00:00:00 grep online
Wed Aug 19 16:29:30 UTC 2015:
Wed Aug 19 16:29:30 UTC 2015: no need for kill
Wed Aug 19 16:30:16 UTC 2015: wget http://192.168.1.200/weather-display/weather-script-output.png?KindleBatt=79
Wed Aug 19 16:30:16 UTC 2015: Screen saver image file updated
Wed Aug 19 16:30:16 UTC 2015: Updating image on screen
Wed Aug 19 16:30:17 UTC 2015: Schedule 07:00-22:00=2 used, next update in 2 minutes
Wed Aug 19 16:30:17 UTC 2015: Next update in 2 minutes
Wed Aug 19 16:30:17 UTC 2015: wait_for called with 120, now=1440001817, Powerd state: Screen Saver, defer_suspend:0, Remaining time in this state: 199872.425355, Battery Level: 79% Battery logging: On
Wed Aug 19 16:30:19 UTC 2015: go to RTC sleep for 120 seconds, wlan off
Wed Aug 19 16:32:25 UTC 2015: woke up again, switch wireless back on
Wed Aug 19 16:32:27 UTC 2015: killget called, ps:
Wed Aug 19 16:32:27 UTC 2015: root 5007 1 0 16:24 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 8685 1 0 16:32 ? 00:00:00 sh -c sleep 10; /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 8912 5007 0 16:32 ? 00:00:00 /bin/sh /mnt/base-us/extensions/onlinescreensaver/bin/scheduler.sh root 9021 8685 0 16:32 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 9024 9021 0 16:32 ? 00:00:00 /bin/sh /mnt/us/extensions/onlinescreensaver/bin/killget.sh root 9026 9024 0 16:32 ? 00:00:00 grep online
Wed Aug 19 16:32:27 UTC 2015: root 9037 9035 0 16:32 ? 00:00:00 grep wget
Wed Aug 19 16:32:27 UTC 2015: no need for kill
Wed Aug 19 16:33:14 UTC 2015: wget http://192.168.1.200/weather-display/weather-script-output.png?KindleBatt=82
Wed Aug 19 16:33:14 UTC 2015: Screen saver image file updated
Wed Aug 19 16:33:14 UTC 2015: Updating image on screen


Hat das mit dem Aufwecken zu tun? Wäre es möglich die Sache zeitlich präziser auszuführen oder müßte man dann doch wieder auf cron zurückgreifen?
Was mir auch noch auffällt ist, daß die Batterieanzeige ziemlich springt.


Gruß
G.