Kindle als Fhem-Display

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

Vorheriges Thema - Nächstes Thema

mattes1007

Zitat von: Mitch am 30 Oktober 2014, 16:45:51
Hut ab vor eurer Kreativität!!

Kann denn mal jemand für Dummies wie mich ein kleines Wiki schreiben?
Oder hier den Code veröffentlichen bzw. was ich sonst noch so brauche?

Hab zwar kein Kindle, aber ich glaube auch auf meinem Nexus sieht das gut aus und die Webseitengeschichte mit dem Überblick aus dem Büro finde ich auch sehr gut.

Schönmal herzlichen Dank!

Hi,

ist zwar nicht für´s Nexus, evtl. hilft´s ja

http://www.fhemwiki.de/wiki/Kindle_Display

Gruß mattes

Mitch

FHEM im Proxmox Container

koerly

Hallo l2r Michael,

mit Deiner Lösung habe ich einen Teilerfolg erreicht.

es werden mir die ersten beiden Kalendereinträge mit Platzhalter gefüllt.
ABER nur wenn ich "text all" statt "text modeUpcoming" benutze.
"text modeUpcoming" macht den Zeilenumbgruch aber füllt in jedes Feld den ersten Termin ein.

"text all" füllt mir die ersten 2 Termine mit den richtigen Daten ... Termin 3 und 4 kopiert er wieder aus dem 2ten.

attr fr Expr43 {kalender1(fhem("get FHEMKalender text all 4"))}
attr fr Expr44 {kalender2(fhem("get FHEMKalender text all 4"))}
attr fr Expr45 {kalender3(fhem("get FHEMKalender text all 4"))}
attr fr Expr46 {kalender4(fhem("get FHEMKalender text all 4"))}


meine 99_myUtils.pm

sub kalender1($)
{
my ($kalender)  = @_;
my($termin11,$termin12)=split(/\n/,$kalender);
return $termin11;
}
sub kalender2($)
{
my ($kalender)  = @_;
my($termin21,$termin22)=split(/\n/,$kalender);
return $termin22;
}
sub kalender3($)
{
my ($kalender)  = @_;
my($termin31,$termin32)=split(/\n/,$kalender);
return $termin32;
}
sub kalender4($)
{
my ($kalender)  = @_;
my($termin41,$termin42)=split(/\n/,$kalender);
return $termin42;
}


Die Vorlage ist sauber mit KALENDER1, KALENDER3, KALENDER3, KALENDER4 beschriftet
und es sind auch Folgetermine vorhanden.

Wo hab ich bloß den Fehler ?
rpi2; cul868; jeelink

l2r

#228
hi,

der erstellt ein Art Array  mit einem Elemet nach jedem split und speichert das in den angegebenen Variablen.
sprich wenn du 4 termine hast dann musst du auch 4 Variablen angeben:
sub kalender3($)
{
my ($kalender)  = @_;
my($termin31,$termin32,$termin33)=split(/\n/,$kalender);
return $termin33;

sub kalender4($)
{
my ($kalender)  = @_;
my($termin41,$termin42,$termin43,$termin44)=split(/\n/,$kalender);
return $termin44;



gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

koerly

Der Wald hat zuviel Bäume vielen Dank Michael für deinen Durchblick.

Kindle1 ist fertig.

rpi2; cul868; jeelink

StefanStrobel

#230
Hallo,

ich habe das FileReplacer Modul nochmals überarbeitet um es flexibler zu machen. Dadurch ändern sich jedoch auch ein paar Attribute:

attr fr ReplacementEncode UTF-8
ersetzt das alte UTF8-Encode. Dadurch können bei Bedarf auch andere Encodings angegeben werden. Wer kein Encoding haben möchte, kann das Attribut einfach weglassen.

attr fr PostCommand ersetzt doPNG etc. Damit kann man den Befehl selbst spezifizieren und muss das Modul nicht anpassen, wenn man spezielle Befehle, Pfade etc. haben möchte.

Ich verwende es folgendermassen:

define fr FReplacer /opt/fhem/www/images/display.svg /opt/fhem/www/images/status.svg 60
attr fr PostCommand bash -c 'inkscape /opt/fhem/www/images/status.svg -e=tmp.png;; convert tmp.png -type GrayScale -depth 8 /opt/fhem/www/images/status.png' >/dev/null 2>&1 &
attr fr ReplacementEncode UTF-8


Wer die Größe und Hintergrundfarbe anpassen muss:
attr fr PostCommand bash -c 'inkscape /opt/fhem/www/images/status.svg -e=tmp.png -b=rgb\(255,255,255\) --export-height=1024 --export-width=758;; convert tmp.png -type GrayScale -depth 8 /opt/fhem/www/images/status.png' >/dev/null 2>&1 &
wenn die Konvertierung nicht funktioniert würde ich zur Fehlersuche natürlich die Ausgaben nicht nach /dev/null sondern in eine Datei leiten.

An den Regex / Expr Attributen hat sich nichts geändert.

Wenn das so bei Euch auch funktioniert sollte es fertig zum Einchecken sein.

Gruss
   Stefan

Edit: die aktuelle Version des Moduls ist eingecheckt.

AHA1805

#231
Zitat von: koerly am 30 Oktober 2014, 09:10:31
So, mein Kindle ist jetzt Voll genug mit Daten... mehr passt nicht drauf ;)


Hallo koerly,

Schaut guad aus dein Layout :-)
Magst das SVG mit Code posten?
Hast du die Icons selbst gestaltet, bzw wo finde ich diese?

