mirror of
https://github.com/fhem/fhem-mirror.git
synced 2024-11-22 02:59:49 +00:00
c18f33a53b
git-svn-id: https://svn.fhem.de/fhem/trunk@29297 2b470e98-0d58-463d-a4d8-8e2adae1ed80
2389 lines
95 KiB
HTML
2389 lines
95 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
<title>FHEM Referenz</title>
|
|
<link rel="stylesheet" type="text/css" href="../www/pgm2/style.css" />
|
|
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
|
|
<meta name="viewport" content="initial-scale=1.0,user-scalable=1">
|
|
<link rel="shortcut icon" href="/fhem/icons/favicon.ico"/>
|
|
</head>
|
|
|
|
|
|
<body style="word-wrap: break-word;" class="commandref">
|
|
<div id="menuScrollArea">
|
|
<div id="logo"></div>
|
|
<div id="menu">
|
|
<h3>fhem.pl Referenz</h3>
|
|
<br><br>
|
|
<a href="#top">Zum Anfang</a>
|
|
<br><br>
|
|
<a style="display:none" href="#" name="loadAll">Alles laden</a>
|
|
<br><br>
|
|
<a id="otherLang" style="display:none" href="#" name="otherLang">
|
|
<span style="display:none" lang="DE">Deutsche</span>
|
|
<span style="display:none" lang="EN">Englische</span>
|
|
Doku für <span class="mod"></span> laden
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="right">
|
|
<a id="top"></a>
|
|
<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>
|
|
<a href="#attributes">Attribute</a><br>
|
|
|
|
<br>
|
|
<b>FHEM-Befehle</b>
|
|
<ul>
|
|
<!-- header:command -->
|
|
<a href="#apptime">apptime</a> <!-- liefert Daten über Ausführungszeiten -->
|
|
<a href="#attr">attr</a> <!-- setzt ein Attribut für ein FHEM Gerät -->
|
|
<a href="#cancel">cancel</a> <!-- bricht ein sleep ab -->
|
|
<a href="#createlog">createlog</a> <!-- fügt ein FileLog und ein SVG an einem existierenden FHEM Gerät -->
|
|
<a href="#define">define</a> <!-- definiert ein FHEM Gerät -->
|
|
<a href="#defmod">defmod</a> <!-- definiert oder modifiziert ein FHEM Gerät -->
|
|
<a href="#delete">delete</a> <!-- entfernt ein FHEM Gerät -->
|
|
<a href="#deleteattr">deleteattr</a> <!-- entfernt ein Attribut -->
|
|
<a href="#deletereading">deletereading</a> <!-- entfernt ein Reading -->
|
|
<a href="#displayattr">displayattr</a> <!-- zeigt Attribute eines FHEM Gerätes -->
|
|
<a href="#get">get</a> <!-- holt ein Wert von einem FHEM Gerät -->
|
|
<a href="#IF">IF</a> <!-- bedingte Ausführung von FHEM Befehlen -->
|
|
<a href="#include">include</a> <!-- liest eine Datei mit FHEM Befehlen ein -->
|
|
<a href="#inform">inform</a> <!-- zeigt Events in einer telnet Verbindung -->
|
|
<a href="#list">list</a> <!-- zeigt Definition,Readings und Attribute eines FHEM Gerätes -->
|
|
<a href="#modify">modify</a> <!-- ändert die Definition eines FHEM Gerätes -->
|
|
<a href="#notice">notice</a> <!-- zeigt und bestätigt Systemmeldungen -->
|
|
<a href="#quit">quit</a> <!-- endet eine telnet Verbindung zu FHEM -->
|
|
<a href="#reload">reload</a> <!-- lädt ein FHEM Modul (Programmdefinition) -->
|
|
<a href="#rename">rename</a> <!-- benennt ein FHEM Gerät um -->
|
|
<a href="#rereadcfg">rereadcfg</a> <!-- lädt die FHEM Konfiguration neu -->
|
|
<a href="#save">save</a> <!-- speichert die FHEM Konfiguration -->
|
|
<a href="#set">set</a> <!-- setzt ein Wert in einem FHEM Gerät -->
|
|
<a href="#setdefaultattr">setdefaultattr</a> <!-- definiert ein "default" Attribut -->
|
|
<a href="#setreading">setreading</a> <!-- setzt ein Reading für ein FHEM Gerät -->
|
|
<a href="#setstate">setstate</a> <!-- setzt den Status eines FHEM Geräes -->
|
|
<a href="#setuuid">setuuid</a> <!-- setzt den internen FUUID Wert -->
|
|
<a href="#show">show</a> <!-- zeigt tempor&aunl;ren Raum. nur in FHEMWB -->
|
|
<a href="#shutdown">shutdown</a> <!-- beendet FHEM -->
|
|
<a href="#sleep">sleep</a> <!-- verzögerte Ausführung -->
|
|
<a href="#trigger">trigger</a> <!-- generiert ein FHEM Event -->
|
|
<a href="#usb">usb</a> <!-- sucht nach USB Geräten -->
|
|
|
|
</ul>
|
|
|
|
<br>
|
|
<b>Gerätemodule</b>
|
|
<ul>
|
|
<a href="#global">global</a><br>
|
|
<!-- header:device -->
|
|
|
|
</ul>
|
|
|
|
<br>
|
|
<b>Hilfs (Erweiterungs-) Module</b>
|
|
<ul>
|
|
<!-- header:helper -->
|
|
|
|
</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>
|
|
<br>
|
|
Falls FHEM als root gestartet wurde, und ein OS-Benutzer fhem existiert, dann
|
|
wechselt FHEM nach dem start zu diesem Benutzer (via setuid).
|
|
<br><br>
|
|
|
|
Falls FHEM mit der -d Koommandozeilenoption gestartet wurde (perl fhem.pl -d
|
|
fhem.cfg), dann wird verbose auf 5 gesetzt und die Logs werden auf STDOUT
|
|
geschrieben.
|
|
<br><br>
|
|
|
|
Die Umgebungsvariable FHEM_GLOBALATTR wird ausgewertet: sie enthält
|
|
Leerzeichengetrennte Name=Wert Paare, wobei Name ein global Attribut ist. So
|
|
gesetzte Werte überschreiben die Werte aus der Konfigurationsdatei.
|
|
</ul>
|
|
<br>
|
|
<!-- intro end - diese Zeile nicht entfernen! -->
|
|
|
|
|
|
<a name="command"></a>
|
|
<h3>FHEM Befehlstypen</h3>
|
|
<ul>
|
|
<p>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.</p>
|
|
|
|
<p>Die folgenden drei Befehle bewirken z.B. dasselbe Ergebnis, wenn sie am
|
|
telnet-Prompt eingegeben werden:</p>
|
|
<ul>
|
|
set lamp off<br>
|
|
"fhem.pl 7072 "set lamp off""<br>
|
|
{fhem("set lamp off")}<br>
|
|
</ul>
|
|
<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="#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.</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>Bemerkungen </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>
|
|
<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>
|
|
<p>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:</p>
|
|
<ul>
|
|
define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
|
|
</ul>
|
|
<p>Keine Angst, das Vorherige kann in FHEM auch deutlich einfacher formuliert werden als:</p>
|
|
<ul>
|
|
define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600
|
|
</ul>
|
|
|
|
<p>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>
|
|
|
|
<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>Achtung: unterschiedlicher Befehlsarten (FHEM/Shell/perl) in einer Kommandozeile sind
|
|
nicht unterstützt, auch wenn es in manchen Fällen funktioniert.</p>
|
|
|
|
</ul>
|
|
<!-- command end - diese Zeile nicht entfernen! -->
|
|
|
|
|
|
<a name="devspec"></a>
|
|
<h3>Geräte-Spezifikation (devspec)</h3>
|
|
<ul>
|
|
Die Befehle
|
|
<a href="#attr">attr</a>,
|
|
<a href="#set">set</a>,
|
|
<a href="#get">get</a>, usw.
|
|
<a href="#attr">attr</a>,
|
|
<a href="#deleteattr">deleteattr</a>,
|
|
<a href="#displayattr">displayattr</a>,
|
|
<a href="#delete">delete</a>,
|
|
<a href="#get">get</a>,
|
|
<a href="#list">list</a>,
|
|
<a href="#set">set</a>,
|
|
<a href="#setreading">setreading</a>,
|
|
<a href="#setstate">setstate</a>,
|
|
<a href="#trigger">trigger</a>
|
|
können eine komplexere Gerätespezifikation als Argumente enthalten,
|
|
die auch eine Anzahl von Geräten betreffen kann. Eine
|
|
Gerätespezifikation kann folgendes sein:
|
|
<ul>
|
|
<li>ein einzelner Gerätename. Dies ist der Normalfall</li>
|
|
<li>eine durch Komma(,) getrennte Liste von Gerätenamen</li>
|
|
<li>ein regulärer Ausdruck</li>
|
|
<li>ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein
|
|
Reading-Name oder ein Attribut. WERT ist ein regulärer Ausdruck.
|
|
Um die Bedingung zu negieren, muss NAME!=WERT verwendet werden.
|
|
Um die Suche einzugrenzen, kann man als Praefix i: für internal
|
|
Werte, r: für Reading-Namen und a: für Attribute verwenden,
|
|
siehe das Beispiel unten. Groß-/Kleinschreibung wird durch die
|
|
Verwendung von ~ oder !~ ignoriert.
|
|
</li>
|
|
<li>Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird,
|
|
dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck
|
|
gefiltert.
|
|
</ul>
|
|
Beispiele:
|
|
<ul>
|
|
<code>set lamp1 on</code><br>
|
|
<code>set lamp1,lamp2,lamp3 on</code><br>
|
|
<code>set lamp.* on</code><br>
|
|
<code>set room=kitchen off</code><br>
|
|
<code>set room=kitchen:FILTER=STATE=on off</code><br>
|
|
<code>set room=kitchen:FILTER=STATE!=off off</code><br>
|
|
<code>list disabled=</code><br>
|
|
<code>list room~office</code><br>
|
|
<code>list TYPE=FS20 STATE</code><br>
|
|
<code>list i:TYPE=FS20 STATE</code><br>
|
|
</ul>
|
|
Bemerkungen:
|
|
<ul>
|
|
<li>die Spezifikation kann keine Leerzeichen enthalten.</li>
|
|
<li>falls ein Gerätename exakt dem Spezifikation entspricht, dann werden
|
|
keine reguläre Ausdrücke oder Filter ausgewertet.
|
|
<li>zuerst wird die durch Komma getrennte Spezifikation abgearbeitet, dann
|
|
folgen die regulären Ausdrücke und die Filter</li>
|
|
<li>die Befehlszeile kann die selbe Gerätebezeichnung mehrfach enthalten
|
|
z.B.: "set lamp3,lamp3 on". Lamp3 wird hier zwei Mal
|
|
eingeschalten.</li>
|
|
<li>um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie
|
|
bitte den Abschnitt zu <a href="#structure"> structure</a>.
|
|
</ul>
|
|
</ul>
|
|
<!-- devspec end - diese Zeile nicht entfernen! -->
|
|
|
|
|
|
<a name="attributes"></a>
|
|
<h3>Attribute</h3>
|
|
|
|
Alle Geräte haben Attribute. Diese werden mittels des Befehls <a
|
|
href="#attr">attr</a> gesetzt, angezeigt mit dem Befehl <a
|
|
href="#displayattr">displayattr</a>, und mit dem Kommando <a
|
|
href="#deleteattr">deleteattr</a> entfernt.<p>
|
|
|
|
Es gibt globale Attribute, die von allen Geräten genutzt werden, und lokale
|
|
Attribute, die nur auf individuelle Geräteklassen zutreffen.<p>
|
|
|
|
Manche Geräte (wie <a href="#FHEMWEB">FHEMWEB</a>) definieren automatisch
|
|
neue globale Attribute bei der ersten Definition eines Gerätes dieses
|
|
Typs.<p>
|
|
|
|
Sie können den Befehl<p><code>attr global userattr
|
|
<attributelist></code><p> für das Gerät <a
|
|
href="#global">global</a> verwenden, um neue globale Attribute zu deklarieren,
|
|
und <p><code>attr <devicespec> userattr
|
|
<attributelist></code>,<p>um neue lokale Attribute für bestimmte
|
|
individuelle Geräte gemäß <a href="#devspec">devspec</a> zu
|
|
deklarieren.
|
|
|
|
<code><attributelist></code> ist eine durch Leerzeichen getrennte Liste,
|
|
die die Namen der zusätzlichen Attribute enthält. In der
|
|
Dokumentation zum Befehl <a href="#attr">attr</a> sind Beispiele.<p>
|
|
|
|
Seien Sie vorsichtig und überschreiben Sie keine zusätzlichen
|
|
globale Attribute, die bereits zuvor durch Sie selbst oder ein Gerät
|
|
definiert wurden. <code>attr global userattr <attributelist></code>
|
|
sollte so früh wie möglich in der Konfiguration erscheinen.
|
|
|
|
<h4>Gerätespezifische Attribute</h4>
|
|
|
|
Gerätespezifische Attribute sind in dem jeweiligen Abschnitt zum
|
|
Gerät dokumentiert.
|
|
|
|
|
|
<h4>Globale Attribute für alle Geräte</h4>
|
|
|
|
<ul>
|
|
<a name="alias"></a>
|
|
<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.
|
|
</li><br>
|
|
|
|
<a name="comment"></a>
|
|
<li>comment<br>
|
|
Fügt einen beliebigen Kommentar hinzu.
|
|
</li><br>
|
|
|
|
<a name="eventMap"></a>
|
|
<li>eventMap<br>
|
|
Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes
|
|
besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder
|
|
Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den
|
|
"alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert
|
|
ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen
|
|
sondern durch das vorgestellte Zeichen getrennt.
|
|
Optional kann man auch ein widgetOverride angeben (angehängt nach
|
|
einem Doppelpunkt (z.Bsp. on-for-timer:OnFor:texField). Die
|
|
Voreinstellung ist :noArg, um das Input Feld bei cmdList zu vermeiden.
|
|
Beispiele:
|
|
<ul><code>
|
|
attr store eventMap on:open off:closed<br>
|
|
attr store eventMap /on-for-timer 10:open/off:closed/<br>
|
|
set store open
|
|
</code></ul>
|
|
Die explizite Variante dieses Attributes hat folgenden Syntax:
|
|
<ul><code>
|
|
attr store eventMap { dev=>{'on'=>'open'}, usr=>{'open'=>'on'} }<br>
|
|
attr store eventMap { dev=>{'^on(-for-timer)?(.*)'=>'open$2'},
|
|
usr=>{'^open(.*)'=>'on$1'},
|
|
fw=>{'^open(.*)'=>'open'} }
|
|
</code></ul>
|
|
Diese Variante muss dann verwendet werden, falls das Mapping nicht
|
|
symmetrisch ist. Der erste Teil (dev) spezifiziert dabei die Richtung
|
|
Gerät zu Benutzer, d.h. falls das Gerät on 100 oder
|
|
on-for-timer 100 meldet, dann wird der Benutzer open 100 zu sehen
|
|
bekommen. Der zweite Teil (usr) spezifiziert die Richtung Benutzer zu
|
|
Gerät, d.h. wenn man "set XX open 100" eingibt, dann wird das
|
|
Kommando "on 100" an das Gerät gesendet. In beiden Fällen wird
|
|
der Schlüssel zuerst direkt, und dann als Regexp mit dem Wert
|
|
verglichen. Falls man Regexps mit Wildcards im usr Teil verwendet, dann
|
|
muss man den fw Teil mit dem exakt gleichen Schlüsseln
|
|
ausfüllen, damit FHEMWEB in der Detail-Ansicht den set-Auswahl
|
|
richtig anzeigen kann.
|
|
</li><br>
|
|
|
|
<a name="genericDisplayType"></a>
|
|
<li>genericDisplayType<br>
|
|
Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um
|
|
für das Gerät passende Voreinstellungen (Bild/Befehle/etc)
|
|
anzubieten. Z.Zt werden folgende Werte unterstützt:
|
|
switch,outlet,light,blind,speaker,thermostat
|
|
</li><br>
|
|
|
|
<a name="group"></a>
|
|
<li>group<br>
|
|
Gerätegruppen. FHEMWEB zeigt Geräte die in die gleiche Gruppe
|
|
gehören auch in einer gemeinsamen Box an. Ein Gerät kann zu
|
|
mehr als einer Gruppe gehören. In diesem Fall müssen die
|
|
entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
|
|
dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe
|
|
gesetzte Gerätetyp verwendet.
|
|
</li><br>
|
|
|
|
<a name="overrideNotifydev"></a>
|
|
<li>overrideNotifydev<br>
|
|
falls gesetzt (das Argument ist ein devspec), dann verwendet die
|
|
Optimierung der Benachrichtigungen diesen Wert, statt das vom Modul
|
|
gesetzte Internal NOTIFYDEV. Man sollte es nur dann setzen, falls
|
|
man es besser weiss, als der Modul Maintainer. Damit es setzbar ist,
|
|
muss vorher das global oder Geräte spezifische userattr
|
|
Attribut ergänzt werden.
|
|
</li><br>
|
|
|
|
<a name="room"></a>
|
|
<li>room<br>
|
|
Filtert/gruppiert Geräte.
|
|
Ein Gerät kann zu mehr als einem Raum zugeordnet werden. In diesem
|
|
Fall müssen die Raumzuordnungen durch Kommata getrennt
|
|
angegeben werden.<br>
|
|
Geräte, die dem Raum mit der Bezeichnung "hidden" zugeordnet
|
|
werden, erscheinen nicht auf der Webseite.
|
|
Mit -> werden Räume strukturiert, z.Bsp. OG->Schlafzimmer
|
|
</li><br>
|
|
|
|
<a name="showtime"></a>
|
|
<li>showtime<br>
|
|
Wird im FHEMWEB 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.
|
|
</li></br>
|
|
|
|
<a name="suppressReading"></a>
|
|
<li>suppressReading<br>
|
|
Wird verwendet, um nicht gewollte Readings zu entfernen. Der Wert ist
|
|
ein Regular Expression, ergänzt mit ^ und $. Wird nur in
|
|
Ausnahmefällen benötigt.
|
|
</li><br>
|
|
|
|
<a name="verbose"></a>
|
|
<li>verbose<br>
|
|
Setzt den Schwellwert für die Logfile-Meldungen.
|
|
Mögliche Werte sind:
|
|
<ul>
|
|
<li>0 - Server start/stop</li>
|
|
<li>1 - Fehlermeldungen oder unbekannte Pakete</li>
|
|
<li>2 - bedeutende Ereigbisse/Alarme.</li>
|
|
<li>3 - ausgesendete Kommandos werden gelogged.</li>
|
|
<li>4 - von den einzelnen Geräten empfangene Daten.</li>
|
|
<li>5 - Fehlersuche.</li>
|
|
</ul>
|
|
Der für die <a href="#global">global</a> Instanz gesetzte Wert gilt
|
|
als Voreinstellung für die Instanzen, die dieses Attribut nicht
|
|
gesetzt haben.
|
|
</li><br>
|
|
|
|
</ul>
|
|
|
|
|
|
<a name="readingFnAttributes"></a>
|
|
<h4>readingFnAttribute</h4>
|
|
|
|
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>
|
|
|
|
<ul>
|
|
<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.<br>
|
|
Die <a href="#set">hier</a> beschriebene "set magic" wird auch angewendet.<br>
|
|
Hinweis: Manche Module aktualisieren STATE ganz oder teilweise direkt.
|
|
In diesen Fällen kann es zu abweichenden Anzeigen kommen.
|
|
</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. Statt Reading kann auch ein regulärer Ausdruck verwendet
|
|
werden. Wenn gesetzt, erzeugen nur Veränderungen der gelisteten
|
|
Readings ein Ereignis. Wenn die aktualiserten Werte der gelisteten Readings
|
|
identisch sind, wird kein Ereignis generiert.<br>
|
|
|
|
Wenn hinter dem Namen eines Readings eine :Schwelle angegeben ist, wird
|
|
das Event nur getriggert wenn die Änderung grösser als diese
|
|
Schwelle ist.
|
|
</li>
|
|
|
|
|
|
Die unterschiedlichen Bedeutungen von event-on-update-reading und
|
|
event-on-change-reading sind folgende:
|
|
<ol>
|
|
<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 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>
|
|
|
|
<a name="timestamp-on-change-reading"></a>
|
|
<li>timestamp-on-change-reading<br>
|
|
Dieses Attribut enthält eine durch Kommata getrennte Liste von
|
|
Readings. Wenn gesetzt, werden die gelisteten Readings nicht aktualisiert
|
|
(oder angelegt) wenn durch ein ebenfalls gesetztes event-on-change-reading
|
|
für dieses Reading kein Ereignis erzeugen würde.
|
|
</li>
|
|
<p>
|
|
|
|
<a name="event-aggregator"></a>
|
|
<li>event-aggregator
|
|
The primary uses of this attribute are to calculate (time-weighted) averages of
|
|
readings over time periods and to throttle the update rate of readings and thus
|
|
the amount of data written to the logs.<p>
|
|
|
|
This attribute takes a comma-separated list of <code>reading:interval:method:function:holdTime</code>
|
|
quintuples. You may use regular expressions for <code>reading</code>. If set, updates for the
|
|
listed readings are ignored and associated events are suppressed for a black-out period of at
|
|
least <code>interval</code> seconds (downsampling). After the black-out period has expired, the reading is
|
|
updated with a value that is calculated from the values and timestamps of the previously ignored
|
|
updates within the black-out period as follows:
|
|
|
|
<table>
|
|
<tr><th>function</th><th>description</th></tr>
|
|
<tr><td>v</td><td>the last value encountered</td></tr>
|
|
<tr><td>v0</td><td>the first value encountered</td></tr>
|
|
<tr><td>min</td><td>the smallest value encountered</td></tr>
|
|
<tr><td>max</td><td>the largest value encountered</td></tr>
|
|
<tr><td>mean</td><td>the arithmetic mean of all values</td></tr>
|
|
<tr><td>sd</td><td>the standard deviation from the mean</td></tr>
|
|
<tr><td>median</td><td>the median of all values (requires holdTime and function none)</td></tr>
|
|
<tr><td>integral</td><td>the arithmetic sum (if not time-weighted) or integral area (if time-weighted) of all values</td></tr>
|
|
<tr><td>n</td><td>number of samples</td></tr>
|
|
<tr><td>t</td><td>timestamp of the last value</td></tr>
|
|
<tr><td>t0</td><td>timestamp of the first value</td></tr>
|
|
</table>
|
|
<p>
|
|
|
|
If <code>method</code> is <code>none</code>, then that's all there is. If <code>method</code>
|
|
is <code>const</code> or <code>linear</code>, the time-weighted series of values is taken into
|
|
account instead. The weight is the timespan between two subsequent updates.
|
|
With the <code>const</code> method, the value is the value of the reading at the beginning of
|
|
the timespan; with the <code>linear</code> method, the value is the arithmetic average of
|
|
the values at the beginning and the end of the timespan.
|
|
Rollovers of black-out periods are handled as one would expect it.<p>
|
|
|
|
One would typically use the <code>linear</code> method with the <code>mean</code> function for
|
|
quantities continuously varying over time like electric power consumption, temperature or speed.
|
|
For cumulative quantities like energy consumed, rain fallen or distance covered,
|
|
the <code>none</code> method with the <code>v</code> function is used. The <code>constant</code>
|
|
method is for discrete quantities that stay constant until the corresponding reading is updated,
|
|
e.g. counters, switches and the like.<p>
|
|
|
|
If the <code>holdTime</code> in seconds is defined, the samples will be kept in memory allowing
|
|
the calculation of floating statistics instead of blocked statistics. With <code>holdTime</code>
|
|
defined the <code>interval</code> can be kept undefined so that the readings update rate is unchanged
|
|
or it can be set to a value less then <code>holdTime</code> for downsampling as described above
|
|
with a full history of the readings in memory. Note that the historic samples are not persistent
|
|
and will be lost when restarting FHEM.<p>
|
|
|
|
The event aggregator only takes into consideration those updates that remain after preprocessing
|
|
according to the <code>event-on-update-reading</code> and <code>event-on-change-reading</code>
|
|
directives. Besides which, any update of a reading that occurs within a timespan from the preceding
|
|
update that is smaller than the resolution of FHEM's time granularity is ditched.<p>
|
|
|
|
When more than one function should be calculated for the same reading, the original reading must be
|
|
multiplied (e.g. by using a notify) before applying the event-aggregator to the derived readings.<p>
|
|
|
|
Examples:<br>
|
|
<code>attr myPowerMeter event-aggregator EP_POWER_METER:300:linear:mean,EP_ENERGY_METER:300:none:v</code><br>
|
|
<code>attr myBadSensor event-aggregator TEMP::none:median:300</code><br>
|
|
<code>attr mySunMeter event-aggregator SUN_INTENSITY_24H::const:integral:86400</code>
|
|
</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. Falls
|
|
event-on-change-reading auch spezifiziert ist, dann werden sie mit ODER
|
|
kombiniert, d.h. wenn einer der beiden Bedingungen wahr ist.
|
|
</li>
|
|
|
|
<a name="oldreadings"></a>
|
|
<li>oldreadings<br>
|
|
Dieses Attribut enthält eine durch Kommata getrennte Liste von
|
|
Readings. regex sind erlaubt. Für jedes Reading aus der Liste
|
|
speichert FHEM intern den vorherigen Wert wenn sich das Reading
|
|
ändert. Zum Zugriff auf die Werte gibt es die OldReadings.* Routinen.
|
|
Falls der vorherige Wert immer, d.h. auch wenn es sich nicht ändert,
|
|
gespeichert werden soll, dann muss der letzte Werte der Komma getrennten
|
|
Liste oldreadingsAlways sein.
|
|
</li>
|
|
|
|
<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>integral: das Gegenteil von differential. Das Ergebnis wird um das
|
|
Produkt aus der Zeit-Differenz und der Durschnittswert der letzten zwei
|
|
Readings erhöht.<br>
|
|
result += (time - timeold) * (oldval + value) / 2
|
|
</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:<ul>
|
|
<li>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>
|
|
<li>der Name der definierten Readings besteht aus alphanumerischen
|
|
Zeichen, Unterstrich (_) und Minus-Zeichen (-).</li>
|
|
</ul>
|
|
</li><br>
|
|
|
|
|
|
</ul>
|
|
|
|
<h4>Allgemeine Attribute</h4>
|
|
|
|
Die folgenden lokalen Attribute werden von mehreren Geräten verwendet:
|
|
|
|
<ul>
|
|
|
|
<a name="IODev"></a>
|
|
<li>IODev<br>
|
|
Setzt das IO oder das physische Device, welches zum Senden der Signale an
|
|
dieses logische Device verwendet werden soll (Beispielsweise FHZ oder
|
|
CUL). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte
|
|
physische Device zu, das Daten von diesem Typ empfangen kann. Das
|
|
Attribut IODev muss nur gesetzt werden, wenn mehr als ein physisches
|
|
Device fähig ist, Signale von diesem logischen Device zu empfangen.
|
|
</li><br>
|
|
|
|
<a name="disable"></a>
|
|
<li>disable<br>
|
|
Deaktiviert das entsprechende Gerät.<br>
|
|
Kann mit folgendem Befehl einfach umgeschaltet werden:<br>
|
|
<code>attr <device> disable toggle</code>
|
|
</li><br>
|
|
|
|
<a name="disabledForIntervals"></a>
|
|
<li>disabledForIntervals HH:MM-HH:MM HH:MM-HH:MM ...<br>
|
|
Das Argument ist eine Leerzeichengetrennte Liste von Minuszeichen-
|
|
getrennten HH:MM oder D@HH:MM Paaren. Falls die aktuelle Uhrzeit
|
|
zwischen diesen Werten fällt, dann wird die Ausführung, wie
|
|
beim disable, ausgesetzt. Statt HH:MM kann man auch HH oder HH:MM:SS
|
|
angeben. D ist der Tag der Woche, mit 0 als Sonntag and 3 als
|
|
Mittwoch. Die Angabe des Wochentags für den "von" Wert impliziert
|
|
_nicht_ den gleichen Tag für den "bis" Wert, z.Bsp. deaktiviert
|
|
1@00-24 die Asführung von Montag bis Ende der Woche, aber nicht
|
|
Sonntag (da alle Zeitangaben am Montag vor 1@00 liegen).
|
|
Um einen Intervall um Mitternacht zu spezifizieren, muss man
|
|
zwei einzelne angeben, z.Bsp.:
|
|
<ul>
|
|
23:00-24:00 00:00-01:00
|
|
</ul>
|
|
Falls Teile des Wertes in {} eingeschlossen sind, dann werden sie als
|
|
ein Perl Ausdruck ausgewertet:
|
|
<ul>
|
|
{sunset_abs()}-24 {sunrise_abs()}-08
|
|
</ul>
|
|
</li><br>
|
|
|
|
</ul>
|
|
<!-- attributes end - diese Zeile nicht entfernen! -->
|
|
<br><br>
|
|
|
|
<a name="attr"></a>
|
|
<h3>attr</h3>
|
|
<ul>
|
|
<code>attr [-a|-r|-silent] <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. value ist optional, und ist 1
|
|
falls nicht spezifiziert. 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>
|
|
|
|
Gerätespezifische Attribute sind in der Beschreibung zum jeweiligen
|
|
Gerät aufgeführt.
|
|
Nach der Durchführung das globale Ereignis "ATTR" wird generiert.
|
|
<br>
|
|
|
|
Falls die Option -a spezifiziert ist, dann wird value zum aktuellen Wert
|
|
hinzugefügt. Achtung: falls value nicht mit einem Komma (,)
|
|
anfängt, dann wird es mit einem Leerzeichen angehängt.
|
|
<br>
|
|
Mit der -r Option kann man Teile eines Attributes wieder entfernen.<br>
|
|
Mit der silent Option wird der Befehl nicht in die "save -?" Liste
|
|
eingetragen.<br>
|
|
<br>
|
|
|
|
Beispiele:
|
|
<ul><code>
|
|
attr global verbose 3<br>
|
|
attr lamp room kitchen<br>
|
|
attr lamp group lights<br>
|
|
attr lamp loglevel 6<br>
|
|
attr weatherstation event-on-update-reading wind,temperature,humidity<br>
|
|
attr weatherstation event-on-change-reading israining<br>
|
|
attr weatherstation event-on-change-reading israining,state<br>
|
|
attr heating stateFormat Temp:measured-temp, Valve:actuator<br>
|
|
attr -a TYPE=SVG room ,SvgRoom</br>
|
|
attr -r TYPE=SVG room ,SvgRoom</br>
|
|
</code></ul>
|
|
<br>
|
|
|
|
Bemerkungen:<br>
|
|
<ul>
|
|
<li>Lesen Sie unter <a href="#deleteattr">deleteattr</a> nach um Attribute
|
|
zu löschen.</li>
|
|
</ul>
|
|
</ul>
|
|
<!-- attr end -->
|
|
|
|
<a name="cancel"></a>
|
|
<h3>cancel</h3>
|
|
<ul>
|
|
<code>cancel [<id> [quiet]]</code>
|
|
<br><br>
|
|
Listet benannte sleeps oder entfernt ein benanntes <a href="#sleep">sleep</a>.
|
|
|
|
</ul>
|
|
<!-- cancel end -->
|
|
|
|
<a name="define"></a>
|
|
<h3>define</h3>
|
|
<ul>
|
|
<code>define [option] <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>
|
|
|
|
Nach der Durchführung wird das globale Ereignis "DEFINED" generiert.
|
|
<br><br>
|
|
|
|
Je nach Typ benötigt man unterscheidliche Argumente, lesen Sie sich
|
|
bitte die zu dem jeweiligen Gerät gehörenden Abschnitte durch.
|
|
<br><br>
|
|
Optionen:<br>
|
|
<ul>
|
|
<li>-temporary<br>
|
|
Setzt den TEMPORARY Marker, was das Abspeichern dieser Definition in
|
|
fhem.cfg verhindert.
|
|
</li><br>
|
|
<li>-ignoreErr<br>
|
|
Reduziert die Anzahl der Fehlermeldungen, falls ein FHEM-Modul nicht
|
|
geladen werden kann. Wird in fhem.cfg.demo verwendet, da das RSS Beispiel
|
|
etliche, normalerweise nicht installierte perl-Module benötigt.
|
|
</li><br>
|
|
<li>-silent<br>
|
|
Der Befehl wird nicht in die "save -?" Liste eingetragen.
|
|
</li><br>
|
|
</ul>
|
|
</ul>
|
|
<!-- define end -->
|
|
|
|
<a name="defmod"></a>
|
|
<h3>defmod</h3>
|
|
<ul>
|
|
<code>defmod [option] <name> <type> <type-specific></code>
|
|
<br><br>
|
|
Definiert ein Gerät, oder ändert es, falls es exisitiert. Um
|
|
z.Bsp. eine Lampe 10 Minuten nach der letzten Meldung eines Bewegungsmelders
|
|
abzuschalten, könnte man folgendes definieren:
|
|
<ul><code>
|
|
define mdNtfy notify motionDetector defmod mdOff at +00:10 set lamp off
|
|
</code></ul>
|
|
Falls man statt defmod ein define verwenden würde, dann würde eine
|
|
Meldung innerhalb von 10 Minuten nach der letzten Meldung zu einem Fehler
|
|
führen, da mdOff noch existiert.<br>
|
|
Für die Optionen siehe die define Dokumentation.
|
|
<br>
|
|
</ul>
|
|
<!-- defmod end -->
|
|
|
|
|
|
<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>
|
|
<!-- delete end -->
|
|
|
|
<a name="deleteattr"></a>
|
|
<h3>deleteattr</h3>
|
|
<ul>
|
|
<code>deleteattr [-silent] <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>
|
|
<attrname> ist ein Regexp, ergänzt mit ^ und $, damit eine Menge
|
|
von Attributen mit einem Befehl gelöscht werden kann.<br>
|
|
Nach der Durchführung das globale Ereignis "DELETEATTR" wird generiert.
|
|
<br>
|
|
|
|
Beispiele:
|
|
<ul>
|
|
<code>deleteattr lamp follow-on-for-timer</code><br>
|
|
<code>deleteattr lamp</code><br>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
<!-- deleteattr end -->
|
|
|
|
<a name="deletereading"></a>
|
|
<h3>deletereading</h3>
|
|
<ul>
|
|
<code>deletereading <devspec> <readingname>
|
|
[<older-than-seconds>]</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.
|
|
Falls <older-than-seconds> spezifiziert ist, werden nur readings
|
|
entfernt, die aelter als dieser Zahl (in Sekunden) sind.<br>
|
|
|
|
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>
|
|
<!-- deletereading end -->
|
|
|
|
<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>
|
|
<!-- displayattr end -->
|
|
|
|
<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>
|
|
<!-- get end -->
|
|
|
|
|
|
<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>
|
|
<!-- getstate end -->
|
|
|
|
|
|
<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. Dieses Befehl sollte nur von Experten verwendet werden.
|
|
<br>
|
|
</ul>
|
|
<!-- include end -->
|
|
|
|
<a name="inform"></a>
|
|
<h3>inform</h3>
|
|
<ul>
|
|
<code>inform {on|off|timer|raw} [regexp]</code> <br>
|
|
<br>
|
|
Ermöglicht Event-Verfolgung über das telnet Interface. Es ist das
|
|
telnet Equivalent des FHEMWEB Event-Monitors, es kann aber auch von weiteren
|
|
Programmen zur Benachrichtigung verwendet werden. Optionen:<br>
|
|
<ul>
|
|
<li>on<br>
|
|
aktiviert die Benachrichtigung.</li>
|
|
<li>onWithState<br>
|
|
zeigt auch das zusätzliche state Event</li>
|
|
<li>off<br>
|
|
deaktiviert die Benachrichtigung (sowohl Events wie auch Logs, s.u.)</li>
|
|
<li>raw<br>
|
|
zeigt (nur) die raw Events der physikalischen Module</li>
|
|
<li>timer<br>
|
|
stellt der Daten ein Zeitstempel vor</li>
|
|
<li>log<br>
|
|
zeigt die vom FHEM Log Interface protokollierten Daten</li>
|
|
<li>status<br>
|
|
zeigt den aktuellen Status</li>
|
|
</ul>
|
|
<br>
|
|
</ul>
|
|
<!-- inform -->
|
|
|
|
<a name="list"></a>
|
|
<h3>list</h3>
|
|
<ul>
|
|
<code>list [devspec] [value ...]</code><br>
|
|
oder<br>
|
|
<code>list {-r|-R} devspec</code><br>
|
|
<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, dann wird dieses Wert (Internal, Reading
|
|
oder Attribut) ausgegeben, soweit es vorhanden ist. Die Werte können mit
|
|
einem Präfix eingeschränkt werden: i: für Internals, r:
|
|
für Readings und a: für Attribute.
|
|
|
|
<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>
|
|
Mit der -r (raw) Option werden die Daten in einem für fhem.cfg bzw.
|
|
fhem.state passenden Format generiert. -R liefert diese Daten auch für
|
|
alle von diesem Gerät vermutlich benögten Geräte.
|
|
Achtung: die Bestimmung dieser Liste ist ungenau.
|
|
</ul>
|
|
<!-- list end -->
|
|
|
|
|
|
<a name="modify"></a>
|
|
<h3>modify</h3>
|
|
<ul>
|
|
<code>modify [-silent] <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>
|
|
Nach modify wird das global MODIFIED Event erzeugt.<br>
|
|
Nach der Durchführung das globale Ereignis "MODIFIED" wird generiert.<br>
|
|
Mit der silent Option wird der Befehl nicht in die "save -?" Liste
|
|
eingetragen.<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>
|
|
<!-- modify end -->
|
|
|
|
<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>
|
|
<!-- quit end -->
|
|
|
|
|
|
<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>
|
|
<!-- reload end -->
|
|
|
|
<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>
|
|
<!-- rename end -->
|
|
|
|
|
|
<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>
|
|
<!-- rereadcfg end -->
|
|
|
|
<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="#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>
|
|
|
|
<li>Vor dem Überschreiben der Dateien wird die alte Version gesichert,
|
|
siehe <a href="#restoreDirs">restoreDirs</a> für Einzelheiten.</li>
|
|
</ul>
|
|
</ul>
|
|
<!-- save end -->
|
|
|
|
|
|
<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>
|
|
Ab featurelevel 5.7 ersetzt der set und setreading Befehl
|
|
<ul>
|
|
<li>[device:name] mit dem Wert des Readings, Internals oder Attributes
|
|
für device, falls sowohl device, als auch Reading, Internal oder
|
|
Attribut existiert, und nicht leer ist.
|
|
<ul>
|
|
<li>Man kann einen der Präfixe r:, i: oder a: verwenden, um die
|
|
Suche einzuschränken, genau wie im devspec.</li>
|
|
<li>Das Suffix :d extrahiert die erste Zahl.</li>
|
|
<li>Das Suffix :i extrahiert die erste Zahl als Ganzzahl.</li>
|
|
<li>Das Suffix :r<n> extrahiert die erste Zahl, und rundet sie auf
|
|
<n> Dezimalstellen. Falls <n> fehlt, dann wird auf eine
|
|
Dezimalstelle gerundet.</li>
|
|
<li>Das Suffix :t liefert den Zeitstempel des Readings</li>
|
|
<li>Das Suffix :sec liefert Anzahl der Sekunden seit Änderung
|
|
des Readings.</li>
|
|
</ul>
|
|
Beispiel:
|
|
<ul>
|
|
set Lamp blink [blinkDummy:number] [r:blinkDummy:duration:d]
|
|
</ul>
|
|
</lu>
|
|
<li>{(perlExpression)} mit dem Ergebnis der perlExpression.
|
|
$DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.
|
|
</li>
|
|
</ul>
|
|
Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
|
|
<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. Achtung: das Ein/Ausschalten wird
|
|
nicht durchgeführt, falls die aktuelle Uhrzeit nach der
|
|
spezifizierten Zeit ist, um folgende Szenarien zu vereinfachen:
|
|
<ul><code>
|
|
define morningLight at *06:00 set Lamp on-till {sunrise()}
|
|
</code></ul>
|
|
</li>
|
|
<li>on-till-overnight <timedet><br>
|
|
Wie on-till, aber die aktuelle Uhrzeit wird nicht mit der
|
|
Spezifizierten verglichen, damit folgendes funktioniert:
|
|
<ul><code>
|
|
define nightLight at *{sunset()} set Lamp on-till-overnight 01:00
|
|
</code></ul>
|
|
</li>
|
|
<li>off-till <timedet><br>
|
|
siehe on-till.</li>
|
|
<li>off-till-overnight <timedet><br>
|
|
siehe on-till-overnight.</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>
|
|
<li>toggle<br>
|
|
Das Gerät wird mit "on" eingeschaltet, falls STATE "off" ist (oder
|
|
dim 0), sonst wird es mit "off" ausgeschaltet.
|
|
</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>
|
|
<br><br>
|
|
|
|
<a name="attrTemplate"></a>
|
|
attrTemplate<br>
|
|
mit diesem Befehl kann man eine Menge an vordefinierten Attributen setzen.
|
|
Die Einträge befinden sich in Dateien im FHEM/lib/AttrTemplate
|
|
Verzeichnis. Einträge können modul-spezifisch sein, und
|
|
möglicherweise erfordern weitere Parameter.
|
|
|
|
</ul>
|
|
<!-- set end -->
|
|
|
|
<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>
|
|
<!-- setdefaultattr end -->
|
|
|
|
|
|
<a name="setreading"></a>
|
|
<h3>setreading</h3>
|
|
<ul>
|
|
<code>setreading <devspec> [YYYY-MM-DD HH:MM:SS] <reading>
|
|
<value></code>
|
|
<br><br>
|
|
Der Befehl setzt das Reading <reading> auf den Wert <value> ohne
|
|
Signale an das betroffene Gerät zu senden, generiert aber Ereignisse und
|
|
die übliche eventMap und stateFormat Umwandlung wird auch
|
|
durchgeführt.<br>
|
|
Falls keine Zeit spezifiziert wurde, wird die aktuelle Uhrzeit verwendet.
|
|
<br>
|
|
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
|
für Details der <devspec> und die Beschreibung des set Befehls
|
|
für Ersetzung.<br>
|
|
<br>
|
|
Beispiel:
|
|
<ul>
|
|
setreading lampe state on
|
|
</ul>
|
|
Achtung: setreading generiert kein Event für ein Gerät X, falls es
|
|
aus einem notify für Gerät X aufgerufen wurde. In so einem Fall
|
|
könnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
|
|
</ul>
|
|
<!-- setreading end -->
|
|
|
|
<a name="setstate"></a>
|
|
<h3>setstate</h3>
|
|
<ul>
|
|
<code>setstate <devspec> <value></code>
|
|
<br><br>
|
|
Der Befehl setzt den STATE Eintrag des Gerätes direkt, ohne Ereignisse
|
|
zu generieren oder ein Signal an das Gerät zu senden. Dieser Eintrag ist
|
|
maßgebend für die Status-Anzeige in diversen Frontends. Dieser
|
|
Befehl wird auch im <a href="#statefile">statefile</a> benutzt.<br> Siehe den
|
|
Abschnitt über <a href="#devspec">Geräte-Spezifikation</a> für
|
|
Details der <devspec>.<br> <br>
|
|
Beispiel:
|
|
<ul>
|
|
setstate lampe An
|
|
</ul>
|
|
Achtung: setstate wird verwendet, um Readings im statefile zu speichern, in
|
|
diesem Fall wird vor dem Wert ein Zeitstempel geschrieben. Als Seiteneffekt
|
|
ist es nicht möglich, ein Status, was mit einem Zeitstempel der Form
|
|
YYYY-MM-DD HH:MM:SS beginnt, korrekt zu speichern.
|
|
</ul>
|
|
<!-- setstate end -->
|
|
|
|
|
|
<a name="setuuid"></a>
|
|
<h3>setuuid</h3>
|
|
<ul>
|
|
<code>setuuid <device> <uuid></code>
|
|
<br><br>
|
|
Systembefehl, um den FUUID internen Wert zu setzen.
|
|
Ist nicht vom Benutzer zu verwenden.
|
|
</ul>
|
|
<!-- setstate end -->
|
|
|
|
<a name="show"></a>
|
|
<h3>show</h3>
|
|
<ul>
|
|
<code>show <devspec></code>
|
|
<br><br>
|
|
Zeigt einen temporären Raum mit Geräten aus <devspec>,
|
|
verfügbar nur über FHEMWEB.<br> Siehe den Abschnitt über <a
|
|
href="#devspec">Geräte-Spezifikation</a> für Details der
|
|
<devspec>.<br>
|
|
<br><br>
|
|
Example:
|
|
<ul>
|
|
<code>show TYPE=CUL_HM</code><br>
|
|
</ul>
|
|
</ul>
|
|
<!-- show end -->
|
|
|
|
<a name="shutdown"></a>
|
|
<h3>shutdown</h3>
|
|
<ul>
|
|
<p>
|
|
<code>shutdown [<var>restart</var>] [<var>exitValue</var>]</code>
|
|
</p>
|
|
<p>
|
|
Der Befehl fährt <abbr>FHEM</abbr> herunter (nach dem Sichern aller <a
|
|
href="#statefile">Gerätestatus</a>). Er triggert den <code>global:SHUTDOWN</code>-<span lang="en">Event</span>.
|
|
Mit dem optionalen Parameter <var lang="en">restart</var> startet <abbr>FHEM</abbr> danach neu.
|
|
Der <var lang="en">exitValue</var> ist möglicherweise bei bestimmten Start-Skripten zur korrekten Funktion
|
|
vonnöten <abbr>bzw.</abbr> wichtig.
|
|
</p>
|
|
Beispiel:
|
|
<ul>
|
|
<code>shutdown</code><br>
|
|
<code>shutdown restart</code><br>
|
|
<code>shutdown 1</code>
|
|
</ul>
|
|
</ul>
|
|
<!-- shutdown end -->
|
|
|
|
<a name="sleep"></a>
|
|
<h3>sleep</h3>
|
|
<ul>
|
|
<code>sleep <sec|timespec|suchmuster> [<id>] [quiet]</code>
|
|
<br><br>
|
|
sleep gefolgt von weiteren Befehlen ist vergleichbar mit einem namenlosen <a
|
|
href="#at">at</a> oder <a href="#notify">notify</a> Kommando, es führt
|
|
die nachfolgenden Befehle aus, nachdem es die spezifizierte Zeitspanne
|
|
gewartet hat bzw. ein Event welches dem <suchmuster> entspricht
|
|
aufgetreten ist. Die verzögerung kann<ul>
|
|
<li>in Sekunden (Millisekunden genau, da man Nachkommastellen spezifizieren
|
|
kann)</li>
|
|
<li> als timespec (HH:MM or HH:MM:SS oder {perlfunc})</li>
|
|
<li>oder als suchmuster (Gerätename oder Gerätename:Event)</li>
|
|
</ul> angegeben werden.<br>
|
|
|
|
Ein sleep mit einer <id> ersetzt ein sleep mit der gleichen <id>
|
|
and can mit <a href="#cancel">cancel</a> entfernt werden.
|
|
|
|
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: falls sleep von keinem Befehl gefolgt wird, dann wird FHEM
|
|
blockiert. Das ist unerwünscht, und im FHEM-Log wird eine Warnung
|
|
protokolliert.
|
|
</ul>
|
|
<!-- sleep end -->
|
|
|
|
<a name="trigger"></a>
|
|
<h3>trigger</h3>
|
|
<ul>
|
|
<code>trigger <devspec> <event></code>
|
|
<br><br>
|
|
Generiert das Ereignis <event>, was z.Bsp. ein <a
|
|
href="#notify">notify</a> anstoßen kann, oder den FileLog zum
|
|
protokollieren dieser Zeile bewegen kann.<br>
|
|
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>
|
|
<!-- trigger end -->
|
|
|
|
<!-- commands end - diese Zeile nicht entfernen! -->
|
|
|
|
|
|
<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>Internals</b>
|
|
<ul>
|
|
<a name="init_errors"></a>
|
|
<li>init_errors<br>
|
|
Konfigurations Fehlermeldungen beim FHEM Start und Security Meldungen werden
|
|
hier gesammelt.
|
|
</li><br>
|
|
</ul><br>
|
|
|
|
<b>Attributes</b>
|
|
<ul>
|
|
<a name="altitude"></a>
|
|
<li>altitude<br>
|
|
Höhe in Metern über dem Meeresspiegel, Voreinstellung ist 0.
|
|
</li><br>
|
|
|
|
<li><a href="#archivedir">archivedir</a></li>
|
|
<li><a href="#archivecmd">archivecmd</a></li>
|
|
<li><a href="#nrarchive">nrarchive</a></li>
|
|
<a name="archivesort"></a>
|
|
<li>archivesort<br>
|
|
archivesort kann auf dem (voreingestellten) Wert alphanum oder timestamp
|
|
gesetzt werden, und bestimmt die Methode für die
|
|
Reihenfolgenberechnung der Dateien für nrarchive.<br>
|
|
</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="autosave"></a>
|
|
<li>autosave<br>
|
|
Der Standardwert 1 aktiviert einige Module nach einer
|
|
Konfigurationsänderung automatisch zu speichern z.B. wenn ein neues
|
|
Gerät erstellt wurde. Treten beim FHEM Start Konfigurationsfehler
|
|
auf wird diese Funktion automatisch deaktiviert (0).
|
|
</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 update
|
|
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 backupsymlink yes
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="blockingCallMax"></a>
|
|
<li>blockingCallMax<br>
|
|
Begrenzt die Anzahl der parallel laufenden Prozesse, die von der
|
|
BlockingCall FHEM Hilfsroutine gestartet wurden. Sinnvoll auf weniger
|
|
leistungsfaehigen Hardware, die Voreinstellung ist 32. Nach erreichen
|
|
dieser Grenze werden weitere Aufrufe verzögert.
|
|
</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="commandref"></a>
|
|
<li>commandref<br>
|
|
Falls der Wert "full" ist, dann wird nach jedem
|
|
update ein komplettes commandref.html generiert. Falls der Wert
|
|
"modular" ist (voreingestellt seit FHEM 6.1), dann wird die
|
|
Moduldokumentation erst nach Bedarf waehrend der Laufzeit per
|
|
JavaScript geladen.
|
|
</li><br>
|
|
|
|
<a name="dnsHostsFile"></a>
|
|
<li>dnsHostsFile<br>
|
|
Falls dnsServer gesetzt ist, wird die angegebene Datei nach dem
|
|
Hostnamen durchsucht. Um die vom System verwendete Datei zu benutzen,
|
|
ist es unter Linux/Unix/OSX auf /etc/hosts und unter Windows auf
|
|
C:\windows\system32\drivers\etc\hosts zu setzen. Achtung: es wird nur
|
|
IPv4 unterstützt.
|
|
</li><br>
|
|
|
|
<a name="globaldisableFeatures"></a>
|
|
<li>disableFeatures <values><br>
|
|
Komma separierte Liste von Werten. Z.Zt. werden Folgende erkannt:
|
|
<ul>
|
|
<li>attrTemplate: um das Laden der AttrTemplates zu vermeiden.
|
|
</li>
|
|
<li>securityCheck: um bei fehlenden Benutzer/Passwort bei den
|
|
aktivierten Netzwerk-Server keine Warnmeldung zu generieren.
|
|
</li><br>
|
|
</ul>
|
|
</li>
|
|
|
|
<a name="dnsServer"></a>
|
|
<li>dnsServer<br>
|
|
Enthält die IP Adresse des DNS Servers. Die von bestimmten Modulen
|
|
(oder eigenen Code) aufgerufene HttpUtils_NonblockingGet wird auch bei
|
|
der DNS Auflösung nicht mehr blockieren, falls dieses Attribut
|
|
gesetzt ist, da es in diesem Fall FHEM eigene Routinen aufgerufen
|
|
werden. Sonst werden die OS-eigenen, blockierenden Routinen inet_aton
|
|
bzw gethostbyname aufgerufen.
|
|
</li><br>
|
|
|
|
<a name="encoding"></a>
|
|
<li>encoding<br>
|
|
Wählt das perl-interne Format, mit dem Strings kodiert sind.
|
|
Mögliche Werte sind: bytestream (Voreinstellung) und unicode.<br>
|
|
Achtung:
|
|
<ul>
|
|
<li>der Wert unicode ist experimentell, da nicht alle FHEM-Module
|
|
mit dieser Variante geprüft wurden.</li>
|
|
<li>ändern des Wertes bewirkt ein save und ein shutdown restart.</li>
|
|
</ul>
|
|
</li><br>
|
|
|
|
<a name="featurelevel"></a>
|
|
<li>featurelevel<br>
|
|
Aktiviere bzw. deaktiviere bestimmte alte oder neue Funktionen, basierend
|
|
auf die FHEM Version. Z.Bsp. das $value hash für notify wird nur bis featurelevel 5.6
|
|
befüllt, da es unerwünscht ist. Stattdessen sollte man die
|
|
Value() Funktion verwenden.
|
|
</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
|
|
heute entweder Samstag/Sonntag ist, oder der Wert der <a
|
|
href="#holiday">holiday</a> Variable zu diesem Attribut nicht
|
|
"none" ist.<br>
|
|
Falls es eine Komma getrennte Liste ist, dann ist es wahr, falls einer
|
|
der referenzierten Instanzen nicht "none" ist.<br>
|
|
Beispiel:<br>
|
|
<ul>
|
|
attr global holiday2we hessen
|
|
</ul>
|
|
Falls sich einer der Elemente dieser Liste weekEnd nennt, dann wird
|
|
nicht auf Samstag/Sonntag geprüft. Falls einer der Elemente
|
|
noWeekEnd ist, und nicht "none" zurückliefert, dann ist
|
|
$we 0.<br>
|
|
</li><br>
|
|
|
|
<a name="httpcompress"></a>
|
|
<li>httpcompress<br>
|
|
das HttpUtils Modul wird von etlichen FHEM modulen verwendet und
|
|
aktiviert Komprimierung in der Voreinstellung. Falls man
|
|
httpcompress auf 0 setzt, wird die Komprimierung deaktiviert.
|
|
</li><br>
|
|
|
|
<a name="ignoreRegexp"></a>
|
|
<li>ignoreRegexp<br>
|
|
Texte, wo dieses Regexp matcht, werden nicht geloggt. ^ und $ wird zum
|
|
Regexp hinzugefügt, wie bei notify und FileLog.
|
|
</li><br>
|
|
|
|
|
|
<a name="keyFileName"></a>
|
|
<li>keyFileName<br>
|
|
FHEM Module speichern Passwörter und IDs in der Datei
|
|
FHEM/FhemUtils/uniqueID. Um mehrere FHEM-Instanzen im gleichen
|
|
Verzeichnis starten zu können, kann man dieses Attribut setzen,
|
|
dessen Wert an FHEM/FhemUtils/ angehängt wird.
|
|
</li><br>
|
|
|
|
<a name="latitude"></a>
|
|
<li>latitude<br>
|
|
Geographische Breite in Dezimalgrad, Voreinstellung ist 50.112,
|
|
Frankfurt am Main.
|
|
</li><br>
|
|
|
|
<a name="longitude"></a>
|
|
<li>longitude<br>
|
|
Geographische Länge in Dezimalgrad, Voreinstellung ist 8.686,
|
|
Frankfurt am Main.
|
|
</li><br>
|
|
|
|
<a name="logdir"></a>
|
|
<li>logdir<br>
|
|
Falls gesetzt, wird %L in dem logfile Attribut (oder in der Dateinamen
|
|
Spezifikation des FileLog Moduls) durch den Wert des Attributes ersetzt.
|
|
Achtung: ändern des Wertes bewirkt nicht das Verschieben bereits
|
|
erstellter Dateien, und kann zu diversen Problemen fü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 stellt sich der Server nicht selbst in den Hintergrund.<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="maxChangeLog"></a>
|
|
<li>maxChangeLog<br>
|
|
FHEM speichert Strukturänderungen, diese Daten kann man mit
|
|
"save ?" oder mittels Klick auf das rote Fragezeichen in FHEMWEB
|
|
anzeigen. Per Voreinstellung ist diese Liste auf 10 Einträge
|
|
begrenzt, mit diesem Attribut kann man diesen Wert ändern.<br>
|
|
Die Länge jeder gespeicherten Zeile ist auf 40 Zeichen begrenzt.
|
|
Mit der (optionalen, Leerzeichen getrennten) zweiten Parameter kann man
|
|
diesen Wert ändern.<br>
|
|
Beispiel: attr global myxChangeLog 20 200
|
|
</li><br>
|
|
|
|
<a name="maxShutdownDelay"></a>
|
|
<li>maxShutdownDelay<br>
|
|
Einige Module benötigen Zeit zum Aufräumen beim shutdown,
|
|
aber FHEM begrenzt diese Zeit auf 10 Sekunden. Mit diesem Attribut
|
|
kann man sie anpassen.
|
|
</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 enthält <b>nicht</b> das Verzeichnis FHEM.
|
|
Durch das setzen der Attribute, wird das Verzeichnis nach Dateinamen in
|
|
der Form NN_<NAME>.pm durchsucht, 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 Funktion mit dem Namen <NAME>_Initialize wird
|
|
aufgerufen. Eine Ausnahme bilden Module die mit der Nummer 99 im
|
|
Dateinamen beginnen. Diese enthalten PERL-Hilfsfunktionen und
|
|
werden zur Startzeit geladen.
|
|
|
|
</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. Zusätzlich wird der Inhalt
|
|
des Internals init_errors angezeigt. Die Anzeige der gesamten Meldung
|
|
wird durch attr global motd none abgeschaltet.
|
|
</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 oder "attr global logfile -" gesetzt ist,
|
|
dann wird FHEM nicht im Hintergrund abgearbeitet.
|
|
Dieses Attribut ist bei einigen FHEM Installationen auf FRITZ!-Boxen
|
|
notwendig, und wid fuer Windows automatisch gesetzt.
|
|
</li><br>
|
|
|
|
<a id="perlSyntaxCheck"></a>
|
|
<li>perlSyntaxCheck<br>
|
|
nach setzen des <b>global</b> Attributes perlSyntaxCheck wird eine
|
|
Syntax-Prüfung der Anweisung durchgeführt bei jeder
|
|
Änderung (define oder modify), falls die Anweisung Perl ist, und
|
|
FHEM bereits gestartet ist.</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>
|
|
|
|
<a name="proxy"></a>
|
|
<li>proxy<br>
|
|
IP:PORT des proxy Servers, wird von HttpUtils benutzt.
|
|
</li><br>
|
|
<a name="proxyAuth"></a>
|
|
<li>proxyAuth<br>
|
|
Base64 kodiertes Benutzername:Passwort
|
|
</li><br>
|
|
<a name="proxyExclude"></a>
|
|
<li>proxyExclude<br>
|
|
Regexp, um bestimmte Hosts nicht via proxy zu kontaktieren.
|
|
</li><br>
|
|
|
|
<a name="restoreDirs"></a>
|
|
<li><a name="restoreDirs">restoreDirs</a><br>
|
|
update sichert jede Datei vor dem Überschreiben mit der neuen
|
|
Version aus dem Web. Für diesen Zweck wird zuerst ein
|
|
restoreDir/update Verzeichnis in der global modpath Verzeichnis
|
|
angelegt, und danach ein Unterverzeichnis mit dem aktuellen Datum. In
|
|
diesem Verzeichnis werden vor dem Überschreiben die alten
|
|
Versionen der Dateien gerettet. Die Voreinstellung ist 3, d.h. die
|
|
letzten 3 Datums-Verzeichnisse werden aufgehoben, und die älteren
|
|
entfernt.
|
|
<br>
|
|
Auch fhem.cfg und fhem.state wird auf diese Weise vor dem ausfüren
|
|
von save gesichert, diesmal in das restoreDir/save Verzeichnis. Zum
|
|
restaurieren der alten Dateien kann man das restore Befehl
|
|
verwenden.<br>
|
|
Falls man den Wert auf 0 setzt, dann ist dieses Feature deaktiviert.
|
|
</li><br>
|
|
|
|
<li><a href="#fheminfo">sendStatistics</a><br>
|
|
|
|
<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>
|
|
|
|
<li><a href="#title">title</a><br>
|
|
|
|
<a name="useInet6"></a>
|
|
<li>useInet6<br>
|
|
Die HttpUtils Routinen verwenden IPv6 für die Kommunikation, falls
|
|
der Server eine IPv6 Adresse hat. Achtung: das Perl-Modul
|
|
IO::Socket::INET6 wird benötigt.
|
|
</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
|
|
(bei allen Geräten) angewendet werden können.<br>
|
|
userattr kann auch für einzelne Geräte spezifiziert werden,
|
|
um weitere Attribute für diese Geräte zu definieren.
|
|
</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><br>
|
|
|
|
<a name="sslVersion"></a>
|
|
<li>sslVersion<br>
|
|
Setzt die akzeptierten Crypto-Algorithmen im TcpServices Hilfsmodul.
|
|
Die Voreinstellung TLSv12:!SSLv3 wird als sicherer erachtet als die
|
|
vorherige SSLv23:!SSLv3:!SSLv2, aber sie kann Probleme mit nicht
|
|
ausreichend aktualisierten Netzwerk-Diensten verursachen.
|
|
</li><br>
|
|
|
|
<a name="stacktrace"></a>
|
|
<li>stacktrace<br>
|
|
Falls gesetzt (auf 1), schreibt ins FHEM-Log zusätzlich zu jedem
|
|
"PERL WARNING" den stacktrace.
|
|
</li><br>
|
|
|
|
<a name="restartDelay"></a>
|
|
<li>restartDelay<br>
|
|
Setzt die Verzögerung beim Neustart mit shutdown restart, die
|
|
Voreinstellung ist 2 (Sekunden).
|
|
</li><br>
|
|
</ul>
|
|
|
|
<br><br>
|
|
<b>Events</b>
|
|
<ul>
|
|
<li>INITIALIZED<br>sobald die Initialization vollständig ist.</li>
|
|
<li>REREADCFG<br>nachdem die Konfiguration erneut eingelesen wurde.</li>
|
|
<li>SAVE<br>bevor die Konfiguration gespeichert wird.</li>
|
|
<li>SHUTDOWN<br>bevor FHEM heruntergefahren wird.</li>
|
|
<li>DEFINED <devname><br>nach dem Definieren eines
|
|
Gerätes.</li>
|
|
<li>DELETED <devname><br>nach dem Löschen eines
|
|
Gerätes.</li>
|
|
<li>RENAMED <old> <new><br>nach dem Umbenennen eines
|
|
Gerätes.</li>
|
|
<li>UNDEFINED <defspec><br>beim Auftreten einer Nachricht für
|
|
ein undefiniertes Gerät.</li>
|
|
<li>MODIFIED <defspec><br>nach Änderung einer
|
|
Gerätedefinition.</li>
|
|
<li>UPDATE<br>nach Abschluss eines Updates.</li>
|
|
<li>CANNOT_FORK<br>falls in BlockingCall dieses Problem auftritt.</li>
|
|
</ul>
|
|
|
|
|
|
</ul>
|
|
<!-- global end - diese Zeile nicht entfernen! -->
|
|
|
|
|
|
<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 SHELL-Skript 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>
|
|
</li><br>
|
|
|
|
<li>Um FHEM-Kommandos in den PERL-Ausdrücken zu verwenden, benutzen
|
|
Sie bitte die Funktion <var>fhem()</var>, 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...".
|
|
</li><br>
|
|
|
|
<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 <var>$sec</var>, <var>$min</var>, <var>$hour</var>, <var>$mday</var>,
|
|
<var>$month</var>, <var>$year</var>, <var>$wday</var>, <var>$yday</var>, <var>$isdst</var> und <var>$hms</var>
|
|
für die Verwendung in PERL-"oneliners" eingeführt (s.
|
|
unter <var>perldoc -f localtime</var>). Ausnahmen: <var>$month</var> hat einen Wertebereich von 1
|
|
bis 12 und <var>$year</var> ist korrigiert von 1900.
|
|
Weiterhin enthält <var>$hms</var> die Zeit in dem HH:MM:SS Format und <var>$today</var> das
|
|
aktuellen Datum in YYYY-MM-DD Format.
|
|
<br>
|
|
|
|
Die Variabe <var>$we</var> hat den Wert 1 wenn der abgefragte Tag auf ein
|
|
Wochenende fällt (Z.B. <var>$wday</var> == 0 [Sonntag] oder
|
|
<var>$wday</var> == 6 [Samstag]), und 0 für die anderen Wochentage.
|
|
Wenn man das global <a href="#holiday2we">holiday2we</a> Attribut setzt,
|
|
dann ist <var>$we</var> 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>
|
|
$we wird mit IsWe() gesetzt, diese Funktion nimmt optional die Argumente
|
|
"today", "yesterday", "tomorrow", MM-DD oder YYYY-MM-DD. Achtung: bei
|
|
anderen Werten wird das state Reading ausgewertet, ohne eine Fehlermeldung
|
|
zu generieren.<br>
|
|
</li><br>
|
|
|
|
<li>
|
|
Hilfsfunktionen sind in <a href="#Utils">99_Utils.pm</a> beschrieben.<br>
|
|
</li><br>
|
|
|
|
<li>
|
|
Um auf die Gerätestatus/Attribute zuzugreifen benutzen Sie bitte die
|
|
folgenden Funktionen:
|
|
<br>
|
|
<ul>
|
|
<li>Value(<devicename>)<br>
|
|
liefert das Internal STATE zurück. Achtung: STATE wird in erster
|
|
Linie für die Anzeige verwendet, und kann vom Benutzer mit dem
|
|
stateFormat Attribut geändert werden. Für Berechnungen sollte
|
|
man stattdessen ReadingsVal(<devicename>, 'state', '') verwenden
|
|
(s.u.). </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>
|
|
ReadingsNum(<devicename>,<reading>,
|
|
<defaultvalue>,<round>)<br>
|
|
Gibt die erste Zahl aus dem Readingswert zurück.
|
|
Falls <round> spezifiziert ist, wird sie auf diese Anzahl von
|
|
Dezimalstellen gerundet und ggf. mit 0 aufgefüllt, wenn <round>
|
|
größer ist als die Anzahl der Dezimalstellen.
|
|
</li><br>
|
|
<li>ReadingsTimestamp(<devicename>,
|
|
<reading>,<defaultvalue>)<br>
|
|
gibt den Zeitstempel des Readings zurück.
|
|
</li><br>
|
|
<li>ReadingsAge(<devicename>,<reading>,<defaultvalue>)
|
|
<br>
|
|
gibt das Alter des Readings in Sekunden zurück.
|
|
</li><br>
|
|
|
|
<li>
|
|
OldReadingsVal(<devicename>,<reading>
|
|
,<defaultvalue>)<br>
|
|
OldReadingsNum(<devicename>,<reading>,
|
|
<defaultvalue>,<round>)<br>
|
|
OldReadingsTimestamp(<devicename>,<reading>
|
|
,<defaultvalue>)<br>
|
|
OldReadingsAge(<devicename>,<reading>,<
|
|
defaultvalue>)<br>
|
|
analog zu den Routinen oben, aber zum Zugriff auf die vorherigen Werte.
|
|
siehe: <a href="#oldreadings">oldreadings</a><br>
|
|
</li><br>
|
|
|
|
<li>
|
|
AttrVal(<devicename>,<attribute>,<defaultvalue>)<br>
|
|
Gibt das entsprechende Attribut 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>
|
|
AttrNum(<devicename>,<attribute>,
|
|
<defaultvalue>,<round>)<br>
|
|
Gibt die erste Zahl aus dem Attributwert zurück.
|
|
Falls <round> spezifiziert ist, wird sie auf diese Anzahl von
|
|
Dezimalstellen gerundet und ggf. mit 0 aufgefüllt, wenn <round>
|
|
größer ist als die Anzahl der Dezimalstellen.
|
|
</li><br>
|
|
<li>
|
|
InternalVal(<devicename>,<internal>,
|
|
<defaultvalue>)<br>
|
|
Gibt den Inhalt der "internal" zurück (den Inhalt der in
|
|
dem "Internals"-Abschnitt von "list device" angezeigt wird)
|
|
</li><br>
|
|
<li>
|
|
InternalNum(<devicename>,<internal>,
|
|
<defaultvalue>,<round>)<br>
|
|
Gibt die erste Zahl aus dem "internal" zurück.
|
|
Falls <round> spezifiziert ist, wird sie auf diese Anzahl von
|
|
Dezimalstellen gerundet.
|
|
</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>
|
|
<!-- perl end - diese Zeile nicht entfernen! -->
|
|
|
|
<a name="regexp"></a>
|
|
<h3>Regexp</h3>
|
|
FHEM verwendet an vielen Stellen Regexps, womit Reguläre Ausdrücke
|
|
gemeint sind. Weitere Bezeichner sind regex oder re.<br>
|
|
|
|
Mit einem Regexp kann man prüfen, ob eine Zeichenkette eine Andere
|
|
enthält, oder man kann Teile einer Zeichenkette extrahieren.<br>
|
|
|
|
Regexp ist nicht mit dem aus dem Shell bekannten Globbing zu verwechseln:
|
|
zBsp. ist .* die Regexp äquivalente von *, was man in dem Dateisystem
|
|
verwendet.</br>
|
|
|
|
Einige Beispiele:<ul>
|
|
<table>
|
|
<tr><th>Regexp</th><th>Erklärung</th></tr>
|
|
<tr><td>.</td>
|
|
<td>Trifft für ein beliebiges Zeichen/Buchstabe zu.</td></tr>
|
|
<tr><td>x</td>
|
|
<td>Trifft für eine Zeichenkette zu, die x enthält: x, xy,
|
|
aber nicht abc</td></tr>
|
|
<tr><td>^x</td>
|
|
<td>Trifft für eine Zeichenkette zu, die mit x anfängt: x,
|
|
xy, aber nicht yx</td></tr>
|
|
<tr><td>x$</td>
|
|
<td>Trifft für eine Zeichenkette zu, die mit x endet: x, yx, aber
|
|
nicht xy</td></tr>
|
|
<tr><td>^x?$</td>
|
|
<td>Trifft für eine Zeichenkette zu, die leer ist, oder nur ein x
|
|
enthält</td></tr>
|
|
<tr><td>^x*$</td>
|
|
<td>Trifft für eine Zeichenkette zu, die leer ist oder nur x
|
|
enhtält: "", x, xxxx, aber nicht xy oder yx</td></tr>
|
|
<tr><td>^x+$</td>
|
|
<td>Trifft für eine Zeichenkette zu, die x mindestens einmal
|
|
enthaelt: x, xxxx, aber nicht ""</td></tr>
|
|
<tr><td>^(xy|yx)$</td>
|
|
<td>Trifft für xy or yx zu.</td></tr>
|
|
<tr><td>*</td><td>Das ist kein Regexp! Das ist ein Glob.</td></tr>
|
|
</table>
|
|
</ul>
|
|
Das ist nicht mal die Spitze des Eisbergs, wenn man mehr wissen will, kann
|
|
man z.Bsp. die in der perl Installation vorhandene Dokumentation verwenden:
|
|
die Shell Befehle "perldoc perlretut" oder "perldoc perlre" (in dieser
|
|
Reihenfolge) liefern Seitenweise mehr Info.<br>
|
|
|
|
Falls man unsicher ist, sollte man die Regexps testen, z.Bsp. in einen der
|
|
online Tester wie
|
|
<a target="_blank" href="https://regex101.com">regex101.com</a>,
|
|
<a target="_blank" href="https://regexr.com">regexr.com</a> or
|
|
<a target="_blank" href="https://regextester.com">regextester.com</a>
|
|
.<br>
|
|
|
|
Man kann ein Regexp auch offline in FHEM testen, z.Bsp. wenn man es in der
|
|
Kommandozeile so eingibt:<br>
|
|
<ul>
|
|
{ "StringToTest" =~ m/^Str/ }<br>
|
|
{ "StringToTest" =~ m/^str$/ }<br>
|
|
{ "StringToTest" =~ m/(To|From)/ }<br>
|
|
</ul>
|
|
<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://wiki.fhem.de/wiki/Creating_Plots"> diesen</a> FHEM Wiki 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.
|
|
SVG Spezial: cubic und quadratic werden zu den SVG path Typen C und Q
|
|
gewandelt.
|
|
</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> <!-- right -->
|
|
</body>
|
|
</html>
|