Kindle als Fhem-Display

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

Vorheriges Thema - Nächstes Thema

Brad Majors

#660
Hatte noch im irgendwo eine 2017 Version des onlinescreensaver gefunden.

Wenn ich jetzt den update manuell aufrufe erstellt er das korrekte png.
Sobald ich den Kindle schlafen lege zeigt er es auch als Bildschirmschoner an.

Ein automatisches update erfolgt (noch) nicht.
Schalte ich den Kindle an und aus dann switcht er zwischen den existierenden png um?

Also auch auf welche die schon 2-3 Stunden alt sind.

Habe auch schon wie auf Seite 3 des threads hier versucht den Kindle am einschlafen zu hindern.

Scheint aber noch irgendwo was an der Konfiguration zu hängen.

Hallo Markus,

Das klingt so als ob Dein Kindle komplett einschläft.
Vermutlich hast Du die Timeouts noch nicht geändert.
Schau mal unter /etc/kdb.src/ usw. Da gibt es irgendwann ein Unterverzeichnis powerd.
Ich hab gerade leider keinen Zugriff um das nachsehen zu können.
In der Datei t1_timeout steht der Timeout für den screensaver (letzte Zeile, per Default glaube ich 600 Sekunden). Ich hab das auf 200 geändert. Geringer würde ich ihn nicht setzen, sonst könnte es Probleme beim Booten geben. Da im Update Script nur ein Bild angezeigt wird, wenn der screensaver Mode aktiv ist, passiert vorher nichts.
Alternativ kannst Du auch die Abfrage des screensaver-Mode im Update Script rauswerfen.

Viel wichtiger ist aber die Datei t2_timeout. Da steht drin wann der Kindle komplett einschläft. Dann geht gar nichts mehr. Ich hab da eine sehr große Zahl reingeschrieben (200000 oder so). Dann bleibt der Kindle wach bis ihm der Strom knapp wird.

Gruß
   Stefan


Wobei ich aber den Ordner auch nicht finde.

Schau mal unter /etc/kdb.src/ usw. Da gibt es irgendwann ein Unterverzeichnis powerd.

In der 2017 Variante lagen die direkt im bin Ordner?
Raspberry Pi. * Eigenbau Nano Cul 433 und 866 * EnOcean TCM_3 * Netatmo * Max! Thermostate * SMA PV Inverter * Zigbee über ConBeeII / Phoscon

karofant

Ja, korrekt. Die Dateien werden bei der Installation an die richtige Stelle verschoben. Grundsätzlich gibt es wie gesagt zwei Varianten zum Einschlafen mit Automatischen Aufwecken, sleep und rtc. Ich bin nur mit der rtc Variante aus einem meiner letzten Posts zum Ziel gekommen. Die funktioniert aber nur auf dem K4, weil andere Kindle wohl keine rtc haben.
FHEM auf RPi 2 Raspbian Buster l Fritzbox 7490 l 2 x Kindle 4 als FHEM Display

Brad Majors

Vielleicht hat ja noch jemand eine gute Idee :).

Geht wie gesagt um einen Paperwhite 1 der immer nur einmal bei manuellem update now ein .png anzeigt und dann nie wieder.

Hatte auch schon diese Variante getestet.

Geht aber auch nicht. Wobei das ein Paperwhite 3 ist.

https://blog.krannich.de/fhem-status-auf-kindle-paperwhite-3/

#!/bin/sh

url="http://USER:PASS@192.168.x.y:8083/fhem/images/status.png"
screen_image="/mnt/us/linkss/screensavers/bg_ss00.png"

updateinterval=600 # in seconds
exitloop=0

while [ 1 -eq 1 ]
do
exitloop=0

if [ `lipc-get-prop com.lab126.powerd status | grep "Screen Saver" | wc -l` -gt 0 ]
then
wget -O $screen_image $url
eips -f -g $screen_image

while [ $exitloop -eq 0 ]
do
if [ `lipc-get-prop com.lab126.powerd status | grep "Ready" | wc -l` -gt 0 ]
then
lipc-set-prop com.lab126.powerd deferSuspend 3000000
exitloop=1
fi

sleep 1
done
fi

if [ `lipc-get-prop com.lab126.powerd status | grep "Ready" | wc -l` -gt 0 ]
then
while [ $exitloop -eq 0 ]
do
wget -O $screen_image $url
eips -f -g $screen_image

if [ `lipc-get-prop com.lab126.powerd status | grep -E "Active|Screen Saver" | wc -l` -gt 0 ]
then
exitloop=1
fi

if [ $exitloop -eq 0 ]
then
sleep $updateinterval
fi
done
fi

if [ $exitloop -eq 0 ]
then
sleep 10
fi
done
Raspberry Pi. * Eigenbau Nano Cul 433 und 866 * EnOcean TCM_3 * Netatmo * Max! Thermostate * SMA PV Inverter * Zigbee über ConBeeII / Phoscon

Brad Majors

Wollte noch mein Endergebnis (mit dem ich erst einmal zufrieden bin) mit euch teilen.

Mein Dank gilt hier 3-4 Leuten die mir bei einigen Problemen auf die Sprünge geholfen haben.

