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) ==== | ||