mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
81e67a9258
git-svn-id: https://svn.fhem.de/fhem/trunk@3697 2b470e98-0d58-463d-a4d8-8e2adae1ed80
1585 lines
59 KiB
HTML
1585 lines
59 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
<title>FHEM reference</title>
|
|
<link rel="stylesheet" type="text/css" href="../www/pgm2/style.css" />
|
|
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
|
|
<link rel="shortcut icon" href="/fhem/icons/favicon.ico"/>
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
<div id="logo"></div>
|
|
<div id="menu">
|
|
<h3>fhem.pl Referenz</h3>
|
|
Version: <a href="commandref.html">EN</a> <b>DE</b>
|
|
</div>
|
|
|
|
<div id="right">
|
|
|
|
<h3>Inhalt</h3>
|
|
<ul>
|
|
<a href="#intro">Einleitung</a><br>
|
|
<a href="#command">FHEM Befehls-Typen</a><br>
|
|
<a href="#devspec">Geräte-Spezifikation</a><br>
|
|
|
|
<br>
|
|
<b>FHEM-Befehle</b>
|
|
<ul>
|
|
<a href="#attr">attr</a>
|
|
<a href="#backup">backup</a>
|
|
<a href="#CULflash">CULflash</a>
|
|
<a href="#createlog">createlog</a>
|
|
<a href="#define">define</a>
|
|
<a href="#delete">delete</a>
|
|
<a href="#deleteattr">deleteattr</a>
|
|
<a href="#deletereading">deletereading</a>
|
|
<a href="#fheminfo">fheminfo</a>
|
|
<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>
|
|
<a href="#JsonList">JsonList</a>
|
|
<a href="#list">list</a>
|
|
<a href="#modify">modify</a>
|
|
<a href="#notice">notice</a>
|
|
<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>
|
|
<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>
|
|
<a href="#version">version</a>
|
|
<a href="#xmllist">xmllist</a>
|
|
|
|
</ul>
|
|
|
|
<br>
|
|
<b>Geräte</b>
|
|
<ul>
|
|
<a href="#global">global</a><br>
|
|
|
|
</ul>
|
|
|
|
<br>
|
|
<b>Hilfs (Erweiterungs-) Module</b>
|
|
<ul>
|
|
<a href="#at">at</a>
|
|
<a href="#autocreate">autocreate</a>
|
|
<a href="#average">average</a>
|
|
<a href="#Calendar">Calendar</a>
|
|
<a href="#DbLog">DbLog</a>
|
|
<a href="#dewpoint">dewpoint</a>
|
|
<a href="#dummy">dummy</a>
|
|
<a href="#eventTypes">eventTypes</a>
|
|
<a href="#FHEM2FHEM">FHEM2FHEM</a>
|
|
<a href="#FHEMWEB">FHEMWEB</a>
|
|
<a href="#FB_CALLMONITOR">FB_CALLMONITOR</a>
|
|
<a href="#FileLog">FileLog</a>
|
|
<a href="#FLOORPLAN">FLOORPLAN</a>
|
|
<a href="#HCS">HCS</a>
|
|
<a href="#Heating_Control">Heating_Control</a>
|
|
<a href="#holiday">holiday</a>
|
|
<a href="#LightScene">LightScene</a>
|
|
<a href="#notify">notify</a>
|
|
<a href="#PID">PID</a>
|
|
<a href="#PRESENCE">PRESENCE</a>
|
|
<a href="#PachLog">PachLog</a>
|
|
<a href="#remotecontrol">remotecontrol</a>
|
|
<a href="#SUNRISE_EL">SUNRISE_EL</a>
|
|
<a href="#sequence">sequence</a>
|
|
<a href="#speedtest">speedtest</a>
|
|
<a href="#structure">structure</a>
|
|
<a href="#SVG">SVG</a>
|
|
<a href="#telnet">telnet</a>
|
|
<a href="#Twilight">Twilight</a>
|
|
<a href="#THRESHOLD">THRESHOLD</a>
|
|
<a href="#watchdog">watchdog</a>
|
|
<a href="#weblink">weblink</a>
|
|
<a href="#WOL">WOL</a>
|
|
</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>
|
|
<p>FHEM wird hauptsächlich zur Heimautomatisierung benutzt,
|
|
ist aber ebenso für andere Aufgaben einsetzbar wo Benachrichtigungen,
|
|
Zeitschaltungen und Datensammlungen eine wichtige Rolle spielen.</p>
|
|
<p>FHEM unterstützt verschiedene Hardwaregeräte die eine
|
|
Verbindung mittels unterschiedlicher Protokolle (z.B. FHZ1000 mit Interfaces vom
|
|
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>
|
|
<p>
|
|
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
|
|
weitere Funktionen wie Trigger (<a href="#notify">notify</a>),
|
|
Zeitabhängige Funktionen (<a href="#at">at</a>)
|
|
die die Funktionalität erweitern.</p>
|
|
<p>
|
|
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>
|
|
<ul>
|
|
<code>perl fhem.pl fhem.cfg</code>
|
|
</ul>
|
|
<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
|
|
attr global <a href="#verbose">verbose</a> 3
|
|
define telnetPort <a href="#telnet">telnet</a> 7072 global
|
|
define WEB <a href="#FHEMWEB">FHEMWEB</a> 8083 global</pre>
|
|
|
|
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>
|
|
|
|
Die Kommunikation mit FHEM kann entweder in einer "session" (über telnet) oder
|
|
über einzelne Klient-Kommandos (über fhem.pl) erfolgen. Beispiel:
|
|
<ul>
|
|
<code>telnet <fhemhost> 7072<br>
|
|
<NL> </code>(Die Betätigung der "Enter"-Taste schaltet in den "prompt"
|
|
Modus)<code><br>
|
|
<command>...<br>
|
|
quit</code><br>
|
|
</ul>
|
|
oder
|
|
<ul>
|
|
<code>fhem.pl <fhemhost>:7072 "<command>..."</code>
|
|
</ul>
|
|
</ul>
|
|
<br>
|
|
|
|
|
|
<a name="command"></a>
|
|
<h3>FHEM Befehlstypen</h3>
|
|
<ul>
|
|
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:
|
|
<ul>
|
|
set lamp off<br>
|
|
"fhem.pl 7072 "set lamp off""<br>
|
|
{fhem("set lamp off")}<br>
|
|
</ul>
|
|
SHELL-Kommandos werden im Hintergrund ausgeführt,
|
|
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
|
|
Variablen verfügbar. Lesen Sie sich bitte die Abschnitte <a href="#perl">
|
|
Perl special</a> zum besseren Verständnis durch.</p>
|
|
<p>Um FHEM-Befehle in einen SHELL-Script zu triggern (dies ist
|
|
eine "andere" Möglichkeit), benutzen Sie bitte die oben beschriebene Client-Form
|
|
der fhem.pl.
|
|
<br>
|
|
|
|
Mehrere FHEM-Kommandos hintereinander werden mittels
|
|
Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen
|
|
benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen
|
|
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.
|
|
<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>
|
|
<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.
|
|
|
|
<p>Eine mit einem \ abgeschlossene Zeile wird mit der
|
|
nachfolgenden Zeile verbunden. Somit können lange Befehlszeilen (die z.B. aus
|
|
mehreren PERL-Befehlen bestehen) auf mehrere Zeilen aufgteilt werden. Einige
|
|
Web-Frontends (z.B. webpgm2) erleichtern die Eingabe von sich über mehrere
|
|
Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
|
<p> </p>
|
|
</ul>
|
|
|
|
|
|
<a name="devspec"></a>
|
|
<h3>Geräte-Spezifikation (devspec)</h3>
|
|
<ul>
|
|
Befehle wie
|
|
<a href="#attr">attr</a>,
|
|
<a href="#set">set</a>,
|
|
<a href="#get">get</a>, usw.
|
|
können eine komplexere Gerätespezifikation als Argumente enthalten,
|
|
die auch eine Anzahl von Geräten betreffen kann. Eine
|
|
Gerätespezifikation (Kurzfassung) kann z.B. so aussehen:
|
|
<ul>
|
|
<li>ein einzelner Gerätename. Dies ist der
|
|
meist vorkommende Fall.</li>
|
|
<li>
|
|
eine Liste von Gerätenamen, durch Kommata (,) getrennt</li>
|
|
<li>
|
|
ein Bereich, durch ein Minuszeichen getrennt (-)</li>
|
|
<li>ein regulärer Ausdruck der eines der
|
|
folgenden Zeichen enthält: ^*[]$</li>
|
|
<li>
|
|
ein Geräteattribut, gefolgt von einem Gleichheitszeichen (=) und einem
|
|
regulären Ausdruck für dieses Attribut.
|
|
Als Attribut können Sie entweder Attribute die mittels "attr"-Befehl oder
|
|
eines der "internen" Attribute wie DEF, STATE oder TYPE angeben.</li>
|
|
</ul>
|
|
Beispiele:
|
|
<ul>
|
|
<code>set lamp1 on</code><br>
|
|
<code>set lamp1,lamp2,lamp3 on</code><br>
|
|
<code>set lamp[1-3] on</code><br>
|
|
<code>set lamp.* on</code><br>
|
|
<code>set lamp1-lamp3 on</code><br>
|
|
<code>set lamp1-lamp3,lamp3 on</code><br>
|
|
<code>set room=kitchen off</code><br>
|
|
<code>list disabled=</code><br>
|
|
<code>list TYPE=FS20</code><br>
|
|
</ul>
|
|
Bemerkungen:
|
|
<ul>
|
|
<li>zuerst wird die durch Kommata getrennte
|
|
Spezifikation abgearbeitet, dann folgen die Bereichsspezifikationen und die
|
|
regulären Ausdrücke</li>
|
|
<li>
|
|
wenn für ein Gerät eine Spezifikation exakt zutrifft, werden keine weiteren
|
|
Vergleiche vorgenommen.</li>
|
|
<li>
|
|
die Befehlszeile kann die selbe Gerätebezeichnung mehrfach enthalten z.B.: "set
|
|
lamp1-lamp3, lamp3 on".
|
|
Lamp3 wird hier zwei Mal eingeschalten.</span></li>
|
|
<li>um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie bitte
|
|
den Abschnitt zu <a href="#structure">
|
|
structure</a>.
|
|
</li></ul>
|
|
</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>
|
|
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>
|
|
|
|
<p>Attribute, die für
|
|
alle Geräte anwendbar sind: </p>
|
|
<ul>
|
|
<a name="comment"></a>
|
|
<li>comment<br>
|
|
Fügt einen beliebigen Kommentar hinzu.
|
|
<a name="alias"></a>
|
|
</li><li>alias<br>
|
|
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.
|
|
<a name="room"></a>
|
|
</li><li>room<br>
|
|
Filtert/gruppiert Geräte. Verwendbar unter web-pgm2 und web-pgm3.
|
|
Ein Geräte 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, es sei denn Sie berücksichtigen <a href="#hiddenroom"> FHEMWEB attribute to selectively disable
|
|
rooms for certain FHEMWEB instances.
|
|
</a></li><a href="#hiddenroom">
|
|
|
|
</a><a name="group"></a>
|
|
<li>group<br>
|
|
Gerätegruppen, anwendbar unter web-pgm2 (Modul <a href="#FHEMWEB">FHEMWEB</a>) zeigt Geräte die in die gleiche Gruppe gehören auch in einer
|
|
gemeinsamen Box an. Das benutzt man, um später Geräte zu gruppieren. Ein
|
|
Gerät kann zu mehr als einer Gruppe gehören. In diesem Fall müssen die
|
|
entsprechenden Gruppen, durch Kommata getrennt, eingetragen werden<p>
|
|
Wenn dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe
|
|
gesetzte Gerätetyp verwendet. </li><a name="showtime"></a></p>
|
|
<li>showtime<br>
|
|
Wird im Webfrontend pgm2 verwendet, um die Zeit der letzten Aktivität
|
|
anstelle des Status in der Gesamtansicht anzuzeigen. Nützlich z.B. für FS20
|
|
PIRI Geräte.</span>
|
|
</li>
|
|
|
|
<br><br>
|
|
|
|
<a name="readingFnAttributes"></a>
|
|
<b>readingFnAttribute</b><br>
|
|
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übersicht 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>
|
|
|
|
<a name="event-on-update-reading"></a>
|
|
<li>event-on-update-reading<br>
|
|
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.
|
|
</li>
|
|
|
|
<a name="event-on-change-reading"></a>
|
|
<li>event-on-change-reading<br>
|
|
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
|
|
"readings" identisch sind, wird kein Ereignis generiert.</li><p> Die
|
|
unterschiedlichen Bedeutungen von event-on-update-reading und
|
|
event-on-change-reading sind folgende</span>:
|
|
<ul>
|
|
<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>
|
|
</ul><br></li>
|
|
|
|
<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.
|
|
</li><br>
|
|
|
|
<a name="userReadings"></a>
|
|
<li>userReadings<br>
|
|
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:
|
|
<ul>
|
|
<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,
|
|
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>
|
|
</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.
|
|
</li><br>
|
|
|
|
|
|
</ul>
|
|
<br>
|
|
|
|
Gerätespezifische Attribute sind in der Beschreibung zum jeweiligen
|
|
Gerät aufgeführt.
|
|
<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>
|
|
<code>attr heating stateFormat Temp:measured-temp, Valve:actuator</code><br>
|
|
</ul>
|
|
<br>
|
|
|
|
Bemerkungen:<br>
|
|
<ul>
|
|
<li>Lesen Sie unter <a href="#deleteattr">deleteattr</a> nach um Attribute
|
|
zu löschen.</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
<a name="setdefaultattr"></a>
|
|
<h3>setdefaultattr</h3>
|
|
<ul>
|
|
<code>setdefaultattr [<attrname> [<value>]] </code><br>
|
|
|
|
<br>
|
|
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.
|
|
<br><br>
|
|
|
|
Beispiel, um das Attribut "room kitchen" und "loglevel 4" allen Lampen
|
|
zuzuweisen:
|
|
<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>
|
|
|
|
Anmerkungen:<br>
|
|
<ul>
|
|
<li>es gibt keine Möglichkeit, ein einzelnes Standardattribut aus der Liste
|
|
tu löschen.</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
<a name="define"></a>
|
|
<h3>define</h3>
|
|
<ul>
|
|
<code>define <name> <type> <type-specific></code><br>
|
|
<br>
|
|
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
|
|
lesbar wenn es z.B.
|
|
"lamp off" anstatt "Device 5673, Button 00, Code 00 (off)" als Text enthält. <br>
|
|
Geben Sie an der Befehlszeile "define <name> ?" ein, um eine Liste der
|
|
verfügbaren "types" zu erhalten.<br>
|
|
Nach der Definition, wird das globale Ereignis "DEFINED" genriert. Genauere
|
|
Beschreibung erhalten Sie im Abschnitt "notify".<br>
|
|
<br><br>
|
|
|
|
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>
|
|
<br>
|
|
</ul>
|
|
|
|
|
|
<a name="delete"></a>
|
|
<h3>delete</h3>
|
|
<ul>
|
|
<code>delete <devspec></code> <br>
|
|
<br>
|
|
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>
|
|
|
|
Beispiel:
|
|
<ul>
|
|
<code>delete lamp</code><br>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
|
|
<a name="deleteattr"></a>
|
|
<h3>deleteattr</h3>
|
|
<ul>
|
|
<code>deleteattr <devspec> [<attrname>]</code> <br>
|
|
<br>
|
|
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>
|
|
<br>
|
|
|
|
Beispiele:
|
|
<ul>
|
|
<code>deleteattr lamp follow-on-for-timer</code><br>
|
|
<code>deleteattr lamp</code><br>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
|
|
<a name="deletereading"></a>
|
|
<h3>deletereading</h3>
|
|
<ul>
|
|
<code>deletereading <devspec> <readingname></code> <br>
|
|
<br>
|
|
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>
|
|
<br>
|
|
|
|
Beispiele:
|
|
<ul>
|
|
<code>deletereading mySensor temp1</code><br>
|
|
<code>deletereading mySensor temp\d+</code><br>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
|
|
<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> di WEB room<br>
|
|
Misc.<br>
|
|
</code>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
|
|
<a name="get"></a>
|
|
<h3>get</h3>
|
|
<ul>
|
|
<code>get <devspec> <type-specific></code>
|
|
<br><br>
|
|
Fragt einen Wert direkt (aktuell) vom Gerät ab und wartet auf eine
|
|
Antwort. Eine allgemeine Liste möglicher Paramter erhalten Sie mit<ul>
|
|
<code>get <device> ?</code>
|
|
</ul>
|
|
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
|
für Details der <devspec>.<br>
|
|
Jedes Gerät hat unterschiedliche "get"-Parameter. Lesen Sie Details bitte im
|
|
zugehörigen Abschnitt nach.<br>
|
|
<br>
|
|
|
|
</ul>
|
|
|
|
|
|
<a name="getstate"></a>
|
|
<h3>getstate</h3>
|
|
<ul>
|
|
<code>getstate <devspec></code>
|
|
<br><br>
|
|
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>
|
|
Beispiel:
|
|
<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>
|
|
Bemerkung: Um diesen Befehl nutzen zu können, kopieren Sie bitte die
|
|
Datei 99_getstate.pm aus dem Verzeichnis contrib/getstate/ in Ihr FHEM
|
|
Verzeichnis.
|
|
<br>
|
|
|
|
</ul>
|
|
|
|
|
|
<a name="include"></a>
|
|
<h3>include</h3>
|
|
<ul>
|
|
<code>include <filename></code> <br>
|
|
<br>
|
|
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.
|
|
nach Räumen geordnet auftzuteilen.
|
|
<br>
|
|
</ul>
|
|
|
|
<a name="inform"></a>
|
|
<h3>inform</h3>
|
|
<ul>
|
|
<code>inform {on|off|timer|raw} [regexp]</code> <br>
|
|
<br>
|
|
Wenn auf "on" gesetzt und der Status eines Gerätes ändert sich, dann wird eine
|
|
Nachricht an den Client gesendet. Dieser Befehl kann von anderen
|
|
Programmen/Modulen dazu benutzt werden, eine Hinweisnachricht zu erhalten. <br>
|
|
Die Option "timer" fügt der Nachricht einen Zeitstempel hinzu. Hinweis:
|
|
Dieser Befehl erleichtert Ihnen die bessere Kontrolle in
|
|
<a href="#notify">notify</a> oder <a href="#FileLog">FileLog</a> , wann welche
|
|
Ereignisse erzeugt wurden.
|
|
|
|
<br>
|
|
</ul>
|
|
|
|
<a name="list"></a>
|
|
<h3>list</h3>
|
|
<ul>
|
|
<code>list [devspec] [value]</code>
|
|
<br><br>
|
|
Auflistung aller "definitions", "notify" und "at"-Definitionen. Dies ist eines
|
|
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>
|
|
|
|
<br>
|
|
Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder reading (actuator,
|
|
measured-temp) für alle Geräte die in devspec angegeben sind.
|
|
<br><br>
|
|
Beispiel:
|
|
<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>
|
|
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,
|
|
z.B.:
|
|
<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>
|
|
|
|
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.
|
|
<br><br>
|
|
Beispiel:
|
|
<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>
|
|
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.
|
|
<br><br>
|
|
Beispiel:
|
|
<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>
|
|
Benennt ein Gerät von <oldname> in <newname>, einschliesslich der
|
|
Attribute, um. Das globale Ereignis "RENAMED" wird erstellt, Lesen Sie bitte
|
|
den Abschnitt "notify" durch um Details zu erfahren.
|
|
<br><br>
|
|
Beispiel:
|
|
<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>
|
|
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>
|
|
gesichert. Dann werden alle Geräte gelöscht. Dann wird die aktuelle
|
|
Konfigurationsdatei (oder die angegebene Datei) eingelesen zuletzt wird das statefile
|
|
neu eingelesen.<br>
|
|
Wenn dieser Ablauf abgeschlossen ist, wird das globale REREADCFG Ereignis
|
|
ausgelöst. Alle existierenden Verbindungenwerden bis zum "rereadcfg" Ereignis
|
|
getrennt.
|
|
|
|
<br><br>
|
|
Beipiel:
|
|
<ul>
|
|
<code>rereadcfg</code>
|
|
</ul>
|
|
</ul>
|
|
|
|
<a name="save"></a>
|
|
<h3>save</h3>
|
|
<ul>
|
|
<code>save [<configfile>]</code>
|
|
<br><br>
|
|
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:
|
|
<ul>
|
|
<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>)
|
|
benötigen,dann müssen Sie sie mit <a href="#notify">notify</a> triggern wenn
|
|
das
|
|
INITIALIZED Ereignis eintritt.</li>
|
|
|
|
<li>Der Befehl "save" versucht Kommentarzeilen (Zeilen die mit #
|
|
beginnen) und "include"-Zeilen zu erhalten, aber arbeitet nicht korrekt wenn
|
|
FHEM für diese Dateien keine Schreibrechte besitzt.</li>
|
|
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
<a name="set"></a>
|
|
<h3>set</h3>
|
|
<ul>
|
|
<code>set <devspec> <type-specific></code>
|
|
<br><br>
|
|
Der Befehl setzt Geräteparameter/sendet Signale an ein Gerät. Sie
|
|
erhalten eine Liste verfügbarer Parameter wenn Sie folgendes eingeben:
|
|
<ul>
|
|
<code>set <name> ?</code>
|
|
</ul>
|
|
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.
|
|
<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.
|
|
<br>
|
|
|
|
<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><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><br>
|
|
siehe on-for-timer.</li>
|
|
<li>on-till <timedet><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><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>
|
|
</ul>
|
|
|
|
|
|
<a name="setstate"></a>
|
|
<h3>setstate</h3>
|
|
<ul>
|
|
<code>setstate <devspec> <value></code>
|
|
<br><br>
|
|
Der Befehl setzt den "STATUS" für <code><name></code> , wie im Befehl
|
|
<a href="#list">list</a> beschrieben, auf den Wert <code><value></code>
|
|
ohne an das Gerät ein Signal zu senden. Dieser Befehl wird auch im <a href="#statefile">statefile</a>
|
|
benutzt.<br>
|
|
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
|
für Details der <devspec>.<br>
|
|
<br>
|
|
Examples:
|
|
<ul>
|
|
setstate lamp on
|
|
</ul>
|
|
Note:
|
|
<ul>
|
|
<li>The statefile uses another version of this command, don't be surprised.
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
<a name="shutdown"></a>
|
|
<h3>shutdown</h3>
|
|
<ul>
|
|
<code>shutdown [restart]</code>
|
|
<br><br>
|
|
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.
|
|
<br><br>
|
|
Beispiel:
|
|
<ul>
|
|
<code>shutdown</code><br>
|
|
<code>shutdown restart</code>
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
<a name="trigger"></a>
|
|
<h3>trigger</h3>
|
|
<ul>
|
|
<code>trigger <devspec> <state></code>
|
|
<br><br>
|
|
Triggert eine <a href="#notify">notify</a> Definition.<br>
|
|
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
|
für Details der <devspec>.<br>
|
|
<br>
|
|
Beispiel:
|
|
<ul>
|
|
<code>trigger btn3 on</code>
|
|
</ul>
|
|
</ul>
|
|
|
|
<a name="sleep"></a>
|
|
<h3>sleep</h3>
|
|
<ul>
|
|
<code>sleep <sec> [quiet]</code>
|
|
<br><br>
|
|
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.
|
|
<br><br>
|
|
Beispiele:
|
|
<ul>
|
|
<code>sleep 0.5</code><br>
|
|
<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>
|
|
</ul>
|
|
<br>
|
|
Bemerkung: sleep gefolgt von weiteren Befehlen und aufgerufen in
|
|
at/notify/etc blockiert die Abarbeitung von FHEM nicht.<br>
|
|
</ul>
|
|
|
|
<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>
|
|
|
|
|
|
<a name="global"></a>
|
|
<h3>global</h3>
|
|
<ul>
|
|
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
|
|
hat keine "set" oder "get" Parameter.<br>
|
|
<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>
|
|
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.
|
|
</li><br>
|
|
|
|
<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>
|
|
|
|
<a name="backup_before_update"></a>
|
|
<li>backup_before_update<br>
|
|
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>
|
|
<ul>
|
|
attr global backup_before_update 0
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="backupcmd"></a>
|
|
<li>backupcmd<br>
|
|
Sie können das Update durch Ihre eigenen Befehle/Skripts durchführen
|
|
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.:
|
|
<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>
|
|
Bemerkung: Ihr Befehl/Skript muss die Zeichenkette "backup done"
|
|
zurückgeben oder eine entsprechende Zeichenkette um Fehlermeldungen
|
|
auszugeben, damit die Zusammenarbeit mit updatefhem funktioniert!<br>
|
|
Dieses Attribut wird vom <a href="#backup">backup</a> Befehl benutzt.<br>
|
|
Beispiel:<br>
|
|
<ul>
|
|
attr global backupcmd /usr/local/bin/myBackupScript.sh
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="backupdir"></a>
|
|
<li>backupdir<br>
|
|
Ein Ordner um die komprimierten Sicherheitsdateien zu speichern.
|
|
Dieses Attribut wird vom <a href="#backup">backup</a> Befehl benutzt.<br>
|
|
Beispiel:<br>
|
|
<ul>
|
|
attr global backupdir /Volumes/BigHD
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="backupsymlink"></a>
|
|
<li>backupsymlink<br>
|
|
Wenn dieses Attribut auf etwas anderes als "no", dann unterstützt der
|
|
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>
|
|
<ul>
|
|
attr global backupsymlinks yes
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="configfile"></a>
|
|
<li>configfile<br>
|
|
Enthält den Namen der FHEM Konfigurationsdatei. Wenn <a href="#save">save</a>
|
|
ohne Argumente aufgerufen wird dann wird die Ausgabedatei unter diesem
|
|
Dateinamen gespeichert.
|
|
</li><br>
|
|
|
|
<a name="exclude_from_update"></a>
|
|
<li>exclude_from_update<br>
|
|
Enthält eine Liste durch Leerzeichen getrennter Dateien welche nicht im
|
|
Update berücksichtigt werden. Dieses Attribut wird vom <a href="#update">update</a>
|
|
Befehl benutzt.<br>
|
|
Beispiel:<br>
|
|
<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>
|
|
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>
|
|
<ul>
|
|
attr global holiday2we hessen
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="lastinclude"></a>
|
|
<li>lastinclude<br>
|
|
Wurde dieses Attribut gesetzt, dann wird der letzte Befehl der generierten
|
|
Konfigurationsdatei (siehe <a href="#save">save</a> Befehl) berücksichtigt <lastinclude-value><br>
|
|
Dieses Attribut ist DEPRECATED, bitte benutzen Sie <a href="#notify">notify</a>,
|
|
mit dem INITIALIZED Ereignis um Befehle nach der Intialisierung
|
|
auszuführen.
|
|
</li><br>
|
|
|
|
<a name="logfile"></a>
|
|
<li>logfile<br>
|
|
Gibt das Logfile an, in welches gespeichert werden soll. Sie
|
|
können "-" für die Ausgabe in das stdout-Gerät. In diesem Fall the server won't background itself.<br>
|
|
Der Name der Logdatei kann auch "wildcards" enthalten, um eine
|
|
einfachere Abfolge für die Dateien zu erreichen. Lesen Sie bitte den
|
|
Abschnitt <a href="#FileLog">FileLog</a>. Fügen Sie die Attribute
|
|
<code>archivecmd / archivedir / nrarchive</code> zum
|
|
<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
|
|
<code>{ $currlogfile }festlegen</code>.
|
|
</li><br>
|
|
|
|
<a name="modpath"></a>
|
|
<li>modpath<br>
|
|
Mit modpath geben Sie den Pfad zu dem Verzeichnis der <code>FHEM</code>
|
|
Module an. Der Pfad enhält <b>nicht</b> das Verzeichnis FHEM. Durch das
|
|
setzen der Attribute, wird das Verzeichnis nach Dateinamen in der Form NN_<NAME>.pm,
|
|
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
|
|
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.
|
|
modpath attribute definition time).
|
|
</li><br>
|
|
|
|
<a name="motd"></a>
|
|
<li>motd<br>
|
|
Nachricht des Tages. Wird im Begrüßungsbildschirm von FHEM angezeigt,
|
|
oder direkt beim Start einer "telnet" Sitzung, bevor der fhem> Prompt
|
|
erscheint. Der SecurityCheck setzt motd wenn es bisher nicht gesetzt ist. Um
|
|
das zu verhindern, können sie den Wert von motd auf "none" setzen
|
|
</li><br>
|
|
|
|
<a name="mseclog"></a>
|
|
<li>mseclog<br>
|
|
Wenn dieses Attribut gesetzt ist, enthalten Datums/Zeiteinträge (timestamp)
|
|
in der Logdatei einen Millisekunden-Eintrag.
|
|
</li><br>
|
|
|
|
<a name="nofork"></a>
|
|
<li>nofork<br>
|
|
Wenn dieses Attribut gesetzt ist und der "-" Eintrag bei "logfile", dann
|
|
wird nicht im Hintergrund abgearbeitet. Dieses Attribut ist bei einigen FHEM
|
|
Installationen auf FRITZ!-Boxen notwendig.
|
|
</li><br>
|
|
|
|
<a name="pidfilename="></a>
|
|
<li>pidfilename<br>
|
|
Schreibt die PERL Prozess-ID in die angegebene Datei. Der Server läuft
|
|
als Daemon und einige Distributionen wollen anhand der PID testen, ob der
|
|
FHEM Prozess läuft. Die Datei wird bei Ausführung des "shutdown"-Kommandos
|
|
gelöscht.
|
|
</li><br>
|
|
|
|
<li><a href="#fheminfo">sendStatistics</a>
|
|
|
|
<a name="statefile"></a>
|
|
<li>statefile<br>
|
|
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.
|
|
</li><br>
|
|
|
|
<a name="title"></a>
|
|
<li>title<br>
|
|
Das Attribut "title" wird unter dem Frontend fhemweb.pl (webpgm2) zur
|
|
Festlegung des Seitentitels benutzt..
|
|
</li><br>
|
|
|
|
<li><a href="#fheminfo">uniqueID</a>
|
|
|
|
<a name="updatebranch"></a>
|
|
<li>updatebranch<br>
|
|
Dieses Attribut wird mittels der Datei FhemUtils/release.pm gesetzt die
|
|
im "modpath"-Verzeichnis enthalten ist. Z.B, wenn eine stabile Version von
|
|
FHEM (ab Version 5.3 aufwärts) über eine direkte Download-Verbindung vom
|
|
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
|
|
Sicherheitslücken oder neue stabile Versionen aktualisiert.<br>
|
|
Mittels dem Befehl "update development <filename>" benutzen,
|
|
können Dateien oder Pakete jederzei direkt aus dem Entwicklungszweig
|
|
(z.B. mittels "update development <package>") installiert werden.<br>
|
|
Wenn Sie anstelle von Entwicklungsversionen eine stabile Version
|
|
installieren wollen, so können Sie dies durch Angabe des Attributes "updatebranch DEVELOPMENT"
|
|
erzwingen.
|
|
Bei der Installation von FHEM sollten Sie generell die
|
|
Entwicklungsversion installieren. Dieses Attribut muss nicht gesetzt werden.
|
|
Benutzen Sie dagegen "update development force"
|
|
um alle Dateien, einschliesslich der Datei release.pm (enthält die
|
|
aktuellen Informationen)
|
|
zu aktualisieren.
|
|
</li><br>
|
|
|
|
<a name="userattr"></a>
|
|
<li>userattr<br>
|
|
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.
|
|
</li><br>
|
|
|
|
<a name="verbose"></a>
|
|
<li>verbose<br>
|
|
Setzt den Wert für die Häufigkeit/Intensität von
|
|
Nachrichten. 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 - Sie sehen was von den einzelnen Geräten empfangen wird.
|
|
</li><li>5 - Fehlersuche.</li>
|
|
</ul>
|
|
Es wird der Wert 3 für den Normalgebrauch empfohlen.
|
|
</li><br>
|
|
|
|
<a name="dupTimeout"></a>
|
|
<li>dupTimeout<br>
|
|
Definert die Wartezeit, nach der 2 identische Ereignisse zweier
|
|
Empfänger als Duplikat angesehen werden. Voreingestellt sind 0,5
|
|
Sekunden.
|
|
</li><br>
|
|
|
|
<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>
|
|
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
<a name="perl"></a>
|
|
<h3>Perl specials</h3>
|
|
Wenn Sie einige Aufgaben automatisieren wollen, dann sollten Sie die Befehle <a href="#at">at</a> oder <a href="#notify">notify</a>
|
|
nutzen. Für komplexere Aufgaben sollten Sie lieber ein SHELLl-Skiipt oder einen
|
|
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,
|
|
während das Ergebnis der anderen Zeilen direkt auf der Webseite sichtbar ist.<ul>
|
|
Beispiele:<p>{ "Hello" }<br>
|
|
{ 1+3*4 }<br>
|
|
{ `ls /etc` }<br>
|
|
{ Log 1, "Hello" }<br>
|
|
</p>
|
|
</ul>
|
|
<br>
|
|
|
|
</li><li>
|
|
PERL Ausdrücke werden durch ein Semikolon (;) getrennt. In FHEM "oneliners"
|
|
müssen sie durch ein weiteres Semikolon (;;) "escaped" (maskiert) werden<br>
|
|
Beispiel:<ul>
|
|
{ my $a = 1+1;; Log 1, "Hello $a" }
|
|
</ul>
|
|
<br>
|
|
|
|
</li><li>Um FHEM-Kommandos in den PERL-Ausdrücken zu verwenden, benutzen Sie
|
|
bitte die Funktion fhem(),
|
|
mit einem Textargument. Dieser Text wird als FHEM-Kommando interpretiert.<br>
|
|
<p> Beispiel<ul>
|
|
{ fhem "set light on" }<br>
|
|
define n1 notify piri:on { fhem "set light on" }
|
|
<p> </p>
|
|
</ul>
|
|
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...".
|
|
<br>
|
|
<br>
|
|
|
|
</li><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>
|
|
<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>
|
|
|
|
|
|
</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.<br>
|
|
Die weitere 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
|
|
allgemeine <a href="#holiday2we">holida2we</a> Attribut setzt, dann ist $we
|
|
ebenfalls 1 bei Urlaubstagen.<br>
|
|
<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>
|
|
Die follgendenHilsfunktionen sind in der Datei 99_Util.pm definiert (wird
|
|
wie jede mit 99 beginnende Datei automatisch geladen):
|
|
<ul>
|
|
<li>min(a,b), max(a,b)</li>
|
|
<li>time_str2num("YYYY-MM-DD HH:MM:SS") gibt einen numerischen Wert zurück,
|
|
der die Berechnung von Zeitdifferenzen vereinfacht</li>
|
|
<li>abstime2rel("HH:MM:SS") wandelt absolute in relative Zeitangaben um
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
Um auf die Gerätestati/Attribute zuzugreifen benutzen Sie bitte die
|
|
folgenden Funktionen:
|
|
<br>
|
|
<ul>
|
|
<li>Value(<devicename>)<br>
|
|
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>
|
|
gibt den vorherigen Wert/Zeitstempel des Gerätes zurück.
|
|
</li><br>
|
|
<li>
|
|
ReadingsVal(<devicename>,<reading>,<defaultvalue>)<br>
|
|
Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt
|
|
von "list device" angezeigt wird)
|
|
</li><br>
|
|
<li>
|
|
AttrVal(<devicename>,<attribute>,<defaultvalue>)<br>
|
|
Gibt die gesetzteb Attribute des Gerätes zurück
|
|
<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>
|
|
</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>
|
|
|
|
|
|
</li><li>
|
|
Wenn Sie das 99_SUNRISE_EL.pm Modul benutzen, haben Sie zugriff auf folgende
|
|
Funktionen: <br>
|
|
<ul>
|
|
sunset($offset, $min, $max)<br>
|
|
sunrise($offset, $min, $max)<br>
|
|
isday()<br>
|
|
</ul>
|
|
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.
|
|
</li>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
<a name="gnuplot-syntax"></a>
|
|
<h3>gnuplot file syntax</h3>
|
|
|
|
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
|
|
werden in diesem Kapitel erklärt. Lesen Sie bitte auch <a href="http://fhemwiki.de/wiki/Creating_Plots">
|
|
diesen</a> fhemwiki Eintrag zur Erstellung von Logdateien.<br>
|
|
Im folgenden ist eine minimale .gplot Definition (gültig nur bei Plotmode SVG):<br>
|
|
<pre> set terminal size <SIZE>
|
|
#FileLog 4:::
|
|
plot title 'Temperature' with lines
|
|
</pre>
|
|
Die .gnuplot Datei besteht aus 3 Teilen:
|
|
<ul>
|
|
<li>set Befehle<br>
|
|
Folgende "sets" werden erkannt:
|
|
<ul>
|
|
<li>terminal, nur die Größenparameter.<br>
|
|
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>
|
|
|
|
<li>title<br>
|
|
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>
|
|
|
|
<li>ylabel,y2label<br>
|
|
Linke und rechte vertikale Achsenbeschriftungen. Are also subject to label
|
|
replacement.</li>
|
|
|
|
<li>yrange,y2range<br>
|
|
Legen den Wertebereich der linken und rechten y-Achse fest.
|
|
Beispiele:<br>
|
|
<ul>
|
|
set yrange [-0.1:1.1]<br>
|
|
set y2range [0:]<br>
|
|
</ul>
|
|
</li>
|
|
<li>ytics,y2tics<br>
|
|
Beschriftung für die Werte der rechten/linken y-Achse. Beispiele:<br>
|
|
<ul>
|
|
set ytics ("on" 0, "off" 1)<br>
|
|
set y2tics<br>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<br>
|
|
|
|
<li>#FileLog Einträge<br>
|
|
Jede Line des Plots muss eine dazugehörige #FileLog
|
|
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
|
|
</li>
|
|
<br>
|
|
|
|
<li>Plot Einträge<br>
|
|
bestehen immer aus einem Plotbefehl und aus durch Kommata getrenne
|
|
Argumentblöcke. Jeder Argumentblock repräsentiert eine darzustellende Linie
|
|
und hat seine eigenen Paramter.
|
|
Folgende Parameter werden are anerkannt:
|
|
<ul>
|
|
<li>axes x1y1 / x1y2<br>
|
|
weist das Programm an die aktuelle Zeile einer der beiden Achsen (links
|
|
oder rechts) zuzuweisen.
|
|
</li>
|
|
<li>title<br>
|
|
Beschriftung der Linie. Wenn man auf diesen Titel klickt, dann ändert
|
|
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
|
|
kopierte Linie einzufügen (die existierende Skalierung des Plots wird
|
|
dabei nicht verändert, nur die eingefügte Linie wird skaliert/angepasst.
|
|
Andere Linien des Plots werden zeitweise nicht angezeigt.</li>
|
|
<li>with <linetype><br>
|
|
spezifiziert die Art der Linie. Folgende Linienarten können verwendet
|
|
werden: points,
|
|
steps, fsteps, histeps and lines. Nicht bekannte Linienarten werden als
|
|
Typ "lines" dargestellt.
|
|
</li>
|
|
<li>ls <linestyle><br>
|
|
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"
|
|
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
|
|
zu erfahren.
|
|
Notiz: Wenn Sie dieses Attribut einsetzen möchten, müssen Sie es für
|
|
alle Linien (Attributblocks) im Plotbefehl spezifizieren.
|
|
</li>
|
|
<li>lw <linewidth><br>
|
|
Setzt die Linienbreite der Linie. Dieses Attribut ist veraltet. Das
|
|
entprechende Feature der css-Datei/(Attribut ls) muss verwendet werden.
|
|
|
|
</li>
|
|
</ul>
|
|
</li></ul>
|
|
|
|
|
|
|
|
|
|
</div></body></html>
|