2012-11-25 17:34:28 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2013-03-26 20:46:50 +00:00
< html >
< head >
2013-09-02 10:52:23 +00:00
< title > FHEM Referenz< / title >
< script type = "text/javascript" src = "fhemdoc.js" > < / script >
< noscript >
< link rel = "stylesheet" type = "text/css" href = "../www/pgm2/style.css" / >
< / noscript >
2012-11-25 17:34:28 +00:00
< meta http-equiv = "Content-type" content = "text/html; charset=UTF-8" >
2013-03-26 20:54:06 +00:00
< link rel = "shortcut icon" href = "/fhem/icons/favicon.ico" / >
2012-11-25 17:34:28 +00:00
< / head >
< body >
< div id = "logo" > < / div >
< div id = "menu" >
< h3 > fhem.pl Referenz< / h3 >
2012-11-30 17:21:43 +00:00
Version: < a href = "commandref.html" > EN< / a > < b > DE< / b >
2012-11-25 17:34:28 +00:00
< / div >
< div id = "right" >
< h3 > Inhalt< / h3 >
< ul >
< a href = "#intro" > Einleitung< / a > < br >
< a href = "#command" > FHEM Befehls-Typen< / a > < br >
2012-12-01 11:44:34 +00:00
< a href = "#devspec" > Gerä te-Spezifikation< / a > < br >
2012-11-25 17:34:28 +00:00
< br >
< b > FHEM-Befehle< / b >
< ul >
< a href = "#attr" > attr< / a >
< a href = "#backup" > backup< / a >
< a href = "#CULflash" > CULflash< / a >
2013-10-20 11:18:52 +00:00
< a href = "#cmdalias" > cmdalias< / a >
2012-11-25 17:34:28 +00:00
< a href = "#createlog" > createlog< / a >
< a href = "#define" > define< / a >
< a href = "#delete" > delete< / a >
< a href = "#deleteattr" > deleteattr< / a >
2013-01-19 13:36:29 +00:00
< a href = "#deletereading" > deletereading< / a >
2012-12-02 19:37:50 +00:00
< a href = "#fheminfo" > fheminfo< / a >
2012-11-25 17:34:28 +00:00
< a href = "#get" > get< / a >
< a href = "#getstate" > getstate< / a >
< a href = "#help" > ?,help< / a >
< a href = "#include" > include< / a >
< a href = "#inform" > inform< / a >
2013-01-16 19:33:31 +00:00
< a href = "#JsonList" > JsonList< / a >
2012-11-25 17:34:28 +00:00
< a href = "#list" > list< / a >
< a href = "#modify" > modify< / a >
2013-01-30 05:11:09 +00:00
< a href = "#notice" > notice< / a >
2012-11-25 17:34:28 +00:00
< a href = "#quit" > quit< / a >
< a href = "#reload" > reload< / a >
< a href = "#rename" > rename< / a >
< a href = "#rereadcfg" > rereadcfg< / a >
< a href = "#save" > save< / a >
< a href = "#set" > set< / a >
< a href = "#setdefaultattr" > setdefaultattr< / a >
2013-08-22 15:13:44 +00:00
< a href = "#setreading" > setreading< / a >
2012-11-25 17:34:28 +00:00
< a href = "#setstate" > setstate< / a >
< a href = "#shutdown" > shutdown< / a >
< a href = "#sleep" > sleep< / a >
< a href = "#trigger" > trigger< / a >
< a href = "#update" > update< / a >
< a href = "#usb" > usb< / a >
2013-07-13 11:56:22 +00:00
< a href = "#version" > version< / a >
2013-03-26 20:46:50 +00:00
< a href = "#xmllist" > xmllist< / a >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
2012-12-01 11:44:34 +00:00
< b > Gerä te< / b >
2012-11-25 17:34:28 +00:00
< ul >
< a href = "#global" > global< / a > < br >
< / ul >
< br >
< b > Hilfs (Erweiterungs-) Module< / b >
< ul >
2013-03-26 20:46:50 +00:00
< a href = "#at" > at< / a >
< a href = "#autocreate" > autocreate< / a >
< a href = "#average" > average< / a >
2013-01-16 19:33:31 +00:00
< a href = "#Calendar" > Calendar< / a >
2013-12-20 15:27:31 +00:00
< a href = "#Dashboard" > Dashboard< / a >
2013-01-16 19:33:31 +00:00
< a href = "#DbLog" > DbLog< / a >
2013-03-26 20:46:50 +00:00
< a href = "#dewpoint" > dewpoint< / a >
< a href = "#dummy" > dummy< / a >
2013-04-28 12:40:28 +00:00
< a href = "#eventTypes" > eventTypes< / a >
2012-11-25 17:34:28 +00:00
< a href = "#FHEM2FHEM" > FHEM2FHEM< / a >
< a href = "#FHEMWEB" > FHEMWEB< / a >
2013-01-16 19:33:31 +00:00
< a href = "#FB_CALLMONITOR" > FB_CALLMONITOR< / a >
2012-11-25 17:34:28 +00:00
< a href = "#FileLog" > FileLog< / a >
2013-01-16 19:33:31 +00:00
< a href = "#FLOORPLAN" > FLOORPLAN< / a >
< a href = "#HCS" > HCS< / a >
< a href = "#Heating_Control" > Heating_Control< / a >
2013-11-03 09:40:05 +00:00
< a href = "#HMinfo" > HMinfo< / a >
2013-03-26 20:46:50 +00:00
< a href = "#holiday" > holiday< / a >
< a href = "#LightScene" > LightScene< / a >
2013-11-03 09:40:05 +00:00
< a href = "#mailcheck" > mailcheck< / a >
2012-11-25 17:34:28 +00:00
< a href = "#notify" > notify< / a >
2013-03-26 20:46:50 +00:00
< a href = "#PID" > PID< / a >
< a href = "#PRESENCE" > PRESENCE< / a >
< a href = "#PachLog" > PachLog< / a >
2013-11-03 09:40:05 +00:00
< a href = "#RSS" > RSS< / a >
< a href = "#RandomTimer" > RandomTimer< / a >
< a href = "#rain" > rain< / a >
2013-08-23 13:29:58 +00:00
< a href = "#readingsGroup" > readingsGroup< / a >
2013-11-25 19:37:48 +00:00
< a href = "#readingsProxy" > readingsProxy< / a >
2013-08-23 13:29:58 +00:00
< a href = "#remotecontrol" > remotecontrol< / a >
2013-03-26 20:46:50 +00:00
< a href = "#SUNRISE_EL" > SUNRISE_EL< / a >
2013-11-03 09:40:05 +00:00
< a href = "#SYSSTAT" > SYSSTAT< / a >
2012-11-25 17:34:28 +00:00
< a href = "#sequence" > sequence< / a >
2013-06-24 21:00:10 +00:00
< a href = "#speedtest" > speedtest< / a >
2012-11-25 17:34:28 +00:00
< a href = "#structure" > structure< / a >
2013-08-14 15:08:15 +00:00
< a href = "#SVG" > SVG< / a >
2012-11-25 17:34:28 +00:00
< a href = "#telnet" > telnet< / a >
2013-01-16 19:33:31 +00:00
< a href = "#Twilight" > Twilight< / a >
2013-03-15 09:19:21 +00:00
< a href = "#THRESHOLD" > THRESHOLD< / a >
2013-11-03 09:40:05 +00:00
< a href = "#WeakdayTimer" > WeakdayTimer< / a >
2012-11-25 17:34:28 +00:00
< a href = "#watchdog" > watchdog< / a >
< a href = "#weblink" > weblink< / a >
2013-01-16 19:33:31 +00:00
< a href = "#WOL" > WOL< / a >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
< a href = "#perl" > PERL Besonderheiten< / a > < br >
< a href = "#gnuplot-syntax" > gnuplot file Syntax< / a > < br >
< / ul >
< a name = "intro" > < / a >
< h3 > Einleitung< / h3 >
< ul >
2012-12-01 11:44:34 +00:00
< p > FHEM wird hauptsä chlich zur Heimautomatisierung benutzt,
ist aber ebenso fü r andere Aufgaben einsetzbar wo Benachrichtigungen,
2012-11-25 17:34:28 +00:00
Zeitschaltungen und Datensammlungen eine wichtige Rolle spielen.< / p >
2012-12-01 11:44:34 +00:00
< p > FHEM unterstü tzt verschiedene Hardwaregerä te die eine
2012-11-25 17:34:28 +00:00
Verbindung mittels unterschiedlicher Protokolle (z.B. FHZ1000 mit Interfaces vom
2012-12-01 11:44:34 +00:00
Typ FS20 und HMS, CM11 um mit X10 zu arbeiten) sowie logischer Gerä te wie FS20
oder FHT die einen Nachrichtenaustausch mit verschiedensten Gerä ten die diese
Protokolle verwenden ermö glichen.< / p >
2012-11-25 17:34:28 +00:00
< p >
2012-12-01 11:44:34 +00:00
FHEM ist modular. Abhä ngig von den unterschiedlichen Gerä ten werden in den
Modulen verschiedene Funktionen (z.B. define, get, set) realisiert. FHEM enthä lt
2012-11-25 17:34:28 +00:00
weitere Funktionen wie Trigger (< a href = "#notify" > notify< / a > ),
2012-12-01 11:44:34 +00:00
Zeitabhä ngige Funktionen (< a href = "#at" > at< / a > )
die die Funktionalitä t erweitern.< / p >
2012-11-25 17:34:28 +00:00
< p >
2012-12-01 11:44:34 +00:00
FHEM wird entweder ü ber einfache ASCII-Kommandozeilen gesteuert die in Dateien
wie z.B. der Konfigurationsdatei fhem.cfg gespeichert sind oder ü ber eine TCP/IP
Verbindung, entweder direkt in einer "telnet"-Sitzung, oder per fhem.pl im
Client-Modus oder ü ber eines der Webfrontends.< br > < / p >
< p class = "MsoNormal" > Wenn Sie den FHEM-Server starten, mü ssen Sie eine
Konfigurationsdatei auswä hlen:< / p >
2012-11-25 17:34:28 +00:00
< ul >
2012-12-28 12:11:44 +00:00
< code > perl fhem.pl fhem.cfg< / code >
2012-11-25 17:34:28 +00:00
< / ul >
2012-12-28 12:11:44 +00:00
< p > Nachstehend eine Minimal-Konfiguration Datei: < / p > < pre >
attr global < a href = "#logfile" > logfile< / a > log/fhem.log
attr global < a href = "#modpath" > modpath< / a > .
attr global < a href = "#statefile" > statefile< / a > log/fhem.save
2012-11-25 17:34:28 +00:00
attr global < a href = "#verbose" > verbose< / a > 3
2012-12-28 12:11:44 +00:00
define telnetPort < a href = "#telnet" > telnet< / a > 7072 global
define WEB < a href = "#FHEMWEB" > FHEMWEB< / a > 8083 global< / pre >
2012-11-25 17:34:28 +00:00
2012-12-28 12:11:44 +00:00
Die letzten zwei Zeilen definieren einen telnet und einen WEB Zugang, beide kö nnen aber
bei Bedarf auch abgeschaltet werden.< br > < br >
Die WEB Schnittstelle kann ü ber
< ul >
http://< fhemhost> :8083
< / ul >
erreicht werden.
< br > < br >
2012-11-25 17:34:28 +00:00
2012-12-01 11:44:34 +00:00
Die Kommunikation mit FHEM kann entweder in einer "session" (ü ber telnet) oder
2012-12-28 12:11:44 +00:00
ü ber einzelne Klient-Kommandos (ü ber fhem.pl) erfolgen. Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
2012-12-28 12:11:44 +00:00
< code > telnet < fhemhost> 7072< br >
2012-12-01 11:44:34 +00:00
< NL> < / code > (Die Betä tigung der " Enter" -Taste schaltet in den "prompt"
2012-11-25 17:34:28 +00:00
Modus)< code > < br >
< command> ...< br >
quit< / code > < br >
< / ul >
oder
< ul >
2012-12-28 12:11:44 +00:00
< code > fhem.pl < fhemhost> :7072 "< command> ..."< / code >
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
2012-12-28 12:11:44 +00:00
< br >
2012-11-25 17:34:28 +00:00
< a name = "command" > < / a >
< h3 > FHEM Befehlstypen< / h3 >
< ul >
2013-06-09 10:43:34 +00:00
Es gibt drei Arten von Befehlen: "fhem" Befehle (werden in diesem Dokument
beschrieben), SHELL-Befehle (diese mü ssen von doppelten
Anfü hrungszeichen "" eingeschlossen werden) und PERL-Ausdrü cken (von
geschwungenen Klammern {} eingeschlossen). SHELL-Befehle oder
PERL-Ausdrü cke werden fü r komplexe < a href = "#at" > at< / a > oder < a
href="#notify">notify< / a > Ausdrü cke benö tigt, kö nnen aber auch
als "normale" Befehle angewendet werden.
< br >
< br >
Die folgenden drei Befehle bewirken z.B. dasselbe Ergebnis, wenn sie am
telnet-Prompt eingegeben werden:
2012-11-25 17:34:28 +00:00
< ul >
set lamp off< br >
"fhem.pl 7072 "set lamp off""< br >
{fhem("set lamp off")}< br >
< / ul >
2013-06-09 10:43:34 +00:00
SHELL-Kommandos werden im Hintergrund ausgefü hrt,
2012-12-01 11:44:34 +00:00
PERL-Ausdrü cke und FHEM-Kommandos werden im Haupt-"thread" ausgefü hrt. Um
PERL-Ausdrü cke leichter eingeben zu kö nnen, sind einige Spezialfunktionen und
2013-08-07 11:18:15 +00:00
Variablen verfü gbar. Lesen Sie sich bitte die Abschnitte < a href = "#perl" >
2012-12-01 11:44:34 +00:00
Perl special< / a > zum besseren Verstä ndnis durch.< / p >
2012-11-25 17:34:28 +00:00
< p > Um FHEM-Befehle in einen SHELL-Script zu triggern (dies ist
2012-12-01 11:44:34 +00:00
eine "andere" Mö glichkeit), benutzen Sie bitte die oben beschriebene Client-Form
2013-06-09 10:43:34 +00:00
der fhem.pl.
< br >
Mehrere FHEM-Kommandos hintereinander werden mittels
2012-11-25 17:34:28 +00:00
Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen
2012-12-01 11:44:34 +00:00
benutzt werden, mü ssen sie mittels doppelten Semikola geschü tzt werden. Lesen
2013-06-09 10:43:34 +00:00
Sie sich bitte die < b > Bermerkungen < / b > des < a href = "#notify" > notify< / a > -Abschnittes zu Kommandoparametern und Regeln durch.
< br >
Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur
Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile
schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.
2012-11-25 17:34:28 +00:00
< ul >
define lampoff at 07:00 set Lamp1 off; set Lamp2 off< br >
define lampoff at 07:00 set Lamp1 off;; set Lamp2 off< br >
< / ul >
2013-06-09 10:43:34 +00:00
< br >
Fü r jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 fü r 10 Minuten einzuschalten schreibt man:
< ul >
define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
< / ul >
Keine Angst, das Vorherige kann in FHEM auch deutlich einfacher formuliert werden als:
< ul >
define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600
< / ul >
< br >
Befehle kö nnen entweder direkt eingegeben oder aus einer Datei (z.B. am
Start von FHEM aus der Konfugurationsdatei) eingelesen werden. Die Befehle
werden entweder direkt ausgefü hrt oder spä ter wenn sie als Argumente
eines < a href = "#at" > at< / a > oder < a href = "#notify" > notify< / a > -Befehles verwendet
werden.
2012-11-25 17:34:28 +00:00
< p > Eine mit einem \ abgeschlossene Zeile wird mit der
2012-12-01 11:44:34 +00:00
nachfolgenden Zeile verbunden. Somit kö nnen lange Befehlszeilen (die z.B. aus
2012-11-25 17:34:28 +00:00
mehreren PERL-Befehlen bestehen) auf mehrere Zeilen aufgteilt werden. Einige
2012-12-01 11:44:34 +00:00
Web-Frontends (z.B. webpgm2) erleichtern die Eingabe von sich ü ber mehrere
2012-11-25 17:34:28 +00:00
Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.< / p >
< p > < / p >
< / ul >
< a name = "devspec" > < / a >
2012-12-01 11:44:34 +00:00
< h3 > Gerä te-Spezifikation (devspec)< / h3 >
2012-11-25 17:34:28 +00:00
< ul >
2013-12-07 11:31:38 +00:00
Die Befehle
2012-11-25 17:34:28 +00:00
< a href = "#attr" > attr< / a > ,
< a href = "#set" > set< / a > ,
2013-08-07 11:18:15 +00:00
< a href = "#get" > get< / a > , usw.
2013-12-07 11:31:38 +00:00
< a href = "#attr" > attr< / a > ,
< a href = "#deleteattr" > deleteattr< / a > ,
< a href = "#displayattr" > displayattr< / a > ,
< a href = "#delete" > delete< / a > ,
< a href = "#get" > get< / a > ,
< a href = "#list" > list< / a > ,
< a href = "#set" > set< / a > ,
< a href = "#setreading" > setreading< / a > ,
< a href = "#setstate" > setstate< / a > ,
< a href = "#trigger" > trigger< / a >
2013-08-07 11:18:15 +00:00
kö nnen eine komplexere Gerä tespezifikation als Argumente enthalten,
die auch eine Anzahl von Gerä ten betreffen kann. Eine
2013-12-07 11:31:38 +00:00
Gerä tespezifikation kann folgendes sein:
2012-11-25 17:34:28 +00:00
< ul >
2013-12-07 11:31:38 +00:00
< li > ein einzelner Gerä tename. Dies ist der Normalfall< / li >
< li > eine durch Komma(,) getrennte Liste von Gerä tenamen< / li >
< li > ein regulä rer Ausdruck< / li >
< li > ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein
Reading-Name oder ein Attribut. WERT ist ein regulä rer Ausdruck.
Um die Bedingung zu negieren, sollte NAME!=WERT verwendet werden.
< / li >
< li > Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird,
dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck
gefiltert.
2012-11-25 17:34:28 +00:00
< / ul >
2013-06-09 10:43:34 +00:00
Beispiele:
2012-11-25 17:34:28 +00:00
< ul >
< code > set lamp1 on< / code > < br >
< code > set lamp1,lamp2,lamp3 on< / code > < br >
< code > set lamp.* on< / code > < br >
< code > set room=kitchen off< / code > < br >
2013-12-07 11:31:38 +00:00
< code > set room=kitchen:FILTER=STATE=on off< / code > < br >
< code > set room=kitchen:FILTER=STATE!=off off< / code > < br >
2012-11-25 17:34:28 +00:00
< code > list disabled=< / code > < br >
2013-12-07 11:31:38 +00:00
< code > list TYPE=FS20 STATE< / code > < br >
2012-11-25 17:34:28 +00:00
< / ul >
2013-06-09 10:43:34 +00:00
Bemerkungen:
< ul >
2013-12-07 11:31:38 +00:00
< li > die Spezifikation kann keine Leerzeichen enthalten.< / li >
< li > falls ein Gerä tename exakt dem Spezifikation entspricht, dann werden
keine regulä re Ausdrü cke oder Filter ausgewertet.
< li > zuerst wird die durch Komma getrennte Spezifikation abgearbeitet, dann
folgen die regulä ren Ausdrü cke und die Filter< / li >
< li > die Befehlszeile kann die selbe Gerä tebezeichnung mehrfach enthalten
z.B.: " set lamp3,lamp3 on" . Lamp3 wird hier zwei Mal
eingeschalten.< / li >
< li > um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie
bitte den Abschnitt zu < a href = "#structure" > structure< / a > .
< / ul >
2012-11-25 17:34:28 +00:00
< / ul >
< a name = "help" > < / a >
< h3 > ?, help< / h3 >
< ul >
< code > ?< / code > < br >
< code > help< / code > < br >
< br >
Sie erhalten eine Liste aller Befehle mit einer Kurzbeschreibung jedes
Befehls.
< / ul >
< a name = "attr" > < / a >
< h3 > attr< / h3 >
< ul >
< code > attr < devspec> < attrname> [< value> ] < / code > < br >
< br >
2013-08-07 11:18:15 +00:00
Dieser Befehl setzt ein Attribut fü r ein Gerä t welches mit < a
href="#define">define< / a > definiert wurde. Sie kö nnen auch Ihre eigenen
Attribute definieren, um sie in anderen Applikationen anzuwenden. Geben Sie
"< attr < name> ?" ein, um eine Liste verfü gbarer Attribute
anzuzeigen.
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
2012-12-01 11:44:34 +00:00
< p > Attribute, die fü r
alle Gerä te anwendbar sind: < / p >
2012-11-25 17:34:28 +00:00
< ul >
2013-08-18 14:13:59 +00:00
< a name = "verbose" > < / a >
< li > verbose< br >
Setzt den Schwellwert fü r die Logfile-Meldungen.
Mö gliche Werte sind:
< ul >
< li > 0 - Server start/stop
< / li > < li > 1 - Fehlermeldungen oder unbekannte Pakete
< / li > < li > 2 - bedeutende Ereigbisse/Alarme.
< / li > < li > 3 - ausgesendete Kommandos werden gelogged.
< / li > < li > 4 - von den einzelnen Gerä ten empfangene Daten.
< / li > < li > 5 - Fehlersuche.< / li >
< / ul >
Der fü r die < a href = "#global" > global< / a > Instanz gesetzte Wert gilt
als Voreinstellung fü r die Instanzen, die dieses Attribut nicht
gesetzt haben.
< / li >
2012-11-25 17:34:28 +00:00
< a name = "comment" > < / a >
< li > comment< br >
2012-12-01 11:44:34 +00:00
Fü gt einen beliebigen Kommentar hinzu.
2013-08-18 14:13:59 +00:00
2012-11-25 17:34:28 +00:00
< a name = "alias" > < / a >
< / li > < li > alias< br >
2013-08-18 14:13:59 +00:00
Wird in FHEMWEB benutzt, um ein en anderen Namen fü r ein Gerä t
anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der
Gerä tedefinition verwendet werden kö nnen.
2012-11-25 17:34:28 +00:00
< a name = "room" > < / a >
< / li > < li > room< br >
2013-08-18 14:13:59 +00:00
Filtert/gruppiert Gerä te.
Ein Gerä t kann zu mehr als einem Raum zugeordnet werden. In diesem
Fall mü ssen die Raumzuordnungen durch Kommata getrennt
angegeben werden.< br >
Gerä te, die dem Raum mit der Bezeichnung "hidden" zugeordnet
werden, erscheinen nicht auf der Webseite.
< a name = "group" > < / a >
2012-11-25 17:34:28 +00:00
< li > group< br >
2013-08-18 14:13:59 +00:00
Gerä tegruppen. FHEMWEB zeigt Gerä te die in die gleiche Gruppe
gehö ren auch in einer gemeinsamen Box an. Ein Gerä t kann zu
mehr als einer Gruppe gehö ren. In diesem Fall mü ssen die
entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
dieses Attribut nicht gesetzt ist, wird der in der Gerä tegruppe
gesetzte Gerä tetyp verwendet.
< / li >
< a name = "showtime" > < / a >
2012-11-25 17:34:28 +00:00
< li > showtime< br >
2013-08-18 14:13:59 +00:00
Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivitä t
anstelle des Status in der Gesamtansicht anzuzeigen. Nü tzlich z.B.
2013-09-07 06:07:34 +00:00
fü r FS20 PIRI Gerä te.
2012-11-25 17:34:28 +00:00
< / li >
2013-01-03 13:08:39 +00:00
< a name = "readingFnAttributes" > < / a >
2013-09-07 06:07:34 +00:00
< h4 > readingFnAttribute< / h4 >
2013-01-03 13:08:39 +00:00
Die folgenden Attribute werden bei Modulen verwendet, die standardisierte
"readings" Aktualisierung der fhem.pl benutzen. Informieren Sie sich in der
Liste der Modulattribute wenn Sie wissen mö chten ob dies
unterstü tzt wird.< br > < br >
< a name = "stateFormat" > < / a >
< li > stateFormat< br >
Ä ndert den Gerä testatus, dies ist z.Bsp. in der Ausgabe des list
Kommandos zu sehen, oder in der Raum& uumlbersicht von FHEMWEB. Falls
nicht gesetzt, dann wird das state Reading ü bernommen. Sonst werden
alle Wö rter im Wert des Attributes durch das entsprechende Reading des
Gerä tes ersetzt (soweit vorhanden). Falls der Wert in {}
eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die
Auswertung passiert bei jeder Ä nderung eines Readings.
< / li >
2012-11-25 17:34:28 +00:00
< a name = "event-on-update-reading" > < / a >
< li > event-on-update-reading< br >
2013-01-03 13:08:39 +00:00
Wenn nicht gesetzt, erzeugt jede Verä nderung eines "readings" ein
Ereignis, welches z.B. von < a href = "#notify" > notify< / a > oder< a
href="FileLog"> FileLog< / a > berü cksichtigt wird. Wenn gesetzt erzeugen
nur Aktualisierungen der eingetragenen "readings" ein Ereignis.
2012-11-25 17:34:28 +00:00
< / li >
< a name = "event-on-change-reading" > < / a >
< li > event-on-change-reading< br >
2013-01-03 13:08:39 +00:00
Dieses Attribut enthä lt eine durch Kommata getrennte Liste von
"readings". Wenn gesetzt, erzeugen nur Verä nderungen der gelisteten
"readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten
2013-09-07 06:07:34 +00:00
"readings" identisch sind, wird kein Ereignis generiert.< / li >
Die unterschiedlichen Bedeutungen von event-on-update-reading und
event-on-change-reading sind folgende:
< ol >
2013-01-03 13:08:39 +00:00
< li > Wenn beide Attribute nicht gesetzt sind erzeugt jede Aktualisierung
eines jeden "readings" eines Gerä tes ein Ereignis.< / li >
< li > Wenn eines der Attribute gesetzt ist, erzeugen nur Updates oder
ä nderungen von "readings" die nicht in einem der Attribute gesetzt
sind ein Ereignis.< / li >
< li > Wenn ein "reading" in event-on-update-reading aufgefü hrt ist,
erzeugt eine Aktualisierung ein Ereignis unabhä ngig ob das
"reading" auch in event-on-change-reading aufgelistet ist.< / li >
2013-09-07 06:07:34 +00:00
< / ol >
2013-03-01 11:09:18 +00:00
< a name = "event-min-interval" > < / a >
< li > event-min-interval< br >
Dieses Attribut enthä lt eine durch Kommata getrennte Liste von
"readings:minInterval" Paare. readings kann ein regexp sein. Ein Event wird
nur dann generiert, falls seit dem letzten Auftreten des gleichen Events
mindestens minInterval Sekunden vergangen sind.
2013-09-07 06:07:34 +00:00
< / li >
2013-01-13 15:16:31 +00:00
< a name = "userReadings" > < / a >
< li > userReadings< br >
2013-05-17 18:16:54 +00:00
Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat
folgendes Format:
< ul > < code >
< reading> [:< trigger> ] [< modifier> ] { < perl code> }
< / code > < / ul >
Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der
Gerä tereadings gesetzt, indem das spezifizierte < a href = "#perl" > perl
code< / a > < code > { < perl code> }< / code > ausgefü hrt wird, und
dessen Wert dem Reading zugewiesen wird.
Falls < trigger> spezifiziert ist, dann findet diese Ausfü hrung
nur dann statt, falls einer der aktualisierten Readings dem regexp
< trigger> entspricht (matched). < br >
Beispiele:
< ul > < code >
attr myEnergyMeter userReadings energy
{ ReadingsVal("myEnergyMeter","counters.A",0)/1250.0;; }< br >
attr myMultiMeter userReadings
energy1:counters.A {ReadingsVal("myMultiMeter","counters.A",0)/1250.0},
energy2:counters.B {ReadingsVal("myMultiMeter","counters.B",0)/1250.0}
< / code > < / ul >
< code > < modifier> < / code > kann die folgenden Werte haben:
2013-02-10 09:57:02 +00:00
< ul >
2013-05-17 18:16:54 +00:00
< li > none: als ob man es gar nicht spezifiziert hä tte.< / li >
< li > difference: das Reading wird auf die Differenz zw. dem aktuellen und
dem vorherigen Wert gesetzt.< / li >
< li > differential: das Reading wird auf die Differenz zw. dem aktuellen und
dem vorherigen Wert, geteilt durch die Sekunden zw. der aktuellen Zeit
und der letzten Auswertung, sekundengenau. Kein Wert wird berechnet,
2013-07-03 19:09:06 +00:00
falls der Unterschied unter eine Sekunde liegt.< / li >
< li > offset: wenn der aktuellen Wert kleiner als der vorherige Wert ist
wird der vorherige Wert zum Reading addiert. Das Reading kann dann
als offset verwendet werden um einen Zä hler der durch Sromverlust zurü ckgesetzt
wird zu korrigieren.< / li >
< li > monotonic: wenn die Differenz zw. dem aktuellen und dem vorherigen Wert
positiv ist wird diese Differenz zum Reading addiert. Damit lä sst sich von
einem Zä hler der bei Stromverlust zurü ckgesetzt wird ein monoton
wachsender Zä hler ableiten.< / li >
2013-05-17 18:16:54 +00:00
< / ul >
Beispiel:
< ul > < code >
attr myPowerMeter userReadings power differential
{ ReadingsVal("myPowerMeter","counters.A",0)/1250.0}
< / code > < / ul >
Achtung: Falls difference oder differential spezifiziert ist, dann werden
fü r die Berechnung ä ltere Werte benö tigt, d.h. der Wert wird
frü hestens beim zweiten Ä nderung gesetzt.
2013-01-13 15:16:31 +00:00
< / li > < br >
2012-11-25 17:34:28 +00:00
2013-05-17 18:16:54 +00:00
2012-11-25 17:34:28 +00:00
< / ul >
< br >
2013-01-03 13:08:39 +00:00
Gerä tespezifische Attribute sind in der Beschreibung zum jeweiligen
Gerä t aufgefü hrt.
2012-11-25 17:34:28 +00:00
< br >
Beispiele:
< ul >
< code > attr global verbose 3< / code > < br >
< code > attr lamp room kitchen< / code > < br >
< code > attr lamp group lights< / code > < br >
< code > attr lamp loglevel 6< / code > < br >
< code > attr weatherstation event-on-update-reading wind,temperature,humidity< / code > < br >
< code > attr weatherstation event-on-change-reading israining< / code > < br >
< code > attr weatherstation event-on-change-reading israining,state< / code > < br >
2013-01-03 13:08:39 +00:00
< code > attr heating stateFormat Temp:measured-temp, Valve:actuator< / code > < br >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
Bemerkungen:< br >
< ul >
< li > Lesen Sie unter < a href = "#deleteattr" > deleteattr< / a > nach um Attribute
2012-12-01 11:44:34 +00:00
zu lö schen.< / li >
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
< a name = "setdefaultattr" > < / a >
< h3 > setdefaultattr< / h3 >
< ul >
< code > setdefaultattr [< attrname> [< value> ]] < / code > < br >
2012-11-30 17:21:43 +00:00
< br >
2012-12-01 11:44:34 +00:00
Fü gt Sie ein Standardattribut hinzu. Jedem nach dieser Zuweisung definierte
Gerä t wird dieses Attribut zugewiesen. Wenn kein "attrname" angegeben wird,
dann wird die Liste der Standardattribute gelö scht.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel, um das Attribut "room kitchen" und "loglevel 4" allen Lampen
zuzuweisen:
2012-11-25 17:34:28 +00:00
< ul >
< code > setdefaultattr room kitchen< / code > < br >
< code > setdefaultattr loglevel 4< / code > < br >
< code > define lamp1 FS20 1234 11< / code > < br >
< code > define lamp2 FS20 1234 12< / code > < br >
< code > define lamp3 FS20 1234 13< / code > < br >
< code > setdefaultattr< / code > < br >
< / ul >
< br >
2012-11-30 17:21:43 +00:00
Anmerkungen:< br >
2012-11-25 17:34:28 +00:00
< ul >
2012-12-01 11:44:34 +00:00
< li > es gibt keine Mö glichkeit, ein einzelnes Standardattribut aus der Liste
tu lö schen.< / li >
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
< a name = "define" > < / a >
< h3 > define< / h3 >
< ul >
< code > define < name> < type> < type-specific> < / code > < br >
< br >
2012-12-01 11:44:34 +00:00
Definiert ein Gerä t. Sie mü ssen Gerä te einrichten um sie zu beeinflussen (z.B.
das Kommando set on/off auszufü hren). Gleichfalls ist das Logfile besser
2012-11-30 17:21:43 +00:00
lesbar wenn es z.B.
2012-12-01 11:44:34 +00:00
"lamp off" anstatt "Device 5673, Button 00, Code 00 (off)" als Text enthä lt. < br >
2012-11-30 17:21:43 +00:00
Geben Sie an der Befehlszeile "define < name> ?" ein, um eine Liste der
2012-12-01 11:44:34 +00:00
verfü gbaren " types" zu erhalten.< br >
2012-11-30 17:21:43 +00:00
Nach der Definition, wird das globale Ereignis "DEFINED" genriert. Genauere
Beschreibung erhalten Sie im Abschnitt " notify" .< br >
2012-11-25 17:34:28 +00:00
< br > < br >
2012-12-01 11:44:34 +00:00
Jedes Gerä t besitzt unterschiedliche hinzufü gbare Argumente per Definition,
lesen Sie sich bitte die zu dem jeweiligen Gerä t gehö renden Abschnitte durch.< br >
2012-11-25 17:34:28 +00:00
< br >
< / ul >
2013-01-19 13:36:29 +00:00
< a name = "delete" > < / a >
< h3 > delete< / h3 >
< ul >
< code > delete < devspec> < / code > < br >
< br >
2013-08-07 11:18:15 +00:00
Lö scht etwas was mit dem < a href = "#define" > define< / a > Befehl erstellt
worden ist.< br >
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
Nach dem lö schen, wird das globale Ereignis "DELETED" erzeugt.< br >
2013-01-19 13:36:29 +00:00
Beispiel:
< ul >
< code > delete lamp< / code > < br >
< / ul >
< br >
< / ul >
2012-11-25 17:34:28 +00:00
< a name = "deleteattr" > < / a >
< h3 > deleteattr< / h3 >
< ul >
< code > deleteattr < devspec> [< attrname> ]< / code > < br >
< br >
2013-08-07 11:18:15 +00:00
Lö scht entweder ein einzelnes Attribut (siehe Abschnitt < a
href="#attr">attr< / a > ) oder alle Attribute eines Gerä tes (falls
kein < attrname> angegeben wird).< br >
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
2012-11-25 17:34:28 +00:00
< br >
2012-11-30 17:21:43 +00:00
Beispiele:
2012-11-25 17:34:28 +00:00
< ul >
< code > deleteattr lamp follow-on-for-timer< / code > < br >
< code > deleteattr lamp< / code > < br >
< / ul >
< br >
< / ul >
2013-01-19 13:36:29 +00:00
< a name = "deletereading" > < / a >
< h3 > deletereading< / h3 >
2012-11-25 17:34:28 +00:00
< ul >
2013-01-19 13:36:29 +00:00
< code > deletereading < devspec> < readingname> < / code > < br >
2012-11-25 17:34:28 +00:00
< br >
2013-08-07 11:18:15 +00:00
Entfernt das Reading < readingname> fü r das spezifizierte
Gerä t. < readingname> ist ein perl Regular-Expression, was den
vollstä ndigen Namen des Readings erfassen muss.
Mit grö ß ter Sorgfalt verwenden! FHEM kann abstü rzen, falls
man lebenswichtige Readings entfernt.< br >
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
2013-01-19 13:36:29 +00:00
< br >
2013-08-07 11:18:15 +00:00
Beispiele:
2012-11-25 17:34:28 +00:00
< ul >
2013-01-19 13:36:29 +00:00
< code > deletereading mySensor temp1< / code > < br >
< code > deletereading mySensor temp\d+< / code > < br >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
< / ul >
2013-08-07 11:18:15 +00:00
< a name = "displayattr" > < / a >
< h3 > displayattr< / h3 >
< ul >
< code > displayattr < devspec> [< attrname> ]< / code > < br >
< br >
Zeigt entweder den Wert eines Attributes an (falls < attrname>
spezifiziert wurde) oder alle Attribute eines Gerä tes.
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
Falls mehrere Gerä te spezifiziert wurden, dann enthä lt die Ausgabe
den Namen der Gerä te.
< br >
Beispiele:
< ul >
< code >
fhem> di WEB< br >
menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on< br >
room Misc.< br >
fhem& gt di WEB room< br >
Misc.< br >
< / code >
< / ul >
< br >
< / ul >
2012-11-25 17:34:28 +00:00
< a name = "get" > < / a >
< h3 > get< / h3 >
< ul >
< code > get < devspec> < type-specific> < / code >
< br > < br >
2012-12-01 11:44:34 +00:00
Fragt einen Wert direkt (aktuell) vom Gerä t ab und wartet auf eine
Antwort. Eine allgemeine Liste mö glicher Paramter erhalten Sie mit< ul >
2012-11-25 17:34:28 +00:00
< code > get < device> ?< / code >
< / ul >
2013-08-07 11:18:15 +00:00
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
2012-12-01 11:44:34 +00:00
Jedes Gerä t hat unterschiedliche " get" -Parameter. Lesen Sie Details bitte im
zugehö rigen Abschnitt nach.< br >
2012-11-25 17:34:28 +00:00
< br >
< / ul >
< a name = "getstate" > < / a >
< h3 > getstate< / h3 >
< ul >
< code > getstate < devspec> < / code >
< br > < br >
2012-12-01 11:44:34 +00:00
Gibt einen kurzen, durch Leerzeichen getrennte Statusliste fü r < devspec>
aus . Dies ist nü tzlich, um das Gerä t in z.B. Cacti zu beobachten.< br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul > < code >
getstate lamp< br >
state:1< br >
< br >
getstate fl< br >
ack:0 actuator:2 day-temp:21.5 desired-temp:22.5 [...] measured-temp:22.9 [...]
< / code > < / ul >
2012-12-01 11:44:34 +00:00
Bemerkung: Um diesen Befehl nutzen zu kö nnen, kopieren Sie bitte die
2012-11-30 17:21:43 +00:00
Datei 99_getstate.pm aus dem Verzeichnis contrib/getstate/ in Ihr FHEM
Verzeichnis.
2012-11-25 17:34:28 +00:00
< br >
< / ul >
< a name = "include" > < / a >
< h3 > include< / h3 >
< ul >
< code > include < filename> < / code > < br >
< br >
2012-11-30 17:21:43 +00:00
Liest (z.B. als Befehlszeile in der fhem.cfg) die in < filename> angegebene
Datei in FHEM ein und interpretiert jede Dateizeile als FHEM Befehl. Mit
dieser Hilfe werden Konfigurationsdateien modularer und erlaubt es sie z.B.
2012-12-01 11:44:34 +00:00
nach Rä umen geordnet auftzuteilen.
2012-11-25 17:34:28 +00:00
< br >
< / ul >
< a name = "inform" > < / a >
< h3 > inform< / h3 >
< ul >
< code > inform {on|off|timer|raw} [regexp]< / code > < br >
< br >
2012-12-01 11:44:34 +00:00
Wenn auf " on" gesetzt und der Status eines Gerä tes ä ndert sich, dann wird eine
2012-11-30 17:21:43 +00:00
Nachricht an den Client gesendet. Dieser Befehl kann von anderen
Programmen/Modulen dazu benutzt werden, eine Hinweisnachricht zu erhalten. < br >
2012-12-01 11:44:34 +00:00
Die Option " timer" fü gt der Nachricht einen Zeitstempel hinzu. Hinweis:
2012-11-30 17:21:43 +00:00
Dieser Befehl erleichtert Ihnen die bessere Kontrolle in
< a href = "#notify" > notify< / a > oder < a href = "#FileLog" > FileLog< / a > , wann welche
Ereignisse erzeugt wurden.
2012-11-25 17:34:28 +00:00
< br >
< / ul >
< a name = "list" > < / a >
< h3 > list< / h3 >
< ul >
< code > list [devspec] [value]< / code >
< br > < br >
2012-11-30 17:21:43 +00:00
Auflistung aller " definitions" , " notify" und " at" -Definitionen. Dies ist eines
2013-08-07 11:18:15 +00:00
der wenigen Befehle, die im Normalfall eine Zeichenkette ausgeben.< br >
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
2012-11-25 17:34:28 +00:00
< br >
2013-08-07 11:18:15 +00:00
Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder reading (actuator,
measured-temp) fü r alle Gerä te die in devspec angegeben sind.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< pre > < code > fhem> list
Type list < name > for detailed info.
Internal:
global (Internal)
FHZ:
FHZ (fhtbuf: 23)
FS20:
Btn4 (on-old-for-timer)
Roll1 (on)
Stehlampe (off)
FHT:
fl (measured-temp: 21.1 (Celsius))
KS300:
out1 (T: 2.9 H: 74 W: 2.2 R: 8.2 IR: no)
at:
at_rollup (Next: 07:00:00)
notify:
ntfy_btn4 (active)
FileLog:
avglog (active)
< / name > < / code > < / pre >
2012-12-01 11:44:34 +00:00
Wenn Sie fü r < code > name< / code > einen Gerä tenamen eingeben, dann erhalten Sie
einen genauen Status fü r das in< code > name< / code > angegebene Gerä t angezeigt,
2012-11-30 17:21:43 +00:00
z.B.:
2012-11-25 17:34:28 +00:00
< pre > < code > fhem> list fl
Internals:
CODE 5102
DEF 5102
NAME fl
NR 15
STATE measured-temp: 21.1 (Celsius)
TYPE FHT
IODev FHZ
Attributes:
room Heizung
Readings:
2006-11-02 09:45:56 actuator 19%
[...]
< / code > < / pre >
< / ul >
< a name = "modify" > < / a >
< h3 > modify< / h3 >
< ul >
< code > modify < name> < type-dependent-options> < / code >
< br > < br >
2012-12-01 11:44:34 +00:00
Dieser Befehl wird benutzt, um Definitionen zu verä ndern. Er ist nü tzlich, um < a href = "#at" > at< / a > oder < a href = "#notify" > notify< / a >
Definitionen zu verä ndern. Wenn Sie einen Wert einer an Definition verä ndern,
dann wird nur der fü r die Zeit zustä ndige Teil geä ndert. Im Falle der
Verä nderung einer Definition vom Typ " notify" wird nur der regex Teil
geä ndert. Alle anderen Werte (Stati, Attribute, etc) bleiben erhalten.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > define lampon at 19:00 set lamp on< / code > < br >
< code > modify lampon *19:00< / code > < br >
< code > modify lampon 19:00 set lamp on-for-timer 16< / code > < br >
< / ul >
< / ul >
< a name = "quit" > < / a >
< h3 > quit< / h3 >
< ul >
< code > quit< / code >
< br > < br >
2012-11-30 17:21:43 +00:00
Dieser Befehl wird in einer TCP/IP Session benutzt um die Client-Sitzung zu
beenden.< br >
Wird dieser Befehl in einem Skript benutzt, wird das abarbeiten des Skriptes
beendet.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > quit< / code >
< / ul >
< / ul >
< a name = "reload" > < / a >
< h3 > reload< / h3 >
< ul >
< code > reload < module> < / code >
< br > < br >
Reload the given module from the module directory. It is a convenient way to
test modules whithout restarting the program.
< br > < br >
Example:
< ul >
< code > reload 99_PRIV< / code >
< / ul >
< / ul >
< a name = "rename" > < / a >
< h3 > rename< / h3 >
< ul >
< code > rename < oldname> < newname> < / code >
< br > < br >
2012-12-01 11:44:34 +00:00
Benennt ein Gerä t von < oldname> in < newname> , einschliesslich der
2012-11-30 17:21:43 +00:00
Attribute, um. Das globale Ereignis " RENAMED" wird erstellt, Lesen Sie bitte
den Abschnitt " notify" durch um Details zu erfahren.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > rename FHT_1234 fht.kitchen< / code >
< / ul >
< / ul >
< a name = "rereadcfg" > < / a >
< h3 > rereadcfg< / h3 >
< ul >
< code > rereadcfg [fhem-config-file]< / code >
< br > < br >
2012-11-30 17:21:43 +00:00
Liest entweder die aktuelle Konfigurationsdatei oder die angegebene Datei ein.< br >
Der Ablauf ist dabei wie folgt: Zuerst wird das < a href = "#statefile" > statefile< / a >
2012-12-01 11:44:34 +00:00
gesichert. Dann werden alle Gerä te gelö scht. Dann wird die aktuelle
2012-11-30 17:21:43 +00:00
Konfigurationsdatei (oder die angegebene Datei) eingelesen zuletzt wird das statefile
neu eingelesen.< br >
Wenn dieser Ablauf abgeschlossen ist, wird das globale REREADCFG Ereignis
2012-12-01 11:44:34 +00:00
ausgelö st. Alle existierenden Verbindungenwerden bis zum " rereadcfg" Ereignis
2012-11-30 17:21:43 +00:00
getrennt.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beipiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > rereadcfg< / code >
< / ul >
< / ul >
< a name = "save" > < / a >
< h3 > save< / h3 >
< ul >
< code > save [< configfile> ]< / code >
< br > < br >
2012-11-30 17:21:43 +00:00
Sichert zuerst das < a href = "#statefile" > statefile< / a > und dann das
< a href = "#configfile" > configfile< / a > . Wenn ein Parameter angegeben wird dieser
anstelle der allgemeinen Konfigurationsdatei benutzt.< br > < br >
Hinweise:
2012-11-25 17:34:28 +00:00
< ul >
2012-11-30 17:21:43 +00:00
< li > Der Befehl speichert nur " definitions" und " attributes" aber keine (set/get)
Befehle die vorher Teil der Konfigurationsdatei waren. Wenn Sie solche
Befehle nach der Initialisierung (z.B. < a href = "http://fhem.de/FHZset" > FHTcode< / a > )
2012-12-01 11:44:34 +00:00
benö tigen,dann mü ssen Sie sie mit < a href = "#notify" > notify< / a > triggern wenn
2012-11-30 17:21:43 +00:00
das
INITIALIZED Ereignis eintritt.< / li >
2012-11-25 17:34:28 +00:00
2012-11-30 17:21:43 +00:00
< li > Der Befehl " save" versucht Kommentarzeilen (Zeilen die mit #
beginnen) und " include" -Zeilen zu erhalten, aber arbeitet nicht korrekt wenn
2012-12-01 11:44:34 +00:00
FHEM fü r diese Dateien keine Schreibrechte besitzt.< / li >
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
< a name = "set" > < / a >
< h3 > set< / h3 >
< ul >
< code > set < devspec> < type-specific> < / code >
< br > < br >
2013-01-27 21:30:41 +00:00
Der Befehl setzt Gerä teparameter/sendet Signale an ein Gerä t. Sie
erhalten eine Liste verfü gbarer Parameter wenn Sie folgendes eingeben:
2012-11-25 17:34:28 +00:00
< ul >
< code > set < name> ?< / code >
< / ul >
2013-08-07 11:18:15 +00:00
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
Der " set" -Befehl gibt nur bei Fehler einen Wert zurü ck.
2013-01-27 21:30:41 +00:00
< br > < br >
Jedes Gerä t hat verschiedene Parameter die mit " set" gesetzt
werden kö nnen. Lesen Sie bitte den entsprechenden Abschnitt fü r
das Gerä t fü r Details durch.
2012-11-25 17:34:28 +00:00
< br >
2013-01-27 21:30:41 +00:00
< br >
< a name = "setExtensions" > < / a >
Manche Module unterstü tzen die sog. < b > set extensions< / b > , und in der
entsprechenden Dokumentation ist ein Link auf diesem Text zu finden. Falls im
Modul selber einer der unten aufgefü hrten Befehle implementiert ist, dann
wird die Modul-Implementation verwendet.
< ul >
< li > on-for-timer < sekunden& gt< br >
Das Gerä t wird per "on" eingeschaltet, und ein interner Zeitgeber
wird erstellt, um nach < sekunden> ein "off" Kommando
auszufü hren. Um diesen Zeitgeber zu entfernen sollte man das
Kommando mit dem Argument 0 erneut aufrufen. Achtung: dieser Zeitgeber
wird bei einem restart nicht gespeichert.< / li >
< li > off-for-timer < sekunden& gt< br >
siehe on-for-timer.< / li >
< li > on-till < timedet& gt< br >
Das Gerä t wird per "on" eingeschaltet, und ein at Instanz wird
definiert, um es um < timedet> (Format: HH:MM[:SS]) per off
auszuschalten. Diese at Instanz ist sichtbar unter dem Namen
gerä teName+"_till". Um das Ausschalten zu deaktivieren
lö scht man diese at Definition. < / li >
< li > off-till < timedet& gt< br >
siehe on-till.< / li >
< li > blink < anzahl> < blink-periode> < br >
Das Gerä t wird mit "on" fü r die < blink-periode>
eingeschaltet, und das wird nach < blink-periode> wiederholt. Um
das Blinken vorzeitig zu stoppen spezifiziert man "0 0" als
Argument.< / li >
< li > intervals < from1> -< till1> < from2> -< till2> ...
< / br >
Das Gerä t wird fü r die spezifizierten Intervalle
eingeschaltet. Die einzelnen Intervalle sind Leerzeichen getrennt, und
ein Intervall besteht aus zwei Zeitspezifikationen, die mit einem "-"
getrennt sind.
< / li >
< / ul >
Beispiele:
< ul >
< code >
set switch on-for-timer 12.5< br >
set switch on-till {sunset()}< br >
set switch blink 3 1< br >
set switch intervals 08:00-12:00 13:00-18:00< br >
< / code >
< / ul >
< / ul >
2012-11-25 17:34:28 +00:00
< / ul >
2013-08-22 15:13:44 +00:00
< a name = "setreading" > < / a >
< h3 > setreading< / h3 >
< ul >
2013-12-02 18:56:31 +00:00
< code > setreading < devspec> < reading> < value> < / code >
2013-08-22 15:13:44 +00:00
< br > < br >
Der Befehl setzt das Reading < reading> auf den Wert < value> ohne
Signale an das betroffene Gerä t zu senden, generiert aber Ereignisse und
die ü bliche eventMap und stateFormat Umwandlung wird auch
durchgefü hrt.
< br >
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
< br >
Beispiel:
< ul >
setreading lampe state on
< / ul >
< / ul >
2012-11-25 17:34:28 +00:00
< a name = "setstate" > < / a >
< h3 > setstate< / h3 >
< ul >
< code > setstate < devspec> < value> < / code >
< br > < br >
2013-08-22 15:13:44 +00:00
Der Befehl setzt den STATE Eintrag des Ger&aauml; tes direkt, ohne Ereignisse zu
generieren oder ein Signal an das Gerä t zu senden. Dieser Eintrag ist
maß gebend fü r die Status-Anzeige in diversen Frontends.
Dieser Befehl wird auch im < a href = "#statefile" > statefile< / a > benutzt.< br >
2013-08-07 11:18:15 +00:00
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
< br >
2013-08-22 15:13:44 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
2013-08-22 15:13:44 +00:00
setstate lampe An
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
< a name = "shutdown" > < / a >
< h3 > shutdown< / h3 >
< ul >
< code > shutdown [restart]< / code >
< br > < br >
2013-07-25 07:35:49 +00:00
Der Befehl fä hrt den Server herunter (nach dem sichern aller < a
href="#statefile">Gerä testati< / a > ). Er triggert das global:SHUTDOWN
Ereignis. Mit der optionalen Parameter restart startet FHEM danach neu.
2012-11-25 17:34:28 +00:00
< br > < br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > shutdown< / code > < br >
< code > shutdown restart< / code >
< / ul >
< / ul >
< a name = "trigger" > < / a >
< h3 > trigger< / h3 >
< ul >
2013-08-22 15:13:44 +00:00
< code > trigger < devspec> < event> < / code >
2012-11-25 17:34:28 +00:00
< br > < br >
2013-08-22 15:13:44 +00:00
Generiert das Ereignis < event> , was z.Bsp. ein < a
href="#notify">notify< / a > anstoß en kann, oder den FileLog zum
protokollieren dieser Zeile bewegen kann.< br >
2013-08-07 11:18:15 +00:00
Siehe den Abschnitt ü ber < a href = "#devspec" > Gerä te-Spezifikation< / a >
fü r Details der < devspec> .< br >
< br >
2012-11-30 17:21:43 +00:00
Beispiel:
2012-11-25 17:34:28 +00:00
< ul >
< code > trigger btn3 on< / code >
< / ul >
< / ul >
< a name = "sleep" > < / a >
< h3 > sleep< / h3 >
< ul >
2013-07-25 07:35:49 +00:00
< code > sleep < sec> [quiet]< / code >
2012-11-25 17:34:28 +00:00
< br > < br >
2013-07-25 07:35:49 +00:00
Wartet fü r die angegebene Anzahl von Millisekunden.< br >
Falls sleep in at/notify/etc aufgerufen wurde, und die nachfolgenden
Kommandos einen nicht leeren Text zurü ckgeliefert haben, dann wird dieser
Text mit loglevel 2 protokolliert.< br >
quiet vermeidet diese Protokollierung.
2012-11-25 17:34:28 +00:00
< br > < br >
2013-07-25 07:35:49 +00:00
Beispiele:
2012-11-25 17:34:28 +00:00
< ul >
< code > sleep 0.5< / code > < br >
2013-07-25 07:35:49 +00:00
< code > define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
toggle< / code > < br >
< code > define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
Windsensor 1w_temp< / code >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
2013-07-25 07:35:49 +00:00
Bemerkung: sleep gefolgt von weiteren Befehlen und aufgerufen in
at/notify/etc blockiert die Abarbeitung von FHEM nicht.< br >
2012-11-25 17:34:28 +00:00
< / ul >
2013-07-13 11:56:22 +00:00
< a name = "version" > < / a >
< h3 > version< / h3 >
< ul >
< code > version [filter]< / code >
< br > < br >
Gibt die Versionsinformation von fhem.pl und aller geladenen Module aus. Mit der
optionalen Parameter kann man die Ausgabe filtern.
< br > < br >
Beispiel der Ausgabe:
< ul >
< code >
# $Id: fhem.pl 3405 2013-07-11 19:46:39Z rudolfkoenig $< br >
# $Id: 00_CUL.pm 3237 2013-06-01 17:15:59Z rudolfkoenig $< br >
# $Id: 10_CUL_HM.pm 3378 2013-07-02 16:57:27Z martinp876 $< br >
< / code >
< / ul >
< / ul >
2012-11-25 17:34:28 +00:00
< a name = "global" > < / a >
< h3 > global< / h3 >
< ul >
2012-12-01 11:44:34 +00:00
Das " global" Gerä t wird benutzt, um allgemeingü ltige Attribute zu setzen. Es
wird automatisch erstellt und kann nicht gelö scht oder umbenannt werden. Es
2012-11-30 17:21:43 +00:00
hat keine " set" oder " get" Parameter.< br >
2012-11-25 17:34:28 +00:00
< br >
< b > Define< / b > < ul > N/A< / ul > < br >
< b > Set < / b > < ul > N/A< / ul > < br >
< b > Get< / b > < ul > N/A< / ul > < br >
< b > Attributes< / b >
< ul >
< li > < a href = "#archivedir" > archivedir< / a > < / li >
< li > < a href = "#archivecmd" > archivecmd< / a > < / li >
< li > < a href = "#nrarchive" > nrarchive< / a > < / li > < br >
< a name = "autoload_undefined_devices" > < / a >
< li > autoload_undefined_devices< br >
2013-06-30 19:42:31 +00:00
wenn dieses Attribut gesetzt ist, werden die zu einer neu empfangenen
Nachricht zugehö rigen Module automatisch geladen. Dies
erfolgt vom < a href = "#autocreate" > autocreate< / a > Gerä t, um so
automatisch ein FHEM-Gerä t bei erreichen einer entsprechenden
Nachricht zu erstellen.
2012-11-25 17:34:28 +00:00
< / li > < br >
2013-06-30 19:42:31 +00:00
< a name = "updateInBackground" > < / a >
< li > updateInBackground< br >
wenn dieses Attribut gesetzt ist, wird das update Befehl in einem
separaten Prozess ausgefü hrt, und alle Meldungen werden per Event
ü bermittelt. In der telnet Sitzung wird inform, in FHEMWEB wird
das Event Monitor aktiviert.
< / li > < br >
2012-11-25 17:34:28 +00:00
< a name = "backup_before_update" > < / a >
< li > backup_before_update< br >
2012-11-30 17:21:43 +00:00
Wenn dieses Attribut auf " 0" gesetzt wurde, erstellt FHEM keine
Sicherheitskopie Ihrer Installation bei Verwendung des Befehls < a href = "#backup" > backup< / a > .
Die Standardeinstellung ist die Erstellung einer Sicherheitskopie vor einem
Update.< br >
Hinweis: Setzen Sie dieses Attribut nur wenn Sie sich sicher sind!< br >
Das Attribut wird vom < a href = "#update" > update< / a > Befehl benutzt.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global backup_before_update 0
< / ul >
< / li > < br >
< a name = "backupcmd" > < / a >
< li > backupcmd< br >
2012-12-01 11:44:34 +00:00
Sie kö nnen das Update durch Ihre eigenen Befehle/Skripts durchfü hren
2012-11-30 17:21:43 +00:00
indem Sie dieses Attribut setzen.
Wenn dieses Attribut gesetzt ist, dann startet es als ein SHELL-Befehl
und erstellt eine durch Leerzeichen getrennte Liste von
Dateien/Verzeichnissen als < strong > ein< / strong > Argument zum Befehl, z.B.:
2012-11-25 17:34:28 +00:00
< br >
< ul >
< code > "/etc/fhem.cfg /var/log/fhem/fhem.save /usr/share/fhem/contrib
/usr/share/fhem/FHEM /usr/share/fhem/foo /usr/share/fhem/foobar
/usr/share/fhem/www"< / code >
< / ul >
2012-11-30 17:21:43 +00:00
Bemerkung: Ihr Befehl/Skript muss die Zeichenkette "backup done"
2012-12-01 11:44:34 +00:00
zurü ckgeben oder eine entsprechende Zeichenkette um Fehlermeldungen
2012-11-30 17:21:43 +00:00
auszugeben, damit die Zusammenarbeit mit updatefhem funktioniert!< br >
Dieses Attribut wird vom < a href = "#backup" > backup< / a > Befehl benutzt.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global backupcmd /usr/local/bin/myBackupScript.sh
< / ul >
< / li > < br >
< a name = "backupdir" > < / a >
< li > backupdir< br >
2012-11-30 17:21:43 +00:00
Ein Ordner um die komprimierten Sicherheitsdateien zu speichern.
Dieses Attribut wird vom < a href = "#backup" > backup< / a > Befehl benutzt.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global backupdir /Volumes/BigHD
< / ul >
< / li > < br >
< a name = "backupsymlink" > < / a >
< li > backupsymlink< br >
2012-12-01 11:44:34 +00:00
Wenn dieses Attribut auf etwas anderes als "no", dann unterstü tzt der
2012-11-30 17:21:43 +00:00
Archviierungsbefehl " tar" symbolische Links in Ihrem Backup. Andererseits,
wenn dieses Attribut auf
"no" gesetzt ist werden symbolische Links vom Befehl " tar" ignoriert.
Dieses Attribut wird vom < a href = "#backup" > backup< / a > Befehl benutzt.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global backupsymlinks yes
< / ul >
< / li > < br >
< a name = "configfile" > < / a >
< li > configfile< br >
2012-12-01 11:44:34 +00:00
Enthä lt den Namen der FHEM Konfigurationsdatei. Wenn < a href = "#save" > save< / a >
2012-11-30 17:21:43 +00:00
ohne Argumente aufgerufen wird dann wird die Ausgabedatei unter diesem
Dateinamen gespeichert.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "exclude_from_update" > < / a >
< li > exclude_from_update< br >
2012-12-01 11:44:34 +00:00
Enthä lt eine Liste durch Leerzeichen getrennter Dateien welche nicht im
Update berü cksichtigt werden. Dieses Attribut wird vom < a href = "#update" > update< / a >
2012-11-30 17:21:43 +00:00
Befehl benutzt.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global exclude_from_update 21_OWTEMP.pm temp4hum4.gplot FS20.on.png FS20.off.png
< / ul >
< / li > < br >
< a name = "holiday2we" > < / a >
< li > holiday2we< br >
2012-11-30 17:21:43 +00:00
Wenn dieses Attribut gesetzt wurde, dann wird die < a href = "#perl" > $we< / a >
Variable
als " true" betrachtet, wenn der Wert der < a href = "#holiday" > holiday< / a >
Variable zu diesem Attribut nicht " none" ist.< br >
Beispiel:< br >
2012-11-25 17:34:28 +00:00
< ul >
attr global holiday2we hessen
< / ul >
< / li > < br >
< a name = "lastinclude" > < / a >
< li > lastinclude< br >
2012-11-30 17:21:43 +00:00
Wurde dieses Attribut gesetzt, dann wird der letzte Befehl der generierten
2012-12-01 11:44:34 +00:00
Konfigurationsdatei (siehe < a href = "#save" > save< / a > Befehl) berü cksichtigt < lastinclude-value> < br >
2012-11-30 17:21:43 +00:00
Dieses Attribut ist DEPRECATED, bitte benutzen Sie < a href = "#notify" > notify< / a > ,
mit dem INITIALIZED Ereignis um Befehle nach der Intialisierung
2012-12-01 11:44:34 +00:00
auszufü hren.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "logfile" > < / a >
< li > logfile< br >
2012-11-30 17:21:43 +00:00
Gibt das Logfile an, in welches gespeichert werden soll. Sie
2012-12-01 11:44:34 +00:00
kö nnen "-" fü r die Ausgabe in das stdout-Gerä t. In diesem Fall the server won't background itself.< br >
2012-11-30 17:21:43 +00:00
Der Name der Logdatei kann auch " wildcards" enthalten, um eine
2012-12-01 11:44:34 +00:00
einfachere Abfolge fü r die Dateien zu erreichen. Lesen Sie bitte den
Abschnitt < a href = "#FileLog" > FileLog< / a > . Fü gen Sie die Attribute
2012-11-30 17:21:43 +00:00
< code > archivecmd / archivedir / nrarchive< / code > zum
2012-12-01 11:44:34 +00:00
< code > global< / code > Gerä t hinzu wie Sie es auch bei einem FileLog device
tun kö nnten.< br >
Sie kö nnen den Namen der Logdatei mit
2012-11-30 17:21:43 +00:00
< code > { $currlogfile }festlegen< / code > .
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "modpath" > < / a >
< li > modpath< br >
2012-11-30 17:21:43 +00:00
Mit modpath geben Sie den Pfad zu dem Verzeichnis der < code > FHEM< / code >
2012-12-01 11:44:34 +00:00
Module an. Der Pfad enhä lt < b > nicht< / b > das Verzeichnis FHEM. Durch das
2012-11-30 17:21:43 +00:00
setzen der Attribute, wird das Verzeichnis nach Dateinamen in der Form NN_< NAME> .pm,
2012-12-01 11:44:34 +00:00
und sie werden fü r die Definition von Gerä ten unter dem Namen
< NAME> verfü gbar gemacht. Wenn das erste Gerä t des Typs < NAME> definiert
2012-11-30 17:21:43 +00:00
wird, werden die entsprechenden Module geladen und in dem Modul die
entsprechende Function mit dem Namen
< NAME> _Initialize wird aufgerufen. Eine Ausnahme bilden Module die
mit der Nummer 99 im Dateinamen beginnen. Diese sind enhalten
PERL-Hilfsfunktionen. Die Module werden zur Startzeit geladen (i.e.
2012-11-25 17:34:28 +00:00
modpath attribute definition time).
< / li > < br >
< a name = "motd" > < / a >
< li > motd< br >
2012-12-01 11:44:34 +00:00
Nachricht des Tages. Wird im Begrü ßungsbildschirm von FHEM angezeigt,
2012-11-30 17:21:43 +00:00
oder direkt beim Start einer " telnet" Sitzung, bevor der fhem> Prompt
erscheint. Der SecurityCheck setzt motd wenn es bisher nicht gesetzt ist. Um
2012-12-01 11:44:34 +00:00
das zu verhindern, kö nnen sie den Wert von motd auf " none" setzen
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "mseclog" > < / a >
< li > mseclog< br >
2012-12-01 11:44:34 +00:00
Wenn dieses Attribut gesetzt ist, enthalten Datums/Zeiteinträ ge (timestamp)
2012-11-30 17:21:43 +00:00
in der Logdatei einen Millisekunden-Eintrag.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "nofork" > < / a >
< li > nofork< br >
2013-08-24 14:28:14 +00:00
Wenn dieses Attribut oder "attr global logfile -" gesetzt ist,
dann wird FHEM nicht im Hintergrund abgearbeitet.
Dieses Attribut ist bei einigen FHEM Installationen auf FRITZ!-Boxen
notwendig, und wid fuer Windows automatisch gesetzt.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "pidfilename=" > < / a >
< li > pidfilename< br >
2012-12-01 11:44:34 +00:00
Schreibt die PERL Prozess-ID in die angegebene Datei. Der Server lä uft
2012-11-30 17:21:43 +00:00
als Daemon und einige Distributionen wollen anhand der PID testen, ob der
2012-12-01 11:44:34 +00:00
FHEM Prozess lä uft. Die Datei wird bei Ausfü hrung des " shutdown" -Kommandos
gelö scht.
2012-11-25 17:34:28 +00:00
< / li > < br >
2013-01-27 01:46:08 +00:00
< li > < a href = "#fheminfo" > sendStatistics< / a >
2012-12-02 19:37:50 +00:00
2012-11-25 17:34:28 +00:00
< a name = "statefile" > < / a >
< li > statefile< br >
2013-07-25 07:35:49 +00:00
Dieses Attribut legt den Namen der Datei fest, in die
Statusinformationen aller Gerä te gespeichert werden bevor der
Server heruntergefahren wird. Falls diese Datei nicht angegeben wird, so
werden keinerlei Informationen gesichert.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "title" > < / a >
< li > title< br >
2012-11-30 17:21:43 +00:00
Das Attribut " title" wird unter dem Frontend fhemweb.pl (webpgm2) zur
Festlegung des Seitentitels benutzt..
2012-11-25 17:34:28 +00:00
< / li > < br >
2013-01-27 01:46:08 +00:00
< li > < a href = "#fheminfo" > uniqueID< / a >
2012-12-02 19:37:50 +00:00
2012-11-25 17:34:28 +00:00
< a name = "updatebranch" > < / a >
< li > updatebranch< br >
2012-11-30 17:21:43 +00:00
Dieses Attribut wird mittels der Datei FhemUtils/release.pm gesetzt die
im " modpath" -Verzeichnis enthalten ist. Z.B, wenn eine stabile Version von
2012-12-01 11:44:34 +00:00
FHEM (ab Version 5.3 aufwä rts) ü ber eine direkte Download-Verbindung vom
2012-11-30 17:21:43 +00:00
Archiv der FHEM-Webseite installiert wurde, then wird automatisch der Zweig
der Aktualisierung auf "stable"eingestellt.
In dieser Form der Aktualisierung werden nur behobene Fehler, relevante
2012-12-01 11:44:34 +00:00
Sicherheitslü cken oder neue stabile Versionen aktualisiert.< br >
2012-11-30 17:21:43 +00:00
Mittels dem Befehl "update development < filename> " benutzen,
2012-12-01 11:44:34 +00:00
kö nnen Dateien oder Pakete jederzei direkt aus dem Entwicklungszweig
2012-11-30 17:21:43 +00:00
(z.B. mittels "update development < package> ") installiert werden.< br >
Wenn Sie anstelle von Entwicklungsversionen eine stabile Version
2012-12-01 11:44:34 +00:00
installieren wollen, so kö nnen Sie dies durch Angabe des Attributes "updatebranch DEVELOPMENT"
2012-11-30 17:21:43 +00:00
erzwingen.
Bei der Installation von FHEM sollten Sie generell die
Entwicklungsversion installieren. Dieses Attribut muss nicht gesetzt werden.
Benutzen Sie dagegen "update development force"
2012-12-01 11:44:34 +00:00
um alle Dateien, einschliesslich der Datei release.pm (enthä lt die
2012-11-30 17:21:43 +00:00
aktuellen Informationen)
zu aktualisieren.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "userattr" > < / a >
< li > userattr< br >
2012-12-01 11:44:34 +00:00
Enthä lt eine durch Leerzeichen getrennte Liste in welcher die Namen
zusä tzlicher Attribute aufgefü hrt sind. Diese mü ssen zuerst in dieser Liste
definiert werden, bevor sie angewendet werden kö nnen.
2012-11-25 17:34:28 +00:00
< / li > < br >
< a name = "dupTimeout" > < / a >
< li > dupTimeout< br >
2013-01-03 13:08:39 +00:00
Definert die Wartezeit, nach der 2 identische Ereignisse zweier
Empfä nger als Duplikat angesehen werden. Voreingestellt sind 0,5
Sekunden.
2012-11-25 17:34:28 +00:00
< / li > < br >
2013-01-03 13:08:39 +00:00
< a name = "showInternalValues" > < / a >
< li > showInternalValues< br >
Attribute/Gerä te-Eintraege/Readings die mit Punkt (.) anfangen
werden nicht angezeigt, es sei denn das globale Attribut
showInternalValues ist gesetzt. Diese Variable wird bei dem list und
xmllist Befehl, und bei der FHEMWEB Raumansicht geprü ft.
< / li >
2012-11-25 17:34:28 +00:00
< / ul >
< / ul >
2012-12-01 11:44:34 +00:00
2012-11-25 17:34:28 +00:00
< a name = "perl" > < / a >
< h3 > Perl specials< / h3 >
2012-11-30 17:21:43 +00:00
Wenn Sie einige Aufgaben automatisieren wollen, dann sollten Sie die Befehle < a href = "#at" > at< / a > oder < a href = "#notify" > notify< / a >
2012-12-01 11:44:34 +00:00
nutzen. Fü r komplexere Aufgaben sollten Sie lieber ein SHELLl-Skiipt oder einen
2012-11-30 17:21:43 +00:00
PERL "oneliner" als das at/notify
argument anwenden. Dieser Abschnitt gibt Ihnen einige Tipps zur Anwendung der
PERL-oneliner.< br > < br >
< li > Um PERL-" oneliner" zu testen, geben Sie diese am " telnet" Prompt (oder in
der FHEMWEB Text-Eingabezeile) eingeschlossen von geschweiften Klammern {} in
einer Zeile ein. Die letzte Beispielzeile schreibt nur etwas in die Logdatei,
2012-12-01 11:44:34 +00:00
wä hrend das Ergebnis der anderen Zeilen direkt auf der Webseite sichtbar ist.< ul >
2012-11-30 17:21:43 +00:00
Beispiele:< p > { "Hello" }< br >
2012-11-25 17:34:28 +00:00
{ 1+3*4 }< br >
{ `ls /etc` }< br >
{ Log 1, "Hello" }< br >
2012-11-30 17:21:43 +00:00
< / p >
2012-11-25 17:34:28 +00:00
< / ul >
< br >
< / li > < li >
2012-12-01 11:44:34 +00:00
PERL Ausdrü cke werden durch ein Semikolon (;) getrennt. In FHEM " oneliners"
mü ssen sie durch ein weiteres Semikolon (;;) " escaped" (maskiert) werden< br >
2012-11-30 17:21:43 +00:00
Beispiel:< ul >
2012-11-25 17:34:28 +00:00
{ my $a = 1+1;; Log 1, "Hello $a" }
< / ul >
< br >
2012-12-01 11:44:34 +00:00
< / li > < li > Um FHEM-Kommandos in den PERL-Ausdrü cken zu verwenden, benutzen Sie
2012-11-30 17:21:43 +00:00
bitte die Funktion fhem(),
mit einem Textargument. Dieser Text wird als FHEM-Kommando interpretiert.< br >
< p > Beispiel< ul >
2012-11-25 17:34:28 +00:00
{ fhem "set light on" }< br >
define n1 notify piri:on { fhem "set light on" }
2012-11-30 17:21:43 +00:00
< p > < / p >
2012-11-25 17:34:28 +00:00
< / ul >
2013-09-02 10:52:23 +00:00
Bemerkung: Wenn diese Funktion einen wert zurü ck liefert, wird dieser
in der allgemeinen Logdatei gespeichert.. Benutzen sie " 1" als
zweites Argument um dieses speichern zu verhindern. Sinnvoll ist dieses
Argument bei der Abfrage von Werten mittels "get...".
2012-11-25 17:34:28 +00:00
< br >
< br >
2013-09-02 10:52:23 +00:00
< / li >
2012-11-25 17:34:28 +00:00
2013-09-02 10:52:23 +00:00
< li > Notify kann auch dazu verwendet werden, um Macros manuell
auszufü hren. Verwenden Sie den < a href = "#trigger" > trigger< / a > -Befehl
um das Makro zu starten:< br >
2012-11-25 17:34:28 +00:00
< ul >
define MyMacro notify MyMacro { Log 1, "Hello"}< br >
trigger MyMacro< br >
define MacroWithArg notify MyMacro { Log 1, "Hello %"}< br >
trigger MyMacro MyArg< br >
< / ul >
< br >
2013-09-02 10:52:23 +00:00
< / li >
< li > Um die Verwendung von Datum und Zeitangaben zu vereinfachen, wurden die
Variablen $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst
fü r die Verwendung in PERL-" oneliners" eingefü hrt (s.
unter perldoc -f localtime). Ausnahmen: $month hat einen Wertebereich von 1
to 12 und $year ist korrigiert von 1900.
Weiterhin enthä t $hms die Zeit in dem HH:MM:SS Format.
< br >
2012-11-25 17:34:28 +00:00
2013-09-02 10:52:23 +00:00
Die Variabe $we hat den Wert 1 wenn der abgefragte Tag auf ein Wochenende
fä llt (Z.B. $wday == 0 [Sonntag] oder $wday == 6 [Samstag]), und 0
fü r die anderen Wochentage. Wenn man das global < a
href="#holiday2we">holida2we< / a > Attribut setzt, dann ist $we ebenfalls 1
bei Urlaubstagen.< br >
2012-11-25 17:34:28 +00:00
< ul >
define n2 notify piri:on { if($hour > 18 || $hour < 5) {
fhem "set light on" } }< br >
define roll_en *07:45:00 { fhem "trigger SwitchAllRoll on" if(!$we) }< br >
define roll_en *08:30:00 { fhem "trigger SwitchAllRoll on" if($we) }< br >
< / ul >
< br >
< / li > < li >
2012-11-30 17:21:43 +00:00
Die follgendenHilsfunktionen sind in der Datei 99_Util.pm definiert (wird
wie jede mit 99 beginnende Datei automatisch geladen):
2012-11-25 17:34:28 +00:00
< ul >
< li > min(a,b), max(a,b)< / li >
2013-09-02 10:52:23 +00:00
< li > time_str2num("YYYY-MM-DD HH:MM:SS") gibt einen numerischen Wert
zurü ck, der die Berechnung von Zeitdifferenzen vereinfacht< / li >
2012-11-30 17:21:43 +00:00
< li > abstime2rel("HH:MM:SS") wandelt absolute in relative Zeitangaben um
2013-09-02 10:52:23 +00:00
< / li >
2012-11-25 17:34:28 +00:00
< / ul >
< / li >
< li >
2012-12-01 11:44:34 +00:00
Um auf die Gerä testati/Attribute zuzugreifen benutzen Sie bitte die
2012-11-30 17:21:43 +00:00
folgenden Funktionen:
2012-11-25 17:34:28 +00:00
< br >
< ul >
< li > Value(< devicename> )< br >
2013-06-25 08:55:15 +00:00
gibt den Status eines Gerä tes zurü ck (entsprechend dem
Ausdruck in Klammern, den Sie beim List-Befehl sehen).
< / li > < br >
< li > OldValue(< devicename> )< / li >
< li > OldTimestamp(< devicename> )< br >
2012-12-01 11:44:34 +00:00
gibt den vorherigen Wert/Zeitstempel des Gerä tes zurü ck.
2013-06-25 08:55:15 +00:00
< / li > < br >
< li >
2012-11-25 17:34:28 +00:00
ReadingsVal(< devicename> ,< reading> ,< defaultvalue> )< br >
2012-12-01 11:44:34 +00:00
Gibt den Inhalt der " readings" zurü ck (den Inhalt der in dem " Readings" -Abschnitt
2012-11-30 17:21:43 +00:00
von "list device" angezeigt wird)
2013-06-25 08:55:15 +00:00
< / li > < br >
< li >
2012-11-25 17:34:28 +00:00
AttrVal(< devicename> ,< attribute> ,< defaultvalue> )< br >
2012-12-01 11:44:34 +00:00
Gibt die gesetzteb Attribute des Gerä tes zurü ck
2012-11-25 17:34:28 +00:00
< br > < br >
{ Value("wz") }< br >
{ OldValue("wz") }< br >
{ time_str2num(OldTimestamp("wz")) }< br >
{ ReadingsVal("wz", "measured-temp", "20")+0 }< br >
{ ReadingsTimestamp("wz", "measured-temp", 0)}< br >
{ AttrVal("wz", "room", "none") }< br >
2013-06-25 08:55:15 +00:00
< / li > < br >
< li >
InternalVal(< devicename> ,< reading> ,< defaultvalue> )< br >
Gibt den Inhalt der " internal" zurü ck (den Inhalt der in
dem " Internals" -Abschnitt von "list device" angezeigt wird)
< / li > < br >
< / ul >
2012-11-25 17:34:28 +00:00
< / li > < li >
2012-11-30 17:21:43 +00:00
Wenn Sie das 99_SUNRISE_EL.pm Modul benutzen, haben Sie zugriff auf folgende
Funktionen: < br >
2012-11-25 17:34:28 +00:00
< ul >
sunset($offset, $min, $max)< br >
sunrise($offset, $min, $max)< br >
isday()< br >
< / ul >
2012-12-01 11:44:34 +00:00
Der Wert von " offset" wird in Sekunden angegeben und das Format fü r min/max ist "HH:MM" oderr "HH:MM:SS".
isday gibt 1 zurü ck, wenn die Sonne sichtbar ist und ansonsten den Wert 0.
2012-11-25 17:34:28 +00:00
< / li >
< br >
< br >
< a name = "gnuplot-syntax" > < / a >
< h3 > gnuplot file syntax< / h3 >
2012-11-30 17:21:43 +00:00
Die .gplot Dateien werden ebenso von den < a href = "#FHEMWEB" > FHEMWEB< / a > /SVG
Modulen falls das < a href = "#plotmode" > plotmode< / a > -Attribut auf SVG gesetzt
ist. In diesem Fall wird nur eine geringere Anzahl der .gnuplot Attribute
benutzt, und einige Linien haben eine besondere Bedeutung: Die Unterschiede
2012-12-01 11:44:34 +00:00
werden in diesem Kapitel erklä rt. Lesen Sie bitte auch < a href = "http://fhemwiki.de/wiki/Creating_Plots" >
2012-11-30 17:21:43 +00:00
diesen< / a > fhemwiki Eintrag zur Erstellung von Logdateien.< br >
2012-12-01 11:44:34 +00:00
Im folgenden ist eine minimale .gplot Definition (gü ltig nur bei Plotmode SVG):< br >
2012-11-25 17:34:28 +00:00
< pre > set terminal size < SIZE>
#FileLog 4:::
plot title 'Temperature' with lines
< / pre >
2012-11-30 17:21:43 +00:00
Die .gnuplot Datei besteht aus 3 Teilen:
2012-11-25 17:34:28 +00:00
< ul >
2012-11-30 17:21:43 +00:00
< li > set Befehle< br >
Folgende " sets" werden erkannt:
2012-11-25 17:34:28 +00:00
< ul >
2012-12-01 11:44:34 +00:00
< li > terminal, nur die Grö ßenparameter.< br >
2012-11-30 17:21:43 +00:00
Dieser ist in der Regel auf < SIZE> gesetzt, welcher ersetzt wird
durch das < a href = "#plotsize" > plotsize< / a > Attribut von FHEMWEB oder einer
Weblink-Instanz.< / li >
2012-11-25 17:34:28 +00:00
< li > title< br >
2012-11-30 17:21:43 +00:00
Normalerweise gesetzt auf < TL> welcher durch das Weblink < a href = "#title" > title< / a > -Attribut, oder
durch < Lx> , welches wiederum vom Weblink < a href = "#label" > label< / a >
Attribut ersetzt wird.< / li >
2012-11-25 17:34:28 +00:00
< li > ylabel,y2label< br >
2012-11-30 17:21:43 +00:00
Linke und rechte vertikale Achsenbeschriftungen. Are also subject to label
2012-11-25 17:34:28 +00:00
replacement.< / li >
< li > yrange,y2range< br >
2012-11-30 17:21:43 +00:00
Legen den Wertebereich der linken und rechten y-Achse fest.
Beispiele:< br >
2012-11-25 17:34:28 +00:00
< ul >
set yrange [-0.1:1.1]< br >
set y2range [0:]< br >
< / ul >
< / li >
< li > ytics,y2tics< br >
2012-12-01 11:44:34 +00:00
Beschriftung fü r die Werte der rechten/linken y-Achse. Beispiele:< br >
2012-11-25 17:34:28 +00:00
< ul >
set ytics ("on" 0, "off" 1)< br >
set y2tics< br >
< / ul >
< / li >
< / ul >
< / li >
< br >
2012-12-01 11:44:34 +00:00
< li > #FileLog Einträ ge< br >
Jede Line des Plots muss eine dazugehö rige #FileLog
2012-11-30 17:21:43 +00:00
Zeile haben. Zur Syntax lesen Sie bitte den Abschnitt " column_spec paragraph"
von der < a href = "#FileLogget" > Filelog get< / a > Beschreibung.
Beachten sie bitte, das bei SVG-Plots die erste Spalte der Datei unbedingt
im FHEM-Zeitstempelformat (YYYY-MM-DD_HH:MM:SS) formatiert sein muss
2012-11-25 17:34:28 +00:00
< / li >
< br >
2012-12-01 11:44:34 +00:00
< li > Plot Einträ ge< br >
2012-11-30 17:21:43 +00:00
bestehen immer aus einem Plotbefehl und aus durch Kommata getrenne
2012-12-01 11:44:34 +00:00
Argumentblö cke. Jeder Argumentblock reprä sentiert eine darzustellende Linie
2012-11-30 17:21:43 +00:00
und hat seine eigenen Paramter.
Folgende Parameter werden are anerkannt:
2012-11-25 17:34:28 +00:00
< ul >
< li > axes x1y1 / x1y2< br >
2012-11-30 17:21:43 +00:00
weist das Programm an die aktuelle Zeile einer der beiden Achsen (links
oder rechts) zuzuweisen.
2012-11-25 17:34:28 +00:00
< / li >
< li > title< br >
2012-12-01 11:44:34 +00:00
Beschriftung der Linie. Wenn man auf diesen Titel klickt, dann ä ndert
2012-11-30 17:21:43 +00:00
ein kleines Javascript-Programm den Titel auf die min/max und last-Werte
des Plots,
Weiterhin erlaubt das Programm diese Linie zu kopieren oder eine bereits
2012-12-01 11:44:34 +00:00
kopierte Linie einzufü gen (die existierende Skalierung des Plots wird
dabei nicht verä ndert, nur die eingefü gte Linie wird skaliert/angepasst.
2012-11-30 17:21:43 +00:00
Andere Linien des Plots werden zeitweise nicht angezeigt.< / li >
2012-11-25 17:34:28 +00:00
< li > with < linetype> < br >
2012-12-01 11:44:34 +00:00
spezifiziert die Art der Linie. Folgende Linienarten kö nnen verwendet
2012-11-30 17:21:43 +00:00
werden: points,
steps, fsteps, histeps and lines. Nicht bekannte Linienarten werden als
Typ " lines" dargestellt.
2012-11-25 17:34:28 +00:00
< / li >
< li > ls < linestyle> < br >
2012-11-30 17:21:43 +00:00
Der Linienstil stellt die erste Linie als l0 dar, die zweite Linie
als l1 und so weiter. Definiert ist dies in der svg_style.css Datei. Darin
sind zwei Sets definiert: l0-l8 and l0fill-l6fill. Das zweite Set muss
aber explizit angegeben werden. Wenn der Name des Linienstils das Wort " fill"
2012-12-01 11:44:34 +00:00
enthä lt, dann haben Plots des Linientyps "lines" ein zusä tzliches Start- und
Endsegment fü r eine korrekte Darstellung.< br >
Bitte lesen sie die SVG Spezifikationen, um Details ü ber diese css-Datei
2012-11-30 17:21:43 +00:00
zu erfahren.
2012-12-01 11:44:34 +00:00
Notiz: Wenn Sie dieses Attribut einsetzen mö chten, mü ssen Sie es fü r
2012-11-30 17:21:43 +00:00
alle Linien (Attributblocks) im Plotbefehl spezifizieren.
2012-11-25 17:34:28 +00:00
< / li >
< li > lw < linewidth> < br >
2012-11-30 17:21:43 +00:00
Setzt die Linienbreite der Linie. Dieses Attribut ist veraltet. Das
entprechende Feature der css-Datei/(Attribut ls) muss verwendet werden.
2012-11-25 17:34:28 +00:00
< / li >
< / ul >
< / li > < / ul >
< / div > < / body > < / html >