Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
linux:fhem:bilderrahmen [07.01.2016 16:31] marc [Fotodatei generieren] |
linux:fhem:bilderrahmen [08.01.2016 07:23] (aktuell) marc |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Bilderrahmen als Display für fhem@raspberry ====== | + | ====== Daten aus fhem holen ====== |
- | + | ||
- | + | ||
- | Siehe FHEM-Wiki http:// | + | |
- | + | ||
- | ===== Installation ===== | + | |
- | + | ||
- | Die Installation kann auf dem raspberry Pi selbst erfolgen oder auf einem dedizierten Rechner. Bei der Installation auf einem raspberry pi (2) sind mögliche Auswirkungen auf die Perfomance zu berücksichtigen. | + | |
- | + | ||
- | Für diesen Fall benötigte Software: | + | |
- | + | ||
- | * socat | + | |
- | * ImageMagick | + | |
- | * lcd4linux | + | |
- | + | ||
- | lcd4linux sollte beim Hochfahren des Raspberry Pi automatisch starten. | + | |
- | + | ||
- | ===== Daten aus fhem holen ===== | + | |
- | + | ||
- | In /opt/fhem wird zunächst die Datei getFHEM.sh angelegt und den individuellen Ansprüchen nach modifiziert: | + | |
#!/bin/bash | #!/bin/bash | ||
Zeile 65: | Zeile 46: | ||
echo " | echo " | ||
fi | fi | ||
- | # | ||
- | #--create bar graphs | ||
- | ./ | ||
- | ./ | ||
- | ./ | ||
- | ./ | ||
- | ./ | ||
- | ./ | ||
- | |||
- | |||
- | Diese Datei wird nun mit | ||
- | |||
- | crontab -e | ||
- | |||
- | in die Tabelle des cron-Dämons eingetragen (Ausführung hier minütlich): | ||
- | |||
- | * * * * / | ||
- | |||
- | ===== lcd4linux konfigurieren ===== | ||
- | |||
- | / | ||
- | |||
- | Display dpf { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Variables { | ||
- | tick 1000 | ||
- | dick 2000 | ||
- | pick 10000 | ||
- | | ||
- | | ||
- | } | ||
- | Widget Foto { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Widget Alarm { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Widget Solar { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Widget Strom { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Widget Gas { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | Widget Temp { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | Widget Date { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | ##################################################################### | ||
- | Display ' | ||
- | ##################################################################### | ||
- | Layout Normal { | ||
- | # X/Y exchanged !! | ||
- | Layer 1 { | ||
- | X0.Y0 ' | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | |||
- | |||
- | ===== Bild generieren ===== | ||
- | |||
- | ==== Fotodatei generieren ==== | ||
- | |||
- | Erzeugung eines PNG-Files aus einer aus einem Ordner zufällig ausgewählten anderen Datei. Dazu wird im Verzeichnis /opt/fhem die Datei createPic.sh angelegt: | ||
- | |||
- | #!/bin/bash | ||
- | # | ||
- | # | ||
- | # | ||
- | #-- Directory Containing Pictures | ||
- | DIR="/ | ||
- | # | ||
- | # Command to Select a random jpg file from directory | ||
- | pic=$(ls $DIR | shuf -n1) | ||
- | # | ||
- | #-- Correct the size | ||
- | convert $DIR/$pic -resize 800x600 back.png | ||
- | #convert $DIR/$pic -rotate -90 -resize 450x600 back.png | ||
- | |||
- | ==== Datumsanzeige generieren ==== | ||
- | |||
- | Erzeugung eines Bildes mit dem gegenwärtigen Datum und der jetzigen Zeit. Dazu wird im Verzeichnis /opt/fhem die Datei createDate.sh angelegt: | ||
- | |||
- | |||
- | #!/bin/bash | ||
- | # | ||
- | # | ||
- | # | ||
- | #--date pieces | ||
- | ddate=`date +%a%_3e.%_4b%_5Y` | ||
- | dtime=`date +%k:%M` | ||
- | # | ||
- | convert -size 320x240 canvas:none -stroke snow4 -size 1x90 -tile gradient: | ||
- | \( +clone -background snow4 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \ | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background firebrick3 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | | ||
- | | ||
- | # | ||
- | #-- correct the size | ||
- | convert b_date.png -resize 200x150 date.png | ||
- | |||
- | ==== Temperaturanzeige generieren ==== | ||
- | |||
- | Dazu wird im Verzeichnis /opt/fhem die Shell-Datei createTemp.sh angelegt: | ||
- | |||
- | #!/bin/bash | ||
- | # | ||
- | # | ||
- | # | ||
- | # parameters for internal temperature/ | ||
- | ti=$1 | ||
- | rhi=$2 | ||
- | # parameters for external temperature/ | ||
- | ta=$3 | ||
- | rha=$4 | ||
- | pa=$5 | ||
- | # | ||
- | #-- formatted temperature valuesa | ||
- | deg=`printf " | ||
- | tif=" | ||
- | taf=" | ||
- | # | ||
- | #-- formatted humidity values | ||
- | rif=" | ||
- | raf=" | ||
- | # | ||
- | #-- formatted pressure | ||
- | paf=" | ||
- | # | ||
- | convert -size 320x480 canvas:none -stroke snow4 -size 1x90 -tile gradient: | ||
- | \( +clone -background snow4 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \ | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background darkslategray -shadow 80x1+1+1 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background firebrick3 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background darkslategray -shadow 80x1+1+1 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background firebrick3 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background darkslategray -shadow 80x1+1+1 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background firebrick3 -shadow 80x3+3+3 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | \( +size -font Helvetica \ | ||
- | | ||
- | \( +clone -background slateblue4 -shadow 80x1+2+2 \) \ | ||
- | +swap -background none -layers merge \) \ | ||
- | | ||
- | | ||
- | | ||
- | # | ||
- | # correct the size | ||
- | convert b_temp.png -resize 200x300 temp.png | ||
- | #convert b_temp.png -rotate -90 -resize 300x200 temp.png | ||
- | |||
- | |||
- | ==== (Balkendiagramme generieren) ==== | ||
- | |||
- | |||
- | ==== (Alarmbild generieren) ==== |