Ich kämpfe gerade mit meinem Kindle Pw2, der aktualisiert seit der Zeitumstellung nicht mehr automatisch, sondern nur wenn man ihn kurz manuell ein und ausschaltet.

Schöne grüße
Hannes

Gesendet von Tapatalk
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

StefanStrobel

Hallo Hannes,

mein PW2 macht das gleiche.
Ich denke aber dass ich das Problem schon eingegrenzt habe. Sieht nach Race-Condition bei der Programmierung der RTC-Alarm-Funktion im Onlinescreensaver aus.
Um das zu umgehen habe ich schon einiges am Code geändert und teste das derzeit. Warum das durch die Zeitumstellung getriggert wurde ist mir aber noch nicht klar.

Gruss
   Stefan

koerly

@Stefan ... hab mich noch nicht getraut die neue 98_FReplacer.pm einzuspielen und zu testen, weil die alte so gut läuft.
                   du hast die 98_FileReplacer Datei in 98_FReplacer.pm umbenannt ... muss ich beim benutzen der neuen umbenannten
                   sonstnochwas beachten  ?

                   Kindle4 macht keine Probleme mit der Zeitumstellung

@Hannes ... benutze schon wieder eine neue svg Datei ... Als Icons kannste alles nehmen  was du findest... ich wandel es halt immer in
                     Graustufen um

rpi2; cul868; jeelink

AHA1805



Zitat von: StefanStrobel am 05 November 2014, 08:11:28
Hallo Hannes,

mein PW2 macht das gleiche.
Ich denke aber dass ich das Problem schon eingegrenzt habe. Sieht nach Race-Condition bei der Programmierung der RTC-Alarm-Funktion im Onlinescreensaver aus.
Um das zu umgehen habe ich schon einiges am Code geändert und teste das derzeit. Warum das durch die Zeitumstellung getriggert wurde ist mir aber noch nicht klar.

Gruss
   Stefan

Hallo Stefan, hatte zuerst gesucht ob sich die Firmware automatisch aktualisiert hat obwohl ich das eigentlich ungebunden habe.
Freut mich :), dass du dich dem Thema annimmst, den ich hatte keinen Rat was ich tun könnte.

Zitat von: koerly am 05 November 2014, 11:36:33


@Hannes ... benutze schon wieder eine neue svg Datei ... Als Icons kannste alles nehmen  was du findest... ich wandel es halt immer in
                     Graustufen um

Danke werde mir mal deine Vorlage anschauen.
Kannst du Bitte deine FileReplace Attribute auch Posten,
hab den Betrag etwas verfolgt.

Danke und schöne Grüße aus München
Hannes

Gesendet von Tapatalk

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Timmy.m

Hallo Stefan.

