YAF

Aus FHEMWiki

Projekt YAF

YAF entstand als Projektarbeit von Daniel Weisensee und Markus Mangei an der Hochschule Karlsruhe Technik und Wirtschaft.

Es steht für “Yet Another Floorplan” und soll eine Alternative zum bisher vorhandenen Floorplan bieten. YAF basiert auf ClientSeite aus den JavaScript Frameworks JQuery und JQuery UI, serverseitig werden die CPAN Module XML::LibXML (bindet libxml2 an Perl an) und JSON::XS verwendet, um die Konfiguration zu persisitieren und um Daten zwischen der Oberfläche und dem Server austauschen zu können.

Durch die Erweiterbarkeit von Widgets soll YAF flexibel gehalten werden. Mit Hilfe dieser Schnittstelle können problemlos Widgets von verschiedenen Entwicklern veröffentlicht werden, ohne dass sich diese über gewünschte Änderungen am YAF Code mit der Community abstimmen müssen. Es soll ähnlich dem Prinzip der Widgets unter Android oder Windows funktionieren. Widgets sollen speziell für FHEM Plugins geschrieben werden, um somit möglichst komfortable Oberflächen bieten zu können.


  • Das Projekt ist freie Software unter der GNU General Public License und befindet sich auf dem offiziellen FHEM SourceForge.net Repository:

https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/YAF/

  • Im FHEM Forum gibt es einen Thread mit dem Titel “Yet Another Floorplan YAF”:

http://forum.fhem.de/index.php?t=msg&th=12629&start=0&rid=0

Installation

Installation mit FHEM Update

update thirdparty http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/YAF/ yaf

Voraussetzungen

Das PERL Modul JSON::XS [1] ist notwendig.

Installation z.B. über den Befehl

/opt/bin/cpanm JSON::XS

Konfiguration

YAF wird durch die folgende Definition aktivert:

define yaf YAF

Die weitere Konfiguration kann komplett über das YAF Interface erfolgen, außer das Setzen des Hintergrundbildes. Der Pfad zum Hintergrundbild muss im Attribut backgrounds definiert werden.

attr yaf backgrounds 1,1,1,/path/to/image;;2,1,1,/path/to/another/image.jpg
attr yaf refresh_interval 10
attr yaf views 1,Haus;;2,Test

Widgets

Ein Widget ist die Darstellung eines Gerätes (Device) auf dem Floorplan. Die Konfiguration des Widget wird im Device unter der Eigenschaft yaf_# gespeichert, wobei # die Nummer des YAF-View ist, in der das Widget angezeigt wird.

Beispiel:

attr somedevice yaf_1 id=3,fhemname=somedevice,x_pos=432,y_pos=205,name=fhttk,

fhttk

fs20st

fs20easylamp

generic

fht80

Zeigt Informationen über eine FHT80 Heizungssteuerung an.

Die Konfiguration unterstützt nicht alle Parameter über das YAF Interface, einige müssen über FHEMWeb gesetzt werden.

Beispiele:

attr FHT_abcd yaf_1 id=14,fhemname=FHT_abcd ,y_pos=235,x_pos=239,name=fht80,labeltype=Alias,
attr FHT_wxyz yaf_1 id=4,fhemname=FHT_wxyz ,y_pos=241,x_pos=434,name=fht80,labeltype=Alias,size=0.8,
attr FHT_lmno yaf_1 id=10,fhemname=FHT_lmno ,nomode=1,y_pos=183,x_pos=533,name=fht80,labeltype=Comment,size=0.7,
id interne ID des Widgets, immer der erste Parameter
fhemname interner Name des Geräte im FHEM
x_pos X-Koordinate des Widget
y_pos Y-Koordinate des Widget
name Typ des Widgets
labeltype Welcher Eigenschaftswert soll als Label angezeigt werden?
nomode Ausblenden der Modusanzeige
size Relative Textgröße