2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00
fhem-mirror/fhem/docs/commandref_frame_DE.html

1325 lines
48 KiB
HTML
Raw Normal View History

<!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="../css/style.css">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" href="http://fhem.de/favicon.ico">
</head>
<body>
<div id="logo"></div>
<div id="menu">
<h3>fhem.pl Referenz</h3>
Version: <a href="commandref.html">EN</a>&nbsp;<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> &nbsp;
<a href="#backup">backup</a> &nbsp;
<a href="#CULflash">CULflash</a> &nbsp;
<a href="#createlog">createlog</a> &nbsp;
<a href="#define">define</a> &nbsp;
<a href="#delete">delete</a> &nbsp;
<a href="#deleteattr">deleteattr</a> &nbsp;
<a href="#get">get</a> &nbsp;
<a href="#getstate">getstate</a> &nbsp;
<a href="#help">?,help</a> &nbsp;
<a href="#include">include</a> &nbsp;
<a href="#inform">inform</a> &nbsp;
<a href="#jsonlist">jsonlist</a> &nbsp;
<a href="#list">list</a> &nbsp;
<a href="#modify">modify</a> &nbsp;
<a href="#quit">quit</a> &nbsp;
<a href="#reload">reload</a> &nbsp;
<a href="#rename">rename</a> &nbsp;
<a href="#rereadcfg">rereadcfg</a> &nbsp;
<a href="#save">save</a> &nbsp;
<a href="#set">set</a> &nbsp;
<a href="#setdefaultattr">setdefaultattr</a> &nbsp;
<a href="#setstate">setstate</a> &nbsp;
<a href="#shutdown">shutdown</a> &nbsp;
<a href="#sleep">sleep</a> &nbsp;
<a href="#trigger">trigger</a> &nbsp;
<a href="#update">update</a> &nbsp;
<a href="#usb">usb</a> &nbsp;
<a href="#xmllist">xmllist</a> &nbsp;
</ul>
<br>
<b>Geräte</b>
<ul>
<a href="#global">global</a><br>
</ul>
<br>
<b>Hilfs (Erweiterungs-) Module</b>
<ul>
<a href="#FHEM2FHEM">FHEM2FHEM</a> &nbsp;
<a href="#FHEMWEB">FHEMWEB</a> &nbsp;
<a href="#FileLog">FileLog</a> &nbsp;
<a href="#PachLog">PachLog</a> &nbsp;
<a href="#PID">PID</a> &nbsp;
<a href="#SUNRISE_EL">SUNRISE_EL</a> &nbsp;
<a href="#at">at</a> &nbsp;
<a href="#autocreate">autocreate</a> &nbsp;
<a href="#average">average</a> &nbsp;
<a href="#dewpoint">dewpoint</a> &nbsp;
<a href="#dummy">dummy</a> &nbsp;
<a href="#holiday">holiday</a> &nbsp;
<a href="#notify">notify</a> &nbsp;
<a href="#sequence">sequence</a> &nbsp;
<a href="#structure">structure</a> &nbsp;
<a href="#telnet">telnet</a> &nbsp;
<a href="#watchdog">watchdog</a> &nbsp;
<a href="#weblink">weblink</a> &nbsp;
</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> &nbsp;</p>
<p class="MsoNormal">Wenn Sie den FHEM-Server starten, müssen Sie eine
Konfigurationsdatei auswählen:</p>
<p>&nbsp;</p>
<ul>
<code>fhem.pl ~/.fhem</code>
</ul>
&nbsp;<p>Nachstehend eine Minimal-Konfiguration Datei: </p>
<pre> attr global <a href="#logfile">logfile</a> /tmp/fhem.log
attr global <a href="#statefile">statefile</a> /tmp/fhem.save
attr global <a href="#verbose">verbose</a> 3
attr global <a href="#port">port</a> 7072
attr global <a href="#modpath">modpath</a> /usr/share/fhem
<a href="#define">define</a> FHZ FHZ /dev/tts/USB0
<a href="#define">define</a> lamp FS20 8765 01</pre>
<p>Beispiele für andere Konfigurationsdateien finden Sie
im “examples“-Verzeichnis</p>
<p>
Die Kommunikation mit FHEM kann entweder in einer “session” (über telnet) oder
über einzelne Klient-Kommandos (über fhem.pl) erfolgen. Beispiel:</p>
<ul>
<code>telnet localhost 7072<br>
&lt;NL&gt; </code>(Die Betätigung der &quot;Enter&quot;-Taste schaltet in den&nbsp; "prompt"
Modus)<code><br>
&lt;command&gt;...<br>
quit</code><br>
</ul>
oder
<ul>
<code>fhem.pl 7072 "set lamp off"</code>
</ul>
</ul>
<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.&nbsp;
<p class="MsoNormal">Die folgenden drei Befehle bewirken z.B. dasselbe
Ergebnis, wenn sie am “telnet”-Prompt eingegeben werden:</p>
<p>&nbsp;</p>
<ul>
set lamp off<br>
"fhem.pl 7072 "set lamp off""<br>
{fhem("set lamp off")}<br>
</ul>
&nbsp;<p>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="file:///C:/Inetpub/wwwroot/www.fhem.de/commandref_ger.html#perl" style="color: #278727; text-decoration: underline; text-underline: single">
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.</p>
<p>&nbsp;</p>
<p">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.</p>
<p>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. </p>
<p>&nbsp;</p>
<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>
&nbsp;<p">Befehle können entweder direkt eingegeben oder aus
seiner 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>
<p>&nbsp;</p>
<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>&nbsp;</p>
</ul>
<a name="devspec"></a>
<h3>Geräte-Spezifikation (devspec)</h3>
<ul>
<p>Die Befehle
<a href="#attr">attr</a>,
<a href="#deleteattr">deleteattr</a>,<a href="#delete">delete</a>,
<a href="#get">get</a>,
<a href="#list">list</a>,
<a href="#set">set</a>,
<a href="#setstate">setstate</a>,<a href="file:///C:/Inetpub/wwwroot/www.fhem.de/commandref_ger.html#setstate"><span style="text-decoration: underline">
</span></a>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:</p>
<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>
&nbsp;<p>
Beispiele: </p>
<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: <br>
&nbsp;<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.: &quot;set
lamp1-lamp3, lamp3 on&quot;.
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 &lt;devspec&gt; &lt;attrname&gt; [&lt;value&gt;] </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 „&lt;attr &lt;name&gt; ?“ ein, um eine Liste verfügbarer Attribute
anzuzeigen. Bitte lesen Sie das Kapitel <a href="#devspec">Device specification</a>&nbsp;
um Detail-Informationen zu &lt;devspec&gt; zu erhalten.
<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&nbsp; 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.&nbsp;</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>
<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="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>:
<ol>
<li>
<p>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>
</ol>
</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>
</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 [&lt;attrname&gt; [&lt;value&gt;]] </code><br>
<br>
Fügt Sie ein Standardattribut hinzu. Jedem nach dieser Zuweisung definierte
Gerät wird dieses Attribut zugewiesen. Wenn kein „attrname“ angegenben 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 &lt;name&gt; &lt;type&gt; &lt;type-specific&gt;</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 &lt;name&gt; ?" ein, um eine Liste der
verfügbaren &quot;types&quot; zu erhalten.<br>
Nach der Definition, wird das globale Ereignis "DEFINED" genriert. Genauere
Beschreibung erhalten Sie im Abschnitt &quot;notify&quot;.<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="deleteattr"></a>
<h3>deleteattr</h3>
<ul>
<code>deleteattr &lt;devspec&gt; [&lt;attrname&gt;]</code> <br>
<br>
Löscht entweder ein einzelnes Attribut (siehe Abschnitt <a href="#attr">attr</a> )
oder alle Attribute eines Gerätes (falls kein&nbsp; &lt;attrname&gt; angegeben
wird).
Lesen Sie bitte den&nbsp; <a href="#devspec">Device specification</a>
Abschnitt für
&lt;devspec&gt; durch.<br>
<br>
Beispiele:
<ul>
<code>deleteattr lamp follow-on-for-timer</code><br>
<code>deleteattr lamp</code><br>
</ul>
<br>
</ul>
<a name="delete"></a>
<h3>delete</h3>
<ul>
<code>delete &lt;devspec&gt;</code> <br>
<br>
Löscht etwas was mit dem <a href="#define">define</a> Befehl erstellt worden
ist.
Lesen Sie sich bitte den Abschnitt <a href="#devspec">Device specification</a>&nbsp; für
Details von
&lt;devspec&gt; durch.<br>
Nach dem löschen, wird das globale Ereignis "DELETED" erzeugt. Lesen Sie bitte
den Abschnitt zu &quot;notify&quot; für genauere Informationen durch.<br>
Beispiel:
<ul>
<code>delete lamp</code><br>
</ul>
<br>
</ul>
<a name="get"></a>
<h3>get</h3>
<ul>
<code>get &lt;devspec&gt; &lt;type-specific&gt;</code>
<br><br>
Fragt einen Wert direkt&nbsp; (aktuell) vom Gerät ab und wartet auf eine
Antwort. Eine allgemeine Liste möglicher Paramter erhalten Sie mit<ul>
<code>get &lt;device&gt; ?</code>
</ul>
Lesen Sie den Abschnitt <a href="#devspec">Device specification</a> für
Details zu
&lt;devspec&gt; durch.<br>
<br>
Jedes Gerät hat unterschiedliche &quot;get&quot;-Parameter. Lesen Sie Details bitte im
zugehörigen Abschnitt nach.<br>
<br>
</ul>
<a name="getstate"></a>
<h3>getstate</h3>
<ul>
<code>getstate &lt;devspec&gt;</code>
<br><br>
Gibt einen kurzen, durch Leerzeichen getrennte Statusliste für &lt;devspec&gt;
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&nbsp; 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 &lt;filename&gt;</code> <br>
<br>
Liest (z.B. als Befehlszeile in der fhem.cfg) die in &lt;filename&gt; 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 &quot;on&quot; 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 &quot;timer&quot; fügt&nbsp; 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 &quot;definitions&quot;, &quot;notify&quot; und &quot;at&quot;-Definitionen. Dies ist eines
der wenigen Befehle, die im Normalfall eine Zeichenkette ausgeben. Bitte lesen
Sie den Abschnitt <a href="#devspec">Device specification</a> für Details zu
&lt;devspec&gt;.
<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&gt; 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&gt; 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 &lt;name&gt; &lt;type-dependent-options&gt;</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 &quot;notify&quot; wird nur der&nbsp; regex Teil
geändert. Alle anderen Werte (Stati, Attribute,&nbsp; 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 &lt;module&gt;</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 &lt;oldname&gt; &lt;newname&gt;</code>
<br><br>
Benennt ein Gerät von &lt;oldname&gt; in &lt;newname&gt;, einschliesslich der
Attribute, um. Das globale Ereignis &quot;RENAMED&quot; wird erstellt, Lesen Sie bitte
den Abschnitt &quot;notify&quot; 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:&nbsp; 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 &quot;rereadcfg&quot; Ereignis
getrennt.
<br><br>
Beipiel:
<ul>
<code>rereadcfg</code>
</ul>
</ul>
<a name="save"></a>
<h3>save</h3>
<ul>
<code>save [&lt;configfile&gt;]</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 &quot;definitions&quot; und &quot;attributes&quot; 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 &quot;save&quot; versucht Kommentarzeilen&nbsp; (Zeilen die mit #
beginnen) und &quot;include&quot;-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 &lt;devspec&gt; &lt;type-specific&gt;</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 &lt;name&gt; ?</code>
</ul>
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a> für
Details zu
&lt;devspec&gt;. Der &quot;set&quot;-Befehl gibt nur bei Fehler einen Wert zurück.<br>
<br>
Jedes Gerät hat verschiedene Parameter die mit &quot;set&quot; gesetzt werden können.
Lesen Sie bitte den entsprechenden Abschnitt für das Gerät für Details durch.<br>
<br>
</ul>
<a name="setstate"></a>
<h3>setstate</h3>
<ul>
<code>setstate &lt;devspec&gt; &lt;value&gt;</code>
<br><br>
Der Befehl setzt den "STATUS&quot; für <code>&lt;name&gt;</code> , wie im Befehl
<a href="#list">list</a> beschrieben, auf den Wert <code>&lt;value&gt;</code>
ohne an das Gerät ein Signal zu senden. Dieser Befehl wird auch im <a href="#statefile">statefile</a>
benutzt.
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a>&nbsp; für
Details zu
&lt;devspec&gt;.
<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 der <a href="#statefile">state information
</a>). Er triggert das global:SHUTDOWN Ereignis. Wenn der optionale
Parameterv restart angegeben, versucht FHEM von selbst wieder zu starten.
<br><br>
Beispiel:
<ul>
<code>shutdown</code><br>
<code>shutdown restart</code>
</ul>
</ul>
<a name="trigger"></a>
<h3>trigger</h3>
<ul>
<code>trigger &lt;devspec&gt; &lt;state&gt;</code>
<br><br>
Triggert eine <a href="#notify">notify</a> Definition.
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a>&nbsp; für
Details zu
&lt;devspec&gt;.
<br><br>
Beispiel:
<ul>
<code>trigger btn3 on</code>
</ul>
</ul>
<a name="sleep"></a>
<h3>sleep</h3>
<ul>
<code>sleep &lt;sec&gt;</code>
<br><br>
Stoppt die Befehlsabarbeitung für die angegebene Anzahl von Millisekunden.
<br><br>
Beispiel:
<ul>
<code>sleep 0.5</code><br>
<code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp toggle</code>
</ul>
<br>
Bemerkung: sleep gefolgt von einem weiteren Befehl und angegeben in at/notify/etc
blockiert die Abarbeitung von FHHM nicht.<br>
</ul>
<a name="global"></a>
<h3>global</h3>
<ul>
Das &quot;global&quot; 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 &quot;set&quot; oder &quot;get&quot; 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.&nbsp; 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="backup_before_update"></a>
<li>backup_before_update<br>
Wenn dieses Attribut auf &quot;0&quot; 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 &quot;tar&quot; symbolische Links in Ihrem Backup. Andererseits,
wenn dieses Attribut auf
"no" gesetzt ist werden symbolische Links vom Befehl &quot;tar&quot; 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 &quot;true&quot; betrachtet, wenn der Wert der <a href="#holiday">holiday</a>
Variable zu diesem Attribut nicht &quot;none&quot; 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 &lt;lastinclude-value&gt;<br>
Dieses Attribut ist DEPRECATED, bitte benutzen Sie <a href="#notify">notify</a>,
mit dem&nbsp; 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.&nbsp; 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 &quot;wildcards&quot; 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&nbsp;
<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_&lt;NAME&gt;.pm,
und sie werden für die Definition von Geräten unter dem Namen
&lt;NAME&gt; verfügbar gemacht. Wenn das erste Gerät&nbsp; des Typs &lt;NAME&gt; definiert
wird, werden die entsprechenden Module geladen und in dem Modul die
entsprechende Function mit dem Namen
&lt;NAME&gt;_Initialize wird aufgerufen. Eine Ausnahme bilden Module die
mit der Nummer 99 im Dateinamen beginnen. Diese sind&nbsp; 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 &quot;telnet&quot; Sitzung, bevor der fhem&gt; Prompt
erscheint. Der SecurityCheck setzt motd wenn es bisher nicht gesetzt ist. Um
das zu verhindern, können sie den Wert von motd auf &quot;none&quot; 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 &quot;logfile&quot;, 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 &quot;shutdown&quot;-Kommandos
gelöscht.
</li><br>
<a name="statefile"></a>
<a name="statefile"></a>
<li>statefile<br>
Dieses Attribut legt den Namen der Datei fest, in die
Statusinformationen und verschiedene <a href="#at">at</a> Information
gespeichert werden&nbsp; bevor der Server heruntergefahren wird. Fall diese
Datei nicht angegeben wird, so werden keinerlei Informationen gesichert.
</li><br>
<a name="title"></a>
<li>title<br>
Das Attribut &quot;title&quot; wird unter dem Frontend fhemweb.pl (webpgm2) zur
Festlegung des Seitentitels benutzt..
</li><br>
<a name="updatebranch"></a>
<li>updatebranch<br>
Dieses Attribut wird mittels der Datei FhemUtils/release.pm gesetzt die
im &quot;modpath&quot;-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 &lt;filename&gt;" benutzen,
können Dateien oder Pakete jederzei direkt aus dem Entwicklungszweig
(z.B. mittels "update development &lt;package&gt;") 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.&nbsp;
</li><br>
</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-&quot;oneliner&quot; zu testen, geben Sie diese am &quot;telnet&quot; 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 &quot;oneliners&quot;
müssen sie durch ein weiteres Semikolon (;;) &quot;escaped&quot; (maskiert) werden<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Beispiel<ul>
{ fhem "set light on" }<br>
define n1 notify piri:on { fhem "set light on" }
<p>&nbsp;</p>
</ul>
Bemerkung: Wenn diese Funktion einen wert zurück liefert, wird dieser in der
allgemeinen Logdatei gespeichert.. Benutzen sie &quot;1&quot; 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-&quot;oneliners&quot;
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 &gt; 18 || $hour &lt; 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(&lt;devicename&gt;)<br>
gibt den Status eines Gerätes zurück (entsprechend dem Ausdruck in
Klammern, den Sie beim List-Befehl sehen).
<br><br>
</li><li>OldValue(&lt;devicename&gt;)
</li><li>OldTimestamp(&lt;devicename&gt;)<br>
gibt den vorherigen Wert/Zeitstempel des Gerätes zurück.
<br><br>
</li><li>
ReadingsVal(&lt;devicename&gt;,&lt;reading&gt;,&lt;defaultvalue&gt;)<br>
Gibt den Inhalt der &quot;readings&quot; zurück (den Inhalt der in dem &quot;Readings&quot;-Abschnitt
von "list device" angezeigt wird)
<br><br>
</li><li>
AttrVal(&lt;devicename&gt;,&lt;attribute&gt;,&lt;defaultvalue&gt;)<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></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 &quot;offset&quot; 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 &lt;SIZE&gt;
#FileLog 4:::
plot title 'Temperature' with lines
</pre>
Die .gnuplot Datei besteht aus 3 Teilen:
<ul>
<li>set Befehle<br>
Folgende &quot;sets&quot; werden erkannt:
<ul>
<li>terminal, nur die Größenparameter.<br>
Dieser ist in der Regel auf &lt;SIZE&gt; 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 &lt;TL&gt; welcher durch das Weblink <a href="#title">title</a>-Attribut, oder
durch &lt;Lx&gt;, 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.&nbsp;
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 &quot;column_spec paragraph&quot;
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.&nbsp;
</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 &lt;linetype&gt;<br>
spezifiziert die Art der Linie. Folgende Linienarten können verwendet
werden: points,
steps, fsteps, histeps and lines. Nicht bekannte Linienarten werden als
Typ &quot;lines&quot; dargestellt.
</li>
<li>ls &lt;linestyle&gt;<br>
Der Linienstil stellt die erste Linie als l0 dar,&nbsp; 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 &quot;fill&quot;
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 &lt;linewidth&gt;<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>