Ich bin immer noch absolut begeistert von Deiner Arbeit.
Eine Sache würde ich mir Wünschen, wenn heute schon Weihnachten wäre...

Es wäre echt toll, wenn man z.B. auf das Attribut "Expr1" klicken könnte und dass es automatisch in die Editor-Eingabezeile eingetragen wird, um den bereits vorhandenen Wert erneut editieren zu können. Für "PostCommand" funktioniert es.

Ich weiß nur nicht, ob du einen Einfluss darauf hast, oder ob es eine FHEM Sache ist.

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

#236
Hallo Hannes,

auch ich habe das automatische updaten eigentlich unterbunden, aber irgendwas muss sich geändert haben. Die Zeitzone alleine kann es nicht sein, da die Timer alle mit UTC arbeiten sollten.
Im Kerner Ringbuffer fällt mir folgende Zeile auf:
[54998.390259] ar6000_drc.c: ar6000_transfer_bin_file cal file name: /opt/ar6k/target/AR6003/hw2.1.1/bin/active_calibration_pinot
Ich erinnere mich nicht daran, die früher schon gesehen zu haben.
Anbei jedenfalls mal meine geänderte utils.sh. Da stehen jetzt eine Menge Debug-Ausgaben drin (bei mir gehen die in /tmp/onlinescreensaver.log). Das ganze ist noch keine finale Lösung, aber bei mir klappt es mit den Änderungen bisher. Im Prinzip verwende ich jetzt zwei Alarm-Timer parallel. Falls der erste nicht greifen sollte oder der Kindle während das WLAN hochfährt schon wieder einschläft (im bisherigen Code war in der Zeit kein Alarm aktiv), dann greift der zweite Timer 2 Minuten später und weckt den Kindle wieder auf. Wie gesagt betrachte ich das noch nicht als echte / saubere Lösung. Eigentlich müsste man den Code etwas massiver umbauen, nur dazu bin ich noch nicht gekommen.

in der config.sh sind folgende Änderungen nötig:

# Whether to create log output (1) or not (0).
LOGGING=1

# Where to log to - either /dev/stderr for console output, or an absolute
# file path (beware that this may grow large over time!)
#LOGFILE=/dev/stderr
LOGFILE=/tmp/onlinescreensaver.log

# whether to disable WiFi after the script has finished (if WiFi was off
# when the script started, it will always turn it off)
DISABLE_WIFI=0

# Domain to ping to test network connectivity. Default should work, but in
# case some firewall blocks access, try a popular local website.
TEST_DOMAIN="www.google.com"

# How long (in seconds) to wait for an internet connection to be established
# (if you experience frequent timeouts when waking up from sleep, try to
# increase this value)
NETWORK_TIMEOUT=30



#############################################################################
# Advanced
#############################################################################

# the real-time clock to use (0, 1 or 2)
RTC=1
RTC2=0


entscheidend sind die Zuweisungen zu RTC und RTC2.

Gruss
   Stefan

StefanStrobel

Hallo Tim,

Danke für das Lob :-)
Das mit dem Klicken auf Expr1 hätte ich auch gerne, aber das ist eine Änderung in Fhem. Ich verwende Wildcard-Attribute im Modul und die werden noch nicht im FhemWeb voll unterstützt. Rudi hatte aber schon mal seine prinzipielle Bereitschaft signalisiert, das einzubauen. In HTTPMOD habe ich übrigens das gleiche Problem.
Leider kenne ich mich selbst im Fhemweb code zu wenig aus um dafür einen Patch anzubieten.

Gruss
   Stefan

AHA1805



Zitat von: StefanStrobel am 05 November 2014, 22:58:34

# Domain to ping to test network connectivity. Default should work, but in
# case some firewall blocks access, try a popular local website.
TEST_DOMAIN="www.google.com"



Würde für TEST_DOMAIN nicht auch Fritz.Box gehen?


Hallo Stefan,

danke  schon mal für den Patch, werde ich Testen wenn ich wieder zu Hause bin :-)

Gesendet von Tapatalk

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

micomat

Als "Domain" sollte auch jede x-beliebige IP-Adresse herhalten koennen.
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200