FRITZFON: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
(Beispiel im LCARS-Stil hinzugefügt.)
Zeile 65: Zeile 65:


[[File:Fhem120.jpg]]
[[File:Fhem120.jpg]]
== Beispiel im LCARS-Stil ==
Die Vorlage im Format 240 x 320. Lt. AVM soll das aktuell (30.01.2015) die Mindesgröße sein:
[[Datei:Vorlage_LCARS.jpg]]
Das Script, um die Vorlage mit Daten zu füllen:
<nowiki>#!/bin/bash
### Werte auslesen
TGV='{Value("TG_TempLuft")}'
TGC=`echo -e $TGV | socat -t50 - TCP:fhem:7072`
WGV='{Value("WZ_Thermostat_Weather")}'
WGC=`echo -e $WGV | socat -t50 - TCP:fhem:7072`
KGV='{Value("KE_Thermostat_S")}'
KGC=`echo -e $KGV | socat -t50 - TCP:fhem:7072`
BGV='{ReadingsVal("FL_Briefkasten_LED","state",0)}'
BGC=`echo -e $BGV | socat -t50 - TCP:fhem:7072`
### jpg erstellen
convert -pointsize 28 -font /usr/share/fonts/truetype/ttf-lcars3/LCARSGTJ3.ttf -fill black \
-draw 'text 50,60 "Garten"' -draw "text 117,60 \"$TGC\"" \
-draw 'text 50,100 "Wohnz."' -draw "text 117,100 \"$WGC\"" \
-draw 'text 50,138 "Keller"' -draw "text 117,138 \"$KGC\"" \
-draw 'text 50,177 "Briefk."' -draw "text 117,177 \"$BGC\"" \
-pointsize 36 -draw 'text 5,105 "…"' \
-pointsize 20 -draw 'text 5,179 "FHEM"' Vorlage_LCARS.jpg fritzlcars.jpg
### und ab auf's FritzFon
./fritzfonpic.sh fritzlcars.jpg 610</nowiki>
Und das Ergebnis:
[[Datei:Ergebnis LCARS.jpg]]


[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]

Version vom 30. Januar 2015, 06:44 Uhr

Nutzung eines FritzBox!Fon MT-F zur Darstellung von Messwerten

Ich war auf der Suche nach einem Display zur Anzeige von Messwerten in der Wohnung. Der Digitale Bilderrahmen hier im Wiki hat mich dann auf die Idee gebracht unsere vorhandenen FritzBox!Fon MT-F Mobilteile als Anzeigeeinheit zu verwenden.

Beipspiel eines Hintergrundbildes auf dem MT-F

Mtf beispiel.jpg