(Karofant, Otto, betateilchen, TomLee, usw.).

Als größte Probleme waren:

- Einrichtung Kindle, der zuerst nicht wollte, habe jetzt aber 3 am laufen
- Formatierung Wochentag
- Ergänzung und Umformatierung der Fritz.box Daten mit Anrufzeit, und Dauer in h:mm:sek

Aber so finde ich das echt mega und für mich ist alles drin was ich mir wünsche.

Noch einmal Danke schön.
Raspberry Pi. * Eigenbau Nano Cul 433 und 866 * EnOcean TCM_3 * Netatmo * Max! Thermostate * SMA PV Inverter * Zigbee über ConBeeII / Phoscon

marboj

@Brad Majors

wie hast Du es geschafft, den Wochentag anzuzeigen?

Wenn ich deinen Vorschlag nehme, schreibt er den Wochentag in den INTERNAL STATE des Dummys.

Wie kann ich den denn dann als Reg-Reading auslesen?

Gruß
Marco
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

andi11

Zitat von: marboj am 23 Februar 2023, 09:54:54
wie hast Du es geschafft, den Wochentag anzuzeigen?
Wochentag kannst du mit RepxxExpr
strftime('%A', localtime)

einfügen

marboj

Habe das so gemacht:

setreading kindledisplay Wochentag {(strftime("%A",localtime(time)))}

Wird das dann auch aktualisiert?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

andi11

nein.
Entweder du machst ein Userreading, das wird aktualisiert wenn ein anderes/bestimmtes Reading in deinem Device aktualisiert wird.
Das hilft dir aber nichts um den Tag in ein Bild und damit auf den Kindle zu bekommen.

Mit
attr FREPLACER_Kindle_Wohnzimmer Rep01Expr strftime('%A', localtime)
attr FREPLACER_Kindle_Wohnzimmer Rep01Regex WTAG

Mit diesem Code wird beim ausführen vom Replacer der Text WTAG durch den Wochentag ersetzt.

marboj

@andi11

Super, das klappt ja einfach...Vielen Dank.
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

marboj

Ein kleines Problem ist mir gerade aufgefallen:

Ich habe ein DOIF, welches mir im Overview anzeigt, welche Fenster geöffnet sind:

defmod di_uiTable_windows DOIF ## Visualisierung offener Fenster, Fenster-Devices mit "Fenster" im Namen
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"Fenster":state:"open","keine"]
attr di_uiTable_windows room Overview
attr di_uiTable_windows uiTable {package ui_Table;;}\
icon([$SELF:windows],"fts_window_1w_tilt\@red","fts_window_1w",".*","keine")|[$SELF:windows]


In der Übersicht von FHEM funktioniert das wunderbar. (siehe Screenshot).

Das Reading windows habe ich in den Kindle-Bildschirm übernommen. Falls ein Fenster offen ist, wird dieses angezeigt.

Bei mehr als einem Fenster erscheint der angehängte Fehler.

Wie kann ich das lösen?

Gruß
Marco

meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

andi11

das <br> gefällt dem SVG nicht, da es ein HTML Tag ist (Zeilenumbruch)
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"Fenster":state:"open","keine"]

lass den Zeilenumbrauch <br> raus, oder mach ein 2tes Reading. Wenn du es nur rauslässt, veränderst du die Darstellung.

marboj

Habe das <br> rausgenommen.

Passen 3 Fenster in die Reihe.

Wie würde das mit einem zweiten Reading gehen?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

andi11

was willst du denn im SVG sehen wenn Fenster offen/geschlossen sind?
Ich verwende dass hier um je nach Status Icons anzuzeigen

attr FREPLACER_Kindle_Wohnzimmer Rep12Expr if (ReadingsVal("STRUCTURE_ALLEFENSTER","state",1) eq "zu") { "window_closed"}else{"window_open"}
attr FREPLACER_Kindle_Wohnzimmer Rep12Regex fenster_imageurl

dabei habe ich im svg entsprechend ein Bild eingefügt, dessen URL entsprechend dem Status ersetzt wird. Und es gibt Icons mit window_closed und window_open

marboj

Dann sehe ich aber nicht, welche Fenster auf sind, oder?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

andi11

probier mal so:
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"Fenster":state:"open","keine"],windowkindle:[@as(",")"Fenster":state:"open","keine"]


Ich hab kein entsprechendes DOIF, kann also schlecht testen. Wie du einen Zeilenumbruch hinbekommst weiß ich leider nicht. Allerdings weiß ich auch nicht wie Syntax von deinem DOIF_Readings funktioniert. Ich kann mir anhand deiner Screenshots denken was passiert, aber mehr nicht.

Ein Versuch mit Inkscape zeigt dass es pro Zeile ein neues tspan will.
Wenn ich nach dieser Seite gehe, müsstest du in dieser Richtung was machen
https://www.oreilly.com/library/view/svg-text-layout/9781491933817/ch04.html

<text>
<tspan dy="1em" >Fenster1</tspan>
<tspan dy="1em" >Fenster2</tspan>
</text>


Ggfs ist etwas Perlcode aber ohnehin besser geeignet, da ansonsten deine Formatierung bei zu vielen offenen Fenstern nicht mehr passt.