Voraussetzungen

  • Fritz!Box 7270 (darauf ist es getestet. Sollte auch bei anderen Fritz!Boxen laufen, die das MT-F unterstützen.
  • Fritz!Fon MT-F (MT-D kann das mit dem Hintergrundbild auch. Wurde bis jetzt aber noch nicht getestet)
  • curl muss installiert sein
  • convert aus ImageMagick wird verwendet um die Daten in das jpg-Bild zu schreiben.

Was ist zu tun

Mit einen Script wird ein Hintergrundbild erzeugt, das die Messdaten in das jpg schreibt. Danach wird das Shellscript mit der jpg-Datei und dem Nummer des Zieltelefons als Parameter aufgerufen.

Update-Intervall

Man sollte nicht zu oft das Hintergrundbild der Telefone tauschen. Manchmal hängen sich diese sonst auf. Alle 30 Minuten ist ein guter Wert. Dann habe ich keine Abstürze seit ca. 2 Monaten festgestellt.

Shellscript fritzfonpic.sh, das mit curl das Hintergrundbild an die Fritz!Box überträgt und für das Mobilteil bekanntgibt.

In dem Script muss das Passwort und ggf. die IP der Fritz!Box angepasst werden

#!/bin/sh
PHONEID=$2
PHONEBOOKID=255
PHONEBOOKTYPE=1
IP=fritz.box
PASSWD=PASSWORT_DER_FRITZBOX
TMPFILE=$1
CURL=$(which curl)
login(){
# neues Loginverfahren seit xx.04.76
	eval "$($CURL -s "[http://$IP/cgi-bin/webcm http://$IP/cgi-bin/webcm]" -d "getpage=../html/login_sid.xml" -d "sid=$cgisid" | sed -n 's,.*<\(Challenge\|iswriteaccess\|SID\)>\([^<]*\).*,\1=\2;,p')"
	if [ "$iswriteaccess" = 0 ] && [ "$SID" = "0000000000000000" -o -z "$SID" ]; then
		chksum="$(echo -n "$Challenge-$PASSWD" | sed -e 's,.,&\n,g' | tr '\n' '\0' | md5sum)"
		eval "$($CURL -s "[http://$IP/cgi-bin/webcm http://$IP/cgi-bin/webcm]" -d "getpage=../html/login_sid.xml" -d "login:command/response=$Challenge-${chksum%% *}" | sed -n 's,.*<SID>\(.*\)</SID>.*,SID=\1,p')"
		cgisid="$SID"
		echo -n "$cgisid" >/tmp/sid
	fi
}
change(){
	echo "CHANGE $cgisid"
 	$CURL -o /dev/null \
	-F "sid=$cgisid" \
	-F "PhonebookId=$PHONEBOOKID" \
	-F "PhonebookType=$PHONEBOOKTYPE" \
	-F "PhonebookEntryId=$PHONEID" \
	-F "PhonebookPictureFile=@$TMPFILE" \
	[http://$IP/cgi-bin/firmwarecfg http://$IP/cgi-bin/firmwarecfg]
}
echo "login ...."
login
echo "change ...."
change

einfaches Beispiel eines Shell-Scripts das 3 Werte in ein jpg schreibt

#!/bin/sh
LASTTEMP=-2.1
LASTHYGRO=88
LASTWIND=3.0
convert -pointsize 8 -weight Bold -font Helvetica -fill blue -draw "text 65,40 \"Temp: $LASTTEMP\"" -draw "text 65,60 \"Feuchte: $LASTHYGRO \"" -draw "text 65,80 \"Wind: $LASTWIND \"" fhem120.jpg fritzergebnis.jpg
./fritzfonpic.sh fritzergebnis.jpg 610
./fritzfonpic.sh fritzergebnis.jpg 611

Die MT-F Telefone erhalten bei der Konfiguration eine interne Nummer. Eines hat in dem Beispiel die 610 und das andere die 611.

Beispielvorlage für das Test-Shellscript

Ich habe mir erlaubt das fhem-Logo zu verwenden :-). Die Vorlage hat den Bereich markiert der von der Fritz!Box mit Daten beschrieben wird.

Fhem120.jpg


Beispiel im LCARS-Stil

Die Vorlage im Format 240 x 320. Lt. AVM soll das aktuell (30.01.2015) die Mindesgröße sein: Vorlage LCARS.jpg

Das Script, um die Vorlage mit Daten zu füllen:

#!/bin/bash

### Werte auslesen
TGV='{Value("TG_TempLuft")}'
TGC=`echo -e $TGV | socat -t50 - TCP:fhem:7072`

WGV='{Value("WZ_Thermostat_Weather")}'
WGC=`echo -e $WGV | socat -t50 - TCP:fhem:7072`

KGV='{Value("KE_Thermostat_S")}'
KGC=`echo -e $KGV | socat -t50 - TCP:fhem:7072`

BGV='{ReadingsVal("FL_Briefkasten_LED","state",0)}'
BGC=`echo -e $BGV | socat -t50 - TCP:fhem:7072`

### jpg erstellen
convert -pointsize 28 -font /usr/share/fonts/truetype/ttf-lcars3/LCARSGTJ3.ttf -fill black \
-draw 'text 50,60 "Garten"' -draw "text 117,60 \"$TGC\"" \
-draw 'text 50,100 "Wohnz."' -draw "text 117,100 \"$WGC\"" \
-draw 'text 50,138 "Keller"' -draw "text 117,138 \"$KGC\"" \
-draw 'text 50,177 "Briefk."' -draw "text 117,177 \"$BGC\"" \
-pointsize 36 -draw 'text 5,105 "…"' \
-pointsize 20 -draw 'text 5,179 "FHEM"' Vorlage_LCARS.jpg fritzlcars.jpg

### und ab auf's FritzFon
./fritzfonpic.sh fritzlcars.jpg 610

Und das Ergebnis: Ergebnis LCARS.jpg