+ Das Modul FB_CALLMONITOR verbindet sich zu einer AVM FritzBox Fon und verarbeitet
+ Telefonie-Ereignisse.(eingehende & ausgehende Telefonate)
+
+ Um dieses Modul nutzen zu können, muss der CallMonitor via Kurzwahl mit einem Telefon aktiviert werden.
+ .
+
+ #96*5* - CallMonitor aktivieren #96*4* - CallMonitor deaktivieren
+
+
+ Einfach die entsprechende Kurzwahl auf irgend einem Telefon eingeben, welches an die Fritz!Box angeschlossen ist.
+ Nach ca. 3 Sekunden kann man einfach wieder auflegen. Nun ist der CallMonitor aktiviert.
+
+ Sobald der CallMonitor auf der Fritz!Box aktiviert wurde erzeugt das Modul entsprechende Events (s.u.)
+
+ Dieses Modul funktioniert mit allen Fritz!Box Modellen, welche Telefonie unterstützen (Namenszusatz: Fon).
+
+
+
+ Definition
+
+ define <name> FB_CALLMONITOR <IP-Addresse>[:Port]
+
+ Port 1012 ist der Standardport und muss daher nicht explizit angegeben werden.
+
+
+
+
+ Set-Kommandos
+
+ - rereadPhonebook - Liest das Telefonbuch der FritzBox neu ein (per Datei oder direkt lokal)
+
+
+
+
+ Get-Kommandos
+
+ - search <Rufnummer> - gibt den Namen der Telefonnummer zurück (aus Cache, Telefonbuch oder Rückwärtssuche)
+
+
+
+
+ Attribute
+
+ - do_not_notify
+ - readingFnAttributes
+ - disable
+ Optionales Attribut zur Deaktivierung des Callmonitors. Es können dann keine Anruf-Events mehr erkannt und erzeugt werden.
+
+ Mögliche Werte: 0 => Callmonitor ist aktiv, 1 => Callmonitor ist deaktiviert.
+ Standardwert ist 0 (aktiv)
+ - reverse-search (all|internal|klicktel.de|dasoertliche.de|search.ch|dasschnelle.at|none)
+ Aktiviert die Rückwärtssuche der externen Rufnummer der Gegenstelle (bei eingehenden/abgehenden Anrufen).
+ Es ist möglich einen bestimmten Suchanbieter zu verwenden, welcher für die Rückwärtssuche verwendet werden soll.
+ Falls FHEM auf einer FritzBox Fon läuft, kann mit dem Wert "internal" ausschließlich das interne Telefonbuch verwendet werden.
+ Wenn dieses Attribut auf dem Wert "all" steht, wird (sofern FHEM auf einer FritzBox Fon läuft) das interne Telefonbuch verwendet,
+ sowie alle verfügbaren Suchanbieter (ausser search.ch und dasschnelle.at)
+ für die Rückwärtssuche herangezogen, solange bis irgend ein Anbieter ein valides Ergebniss liefert.
+ Wenn der Wert "none" ist, wird keine Rückwärtssuche durchgeführt.
Standardwert ist "none" (keine Rückwärtssuche).
+ - reverse-search-cache
+ Wenn dieses Attribut gesetzt ist, werden alle Ergebisse der Rückwärtssuche in einem modul-internen gespeichert
+ und von da an nur noch aus dem Cache genutzt anstatt eine erneute Rückwärtssuche durchzuführen.
+ Mögliche Werte: 0 => deaktiviert , 1 => aktiviert
+ Standardwert ist 0 (deaktiviert)
+ - reverse-search-cache-file <Dateipfad>
+ Da der Cache nur im Arbeitsspeicher existiert, ist er nicht persisten und geht beim stoppen von FHEM verloren.
+ Mit diesem Parameter werden alle Cache-Ergebnisse in eine Textdatei geschrieben (z.B. /usr/share/fhem/telefonbuch.txt)
+ und beim nächsten Start von FHEM direkt wieder in den Cache geladen und genutzt.
+
+ - reverse-search-phonebook-file <Dateipfad>
+ Mit diesem Attribut kann man optional den Pfad zu einer Datei angeben, welche ein Telefonbuch im FritzBox-Format (XML-Struktur) enthält.
+ Dadurch ist es möglich ein FritzBox-Telefonbuch zu verwenden, ohne das FHEM auf einer FritzBox laufen muss.
+ Sofern FHEM auf einer FritzBox läuft (und nichts abweichendes angegeben wurde), wird das interne File /var/flash/phonebook verwendet. Alternativ kann man das Telefonbuch in der FritzBox-Weboberfläche exportieren und dieses verwenden
+ Standartwert ist /var/flash/phonebook (entspricht dem Pfad auf einer FritzBox)
+ - remove-leading-zero
+ Wenn dieses Attribut aktiviert ist, wird die führende Null aus der externen Rufnummer (bei eingehenden & abgehenden Anrufen) entfernt. Dies ist z.B. notwendig bei Telefonanlagen.
+ Mögliche Werte: 0 => deaktiviert , 1 => aktiviert
+ Standardwert ist 0 (deaktiviert)
+- unique-call-ids
+ Wenn dieses Attribut aktiviert ist, wird für jedes Gespräch eine eineindeutige Identifizierungsnummer verwendet. Dadurch lassen sich auch bereits beendete Gespräche voneinander unterscheiden. Dies ist zum Beispiel notwendig bei der Verarbeitung der Events durch eine Datenbank.
+ Mögliche Werte: 0 => deaktiviert , 1 => aktiviert
+ Standardwert ist 0 (deaktiviert)
+ - local-area-code
+ Verwendet die gesetze Vorwahlnummer bei Rückwärtssuchen bei Ortsgesprächen (z.B. 0228 für Bonn)
+
+
+
+
+ Generierte Events:
+
+ - event: (call|ring|connect|disconnect) - Welches Event wurde genau ausgelöst.
+ - external_number: - Die Rufnummer des Gegenübers, welcher anruft (event: ring) oder angerufen wird (event: call)
+ - external_name: - Das Ergebniss der Rückwärtssuche (sofern aktiviert). Im Fehlerfall kann diese Reading auch den Inhalt "unknown" (keinen Eintrag gefunden) und "timeout" (Zeitüberschreitung bei der Abfrage) enthalten. Im Falle einer Zeitüberschreitung und aktiviertem Caching, wird die Rufnummer beim nächsten Mal erneut gesucht.
+ - internal_number: - Die interne Rufnummer (Festnetz, VoIP-Nummer, ...) auf welcher man angerufen wird (event: ring) oder die man gerade nutzt um jemanden anzurufen (event: call)
+ - internal_connection: - Der interne Anschluss an der Fritz!Box welcher genutzt wird um das Gespräch durchzuführen (FON1, FON2, ISDN, DECT, ...)
+ - external_connection: - Der externe Anschluss welcher genutzt wird um das Gespräch durchzuführen (Festnetz, VoIP Nummer, ...)
+ - call_duration: - Die Gesprächsdauer in Sekunden. Dieser Wert wird nur bei einem disconnect-Event erzeugt. Ist der Wert 0, so wurde das Gespräch von niemandem angenommen.
+ - call_id: - Die Identifizierungsnummer eines einzelnen Gesprächs. Dient der Zuordnung bei 2 oder mehr parallelen Gesprächen, damit alle Events eindeutig einem Gespräch zugeordnet werden können
+ - missed_call: - Dieses Event wird nur generiert, wenn ein eingehender Anruf nicht beantwortet wird. Sofern der Name dazu bekannt ist, wird dieser ebenfalls mit angezeigt.
+
+
+
+
+
+FHEM2FHEM
+
+ FHEM2FHEM ist ein Hilfsmodul, um mehrere FHEM-Installationen zu verbinden.
+
+
+ Define
+
+ define <name> FHEM2FHEM <host>[:<portnr>][:SSL] [LOG:regexp|RAW:devicename] {portpassword}
+
+
+
+ Zum remote (entfernten) FHEM auf Rechner <host> verbinden.
+ <portnr> ist der telnetPort des remote FHEM, Standardport ist 7072.
+ Der Zusatz :SSL wird benötigt, wenn das remote FHEM
+ SSL-Verschlüsselung voraussetzt. Auch auf dem lokalen Host muss dann
+ das Perl-Modul IO::Socket::SSL installiert sein.
+
+ Anmerkung: Wenn das remote FHEM auf einem eigenen Host läuft, muss
+ "telnetPort" des remote FHEM als global festgelegt sein.
+
+ Der nächste Parameter spezifiziert den Verbindungs-Typ:
+
+ - LOG
+ Bei Verwendung dieses Verbindungstyps werden alle Ereignisse (Events) der
+ remote FHEM-Installation empfangen. Die Ereignisse sehen aus wie die, die
+ nach inform on Befehl erzeugt werden. Sie können
+ wie lokale Ereignisse durch FileLog oder notify genutzt werden und mit einem regulären
+ Ausdruck gefiltert werden. Die Syntax dafür ist unter der
+ notify-Definition beschrieben.
+
+ Einschränkungen: die Geräte der remote Installation werden nicht
+ lokal angelegt und können weder mit list angezeigt noch lokal
+ angesprochen werden. Auf beiden FHEM-Installationen können
+ Geräte gleichen Namens angelegt werden, aber wenn beide dasselbe
+ Ereignis empfangen (z.B. wenn an beiden Installationen CULs angeschlossen
+ sind), werden alle FileLogs und notifys doppelt ausgelöst.
+
+ - RAW
+ Bei diesem Verbindungstyp werden unaufbereitete Ereignisse (raw messages)
+ des remote FHEM-Geräts devicename genau so empfangen, als
+ wäre das Gerät lokal verbunden.
+
+ Einschränkungen: nur Geräte, welche die "Dispatch-Funktion"
+ unterstützen (CUL, FHZ, CM11, SISPM, RFXCOM, TCM, TRX, TUL) erzeugen
+ raw messages, und für jedes entfernte Gerät muss ein eigenes
+ FHEM2FHEM Objekt erzeugt werden.
+
+ devicename muss mit demselben Namen und Typ wie das Remote Devive
+ angelegt sein, aber als Dummy, d.h. als device-node "none".
+ Zusätzlich müssen alle notwendigen Attribute lokal gesetzt sein
+ (z.B. rfmode, wenn die remote CUL im HomeMatic-Modus
+ läuft). Die Verwendung bereits bestehender lokaler Geräte ist zu
+ vermeiden, weil sonst die Duplikatsfilterung nicht richtig funktioniert
+ (siehe dupTimeout).
+
+
+ Der letzte Parameter enthält das Passwort des Remote-Servers, wenn dort
+ eines aktiviert ist portpassword.
+
+
+ Beispiele:
+
+ define ds1 FHEM2FHEM 192.168.178.22:7072 LOG:.*
+
+ define RpiCUL CUL none 0000
+ define ds2 FHEM2FHEM 192.168.178.22:7072 RAW:RpiCUL und auf dem RPi (192.168.178.22):
+ rename CUL_0 RpiCUL
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+
+
+
+
+FHEMWEB
+
+ FHEMWEB ist das default WEB-Frontend, es implementiert auch einen einfachen
+ Webserver (optional mit Basic-Auth und HTTPS).
+
+
+
+ Define
+
+ define <name> FHEMWEB <tcp-portnr> [global]
+
+ Aktiviert das Webfrontend auf dem Port <tcp-portnr>. Mit dem
+ Parameter global werden Anfragen von allen Netzwerkschnittstellen
+ akzeptiert (nicht nur vom localhost / 127.0.0.1) .
+
+ Informationen für den Betrieb mit IPv6 finden Sie hier.
+
+
+
+
+ Set
+
+ - rereadicons
+ Damit wird die Liste der Icons neu eingelesen, für den Fall, dass
+ Sie Icons löschen oder hinzufügen.
+
+ - clearSvgCache
+ Im Verzeichnis www/SVGcache werden SVG Daten zwischengespeichert, wenn
+ das Attribut SVGcache gesetzt ist. Mit diesem Befehl leeren Sie diesen
+ Zwischenspeicher.
+
+
+
+
+
+ Get
+
+ - icon <logical icon>
+ Liefert den absoluten Pfad des (logischen) Icons zurück. Beispiel:
+
+ get myFHEMWEB icon FS20.on
+ /data/Homeautomation/fhem/FHEM/FS20.on.png
+
+
+ - pathlist
+ Zeigt diejenigen Verzeichnisse an, in welchen die verschiedenen Dateien
+ für FHEMWEB liegen.
+
+
+
+
+
+
+ Attributes
+
+
+ - webname
+ Der Pfad nach http://hostname:port/ . Standard ist fhem,
+ so ist die Standard HTTP Adresse http://localhost:8083/fhem
+
+
+
+ - refresh
+ Damit erzeugen Sie auf den ausgegebenen Webseiten einen automatischen
+ Refresh, z.B. nach 5 Sekunden.
+
+
+
+ - plotmode
+ Spezifiziert, wie Plots erzeugt werden sollen:
+
+ - SVG
+ Die Plots werden mit Hilfe des SVG Moduls als SVG
+ Grafik gerendert. Das ist die Standardeinstellung.
+
+ - gnuplot
+ Die Plots werden mit Hilfe des gnuplot Programmes erzeugt. Diese
+ Option ist aus historischen Gründen vorhanden.
+
+
+ - gnuplot-scroll
+ Wie gnuplot, der einfache Zugriff auf historische Daten ist aber
+ genauso möglich wie mit dem SVG Modul.
+
+
+
+
+
+ - plotsize
+ gibt die Standardbildgröße aller erzeugten Plots an als
+ Breite,Höhe an. Um einem individuellen Plot die Größe zu
+ ändern muss dieses Attribut bei der entsprechenden SVG Instanz
+ gesetzt werden. Default sind 800,160 für Desktop und 480,160
+ für Smallscreen
+
+
+
+ - nrAxis
+ (bei mehrfach-Y-Achsen im SVG-Plot) Die Darstellung der Y Achsen
+ benötigt Platz. Hierdurch geben Sie an wie viele Achsen Sie
+ links,rechts [useLeft,useRight] benötigen. Default ist 1,1 (also 1
+ Achse links, 1 Achse rechts).
+
+
+
+ - SVGcache
+ Plots die sich nicht mehr ändern, werden im SVGCache Verzeichnis
+ (www/SVGcache) gespeichert, um die erneute, rechenintensive
+ Berechnung der Grafiken zu vermeiden. Default ist 0, d.h. aus.
+ Siehe den clearSvgCache Befehl um diese Daten zu löschen.
+
+
+
+ - endPlotToday
+ Wird dieses FHEMWEB Attribut gesetzt, so enden Wochen- bzw. Monatsplots
+ am aktuellen Tag, sonst wird die aktuelle Woche/Monat angezeigt.
+
+
+
+ - endPlotNow
+ Wenn Sie dieses FHEMWEB Attribut auf 1 setzen, werden Tages und
+ Stunden-Plots zur aktuellen Zeit beendet. (Ähnlich wie
+ endPlotToday, nur eben minütlich).
+ Ansonsten wird der gesamte Tag oder eine 6 Stunden Periode (0, 6, 12,
+ 18 Stunde) gezeigt. Dieses Attribut wird nicht verwendet, wenn das SVG
+ Attribut startDate benutzt wird.
+
+
+
+ - ploteditor
+ Gibt an ob der Plot Editor in der SVG detail
+ ansicht angezeigt werden soll. Kann auf always, onClick oder never
+ gesetzt werden. Der Default ist always.
+
+
+
+ - plotfork
+ Normalerweise wird die Ploterstellung im Hauptprozess ausgeführt,
+ FHEM wird wärend dieser Zeit nicht auf andere Ereignisse
+ reagieren. Auf Rechnern mit sehr wenig Speicher (z.Bsp. FRITZ!Box 7170)
+ kann das zum automatischen Abschuss des FHEM Prozesses durch das OS
+ führen.
+
+
+
+ - basicAuth, basicAuthMsg
+ Fragt username/password zur Autentifizierung ab. Es gibt mehrere
+ Varianten:
+
+ - falls das Argument nicht in {} eingeschlossen ist, dann wird
+ es als base64 kodiertes benutzername:passwort interpretiert.
+ Um sowas zu erzeugen kann man entweder einen der zahlreichen
+ Webdienste verwenden, oder das base64 Programm. Beispiel:
+
+ $ echo -n fhemuser:secret | base64
+ ZmhlbXVzZXI6c2VjcmV0
+ fhem.cfg:
+ attr WEB basicAuth ZmhlbXVzZXI6c2VjcmV0
+
+
+ - Werden die Argumente in {} angegeben, wird es als perl-Ausdruck
+ ausgewertet, die Variablen $user and $password werden auf die
+ eingegebenen Werte gesetzt. Falls der Rückgabewert wahr ist,
+ wird die Anmeldung akzeptiert.
+
+ Beispiel:
+
+ attr WEB basicAuth { "$user:$password" eq "admin:secret" }
+
+
+
+
+
+
+ - HTTPS
+ Ermöglicht HTTPS Verbindungen. Es werden die Perl Module
+ IO::Socket::SSL benötigt, installierbar mit cpan -i
+ IO::Socket::SSL oder apt-get install libio-socket-ssl-perl; (OSX und
+ die FritzBox-7390 haben dieses Modul schon installiert.)
+
+ Ein lokales Zertifikat muss im Verzeichis certs erzeugt werden.
+ Dieses Verzeichnis muss im modpath
+ angegeben werden, also auf der gleichen Ebene wie das FHEM Verzeichnis.
+ Beispiel:
+
+ mkdir certs
+ cd certs
+ openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
+
+
+
+
+
+
+ - allowedCommands
+ Eine Komma getrennte Liste der erlaubten Befehle. Bei einer leeren
+ Liste (, dh. nur ein Komma) wird dieser FHEMWEB-Instanz "read-only".
+ Falls es auf get,set gesetzt ist, dann sind in dieser
+ FHEMWEB Instanz keine Konfigurationsänderungen möglich, nur
+ "normale" Bedienung der Schalter/etc.
+
+ Dieses Attribut sollte zusammen mit dem hiddenroom/hiddengroup
+ Attributen verwendet werden.
+
+ Achtung: allowedCommands sollte wie hier beschrieben
+ funktionieren, allerdings können wir keine Garantie geben,
+ daß man sie nicht überlisten, und Schaden anrichten kann.
+
+
+ - allowfrom
+
+
+
+ - stylesheetPrefix
+ Präfix für die Dateien style.css, svg_style.css und
+ svg_defs.svg. Wenn die Datei mit dem Präfix fehlt, wird die Default
+ Datei (ohne Präfix) verwendet. Diese Dateien müssen im FHEM
+ Ordner liegen und können direkt mit "Select style" im FHEMWEB
+ Menüeintrag ausgewählt werden. Beispiel:
+
+ attr WEB stylesheetPrefix dark
+
+ Referenzdateien:
+
+ darksvg_defs.svg
+ darksvg_style.css
+ darkstyle.css
+
+
+
+ Anmerkung:Wenn der Parametername smallscreen oder touchpad
+ enthält, wird FHEMWEB das Layout/den Zugriff für entsprechende
+ Geräte (Smartphones oder Touchpads) optimieren
+
+ Standardmäßig werden 3 FHEMWEB Instanzen aktiviert: Port 8083
+ für Desktop Browser, Port 8084 für Smallscreen, und 8085
+ für Touchpad.
+
+ Wenn touchpad oder smallscreen benutzt werden, wird WebApp support
+ aktiviert: Nachdem Sie eine Seite am iPhone oder iPad mit Safari
+ angesehen haben, können Sie einen Link auf den Homescreen anlegen um
+ die Seite im Fullscreen Modus zu sehen. Links werden in diesem Modus
+ anders gerendert, um ein "Zurückfallen" in den "normalen" Browser zu
+ verhindern.
+
+
+
+ - iconPath
+ Durch Doppelpunkt getrennte Aufzählung der Verzeichnisse, in
+ welchen nach Icons gesucht wird. Die Verzeichnisse müssen unter
+ fhem/www/images angelegt sein. Standardeinstellung ist:
+ $styleSheetPrefix:default:fhemSVG:openautomation
+ Setzen Sie den Wert auf fhemSVG:openautomation um nur SVG Bilder zu
+ benutzen.
+
+
+
+ - hiddenroom
+ Eine Komma getrennte Liste, um Räume zu verstecken, d.h. nicht
+ anzuzeigen. Besondere Werte sind input, detail und save. In diesem
+ Fall werden diverse Eingabefelder ausgeblendent. Durch direktes Aufrufen
+ der URL sind diese Räume weiterhin erreichbar!
+ Ebenso können Einträge in den Logfile/Commandref/etc Block
+ versteckt werden.
+
+
+ - hiddengroup
+ Wie hiddenroom (siehe oben), jedoch auf Gerätegruppen bezogen.
+
+ Beispiel: attr WEBtablet hiddengroup FileLog,dummy,at,notify
+
+
+
+ - menuEntries
+ Komma getrennte Liste; diese Links werden im linken Menü angezeigt.
+ Beispiel:
+ attr WEB menuEntries fhem.de,http://fhem.de,culfw.de,http://culfw.de
+ attr WEB menuEntries AlarmOn,http://fhemhost:8083/fhem?cmd=set%20alarm%20on
+
+
+
+ - longpoll
+ Dies betrifft die Aktualisierung der Gerätestati in der
+ Weboberfläche. Ist longpoll aktiviert, werden
+ Statusänderungen sofort im Browser dargestellt. ohne die Seite
+ manuell neu laden zu müssen. Standard ist aktiviert.
+
+
+
+
+ - longpollSVG
+ Lädt SVG Instanzen erneut, falls ein Ereignis dessen Inhalt
+ ändert. Funktioniert nur, falls der dazugehörige #FileLog
+ Definition in der .gplot Datei folgenden Form hat: deviceName.Event
+ bzw. deviceName.*. Wenn man den Plot
+ Editor benutzt, ist das übrigens immer der Fall. Die SVG Datei
+ wird bei jedem auslösenden Event dieses Gerätes neu
+ geladen. Standard ist aus.
+
+
+
+ - redirectCmds
+ Damit wird das URL Eingabefeld des Browser nach einem Befehl geleert.
+ Standard ist eingeschaltet (1), ausschalten kann man es durch
+ setzen des Attributs auf 0, z.Bsp. um den Syntax der Kommunikation mit
+ FHEMWEB zu untersuchen.
+
+
+
+ - fwcompress
+ Aktiviert die HTML Datenkompression (Standard ist 1, also ja, 0 stellt
+ die Kompression aus).
+
+
+
+ - reverseLogs
+ Damit wird das Logfile umsortiert, die neuesten Einträge stehen
+ oben. Der Vorteil ist, dass man nicht runterscrollen muss um den
+ neuesten Eintrag zu sehen, der Nachteil dass FHEM damit deutlich mehr
+ Hauptspeicher benötigt, etwa 6 mal so viel, wie das Logfile auf
+ dem Datenträger groß ist. Das kann auf Systemen mit wenig
+ Speicher (FRITZ!Box) zum Terminieren des FHEM Prozesses durch das
+ Betriebssystem führen.
+
+
+
+ - CORS
+ Wenn auf 1 gestellt, wird FHEMWEB einen "Cross origin resource sharing"
+ Header bereitstellen, näheres siehe Wikipedia.
+
+
+
+ - icon
+ Damit definiert man ein Icon für die einzelnen Geräte in der
+ Raumübersicht. Es gibt einen passenden Link in der Detailansicht
+ um das zu vereinfachen. Um ein Bild für die Räume selbst zu
+ definieren muss ein Icon mit dem Namen ico<Raumname>.png im
+ iconPath existieren (oder man verwendet roomIcons, s.u.)
+
+
+
+ - roomIcons
+ Leerzeichen getrennte Liste von room:icon Zuordnungen
+ Der erste Teil wird als regexp interpretiert, daher muss ein
+ Leerzeichen als Punkt geschrieben werden. Beispiel:
+ attr WEB roomIcons Anlagen.EDV:icoEverything
+
+
+
+ - sortRooms
+ Durch Leerzeichen getrennte Liste von Räumen, um deren Reihenfolge
+ zu definieren. Beispiel:
+ attr WEB sortRooms DG OG EG Keller
+
+
+
+ - defaultRoom
+ Zeigt den angegebenen Raum an falls kein Raum explizit ausgewählt
+ wurde. Achtung: falls gesetzt, wird motd nicht mehr angezeigt.
+ Beispiel:
+ attr WEB defaultRoom Zentrale
+
+
+
+ - sortby
+ Der Wert dieses Attributs wird zum sortieren von Geräten in
+ Räumen verwendet, sonst wäre es der Alias oder, wenn keiner
+ da ist, der Gerätename selbst.
+
+
+
+ - devStateIcon
+ Erste Variante:
+
+ Leerzeichen getrennte Auflistung von regexp:icon-name:cmd
+ Dreierpärchen, icon-name und cmd dürfen leer sein.
+
+ Wenn der Zustand des Gerätes mit der regexp übereinstimmt,
+ wird als icon-name das entsprechende Status Icon angezeigt, und (falls
+ definiert), löst ein Klick auf das Icon das entsprechende cmd aus.
+ Wenn fhem icon-name nicht finden kann, wird der Status als Text
+ angezeigt.
+ Beispiel:
+
+ attr lamp devStateIcon on:closed off:open
+ attr lamp devStateIcon on::A0 off::AI
+ attr lamp devStateIcon .*:noIcon
+
+ Anmerkung: Wenn das Icon ein SVG Bild ist, kann das @colorname Suffix
+ verwendet werden um das Icon einzufärben. Z.B.:
+
+ attr Fax devStateIcon on:control_building_empty@red off:control_building_filled:278727
+
+
+
+ Zweite Variante:
+
+ Perl regexp eingeschlossen in {}. Wenn der Code undef
+ zurückliefert, wird das Standard Icon verwendet; wird ein String
+ in <> zurück geliefert, wird dieser als HTML String interpretiert.
+ Andernfalls wird der String als devStateIcon gemäß der
+ ersten Variante interpretiert, siehe oben. Beispiel:
+
+ {'<div style="width:32px;height:32px;background-color:green"></div>'}
+
+
+
+
+ - devStateStyle
+ Für ein best. Gerät einen best. HTML-Style benutzen.
+ Beispiel:
+
+ attr sensor devStateStyle style="text-align:left;;font-weight:bold;;"
+
+
+
+
+ - webCmd
+ Durch Doppelpunkte getrennte Auflistung von Befehlen, die für ein
+ bestimmtes Gerät gelten sollen. Funktioniert nicht mit
+ smallscreen, ein Ersatz dafür ist der devStateIcon Befehl.
+ Beispiel:
+
+ attr lamp webCmd on:off:on-for-timer 10
+
+
+
+ Der erste angegebene Befehl wird in der "set device ?" list
+ nachgeschlagen (Siehe das setList Attrib
+ für Dummy Geräte). Wenn dort bekannte Modifier sind,
+ wird ein anderes Widget angezeigt:
+
+ - Ist der Modifier ":noArg", wird kein weiteres Eingabefeld
+ angezeigt.
+
+ - Ist der Modifier ":time", wird ein in Javaskript geschreibenes
+ Zeitauswahlmenü angezeigt.
+
+ - Ist der Modifier ":textField", wird ein Eingabefeld
+ angezeigt.
+
+ - Ist der Modifier in der Form
+ ":slider,<min>,<step>,<max>", so wird ein in
+ JavaScript programmierter Slider angezeigt
+
+ - Ist der Modifier ":multiple,val1,val2,...", dann ein
+ Mehrfachauswahl ist möglich, das Ergebnis ist Komma-separiert.
+
+ - In allen anderen Fällen erscheint ein Dropdown mit allen
+ Modifier Werten.
+
+
+ Wenn der Befehl state ist, wird der Wert als Kommando interpretiert.
+ Beispiele für modifier:
+
+ define d1 dummy
+ attr d1 webCmd state
+ attr d1 setList state:on,off
+ define d2 dummy
+ attr d2 webCmd state
+ attr d2 setList state:slider,0,1,10
+ define d3 dummy
+ attr d3 webCmd state
+ attr d3 setList state:time
+
+
+ Anmerkung: dies ist ein Attribut für das anzuzeigende Gerät,
+ nicht für die FHEMWEBInstanz.
+
+
+
+ - column
+ Damit werden mehrere Spalten für einen Raum angezeigt, indem
+ sie verschiedene Gruppen Spalten zuordnen. Beispiel:
+
+ attr WEB column LivingRoom:FS20,notify|FHZ,notify DiningRoom:FS20|FHZ
+
+
+ In diesem Beispiel werden im Raum LivingRoom die FS20 sowie die notify
+ Gruppe in der ersten Spalte, die FHZ und das notify in der zweiten
+ Spalte angezeigt.
+
+ Anmerkung: einige Elemente, wie SVG Plots und readingsGroup können
+ nur Teil einer Spalte sein wenn sie in group
+ stehen.
+
+
+
+ - closeConn
+ Falls gesetzt, wird pro TCP Verbindung nur ein HTTP Request
+ durchgefuehrt. Fuer bestimmte Hardware-Kombinationen (langsamer FHEM
+ Server, iPad/iPhone als Client) scheint dieses Attribu Ladeprobleme zu
+ beheben.
+
+
+
+
+
+
+FHT
+
+ Fhem kann FHT Funktelegramme (868.35 MHz) entweder mit einem FHZ oder einem CUL empfangen, daher muss
+ dieses zuerst definiert sein.
+
+
+
+ Define
+
+ define <name> FHT <fhtaddress>
+
+
+ <fhtaddress> ist eine vierstellige HEX Zahl entsprechend der
+ Adresse des FHT80b Gerätes.
+
+
+ Beispiel:
+
+
+ Mehr dazu im FHT Abschnitt set.
+
+
+
+
+ Set
+
+ set <name> <valuetype> <value>
+
+ Wobei value eines von folgenden ist:
+
+ desired-temp
+ day-temp night-temp
+ report1 report2
+ refreshvalues
+ mode
+ holiday1 holiday2 # siehe mode holiday_short oder holiday
+ manu-temp # Keine Ahnung was das bewirkt
+ year month day hour minute
+ time date
+ lowtemp-offset # Alarm-Temp.-Differenz
+ windowopen-temp
+ mon-from1 mon-to1 mon-from2 mon-to2
+ tue-from1 tue-to1 tue-from2 tue-to2
+ wed-from1 wed-to1 wed-from2 wed-to2
+ thu-from1 thu-to1 thu-from2 thu-to2
+ fri-from1 fri-to1 fri-from2 fri-to2
+ sat-from1 sat-to1 sat-from2 sat-to2
+ sun-from1 sun-to1 sun-from2 sun-to2
+
+
+ Beispiele:
+
+ set wz desired-temp 22.5
+ set fl desired-temp 20.5 day-temp 19.0 night-temp 16.0
+
+
+
+ Hinweise:
+
+ - Folgende Events werden (mehr oder weniger regelmäßig) von
+ jedem FHT Device gemeldet:
+
+ measured-temp actuator actuator1...actuator8 warnings
+
+ Diese Strings können für notify oder
+ FileLog Definitionen verwendet werden.
+
+ - Warnings können folgende Strings enthalten:
+ none, Battery low,Temperature too low, Window open,
+ Fault on window sensor
+
+ - actuator (ohne Suffix) steht für alle Aktoren.
+ - actuator or actuator1..8 kann folgende Werte verarbeiten:
+
+ - <value>%
+ Das ist der Normalfall. Der Aktor wird angewiesen auf diesen
+ Wert zu öffnen.
+
+ - offset <value>%
+ Der Aktor läuft mit diesem Offset.
+
+ - lime-protection
+ Der Aktor wird angewiesen die lime-protection (Kalkschutz)
+ Prozedur auszuführen.
+
+ - synctime
+ Wenn Sond/Sync beim FHT80B gewählt wird, wird ein
+ Countdown gesetzt.
+
+ - test
+ Der Aktor wird vom FHT80b angewiesen zu piepsen (beep).
+
+ - pair
+ Das FHT80b sendet ein "you-belong-to-me"
+ (Du-gehörst-zu-mir) an diesen Aktor.
+
+
+
+
+
+ - Das FHT ist sehr sparsam (oder faul). Es akzeptiert eine Nachricht
+ vom FHZ1x00 alle 115+x Sekunden, wobei x von der fhtaddress
+ abhängt. Nicht überrascht sein wenn ein Befehl erst 10
+ Minuten später vom Gerät angenommen wird. Die FHT Befehle
+ werden im FHZ1x00/CUL gepuffert bis sie zum FHT geschickt werden.
+ Siehe den zugehörigen fhtbuf Eintrag im der get Abschnitt. Es können bis zu 8 Befehle in
+ einer Nachricht an ein FHT geschickt werden wenn diese alle als
+ Argumente im gleichen set Befehl zusammengefasst werden. Siehe
+ nachfolgendes Beispiel.
+
+ - time setzt Stunde und Minute auf lokale Zeit
+
+ - date setzt Jahr, Monat und Tag auf lokale Zeit
+
+ - refreshvalues ist ein Alias für report1 255 report2 255
+
+ - Alle *-temp Werte brauchen eine Temperatur als Argument welche auf
+ 0.5°C gerundet wird.
Temperatur Werte müssen zwischen
+ 5.5°C und 30.5°C sein. Der Wert 5.5 setzt den Aktor auf OFF,
+ der Wert 30.5 setzt den Aktor auf ON
+
+ - mode kann auto, manual, holiday or
+ holiday_short sein.
+ Wenn der mode holiday ist, schaltet dieser zurück auf entweder
+ auto oder manual um 00:00 des Tages der wie folgt spezifiziert wird:
+
+ - holiday1 setzt Endtag des Urlaubs
+ - holiday2 setzt den Endmonat des Urlaubs
+
+ Für holiday_short (Party Modus)
+
+ - holiday1 setzt die absolute Stunde zu der von diesem Modus
+ zurück geschalten wird (in 10-Minuten Schritten, max.
+ 144)
+
+ - holiday2 setzt den Tag des Monats an dem von diesem Modus
+ zurück geschalten wird (kann nur heute oder morgen sein, da
+ holiday1 nur 24h akzeptiert.)
+
+ Beispiel:
+
+ - Aktuelles Datum ist der 29. Januar, Uhrzeit ist 18:05
+ - Es soll bis morgen 1:00Uhr in den Party Modus geschalten
+ sein
+ - set holiday1 to 6 (6 x 10min = Std) and holiday2 to
+ 30
+
+
+
+ Die Temperatur für den Urlaubszeitraum wird durch den
+ desired-temperature Parameter setzt. Bitte beachten, dass der
+ Holiday Mode nicht früher als auf Übermorgen eingestellt
+ werden kann. Alternativ muss hier holiday_short genutzt werden.
+ Weiterhin bitte beachten das diese Kommandos nur in einem
+ "Sammelkommando" erfolgen können. Beispiel:
+
+ set FHT1 mode holiday holiday1 24 holiday2 12 desired-temp 14
+
+
+ - Die *-from1/*-from2/*-to1/*-to2 Wertetypen brauchen eine
+ Zeitspezifikation als Argument im Format HH:MM. Diese definieren den
+ Zeitraum in dem die day-temp gültig ist. Minuten (MM) werden
+ auf 10er gerundet, 24:00 bedeutet OFF.
+
+ - Um die FHZ Zeit zu synchronisieren und um "stumme" Geräte
+ zu wecken, wird folgendes Kommando empfohlen:
define fht_sync at
+ +*3:30 set TYPE=FHT time
+
+ - report1 mit dem Parameter 255 fordert das Senden aller Einstellungen
+ von Montag bis Sonntag an. Das Argument ist ein Bitfeld um einzelne
+ Werte wie folgt anzufordern:
+
+ - 1: monday
+ - 2: tuesday
+ - 4: thursday
+ - 8: wednesday
+ - 16: friday
+ - 32: saturday
+ - 64: sunday
+
+ measured-temp und actuator werden mitgesendet wenn vom FHT als
+ notwendig erachtet.
+
+ Hinweis: Dieser Befehl erzeugt sehr viel Funkverkehr was zu
+ weiteren Problemen führen kann, besonders wenn Empfang nicht gut
+ ist.
+
+ - report2 mit dem Parameter 255 fordert die Ausgabe der nachfolgenden
+ Einstellungen an:
day-temp night-temp windowopen-temp
+ lowtemp-offset desired-temp measured-temp mode warnings. Das
+ Argument ist ein Bitfeld, um einzelne Werte abzufragen folgendes
+ anhängen:
+
+ - 1: warnings
+ - 2: mode
+ - 4: day-temp, night-temp, windowopen-temp
+ - 64: lowtemp-offset
+
+ measured-temp und actuator werden mitgesendet wenn vom FHT als
+ notwendig erachtet.
+
+ - lowtemp-offset braucht eine Temperatur als Argument. Gültige
+ Werte müssen zwischen 1.0 und 5.0°C liegen.
Wird eine
+ Warnung erzeugen wenn die desired-temp - measured-temp >
+ lowtemp-offset, jedoch frühestens 1,5Stunden nach der letzten
+ Änderung der desired-temp.
+
+ - FHEM hat optional einen internen Softwarepuffer für FHT
+ Devices. Dieser Puffer soll vor Übertragungsfehlern
+ schützen. Wenn nach einem bestimmten Zeitraum keine
+ Bestätigung erhalten wurde wird FHEM den Befehl erneut senden.
+ Die Befehle in der Warteschlagen können mit list <fht-device> angezeigt werden. Siehe die
+ Attribute fhtsoftbuffer, retrycount und minfhtbuffer für weitere Details.
+
+
+ - Befehle im Softwarepuffer werden in folgender Reihenfolge
+ gesendet:
+ desired-temp,mode,report1,report2,holiday1,holiday2,day-temp,night-temp,
+ [all other commands]
+
+
+
+
+
+ Get
+
+
+ Attribute
+
+ - dummy
+ Hinweis: Es macht Sinn ein FHT Device auch für ein FHT8b zu
+ definieren da sonst der Fehler "unknown FHT device, please define one"
+ für jedes FHT8b generiert wird, denn das CUL meldet die 8b
+ Nachrichten. Das dummy Attribut sollte bei diesen Devices gesetzt werden
+ da sonst der interne FHT Buffer des CUL mit 8b-Daten gefüllt wird
+ die niemals gebraucht werden. Wenn der Puffer dann voll ist werden "EOB"
+ Nachrichten vom CUL erzeugt, und Senden zu den 8b ist nicht mehr
+ möglich.
+
+
+ - retrycount
+ Wenn das fhtsoftbuffer Attribut gesetzt ist,
+ dann werden die Befehle entsprechend dem retrycount n-mal erneut
+ versendet wenn nach 240 Sekunden keine Bestätigungsmeldung vom
+ entsprechenden FHZ Device empfangen wurde. Der Default-Wert ist
+ 1.
+
+
+ - minfhtbuffer
+ FHEM sendet keine Befehle mehr zum FHZ wenn der fhtbuffer-Wert diesen
+ Wert unterschritten hat. Default-Wert ist 0. Wenn dieser Wert zu niedrig
+ ist hat die Reihenfolge von fht-Befehlen weniger Einfluss da nur Befehle
+ im Softbuffer priorisiert werden können. (Siehe Hinweise in der FHT
+ Sektion set) Der Maximalwert sollte 7 unter dem
+ Hardware Maximum sein, siehe fhtbuf.
+
+
+ - lazy
+ Wenn das Attribut lazy (faul) gesetzt wurde sendet FHEM keine Befehle
+ wenn die aktuell gelesenen Werte und der zu setzende Wert identisch sind.
+ Das spart Funkzeit und hilft Konflikte mit der Regelung die besagt, dass
+ maximal 1% der Zeit als Funkzeit verwendet werden darf, zu vermeiden.
+ Nicht standardmäßig aktiviert.
+
+
+ - tmpcorr
+ Korrigiert die Werte die vom FHZ gemeldet werden um den angegebenen Wert.
+ Hinweis: nur die measured-temp Werte die von FHEM gemeldet (für
+ Logging genutzt) werden angepasst.
+
+ - ignore
+ - do_not_notify
+ - model (fht80b)
+ - showtime
+ - IODev
+ - eventMap
+ - readingFnAttributes
+
+
+
+
+
+ Erzeugte Events:
+
+ - actuator
+ - actuator1 actuator2 actuator3 actuator4
+ actuator5 actuator6 actuator7 actuator8
+ (wird gesendet wenn ein Offset zum entsprechenden Ventil konfiguriert wurde)
+ - mon-from1 mon-to1 mon-from2 mon-to2
+ - tue-from1 tue-to1 tue-from2 tue-to2
+ - wed-from1 wed-to1 wed-from2 wed-to2
+ - thu-from1 thu-to1 thu-from2 thu-to2
+ - fri-from1 fri-to1 fri-from2 fri-to2
+ - sat-from1 sat-to1 sat-from2 sat-to2
+ - sun-from1 sun-to1 sun-from2 sun-to2
+ - mode
+ - holiday1 holiday2
+ - desired-temp
+ - measured-temp measured-low measured-high
+ - warnings
+ - manu-temp
+ - year month day hour minute
+ - day-temp night-temp lowtemp-offset windowopen-temp
+ - ack can-xmit can-rcv ack2 start-xmit end-xmit (Nur wenn das CUL
+ für die Übertragung von FHT Protokoll Daten konfiguriert
+ ist)
+
+
+
+
+
+
+FHT8V
+
+
+ Fhem kann die Ventile vom Typ FHT8V durch einen CUL
+ direkt, ohne zwischengeschalteten FHT, ansteuern. Dieser Abschnitt
+ beschreibt einen der Bausteine, der andere ist das PID Device.
+
+
+
+
+ Define
+
+ define <name> FHT8V <Hauscode> [IODev|FHTID]
+
+
+ <Hauscode> ist eine vierstellige hexadezimale Zahl, die
+ folgende Beziehung zum zuständigen CUL-Device aufweisen muss:
+
+ Bei gegebenem Hauscode des CUL als AABB muss dieser Hauscode die Form CCBB
+ haben, wobei CC größer oder gleich AA, aber kleiner AA+8 sein muss.
+
+
+ Diese Form wurde gewählt, damit der CUL alle FHT8V-Ventilstellungen
+ innerhalb von zwei Minuten aktualisieren kann.
+
+ <IODev> muß angegeben werden, wenn der als letzter
+ definierte CUL nicht der zuständige ist. Normalerweise wird dies mit
+ dem IODev-Attribut gesetzt, da die
+ Überprüfung der Adresse aber während der Definition erfolgt,
+ brauchen wir hier eine Ausnahme.
+
+ Als Alternative kann man die FHTID des zuständigen IODev-Gerätes
+ (anstelle des IODev selbst) setzen. Diese Methode ist nötig, wenn man
+ FHT8V über FHEM2FHEM betreibt.
+
+ Beispiel:
+
+
+
+
+
+ Set
+
+ - set <name> valve <Wert>
+ Öffnet das Ventil auf den angegebenen Wert (in Prozent, von 0 bis 100).
+
+ - set <name> pair
+ Verbindet das Ventil mit dem CUL.
+
+ - set <name> decalc
+ Startet einen Entkalkungslauf des angegebenen Ventils.
+
+
+
+
+
+ Get
+
+ - get <name> valve
+ Liest die Ventilöffnung aus dem FHT-Puffer des CUL und wandelt sie
+ in Prozent (von 0 bis 100) um.
+
+
+
+
+
+ Attributes
+
+
+
+
+
+FHZ
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FHZ
+
+
+FLOORPLAN
+
+ Fügt dem fhem-Menü einen zusätzlichen Menüpunkt "Floorplans" hinzu, dre zu einer Anzeige ohne fhem-Menü, Räume oder device-Listen führt.
+ Geräte können an einer festlegbaren Koordinate auf dem Bildschirm angezeigt werden, üblicherweise mit einem anklickbaren icon, das das Ein- oder Aus-Schalten
+ des Geräts durch klicken erlaubt. Ein Hintergrundbild kann verwendet werden - z.B. ein Grundriss oder jegliches andere Bild.
+ Mit floorplanstyle.css kann die Formatierung angepasst werden.
+ Eine Schritt-für-Schritt-Anleitung zur Einrichtung ist verfügbar in
+ Englisch und
+ Deutsch.
+
+
+
+ Define
+
+ define <name> FLOORPLAN
+
+
+ Hinweis: Speichern Sie Ihr Hintergrundbild mit dem Dateinamen fp_<name>.png in Ihrem icon_ordner (www/images/default , www/pgm2 or FHEM) .
+ Beispiel:
+
+
+ define Grundriss FLOORPLAN
+ fp_Grundriss.png
+
+
+
+
+
+
+ Set
+
+
+
+
+ Get
+
+ get <name> config
+
+ Zeigt die Konfiguration des FLOORPLAN incl. allen Attributen an. Kann fuer ein include-file verwendet werden.
+
+
+
+
+ Attribute
+
+ - userattr fp_<name> <top>,<left>[,<style>[,<description>]]
+ A userattr fp_<name> wird automatisch angelegt, sofern es noch nicht existiert.
+
+ - top = Bildschirmposition, pixel vom oberen Bildschirmrand
+ - left = Bildschirmposition, pixel vom linken Bildschirmrand
+ - style =
+
+ - 0 nur icon/Status
+ - 1 Gerätename und icon/Status
+ - 2 Gerätename, icon/Status und Kommandos
+ - 3 Geräte-reading und optionale Beschreibung
+ - 4 S300TH-spezifisch, zeigt Temperatur und Luftfeuchtigkeit an
+ - 5 icon/Status und Kommandos (ohne Gerätename)
+ - 6 Geräte-reading, Zeitstempel und optionale Beschreibung
+
+
+ - Eine ggf. angegebene Bschreibung wird anstelle des original-Gerätenamens angezeigt.
+
+ Beispiele:
+
+
+ attr lamp1 fp_Erdgeschoss 100,100 | #display lamp1 with icon only at screenposition 100,100 |
+ attr lamp2 fp_Erdgeschoss 100,140,1,Art-Deco | #display lamp2 with description 'Art-Deco-Light' at 100,140 |
+ attr lamp2 fp_ErsteEtage 130,100,1 | #display the same device at different positions on other floorplans |
+ attr myFHT fp_Erdgeschoss 300,20,10,Temperature | #display given Text + FHT-temperature |
+
+
+ Hinweis: Die Parameter müssen ohne Leerstellen aneinandergereiht werden.
+
+
+ - fp_arrange
+ Aktiviert den "arrange-Modus" der ein zusätzliches Menü anzeigt,
+ mit dem Geräte auf dem Bildschirm angeordnet werden können. Dabei können die Koordinaten auch durch Platzieren mit der Maus gesetzt werden.
+ Beispiel:
+
+ attr Erdgeschoss fp_arrange 1
+ attr Erdgeschoss fp_arrange detail #Zeigt die Geräte mit den Infos Raum, Typ und Alias
+ attr Erdgeschoss fp_arrange WEB #Aktiviert den arrange-Modus nur für die Webinstanz WEB
+
+
+ - stylesheet
+ Ermöglicht die Verwendung eines eigenen css-stylesheet für Ihren floorplan. Dieses Attribut hat Vorrang vor dem Standard-stylesheet.
+ Das Standard-stylesheet für floorplans ist floorplanstyle.css . Falls stylesheetPrefix in der korrespondierenden FHEMWEB-Instanz gesetzt ist, wird dieser
+ stylesheetPrefix auch dem stylesheet für floorplans vorangestellt (prepend).
+ Alle stylesheets werden im stylesheet-Ordner des fhem-Dateisystems abgelegt. Legen Sie dort
+ Ihr eigenes stylesheet neben floorplanstyle.css in demselben Ordner ab.
+ Beispiel:
+
+ attr Erdgeschoss stylesheet myfloorplanstyle.css
+
+
+
+ - fp_default
+ Der floorplan-Startbildschirm wird übersprungen wenn dieses Attribut einem der von Ihnen definierten floorplans zugeordnet ist.
+
+ Beispiel:
+
+ attr Erdgeschoss fp_default 1
+
+
+ - fp_noMenu
+ Blendet das floorplans-Menü aus, das normalerweise am linken Bildschirmrand angezeigt wird.
+
+ Beispiel:
+
+ attr Erdgeschoss fp_noMenu 1
+
+
+ - commandfield
+ Fügt Ihrem floorplan ein fhem-Kommandofeld hinzu.
+
+ Beispiel:
+
+ attr Erdgeschoss commandfield 1
+
+
+ - fp_backgroundimg
+ Gestattet die Bennung eine Hintergundbilds unabhängig vom floorplan-Namen.
+ Hinweis: Das Attribut kann mittels notify geändert werden, um z.B. unterschiedliche Hintergundbidlder am Tag oder in der Nacht anzuzeigen.
+ Beispiel:
+
+ attr Erdgeschoss fp_backgroundimg foobar.png
+
+
+
+ - fp_viewport
+ Gestattet die Verwendung eines abweichenden viewport-Wertes für die touchpad-Ausgabe.
+ Die Default-viewport-Angbe ist "width=768".
+
+
+
+ - fp_roomIcons
+ Mit Leerstellen getrennte Liste von floorplan:icon -Paaren, um
+ einem Eintrag des floorplan-Menues icons zuzuordnen, genau wie
+ die entsprechende Funktionalitaet in FHEMWEB. Beispiel:
+ attr Grundriss fp_roomIcons Grundriss:control_building_empty Media:audio_eq
+
+
+
+ - Vererbt von FHEMWEB
+ Die folgenden Attribute werden von der zugrundliegenden FHEMWEB-Instanz vererbt:
+
+
+
+
+
+
+
+FRM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM
+
+
+FRM_AD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_AD
+
+
+FRM_I2C
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_I2C
+
+
+FRM_IN
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_IN
+
+
+FRM_LCD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_LCD
+
+
+FRM_OUT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_OUT
+
+
+FRM_PWM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_PWM
+
+
+FRM_RGB
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_RGB
+
+
+FRM_ROTENC
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_ROTENC
+
+
+FRM_SERVO
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_SERVO
+
+
+FRM_STEPPER
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: FRM_STEPPER
+
+
+FS20
+
+ Das FS20 Protokoll wird von einem großen Spektrum an Geräten
+ verwendet. Diese stammen entweder aus der Kategorie Sensor/Sender oder
+ Aktor/Empfänger. Die Funknachrichten (868.35 MHz) können mit einem
+ FHZ oder einem CUL empfangen werden.
+ Dieses muss daher zuerst definiert werden.
+
+
+
+ Define
+
+ define <name> FS20 <housecode> <button>
+ [fg <fgaddr>] [lm <lmaddr>] [gm FF]
+
+
+ Die Werte housecode, button, fg, lm, und gm können entweder hexadezimal
+ oder in der ELV-typischen quaternären Notation (Zahlen von 1-4)
+ eingegeben werden.
+ Hier und auch in späteren Beispielen wird als Referenz die ELV4
+ Notation verwendet. Die Notationen können auch gemischt werden da FHEM
+ die verwendete Notation durch zählen der Zeichen erkennt.
+
+
+ <housecode> ist eine 4 stellige Hex oder 8 stellige
+ ELV4 Zahl, entsprechend der Hauscode Adresse.
+
+ <button> ist eine 2 stellige Hex oder 4 stellige ELV4
+ Zahl, entsprechend dem Button des Transmitters.
+
+ - Optional definiert
<fgaddr> die Funktionsgruppe mit
+ einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex muss die
+ erste Stelle F, bei ELV4 die ersten zwei Stellen 44 sein.
+
+ - Optional definiert
<lmaddr> definiert einen local
+ master mit einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex
+ muss die letzte Stelle F, bei ELV4 die letzten zwei Stellen 44 sein.
+
+ - Optional definiert gm den global master. Die Adresse muss FF bei HEX
+ und 4444 bei ELV4 Notation sein.
+
+
+
+
+ Beispiele:
+
+ define lamp FS20 7777 00 fg F1 gm F
+ define roll1 FS20 7777 01
+ define otherlamp FS20 24242424 1111 fg 4412 gm 4444
+ define otherroll1 FS20 24242424 1114
+
+
+
+
+
+ Set
+
+ set <name> <value> [<time>]
+
+ Wobei value einer der folgenden Werte sein kann:
+
+ dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%
+ dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%
+ dimdown
+ dimup
+ dimupdown
+ off
+ off-for-timer
+ on # dimmer: Setze auf diesen Wert vor dem Ausschalten
+ on-for-timer # Siehe Hinweise
+ on-old-for-timer # Setze zum vorherigen (vor dem Einschalten)
+ ramp-on-time # Zeit bis zum erreichen des gewünschten Dim-Wertes
+ ramp-off-time # Zeit bis zum Ausschalten bei Dimmern
+ reset
+ sendstate
+ timer
+ toggle # zwischen aus und dem letztern Dim-Wert
+ on-till # Siehe Hinweise
+
+ Die set extensions sind ebenfalls
+ unterstützt.
+
+ Beispiele:
+
+ set lamp on
+ set lamp1,lamp2,lamp3 on
+ set lamp1-lamp3 on
+ set lamp on-for-timer 12
+
+
+
+ Hinweise:
+
+ - reset nur mit Vorsicht verwenden: Auch der Hauscode wird
+ gelöscht.
+
+ - Da das FS20 Protokoll 0.22Sek für eine Funksequenz benötigt
+ wird nach jeder Ausführung eine Pause von 0.22Sek eingefügt.
+
+
+ - Das FS20ST schaltet für dim*% und dimup ein. Es reagiert nicht
+ auf sendstate.
+
+ - Wenn ein Timer gesetzt ist (und dieser nicht 0 ist) werden on, dim*,
+ und *-for-timer berücksichtigt (zumindest beim FS20ST).
+
+ - Das
time Argument geht von 0.25Sek bis 4Std und 16Min.
+ Da time nur mit einem Byte dargestellt wird ergeben sich
+ hieraus nur 112 eindeutige Zeit-Werte die mit ansteigender
+ größe immer gröber aufgelöst werden. Das Programm
+ zeigt die exakte Restzeit an wenn die gewählte Auflösung
+ nicht eindeutig war. Die Auflösung ist is 0.25Sek von 0 bis 4
+ Sekunden, 0.5Sek von 4 bis 8Sek, 1Sek von 8 bis 16 Sek und so weiter.
+ Wenn eine höhere Genauigkeit bei großen Werten gebraucht
+ wird, dann hilft at mit einer Auflösung von
+ 1Sek.
+
+ - on-till setzt eine absolute Zeit im "at" Format voraus (HH:MM:SS,
+ HH:MM oder { <perl code> }, wobei der perl-code eine Zeit
+ zurück geben muss). Wenn die aktuelle Zeit größer ist
+ als die angegebene, dann wird der Befehl ignoriert und ein at-"on"
+ Befehl erzeugt, sowie für die angegebe "till-time" ein at-"off"
+ Befehl.
+
+
+
+
+
+ Get
+
+
+ Attribute
+
+
+ - IODev
+ 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.
+
+
+
+ - eventMap
+ 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.
+ Beispiele:
+
+ attr store eventMap on:open off:closed
+ attr store eventMap /on-for-timer 10:open/off:closed/
+ set store open
+
+
+
+
+ - dummy
+ Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale
+ absetzen. Zugehörige notifys werden ausgeführt wenn das Signal
+ empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu
+ reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web
+ Frontend getriggert wird.
+
+
+
+ - follow-on-for-timer
+ Plant ein "setstate off;trigger off" für die angegebene Zeit als
+ Argument zum on-for-timer Command. Oder das gleiche mit "on" wenn der
+ Befehl "follow-off-for-timer" war.
+
+
+
+ - follow-on-timer
+ Wie follow-on-for-timer plant es ein "setstate off;trigger off", aber
+ diesmal als Argument in Sekunden zum Attribut. Wird verwendet um dem
+ vorprogrammierten Timer zu folgen welcher vorher durch den timer-Befehl,
+ oder manuell durch Drücken des Buttons gesetzt wurde. Im Handbuch
+ finden sich noch mehr Informationen.
+
+
+
+
+ - model
+ Das "model" Attribut bezeichnet den Modelltyp des Gerätes. Dieses
+ Attribut wird (derzeit) nicht direkt durch fhem.pl genutzt. Es kann
+ beispielsweise von externen Programmen oder Webinterfaces genutzt werden
+ um Geräteklassen zu unterscheiden und dazu passende Befehle zu senden
+ (z.B. "on" oder "off" an ein fs20st, "dim..%" an ein fs20du etc.). Die
+ Schreibweise des Modellnamens ist wie die in Anführungszeichen in
+ der Anleitung gedruckte Bezeichnung die jedem Gerät beiliegt.
+ Dieser Name wird ohne Leerzeichen ausschließlich in Kleinbuchstaben
+ verwendet. Gültige Zeichen sind a-z 0-9 und
+ - , andere Zeichen sind zu vermeiden. Hier ist eine Liste der
+ "offiziellen" Devices:
+
+ Sender/Sensor: fs20fms fs20hgs fs20irl fs20kse fs20ls
+ fs20pira fs20piri fs20piru fs20s16 fs20s20 fs20s4 fs20s4a fs20s4m
+ fs20s4u fs20s4ub fs20s8 fs20s8m fs20sd fs20sn fs20sr fs20ss
+ fs20str fs20tc1 fs20tc6 fs20tfk fs20tk fs20uts fs20ze fs20bf fs20si3
+
+ Dimmer: fs20di fs20di10 fs20du
+
+ Empfänger/Aktor: fs20as1 fs20as4 fs20ms2 fs20rgbsa fs20rst
+ fs20rsu fs20sa fs20sig fs20sm4 fs20sm8 fs20st fs20su fs20sv fs20ue1
+ fs20usr fs20ws1
+
+
+
+
+ - ignore
+ Ignoriere dieses Gerät, beispielsweise wenn es dem Nachbar
+ gehört. Das Gerät wird keine FileLogs/notifys triggern,
+ empfangene Befehle werden stillschweigend ignoriert (es wird kein
+ Funksignal gesendet, wie auch beim dummy
+ Attribut). Das Gerät wird weder in der Device-List angezeigt (es sei
+ denn, es wird explizit abgefragt), noch wird es in Befehlen mit
+ "Wildcard"-Namenspezifikation (siehe devspec)
+ erscheinen. Es kann mit dem "ignored=1" devspec dennoch erreicht werden.
+
+
+ - do_not_notify
+ - showtime
+ - readingFnAttributes
+
+
+
+
+
+ Erzeugte Events:
+
+ Von einem FS20 Gerät können folgende Events empfangen werden:
+ - on
+ - off
+ - toggle
+ - dimdown
+ - dimup
+ - dimupdown
+ - on-for-timer
+ Welches Event gesendet wird ist Geräteabhängig und kann manchmal
+ auf dem Device konfiguriert werden.
+
+
+
+
+FileLog
+
+
+
+
+ Define
+
+ define <name> FileLog <filename> <regexp>
+
+
+ Speichert Ereignisse in einer Log-Datei mit Namen <filename> . Das Log-Format ist
+
+ YYYY-MM-DD_HH:MM:SS <device> <event>
+
+ Der Ausdruck unter regexp wird anhand des Gerätenames überprüft und zwar
+ devicename:event oder der timestamp:devicename:event-Kombination.
+ Der regexp muss mit dem kompletten String übereinstimmen und nicht nur teilweise.
+
+ <filename> können %-wildcards der POSIX
+ strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime
+ Beschreibung).
+ Allgemein gebräuchliche Wildcards sind:
+
+ %d Tag des Monats (01..31)
+ %m Monat (01..12)
+ %Y Jahr (1970...)
+ %w Wochentag (0..6); beginnend mit Sonntag (0)
+ %j Tag des Jahres (001..366)
+ %U Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
+ %W Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)
+
+ FHEM ersetzt %L mit dem Wert des global logdir Attributes.
+
+ Bevor %V für ISO 8601 Wochennummern verwendet werden,
+ muss überprüft werden, ob diese Funktion durch das Brriebssystem
+ unterstützt wird (Es kann sein, dass %V nicht umgesetzt wird, durch
+ einen Leerstring ersetzt wird oder durch eine falsche ISO-Wochennummer
+ dargestellt wird - besonders am Jahresanfang)
+
+ Bei der Verwendung von %V muss gleichzeitig für das Jahr
+ ein %G anstelle von %Y benutzt werden.
+
+ Beispiele:
+
+ define lamplog FileLog %L/lamp.log lamp
+ define wzlog FileLog ./log/wz-%Y-%U.log
+ wz:(measured-temp|actuator).*
+ Mit ISO 8601 Wochennummern falls unterstützt:
+ define wzlog FileLog ./log/wz-%G-%V.log
+ wz:(measured-temp|actuator).*
+
+
+
+
+
+ Set
+
+ - reopen
+
+ Erneutes Öffnen eines FileLogs nach händischen Änderungen in dieser Datei.
+
+
+ - addRegexpPart <device> <regexp>
+
+ Hinzufügen eines regexp Teiles, der gemäß device:regexp
+ aufgebaut ist. Die Teile werden mit einem | voneinander getrennt.
+ Achtung: Wenn die regexp-Teile umsortiert werden, können die
+ manuell erzeugten regexps ungültig werden.
+
+
+ - removeRegexpPart <re>
+
+ Entfernt ein regexp-Teil. Achtung: Wenn die regexp-Teile umsortiert
+ werden, können die manuell erzeugten regexps ungültig
+ werden.
+ Die Inkonsistenz von addRegexpPart/removeRegexPart-Argumenten hat
+ seinen Ursprung in der Wiederverwendung von Javascript-Funktionen.
+
+
+ - absorb secondFileLog
+
+ Führt den gegenwärtigen Log und den secondFileLog zu einer
+ gemeinsamen Datei zusammen, fügt danach die regexp des
+ secondFileLog dem gegenwärtigen Filelog hinzu und löscht dann
+ anschließend das secondFileLog.
+
+ Dieses Komanndo wird zur Erzeugung von kombinierten Plots (weblinks)
+ benötigt.
+
+ Hinweise:
+
+ - secondFileLog wird gelöscht (d.h. die FHEM-Definition und
+ die Datei selbst).
+ - nur das aktuelle File wird zusammengeführt, keine
+ archivierten Versionen.
+ - Weblinks, die das secondFilelog benutzen werden unbrauchbar, sie
+ müssen deshalb auf das neue Logfile angepasst oder gelöscht
+ werden.
+
+
+
+
+
+
+
+
+
+ Get
+
+ get <name> <infile> <outfile> <from>
+ <to> <column_spec>
+
+ Liest Daten aus einem Logfile und wird von einem Frontend benötigt, um
+ Daten ohne direkten Zugriff aus der Datei zu lesen.
+
+
+ - <infile>
+ Name des Logfiles, auf das zugegriffen werden soll. "-" steht für
+ das aktuelle Logfile. Man kann auch auf ein älteres File zugreifen
+ (oder eines aus dem Archiv).
+
+ - <outfile>
+ Bei einem "-", bekommt man die Daten auf der aktuellen Verbindung
+ zurück, anderenfall ist es das Name (eigentlich Prefix, s.u.) des
+ Output-Files. Wenn mehr als ein File angesprochen wird, werden die
+ einzelnen Dateinamen durch ein "-" getrennt, anderenfalls werden die
+ Daten in einzelne Dateien geschrieben, die - beginnend mit 0 -
+ durchnummeriert werden.
+
+
+ - <from> <to>
+ Bezeichnet den gewünschten Datenbereich. Die beiden Elemente
+ müssen ganz oder mit dem Anfang des Zeitformates
+ übereinstimmen.
+
+ - <column_spec>
+ Jede column_spec sendet die gewünschten Daten entweder in eine
+ gesonderte Datei oder über die gegenwärtige Verbindung durch
+ "-" getrennt.
+
+ Syntax: <col>:<regexp>:<default>:<fn>
+
+ - <col>
+ gibt die Spaltennummer zurück, beginnend mit 1 beim Datum.
+ Wenn die Spaltenmummer in doppelten Anführungszeichen steht,
+ handelt es sich um einen festen Text und nicht um eine
+ Spaltennummer.
+
+ - <regexp>
+ gibt, falls vorhanden, Zeilen mit Inhalten von regexp zurück.
+ Groß- und Kleinschreibung beachten.
+ - <default>
+ Wenn keine Werte gefunden werden, und der Default-Wert
+ (Voreinstellung) wurde gesetzt, wird eine Zeile zurückgegeben,
+ die den von-Wert (from) und diesen Default-Wert enthält.
+ Dieses Leistungsmerkmal ist notwendig, da gnuplot abbricht, wenn
+ ein Datensatz keine Daten enthält.
+
+ - <fn>
+ Kann folgende Inhalte haben:
+
+ - int
+ Löst den Integer-Wert zu Beginn eines Strings heraus. Wird
+ z.B. bei 10% gebraucht.
+ - delta-h oder delta-d
+ Gibt nur den Unterschied der Werte-Spalte pro
+ Stunde oder pro Tag aus. Wird benötigt, wenn die Spalte
+ einen Zähler enthält, wie im Falles des KS300 in der
+ Spalte für die Regenmenge.
+ - alles andere
+ Dieser String wird als Perl-Ausdruck ausgewertet. @fld enthaelt
+ die aktuelle Zeile getrennt durch Leerzeichen. Achtung:
+ Dieser String/Perl-Ausdruck darf keine Leerzeichen enthalten.
+
+
+
+
+
+ Beispiel:
+
+ get outlog out-2008.log - 2008-01-01 2008-01-08 4:IR:int: 9:IR::
+
+
+
+
+
+ Attribute
+
+
+
+
+ - archivecmd / archivedir / nrarchive
+ Wenn eine neue FileLog-Datei geöffnet wird, wird der FileLog
+ archiver aufgerufen. Das geschieht aber nur , wenn der Name der Datei
+ sich geändert hat(abhängig von den zeitspezifischen
+ Wildcards, die weiter oben unter FileLog
+ (define) beschrieben werden) und gleichzeitig ein neuer Datensatz
+ in diese Datei geschrieben werden muss.
+
+ Wenn das Attribut archivecmd benutzt wird, startet es als
+ shell-Kommando ( eine Einbettung in " ist nicht notwendig), und jedes %
+ in diesem Befehl wird durch den Namen des alten Logfiles ersetzt.
+
+ Wenn dieses Attribut nicht gesetzt wird, aber dafür nrarchive
+ und/oder archivecmd, werden nrarchive viele Logfiles im aktuellen
+ Verzeichnis gelassen, und ältere Dateien in das Archivverzeichnis
+ (archivedir) verschoben (oder gelöscht, falls kein archivedir
+ gesetzt wurde).
+
+ Hinweis: Werden diese Attribute als global instance gesetzt, hat das
+ auschließlich auf das FHEM logfile
+ Auswirkungen.
+
+
+
+ - disable
+
+
+ - logtype
+ Wird vom pgm2 webfrontend benötigt, um gnuplot/SVG-Kurven aus den
+ Logdateien zu zeichnen. Der String wird aus komma-separierten Tokens
+ (,) erzeugt, wobei jeder Token ein eigenes gnuplot-Programm bezeichnet.
+ Die Token können Doppelpunkte (:) enthalten. Der Teil vor dem
+ Doppelpunkt bezeichnet den Namen des Programms; der Teil nach dem
+ Doppelpunkt ist der String, der im Web.Frontend dargestellt werden
+ soll. Gegenwärtig sind folgende Typen von gnuplot-Programmen
+ implementiert:
+
+
+ - fs20
+ Zeichnet on als 1 and off als 0. Die geeignete
+ filelog-Definition für das Gerät fs20dev lautet:
+ define fslog FileLog log/fs20dev-%Y-%U.log fs20dev
+
+ - fht
+ Zeichnet die Ist-Temperatur/Soll-temperatur/Aktor Kurven. Die
+ passende FileLog-Definition (für das FHT-Gerät mit
+ Namen fht1)sieht wie folgt aus:
+ define fhtlog1 FileLog log/fht1-%Y-%U.log fht1:.*(temp|actuator).*
+
+ - temp4rain10
+ Zeichnet eine Kurve aus der Temperatur und dem Niederschlag (pro
+ Stunde und pro Tag) eines KS300. Die dazu passende
+ FileLog-Definition (für das KS300
+ Gerät mit Namen ks300) sieht wie folgt aus:
+ define ks300log FileLog log/fht1-%Y-%U.log ks300:.*H:.*
+
+ - hum6wind8
+ Zeichnet eine Kurve aus der Feuchtigkeit und der
+ Windgeschwindigkeit eines ks300. Die geeignete
+ FileLog-Definition ist identisch mit der vorhergehenden
+ Definition. Beide programme erzeugen das gleiche Log.
+
+ - text
+ Zeigt das LogFile in seiner ursprünglichen Form (Nur
+ Text).Eine gnuplot-Definition ist nicht notwendig.
+ Beispiel: attr ks300log1 logtype
+ temp4rain10:Temp/Rain,hum6wind8:Hum/Wind,text:Raw-data
+
+
+
+
+
+GDS
+
+Sorry, keine deutsche Dokumentation vorhanden.
+Die englische Doku gibt es hier: GDS
+
+
+
+
+
+ GEOFANCY
+
+
+ Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
+
+
+
+
+
+
+
+ GUEST
+
+
+ Define
+
+ define <rg_FirstName> GUEST [<Device Name der Bewohnergruppe>]
+
+ Stellt ein spezielles Dummy Device bereit, welches einen Gast repräsentiert.
+ Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
+
+ Wird vom übergeordneten Modul RESIDENTS verwendet, kann aber auch einzeln benutzt werden.
+
+ Beispiele:
+
+ # Einzeln
+ define rg_Guest GUEST
+
+ # Typisches Gruppenmitglied
+ define rg_Guest GUEST rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein
+
+ # Mitglied in mehreren Gruppen
+ define rg_Guest GUEST rgr_Residents,rgr_Guests # um Mitglied den Gruppen rgr_Residents und rgr_Guests zu sein
+
+
+
+ Bitte beachten, dass das RESIDENTS Gruppen Device zunächst angelegt werden muss, bevor ein GUEST Objekt dort Mitglied werden kann.
+
+
+
+ Set
+
+ set <rg_FirstName> <command> [<parameter>]
+
+ Momentan sind die folgenden Kommandos definiert.
+
+ -
+ location - setzt das Reading 'location'; siehe auch Attribut rg_locations, um die in FHEMWEB angezeigte Liste anzupassen
+
+ -
+ mood - setzt das Reading 'mood'; siehe auch Attribut rg_moods, um die in FHEMWEB angezeigte Liste anzupassen
+
+ -
+ state home,gotosleep,asleep,awoken,absent,gone wechselt den Status; siehe auch Attribut rg_states, um die in FHEMWEB angezeigte Liste anzupassen
+
+
+
+
+
+ Mögliche Stati und ihre Bedeutung
+
+
+ Dieses Modul unterscheidet 6 verschiedene Stati:
+
+
+ -
+ home - Mitbrwohner ist zuhause und wach
+
+ -
+ gotosleep - Mitbewohner ist auf dem Weg ins Bett
+
+ -
+ asleep - Mitbewohner schläft
+
+ -
+ awoken - Mitbewohner ist gerade aufgewacht
+
+ -
+ absent - Mitbewohner ist momentan nicht zuhause, wird aber bald zurück sein
+
+ -
+ none - Gast Device ist deaktiviert
+
+
+
+
+
+
+ Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location
+
+
+ Unter bestimmten Umständen führt der Wechsel des Status auch zu einer Änderung des Readings 'location'.
+
+ Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rg_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.
+
+ Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rg_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
+
+
+
+
+ Auto-Status 'gone'
+
+
+ Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Zähler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.
+ Der Standard ist nach 16 Stunden.
+
+ Dieses Verhalten kann über das Attribut rg_autoGoneAfter angepasst werden.
+
+
+
+
+ Anwesenheit mit anderen GUEST oder ROOMMATE Devices synchronisieren
+
+
+ Wenn Sie immer zusammen mit anderen Mitbewohnern oder Gästen das Haus verlassen oder erreichen, können Sie ihren Status ganz einfach auf andere Mitbewohner übertragen.
+ Durch das Setzen des Attributs rg_PassPresenceTo folgen die dort aufgeführten Mitbewohner ihren eigenen Statusänderungen nach 'home', 'absent' oder 'gone'.
+
+ Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'none' oder 'gone' (im Falle von ROOMMATE Devices) nicht beachtet werden.
+
+
+
+
+ Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence
+
+
+ Unter bestimmten Umständen hat der Wechsel des Readings 'location' auch einen Einfluss auf den tatsächlichen Status.
+
+ Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rg_locationHome gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.
+
+ Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rg_locationUnderway gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' übertragen.
+
+ Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rg_locationWayhome gesetzt wurde, so führt das VERLASSEN einer dort aufgeführten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 Möglichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).
+ Die Ankunft zuhause setzt den Wert von 'wayhome' zurück auf '0'.
+
+ Wenn Sie auch das GEOFANCY Modul verwenden, können Sie das Reading 'location' ganz einfach über GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:
+
+ define n_rg_Manfred.location notify geofancy:currLoc_Manfred.* set rg_Manfred location $EVTPART1
+
+ Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zukünftig automatisch alle Statusänderungen wie oben beschrieben durchgeführt.
+
+
+
+ Attribute
+
+
+ -
+ rg_autoGoneAfter - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' ändert, wenn der aktuelle Status 'absent' ist; Standard ist 36 Stunden
+
+ -
+ rg_locationHome - hiermit übereinstimmende Lokationen werden als zuhause gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'home'
+
+ -
+ rg_locationUnderway - hiermit übereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'underway'
+
+ -
+ rg_locationWayhome - das Verlassen einer Lokation, die hier aufgeführt ist, lässt das Reading 'wayhome' auf '1' setzen; mehrere Einträge durch Leerzeichen trennen; Standard ist "wayhome"
+
+ -
+ rg_locations - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
+
+ -
+ rg_moodDefault - die Stimmung, die nach Ankunft zuhause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
+
+ -
+ rg_moodSleepy - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
+
+ -
+ rg_moods - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
+
+ -
+ rg_passPresenceTo - synchronisiere die Anwesenheit mit anderen GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
+
+ -
+ rg_realname - wo immer GUEST den richtigen Namen verwenden möchte nutzt es den Wert des Attributs alias oder group; Standard ist group
+
+ -
+ rg_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
+
+ -
+ rg_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
+
+
+
+
+
+ Generierte Readings/Events:
+
+
+ -
+ durTimerAbsence - Timer, der die Dauer der Abwesenheit in Minuten anzeigt
+
+ -
+ durTimerPresence - Timer, der die Dauer der Anwesenheit in Minuten anzeigt
+
+ -
+ durTimerSleep - Timer, der die Schlafdauer in Minuten anzeigt
+
+ -
+ lastArrival - Zeitstempel der letzten Ankunft zu Hause
+
+ -
+ lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
+
+ -
+ lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
+
+ -
+ lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastLocation - der vorherige Aufenthaltsort
+
+ -
+ lastMood - die vorherige Stimmung
+
+ -
+ lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
+
+ -
+ lastState - der vorherige Status
+
+ -
+ location - der aktuelle Aufenthaltsort
+
+ -
+ presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
+
+ -
+ mood - die aktuelle Stimmung
+
+ -
+ state - gibt den aktuellen Status wieder
+
+ -
+ wayhome - abhängig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zurück nach Hause ist
+
+ -
+
+ Die folgenden Readings werden auf '-' gesetzt, sobald der Status auf 'none' steht:
+ lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
+
+
+
+
+
+
+HCS
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HCS
+
+
+HMLAN
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HMLAN
+
+
+HMS
+
+
+ Define
+
+ define <name> HMS <housecode>
+
+
+ Der <housecode> ist eine vierstellige HEX-Zahl,
+ entsprechend dem HMS Gerät.
+
+ Beispiel:
+
+ Hinweise:
+
+ - Derzeit werden folgende Komponenten Unterstützt: HMS100-T
+ HMS100-TF HMS100-WD HMS100-MG HMS100-TFK HMS100-CO HMS100-FIT RM100-2
+ RM100-3
+
+ - Der Hauscode kann sich ändern wenn die Batterie gewechselt wird.
+ Um sich das Leben einfacher zu machen kann man ein "Wildcard"
+ (Platzhalter) Device für jeden Typ von HMS Gerät anlegen.
+ Zuerst wird die echte Device-ID geprüft, danach die Wildcard-ID.
+ Wildcards sind:
+
+ - 1000 für das HMS100-TF
+ - 1001 für das HMS100-T
+ - 1002 für das HMS100-WD
+ - 1003 für das RM100-2
+ - 1004 für das HMS100-TFK
+ - 1006 für das HMS100-MG
+ - 1008 für das HMS100-CO
+ - 100e für das HMS100-FIT
+
+
+
+ - Einige "Batteriestand niedrig" Benachrichtigungen sind noch nicht
+ implemeniert (RM100, HMS100WD).
+
+ - Die Installation ist zu testen bevor man sich auf die
+ Funktionalität verlässt.
+
+
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+
+
+
+
+
+HMinfo
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HMinfo
+
+
+HTTPMOD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HTTPMOD
+
+
+HTTPSRV
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HTTPSRV
+
+
+HUEBridge
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HUEBridge
+
+
+HUEDevice
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: HUEDevice
+
+
+
+Heating Control
+
+
+
+I2C_BMP180
+
+
+
+ Dieses Modul ermöglicht das Auslesen der digitalen (Luft)drucksensoren
+ BMP085 und BMP180 über den I2C Bus des Raspberry Pi.
+ Es gibt zwei Möglichkeiten das Modul mit dem I2C Bus zu verbinden:
+
+ - Über das RPII2C Modul
+ I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
+ oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
+ Das Attribut IODev muss definiert sein.
+
+ - Über die HiPi Bibliothek
+ Diese beiden Zeilen müssen in die Datei /etc/modules angefügt werden,
+ um die Kernel Module automatisch beim Booten des Raspberry Pis zu laden.
+ i2c-bcm2708
+ i2c-dev
+ Installation des HiPi Perl Moduls:
+ wget http://raspberry.znix.com/hipifiles/hipi-install
+ perl hipi-install
+ Um die Rechte für die I2C Devices anzupassen, folgende Datei:
+ /etc/udev/rules.d/98_i2c.rules
+ mit diesem Inhalt anlegen:
+ SUBSYSTEM=="i2c-dev", MODE="0666"
+ Reboot
+ Falls der Sensor am zweiten I2C Bus am Stecker P5 (nur in Version 2 des
+ Raspberry Pi) verwendet werden soll, muss die fett gedruckte Zeile
+ des folgenden Codes in das FHEM Start Skript aufgenommen werden:
+ case "$1" in
+ 'start')
+ sudo hipi-i2c e 0 1
+ ...
+
+
+
+ Define
+
+ define BMP180 <BMP180_name> <I2C_device>
+ <I2C device> darf nicht verwendet werden, wenn der I2C Bus über das RPII2C Modul angesprochen wird. For HiPi ist es allerdings notwendig.
+
+ Beispiel:
+
+ define BMP180 I2C_BMP180 /dev/i2c-0
+ attr BMP180 oversampling_settings 3
+ attr BMP180 poll_interval 5
+
+
+ define BMP180 I2C_BMP180
+ attr BMP180 IODev RPiI2CMod
+ attr BMP180 oversampling_settings 3
+ attr BMP180 poll_interval 5
+
+
+
+
+ Set
+
+ set BMP180 readValues
+
+ Liest die aktuelle Temperatur und den Luftdruck des Sensors aus.
+ Dies wird automatisch nach Ablauf des definierten Intervalls ausgeführt.
+ Wenn der aktuelle Wert gelesen werden soll, kann dieser Befehl auch manuell
+ ausgeführt werden.
+
+
+
+
+ Get
+
+
+
+
+ Attribute
+
+ - oversampling_settings
+ Steuert das Oversampling der Druckmessung im Sensor.
+ Default: 3, gültige Werte: 0, 1, 2, 3
+
+ - poll_interval
+ Definiert das Poll Intervall in Minuten für das Auslesen einer neuen Messung.
+ Default: 5, gültige Werte: 1, 2, 5, 10, 20, 30
+
+ - roundTemperatureDecimal
+ Rundet den Temperaturwert mit den angegebenen Nachkommastellen.
+ Default: 1, gültige Werte: 0, 1, 2
+
+ - roundPressureDecimal
+ Rundet die Drucksensorwerte mit den angegebenen Nachkommastellen.
+ Default: 1, valid values: 0, 1, 2
+
+ - altitude
+ Wenn dieser Wert definiert ist, wird diese Angabe zusä für die Berechnung des
+ Luftdrucks bezogen auf Meereshöhe (Normalnull) NN herangezogen.
+ Bemerkung: Dies ist ein globales Attribut.
+ attr global altitude 220
+
+
+
+
+
+
+I2C_DS1307
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: I2C_DS1307
+
+
+I2C_LCD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: I2C_LCD
+
+
+I2C_PCA9532
+
+
+ Ermöglicht die Verwendung eines PCA9532 I2C 16 Kanal PWM IC.
+ Das PCA9532 hat 2 unabhängige PWM Stufen. Jeder Kanal kanne einer der Stufen zugeordnet werden oder direkt auf off/on gesetzt werden.
+ I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
+ oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
+ Das Attribut IODev muss definiert sein.
+
+ Define
+
+ define <name> I2C_PCA9532 <I2C Address>
+ Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
+
+
+
+ Set
+
+ set <name> <port> <value>
+
+ - wenn als
<port> Port0 bis Port15 verwendet wird, dann ist <value> einer dieser Werte:
+
+
+ off
+ on
+ PWM0 (Port wird auf PWM0 Frequenz- und Pulsweiteneinstellung gesetzt)
+ PWM1 (Port wird auf PWM1 Frequenz- und Pulsweiteneinstellung gesetzt)
+
+
+
+ -
+ wenn als
<port> PWM0 oder PWM1 verwendet wird, ist <value> ein Wert zwischen 0 und 255 ensprechend der Pulsweite der PWM Stufe.
+
+
+
+ Beispiele:
+
+ set mod1 Port4 PWM1
+ set mod1 PWM1 128
+
+
+
+
+ Get
+
+ get <name>
+
+ Aktualisierung aller Werte
+
+
+
+ Attribute
+
+ - poll_interval
+ Aktualisierungsintervall aller Werte in Minuten.
+ Standard: -, gültige Werte: Dezimalzahl
+
+ - InputPorts
+ Durch Leerzeichen getrennte Portnummern die als Inputs genutzt werden.
+ Ports in dieser Liste können nicht geschrieben werden.
+ Standard: no, gültige Werte: 0 1 2 .. 15
+
+ - T0/T1
+ Änderung der Frequenzwerte von PWM0/PWM1 nach der Formel: Fx = 152/(Tx + 1). Der entsprechende Frequenzwert wird unter Internals angezeigt.
+ Standard: 0 (152Hz), gültige Werte: 0-255
+
+ - IODev
+ - ignore
+ - do_not_notify
+ - showtime
+
+
+
+
+
+I2C_PCF8574
+
+
+ Ermöglicht die Verwendung eines PCF8574 I2C 8 Bit Portexenders.
+ Auf einem Raspberry Pi kann der Interrupt Pin des PCF8574 mit einem GPIO verbunden werden und ¨ber die Interrupt Funktionen von RPI_GPIO l&aml;sst sich dann ein get für den PCF8574 bei Pegel&aml;nderung ausl&oml;sen.
+ I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
+ oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
+ Das Attribut IODev muss definiert sein.
+
+ Define
+
+ define <name> I2C_PCF8574 <I2C Address>
+ Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
+
+
+
+ Set
+
+ set <name> <port> <value>
+
+ <port> kann Port0 bis Port7 annehmen und <value> folgende Werte:
+
+
+
+
+ Beispiel:
+
+
+
+
+ Get
+
+ get <name>
+
+ Aktualisierung aller Werte
+
+
+
+ Attribute
+
+ - poll_interval
+ Aktualisierungsintervall aller Werte in Minuten.
+ Standard: -, gültige Werte: Dezimalzahl
+
+ - InputPorts
+ Durch Leerzeichen getrennte Portnummern die als Inputs genutzt werden.
+ Ports in dieser Liste können nicht geschrieben werden.
+ Standard: no, gültige Werte: 0 1 2 .. 15
+
+ - IODev
+ - ignore
+ - do_not_notify
+ - showtime
+
+
+
+
+
+I2C_SHT21
+
+
+ Ermöglicht die Verwendung eines SHT21 I2C Feuchtesensors von Sensirion.
+ I2C-Botschaften werden über ein I2C Interface Modul wie beispielsweise das RPII2C, FRM
+ oder NetzerI2C gesendet. Daher muss dieses vorher definiert werden.
+ Das Attribut IODev muss definiert sein.
+
+ Define
+
+ define <name> I2C_SHT21 [<I2C Address>]
+ Der Wert <I2C Address> ist ein zweistelliger Hex-Wert
+
+
+ Set
+
+ set <name> readValues
+ Aktuelle Temperatur und Feuchte Werte vom Sensor lesen.
+
+
+ Attribute
+
+ - poll_interval
+ Aktualisierungsintervall aller Werte in Minuten.
+ Standard: 5, gültige Werte: 1,2,5,10,20,30
+
+ - roundHumidityDecimal
+ Anzahl Dezimalstellen für den Feuchtewert
+ Standard: 1, gültige Werte: 0 1 2
+
+ - roundTemperatureDecimal
+ Anzahl Dezimalstellen für den Temperaturwert
+ Standard: 1, gültige Werte: 0,1,2
+
+ - IODev
+ - do_not_notify
+ - showtime
+
+
+
+
+IF
+
+ IF (<Bedingung>) (<FHEM-Kommandos1>) ELSE (<FHEM-Kommandos2>)
+
+ Es werden <FHEM-Kommandos1> ausgeführt, wenn <Bedingung> erfüllt ist, sonst werden <FHEM-Kommanodos2> ausgeführt.
+
+ Beim IF-Befehl handelt es sich um einen FHEM-Befehl. Der Befehl kann überall dort genutzt werden, wo FHEM-Befehle vorkommen dürfen.
+ Im Gegensatz zu Perl-if bleibt man auf der FHEM-Ebene und muss nicht auf die Perl-Ebene, um FHEM-Befehle mit Hilfe der fhem-Funktion auszuführen.
+
+ IF ist kein eigenständig arbeitendes Modul, sondern ein FHEM-Befehl, der in Kombination mit anderen Modulen, wie z. B. notify oder at, sinnvoll eingesetzt werden kann.
+
+ In der Bedingung des IF-Befehls wird die vollständige Syntax des Perl-if unterstützt. Mögliche Operatoren sind u. a.:
+
+ ++ -- Inkrementieren, Dekrementieren
+ ** Potenzierung
+ ! ~ logische und bitweise Negation
+ =~ !~ Bindung an Seite reguläre Ausdrücke
+ * / % x Multiplikation, Division, Modulo-Operation, Zeichenkettenwiederholung
+ + - . Addition, Subtraktion, Zeichenkettenaddition
+ < <= > >= lt le gt ge Vergleich größer/kleiner
+ == != eq ne Gleichheit/Ungleichheit
+ & bitweises UND
+ | ^ bitweises ODER - inklusiv/exklusiv
+ && logisches UND
+ || logisches ODER
+ not logische Negation
+ and logisches UND
+ or xor logisches ODER (inklusiv/exklusiv)
+
+Features:
+
+
+ - Angabe von Readings und Internals ist an beliebiger Stelle möglich
+
+ - Filtern nach Zahlen oder beliebigen Ausdrücken über reguläre Ausdrücke ist möglich
+
+ - IF kann beliebig mit anderen FHEM-Befehlen kombiniert werden (at, notify usw.)
+
+ - es können beliebig viele IF-Befehle ineinander geschachtelt werden
+
+ - Syntaxprüfung: fehlende Klammern werden erkannt
+
+ - Definition über mehrere Zeilen mit Einrückung zwecks übersichtlicher Darstellung ist möglich
+
+ - Überprüfung auf Existenz von Device und Reading bzw. Internal
+
+ - Ausführung von Perl-Befehlen im dann- und sonst-Fall ist weiterhin möglich
+
+ - Auswertung von Ausdrücken in geschweiften Klammen innerhalb eines FHEM-Befehls ist möglich
+
+ - ELSE-Fall ist optional
+
+
+
+ Die Syntax für die Nutzung von Readings oder Internals (ein Internal wird durch ein & gekennzeichnet)
+
+ [<device>:<reading>:<format>|[<regulärer Ausdruck>]]
+ bzw. [<device>:&<internal>:<format>|[<regulärer Ausdruck>]]
+
+ <format> und [<regulärer Ausdruck>] sind Filteroptionen, sie können optional genutzt werden.
+
+ Mögliche Formatangaben für <format> sind:
+
+ 'd' zum Filtern von positiven und negatien Dezimalzahlen. [<device>:<reading>:d] entspricht [<device>:<reading>:[(-?\d+(\.\d+)?)]]
+
+ Wenn nur der Status eines Devices genutzt werden soll, dann kann auch nur das Device angeben werden:
+
+ [<device>] entspricht [<device>:&STATE]
+
+ Beispiele:
+
+ IF in Kombination mit at-Modul, Readingangabe in der Bedingung:
+
+ define check at +00:10 IF ([outdoor:humidity] > 70) (set switch1 off) ELSE (set switch1 on)
+
+ IF Statusabfrage des Devices "outdoor" in der Bedingung:
+
+ define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)
+
+ entspricht mit Angabe des Internals:
+
+ define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)
+
+ Wenn der Reading "state" abgefragt werden soll, dann wird der Readingname ohne & angegeben:
+
+ define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)
+
+ Geschachtelte Angabe von zwei IF-Befehlen (kann in mehreren Zeilen mit Einrückungen zwecks übersichtlicher Darstellung in der DEF-Eingabe eingegeben werden):
+
+ define test notify lamp
+ IF ([lamp] eq "on") (
+
+ IF ([outdoor:humidity] < 70)
+
+ (set lamp off)
+
+ ELSE
+
+ (set lamp on)
+
+
+ ) ELSE
+
+ (set switch on)
+
+
+ Filtern nach Zahlen im Reading "temperature":
+
+ define settemp at 22:00 IF ([tempsens:temperature:d] >= 10) (set heating on)
+
+ Filtern nach "on" und "off" im Status des Devices "move":
+
+ define activity notify move IF ([move:&STATE:[(on|off)] eq "on" and $we) (set lamp off)
+
+ Beispiel für die Nutzung von Readings im dann-Fall:
+
+ define temp at 18:00 IF ([outdoor:temperature] > 10) (set lampe [dummy])
+
+ Falls bei einem FHEM-Befehl ein Ausdruck mit Readings zuvor ausgewertet werden soll, so muss er in geschweifte Klammern gesetzt werden.
+ Beispiel: Wenn um 18:00 Uhr die Außentemperatur höher ist als 10 Grad, dann wird die Solltemperatur um 1 Grad erhöht.
+
+ define temp at 18:00 IF ([outdoor:temperature] > 10) (set thermostat desired-temp {[thermostat:desired-temp:d]+1})
+
+ Mehrerer Befehle werden durch ein Komma statt durch ein Semikolon getrennt, dadurch entfällt das Doppeln, Vervierfachen usw. des Semikolons:
+
+ define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)
+
+ Falls ein Komma im FHEM-Ausdruck vorkommt, muss dieser zusätzlich geklammert werden, damit das Komma nicht als Trennzeichen erkannt wird:
+
+ define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))
+
+ IF in Kombination mit einem define at mit mehreren set-Befehlen (Eingabe muss wegen der Semikolons im DEF-Editor erfolgen,
+ einfaches Semikolon ist nicht erlaubt - es würde vom FHEM-Parser "geschluckt" werden und beim IF nicht mehr ankommen):
+
+ define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 set lampe1 on;;set lampe2 off;;set temp desired 20)
+
+ Man kann die Problematik des Doppelns von Semikolons wie folgt umgehen:
+
+ define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 IF (1) (set lampe1 on,set lampe2 off,set temp desired 20))
+
+ Das Komma als Trennzeichen zwischen den FHEM-Befehlen lässt sich mit ;; kombinieren, z. B.:
+
+ define check at *10:00 IF ([indoor] eq "on") (set lamp1 on,define a_test at +00:10 set lampe2 on;;set lampe3 off;;set temp desired 20)
+
+ Zeitabhängig schalten: In der Zeit zwischen 20:00 und 22:00 Uhr soll das Licht ausgehen, wenn es an war und ich den Raum verlasse:
+
+ define n_lamp_off notify sensor IF ($hms gt "20:00" and $hms lt "22:00" and [sensor] eq "absent") (set lamp:FILTER=STATE!=off off)
+
+ Kombination von Perl und FHEM-Befehlen ($NAME sowie $EVENT können ebenso benutzt werden):
+
+ define mail notify door:open IF ([alarm] eq "on")({system("wmail $NAME:$EVENT")},set alarm_signal on)
+
+
+IPCAM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: IPCAM
+
+
+IPWE
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: IPWE
+
+
+IT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: IT
+
+
+Itach_Relay
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: Itach_Relay
+
+
+JSONMETER
+
+ Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
+
+ welche OBIS kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur Verfügung stellen.
+
+
+
+
+ Define
+
+ define <name> JSONMETER <Gerätetyp> [<IP-Adresse>] [Abfrageinterval]
+
+ Beispiel: define Stromzaehler JSONMETER ITF 192.168.178.20 300
+
+ [Abfrageinterval]
+
+ Optional. Standardmässig 300 Sekunden. Der kleinste mögliche Wert ist 30.
+
+ Bei 0 kann die Geräteabfrage nur manuell gestartet werden.
+
+ <Gerätetyp>
+
+ Definiert den Pfad und den Port, um die JSON-Datei einzulesen.
+
+ Mit dem Attribute 'pathString' können Login Information an den URL-Pfad von vordefinierten Geräte angehangen werden.
+
+ - ITF - FROETEC Simplex ME Eintarifzähler (N-ENERGY) (ITF Fröschl)
+ - EFR - EFR Smart Grid Hub für Stromzähler (EON, N-ENERGY, EnBW)
+
+ Die Login-Information wird über das Attribute 'pathstring' angegeben.
+
+ ?LogName=Benutzer&LogPSWD=Passwort
+ - LS110 - YouLess LS110 Netzwerkfähiger Sensor für elektromechanische Stromzähler
+ - url - benutzt die URL, welche durch das Attribut 'pathString' und 'port' definiert wird.
+ - file - benutzt die Datei, welche durch das Attribut 'pathString' definiert wird (im FHEM Dateisystem)
+
+
+
+
+
+ Set
+
+ INTERVAL <Abfrageinterval>
+
+ Abfrageinterval in Sekunden
+
+ restartJsonAnalysis
+
+ Neustart der Analyse der json-Datei zum Auffinden bekannter Gerätewerte (kompatibel zum OBIS Standard).
+
+ Diese Analysie wird normaler Weise nur einmalig durchgeführt, nachdem Gerätewerte gefunden wurden.
+
+ statusRequest
+
+ Aktualisieren der Gerätewerte
+
+
+
+ Get
+
+ jsonFile
+
+ Liest die JSON-Datei ein und zeigt sie an.
+
+ jsonAnalysis
+
+ Extrahiert die JSON-Daten und zeigt das Resultat der JSON-Analyse.
+
+
+
+
+ Attributes
+
+ alwaysAnalyse < 0 | 1 >
+
+ Führt bei jeder Abfrage der Gerätewerte eine Analyse der JSON-Datenstruktur durch.
+
+ Dies ist sinnvoll, wenn sich die JSON-Struktur ändert. Normalerweise wird die analysierte Struktur
+ zwischengespeichert, um die CPU-Last gering zu halten.
+
+ doStatistics < 0 | 1 >
+
+ Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte (Mittel/Min/Max oder kumulierte Werte).
+
+ Für grafische Auswertungen können die Werte der Form 'statReadingNameLast' genutzt werden.
+
+ pathString <Zeichenkette>
+
+ - Gerätetyp 'file': definiert den lokalen Dateinamen und -pfad
+
+ - Gerätetyp 'url': Definiert den URL-Pfad
+
+ - Andere: Kann benutzt werden um Login-Information zum URL Pfad von vordefinerten Geräten hinzuzufügen
+
+
+
+ port <Nummer>
+
+ Beim Gerätetyp 'url' kann hier der URL-Port festgelegt werden (standardmässig 80)
+
+ - readingFnAttributes
+
+
+
+
+JeeLink
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: JeeLink
+
+
+JsonList
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: JsonList
+
+
+JsonList2
+
+ jsonlist [<devspec>]
+
+ Dieses Befehl sollte in der FHEMWEB oder telnet Eingabezeile ausgeführt
+ werden, kann aber auch direkt über HTTP abgerufen werden über
+
+ http://fhemhost:8083/fhem?cmd=jsonlist2&XHR=1
+
+ Es liefert die JSON Darstellung der internen Variablen, Readings und
+ Attribute zurück.
+ Achtung: die alte Version dieses Befehls (jsonlist, ohne 2 am Ende) is
+ überholt, und wird in der Zukunft entfernt.
+
+
+
+KM271
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: KM271
+
+
+KS300
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: KS300
+
+
+LGTV
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: LGTV
+
+
+LINDY_HDMI_SWITCH
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: LINDY_HDMI_SWITCH
+
+
+LIRC
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: LIRC
+
+
+LISTENLIVE
+
+Sorry, keine deutsche Dokumentation vorhanden.
+Die englische Doku gibt es hier: LISTENLIVE
+
+
+LUXTRONIK2
+
+ Die Luxtronik 2.0 ist eine Heizungssteuerung, welche in Wärmepumpen von Alpha Innotec,
+ Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
+
+ Sie besitzt einen Ethernet Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann.
+
+ Das Modul wurde bisher mit folgender Steuerungs-Firmware getestet: V1.54C, V1.60, V1.69.
+
+ Mehr Infos unter im entsprechenden Artikel der FHEM-Wiki.
+
+
+
+ Define
+
+ define <name> LUXTRONIK2 <IP-Adresse> [Abfrageinterval]
+
+ Wenn das Abfrage-Interval nicht angegeben ist, wird es auf 300 (Sekunden) gesetzt. Der kleinste mögliche Wert ist 30.
+
+ Beispiel: define Heizung LUXTRONIK2 192.168.0.12 600
+
+
+
+
+
+ Set
+
+ Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen mit ungetester Firmware nicht unabsichtlich beschädigt werden.
+ opModeHotWater <Betriebsmodus>
+
+ Betriebsmodus des Heißwasserboilers ( Auto | Party | Off )
+
+ hotWaterTemperatureTarget <Temperatur>
+
+ Soll-Temperatur des Heißwasserboilers in °C
+
+ INTERVAL <Abfrageinterval>
+
+ Abfrageinterval in Sekunden
+
+ statusRequest
+
+ Aktualisieren der Gerätewerte
+
+ synchClockHeatPump
+
+ Abgleich der Uhr der Steuerung mit der FHEM Zeit. Diese Änderung geht verloren, sobald die Steuerung ausgeschaltet wird!!
+
+
+
+
+ Get
+
+ Es wurde noch kein "get" implementiert ...
+
+
+
+
+ Attribute
+
+ statusHTML
+ wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt,
+ welcher vom Modul FLOORPLAN genutzt werden kann.
+ Momentan wird nur geprüft, ob der Wert dieses Attributes ungleich NULL ist,
+ der entsprechende Gerätewerte besteht aus dem aktuellen Wärmepumpenstatus und der Heizwassertemperatur.
+
+ doStatistics < 0 | 1 >
+
+ Berechnet statistische Werte: statBoilerGradientHeatUp, statBoilerGradientCoolDown,
+ statBoilerGradientCoolDownMin (Wärmeverlust des Boilers)
+
+ Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte.
+ Für grafische Auswertungen können die Werte der Form 'statReadingNameLast' genutzt werden.
+
+ allowSetParameter < 0 | 1 >
+
+ Die internen Parameter der Wärmepumpensteuerung können
+ nur geändert werden, wenn dieses Attribut auf 1 gesetzt ist.
+
+ autoSynchClock <Zeitunterschied>
+
+ Die Uhr der Wärmepumpe wird automatisch korrigiert, wenn ein gewisser Zeitunterschied (10 s - 600 s)
+ gegenüber der FHEM Zeit erreicht ist. Zuvor wird die Kompatibilität der Firmware überprüft.
+ (Ein Gerätewert 'delayDeviceTimeCalc' <= 2 s ist auf die internen Berechnungsintervale der
+ Wärmepumpensteuerung zurückzuführen.)
+
+ ignoreFirmwareCheck < 0 | 1 >
+
+ Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen
+ mit ungetester Firmware nicht unabsichtlich beschädigt werden. Wenn dieses Attribute auf 1
+ gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden.
+ Dieses Attribut wird jedoch ignoriert, wenn die Steuerungs-Firmware bereits als nicht kompatibel berichtet wurde.
+
+ - readingFnAttributes
+
+
+
+
+
+LaCrosse
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: LaCrosse
+
+
+LightScene
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: LightScene
+
+
+M232
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: M232
+
+
+M232Counter
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: M232Counter
+
+
+M232Voltage
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: M232Voltage
+
+
+MAX
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: MAX
+
+
+MAXLAN
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: MAXLAN
+
+
+MPD
+
+ FHEM Modul zur Steuerung des MPD ähnlich dem MPC (MPC = Music Player Command, das Kommando Zeilen Interface für den
+ Music Player Daemon ) (englisch)
+ Um den MPD auf einem Raspberry Pi zu installieren finden sich im Internet zahlreiche gute Dokumentaionen
+ z.B. hier
+ Thread im FHEM Forum : Modul für MPD
+
+
+ Define
+
+ define <name> MPD <IP MPD Server | default localhost> <Port MPD Server | default 6600>
+ Beispiel :
+
+ define myMPD MPD 192.168.0.99 7000
+
+ wenn FHEM und der MPD auf dem gleichen PC laufen :
+
+ define myMPD MPD
+
+
+
+
+
+ Set
+ set <name> <was>
+
+ z.Z. unterstützte Kommandos
+
+ play => spielt den aktuellen Titel der geladenen Playliste
+ clear => löscht die Playliste
+ stop => stoppt die Wiedergabe
+ pause => Pause an/aus
+ previous => spielt den vorherigen Titel in der Playliste
+ next => spielt den nächsten Titel in der Playliste
+ random => zufällige Wiedergabe an/aus
+ repaet => Wiederholung an/aus
+ volume (%) => ändert die Lautstärke von 0 - 100%
+ volumeUp => Lautstärke schrittweise erhöhen , Schrittweite = ( attr volumeStep size )
+ volumeDown => Lautstärke schrittweise erniedrigen , Schrittweite = ( attr volumeStep size )
+ playlist (playlist name) => lade Playliste aus der MPD Datenbank und starte Wiedergabe mit dem ersten Titel
+ playfile (file) => erzeugt eine temoräre Playliste mit file und spielt dieses ab
+ updateDb => wie MPC update, Update der MPD Datenbank
+ interval => in Sekunden bis neue aktuelle Informationen vom MPD geholt werden. Ãœberschreibt die Einstellung von attr interval Ein Wert von 0 deaktiviert diese Funktion
+ reset => reset des FHEM MPD Moduls
+ mpdCMD => gleiche Funktion wie get mpdCMD
+ IdleNow => sendet das Kommando idle zum MPD und wartet auf Ereignisse - siehe auch Attribut useIdle
+
+
+
+ Get
+ get <name> <was>
+
+ z.Z. unterstützte Kommandos
+ music => zeigt alle Dateien der MPD Datenbank
+ playlists => zeigt alle Playlisten der MPD Datenbank
+ playlistsinfo => zeigt Informationen der aktuellen Playliste
+ webrc => HTML Ausgabe einer einfachen Web Fernbedienung Bsp :.
+
+ define <name> weblink htmlCode {fhem("get <name> webrc", 1)}
+ attr <name> room MPD
+
+ statusRequest => hole aktuellen MPD Status
+ mpdCMD (cmd) => sende cmd direkt zum MPD Server ( siehe auch MPD Comm Ref )
+ currentsong => zeigt Informationen zum aktuellen Titel in der Playliste
+ outputs => zeigt Informationen der definierten MPD Ausgabe Kanäle ( aus /etc/mpd.conf )
+
+
+
+ Attribute
+
+ - interval 0..x => polling Interval des MPD Servers, 0 zum abschalten oder in Verbindung mit useIdle
+ - password => (z.Z. nicht umgesetzt)
+ - loadMusic 0|1 => lade die MPD Titel beim FHEM Start
+ - loadPlaylists 0|1 => lade die MPD Playlisten beim FHEM Start
+ - volumeStep x => Schrittweite für Volume +/-
+ - useIdle 0|1 => sendet das Kommando idle zum MPD und wartet auf Ereignisse - benötigt MPD Version 0.16.0 oder höher
+ Wenn useIdle benutzt wird kann das Polling auf einen hohen Wert (300-600) gesetzt werden oder gleich ganz abgeschaltet werden.
+ FHEM startet einen Hintergrundprozess und wartet auf Änderungen des MPD , wie z.B Titelwechsel im Stream, start/stop, etc.
+ So lassen sich relativ zeitnah andere Geräte an/aus schalten oder z.B. eine LCD Anzeige aktualisieren ohne erst den nächsten Polling Intervall abwarten zu müssen !
+ - titleSplit 1|0 = zerlegt die aktuelle Titelangabe am ersten Vorkommen von - (BlankMinusBlank) in die zwei Felder Artist und Titel,
+ wenn im abgespielten Titel die Artist Information nicht verfügbar ist (sehr oft bei Radio-Streams)
+ Liegen keine Titelangaben vor wird die Ausgabe durch den Namen der Radiostation erstetzt
+
+
+ Readings
+
+ alle MPD internen Werte
+
+
+
+MSG
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: MSG
+
+
+MSGFile
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: MSGFile
+
+
+MSGMail
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: MSGMail
+
+
+NetIO230B
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: NetIO230B
+
+
+
+
+
+ ONKYO_AVR
+
+
+ Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
+
+
+
+
+OREGON
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OREGON
+
+
+OWAD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWAD
+
+
+OWCOUNT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWCOUNT
+
+
+OWDevice
+
+
+
+ Definition
+
+ define <name> OWDevice <address> [<interval>]
+
+
+ Definiert ein 1-Wire- Gerät. 1-Wire- Geräte werden anhand ihrer Adresse <address> definiert. Diese wird
+ durch den zuvor eingerichteten OWServer bereitgestellt.
+
+
+ Wird zusätzlich <interval> angegeben, ruft OWServer alle <interval> Sekunden
+ einen Datensatz des Gerätes ab.
+
+
+ Jedes OWDevice ist ein eigenständiges Gerät. Seine Eigenschaften werden erstmals zum Zeitpunkt der Definition
+ abgefragt. Die durch "get" oder "set" erzeugten, sowie durch den zyklischen Abruf gelieferten readings,
+ können mit dem Kommando list <name> angezeigt werden.
+
+ Folgende 1-Wire- und iButton- Komponenten werden aktuell unterstützt:
+
+ - DS2401 - Im Chip integrierte Seriennummer
+ - DS1990A - iButton mit fester Seriennummer
+ - DS2405 - Adressierbarer Schalter
+ - DS18S20 - Hochpräzisions-Digital-Thermosensor
+ - DS1920 - iButton-Thermosensor
+ - DS2406, DS2407 - Dualer adressierbarer Schalter mit 1 kbit Speicher
+ - DS2436 - Batterie-ID/Monitor- Schaltkreis
+ - DS2423 - Dual-Zählerbaustein mit Speicherfunktion
+ - DS2450 - Vierfach-A/D Umsetzer
+ - DS1822 - Econo-Thermosensor
+ - DS2415 - Zeitgeber- Schaltkreis
+ - DS1904 - iButton-Echtzeituhr
+ - DS2438 - Smart-Batterie-Monitor
+ - DS2417 - Zeitgeber-Schaltkreis mit Interrupt
+ - DS18B20 - Thermosensor mit programmierbarer Auflösung
+ - DS2408 - 8-kanaliger adressierbarer Schalter
+ - DS2413 - 2-kanaliger adressierbarer Schalter
+ - DS1825 - Thermosensor mit programmierbarer Auflösung und ID
+ - EDS0066 - Vielfachsensor für Temperatur und Luftdruck
+ - LCD - LCD-Ansteuerung von Louis Swart
+
+
+ Das Hinzufügen weiterer Geräte ist im Modulcode (subroutine OWDevice_GetDetails ) sehr einfach möglich.
+
+ Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Großbuchstaben bestehen!
+
+ Bitte beachten: Um einer Verwechselung entgegenzuwirken, stößt das reading "state" der Geräte keine Events an.
+
+ Beispiele zur Einrichtung:
+
+
+ define myOWServer localhost:4304
+ get myOWServer devices
+ 10.487653020800 DS18S20
+ define myT1 10.487653020800
+ list myT1 10.487653020800
+ Internals:
+ ...
+ Readings:
+ 2012-12-22 20:30:07 temperature 23.1875
+ Fhem:
+ ...
+ getters:
+ address
+ family
+ id
+ power
+ type
+ temperature
+ templow
+ temphigh
+ polls:
+ temperature
+ setters:
+ alias
+ templow
+ temphigh
+ ...
+
+
+
+
+
+
+ Set-Befehle
+
+ set <name> interval <value>
+
+ value überschreibt das Abrufintervall der Datensätze. Der Wert ist in Sekunden anzugeben.
+
+ set <name> <reading> <value>
+
+ Setzt das <reading> auf <value> für das 1-Wire-Gerät <name>. Die verwendbaren Werte werden durch die
+ jeweiligen 1-wire-Geräte bestimmt.
+
+ Beispiel:
+
+
+
+
+
+
+
+ Get-Befehle
+
+ get <name> <reading> <value>
+
+ Holt das <reading> des 1- Wire Geräte- <name>. Die verwendbaren Werte werden durch die
+ jeweiligen 1-wire-Geräte bestimmt.
+
+ Beispiel:
+
+
+
+
+
+
+ Attribute
+
+
+ - IODev:
+ Bestimmt die OWServer-Instanz, welche für das Senden und Abrufen der Daten
+ eines OWDevice-Gerätes genutzt werden soll. Hinweis: Während des Starts
+ ordnet FHEM die neuen OWDevice-Geräte der jeweils zuletzt definierten OWServer-Instanz zu.
+ Deshalb verfährt man idealerweise so, dass man zuerst eine OWServer-Instanz und
+ anschließend die zugehörigen OWDevice-Geräte definiert. Danach definiert man die
+ nächste OWServer-Instanz, gefolgt von den zugehörigen OWDevice-Geräten, usw.
+
+ - trimvalues: Entfernt voran- und nachgestellte Leerzeichen aus den readings. Standartwert ist 1 (ein).
+ - polls: Eine per Komma getrennte Liste der abzurufenden readings. Mit diesem Attribut unterdrückt man alle standartmäßig abgerufenen readings und ersetzt sie durch die eigene Zusammenstellung.
+ - interfaces: Ersetzt die durch dieses Gerät erzeugten Interfaces.
+ - model: Angabe des Gerätetyps, z.B.: DS18S20.
+ - resolution: Angabe der Auflösung für die Temperaturmessung in bits, zur Verfügung stehen: 9, 10, 11 oder 12.
+ Hinweis: Geringere Auflösungen bewirken schnellere Reaktionen des Busses. Dies kann z.B. bei umfangreichen 1-Wire- Installationen hilfreich sein,
+ um eventuelle Stillstände von FHEM zu vermindern.
+ - eventMap
+ - readingFnAttributes
+
+
+
+
+
+
+
+OWFS
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWFS
+
+
+OWID
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWID
+
+
+OWLCD
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWLCD
+
+
+OWMULTI
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWMULTI
+
+
+OWSWITCH
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWSWITCH
+
+
+OWServer
+
+
+
+ Definition
+
+ define <name> OWServer <protocol>
+
+
+ Definiert eine logische OWServer- Instanz. OWServer ist die Serverkomponente des
+ 1-Wire Dateisystems. Sie ermöglicht den Zugriff auf
+ alle 1-Wire- Busteilnehmer eines Systems.
+ <protocol> hat das Format <hostname>:<port> Nähere Informationen dazu gibt es in der owserver Dokumentation.
+
+ Voraussetzung innerhalb von FHEM ist das Modul OWNet.pm von owfs.org, welches bereits mit FHEM ausgeliefert wird.
+ Das auf CPAN erhältliche OWNet- Modul beinhaltet seit dem 23.12.2012 einen Fehler, der es für Fernzugriffe unbrauchbar macht.
+ Auf dem Computer, an dem der 1-Wire- Bus angeschlossen ist, muss die Software "owserver" installiert sein. Zusätzlich sollte auf diesem Rechner die Konfigurationsdatei "owfs.conf" eingesehen bzw. angepasst werden. Einen WIKI- Artikel dazu gibt es hier.
+
+ Die vorhandenen 1-Wire- Busteilnehmer werden als OWDevice -Geräte definiert.
+ Wenn autocreate aktiviert ist, werden beim Start von FHEM alle Geräte automatisch erkannt und eingerichtet.
+
+ Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Großbuchstaben bestehen!
+
+ Beispiele für die Einrichtung:
+
+ define myLocalOWServer OWServer localhost:4304
+ define myRemoteOWServer OWServer 192.168.1.100:4304
+ define myRemoteOWServer OWServer raspi:4304
+
+
+ Hinweis: Sollten keine Geräte erkannt werden, kann man versuchen in der owserver- Konfigurationsdatei (owfs.conf) zwei Servereinträge anzulegen:
+ Einen mit localhost und einen mit dem "FQDN", bzw. dem Hostnamen, oder der IP-Adresse des Computers, auf dem die Software "owserver" läuft.
+
+
+
+
+
+ Set- Befehle
+
+ set <name> <value>
+
+ wobei value für einen der folgenden Befehle steht:
+ reopen
+ Erneuert die Verbindung zum owserver.
+
+ - owserver (OWFS) -spezifische Einstellungen:
+
+ timeout/directory
+ timeout/ftp
+ timeout/ha7
+ timeout/network
+ timeout/presence
+ timeout/serial
+ timeout/server
+ timeout/stable
+ timeout/uncached
+ timeout/usb
+ timeout/volatile
+ timeout/w1
+ units/pressure_scale
+ units/temperature_scale
+
+
+ Nähere Informationen zu diesen Einstellungen gibt es im owserver- Manual.
+
+
+
+
+
+
+ Get- Befehle
+
+ get <name> <value>
+
+ wobei value für einen der folgenden Befehle steht:
+ devices
+ Gibt eine Liste der Adressen und Typen aller von owserver erkannten Geräte aus. Außerdem
+ werden die entsprechenden OWDevice- Namen angezeigt, soweit sie bereits definiert sind.
+
+ errors
+ Liefert eine Fehlerstatistik zurück.
+ - owserver (OWFS) -spezifische Einstellungen:
+
+ /settings/timeout/directory
+ /settings/timeout/ftp
+ /settings/timeout/ha7
+ /settings/timeout/network
+ /settings/timeout/presence
+ /settings/timeout/serial
+ /settings/timeout/server
+ /settings/timeout/stable
+ /settings/timeout/uncached
+ /settings/timeout/usb
+ /settings/timeout/volatile
+ /settings/timeout/w1
+ /settings/units/pressure_scale
+ /settings/units/temperature_scale
+
+
+ Nähere Informationen zu diesen Einstellungen gibt es im owserver- Manual.
+
+
+
+
+
+ Attribute
+
+ - nonblocking
+ Holt alle readings (OWServer / OWDevice) über einen Tochterprozess. Dieses Verfahren stellt sicher,
+ dass FHEM während der Kommunikation mit owserver nicht angehalten wird.
+ Beispiel:
+ attr <name> nonblocking 1
+
+ - eventMap
+ - readingFnAttributes
+
+
+ Hinweis: Falls in FHEM trotzdem ungewöhnliche Stillstände auftreten, sollte das Attribut nonblocking wieder deaktiviert werden.
+
+
+
+
+OWTEMP
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWTEMP
+
+
+OWTHERM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWTHERM
+
+
+OWX
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: OWX
+
+
+PCA301
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: PCA301
+
+
+PHTV
+
+Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden.
+Die englische Version ist hier zu finden:
+
+
+
+
+PID
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: PID
+
+
+PID20
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: PID20
+
+
+PIFACE
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: PIFACE
+
+
+POKEYS
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: POKEYS
+
+
+PRESENCE
+
+
+ Das PRESENCE Module bietet mehrere Möglichkteiten um die Anwesenheit von Handys/Smartphones oder anderen mobilen Geräten (z.B. Tablets) zu erkennen.
+
+ Dieses Modul bietet dazu mehrere Modis an um Anwesenheit zu erkennen. Diese sind:
+
+ - lan-ping - Eine Erkennung auf Basis von Ping-Tests im lokalen LAN/WLAN
+ - fritzbox - Eine Erkennung aufgrund der internen Abfrage des Status auf der FritzBox (nur möglich, wenn FHEM auf einer FritzBox läuft)
+ - local-bluetooth - Eine Erkennung auf Basis von Bluetooth-Abfragen durch den FHEM Server. Das Gerät muss dabei in Empfangsreichweite sein, aber nicht sichtbar sein
+ - function - Eine Erkennung mithilfe einer selbst geschriebenen Perl-Funktion, welche den Anwesenheitsstatus ermittelt.
+ - shellscript - Eine Erkennung mithilfe eines selbst geschriebenen Skriptes oder Programm (egal in welcher Sprache).
+ - lan-bluetooth - Eine Erkennung durch Bluetooth-Abfragen via Netzwerk (LAN/WLAN) in ein oder mehreren Räumen
+
+
+ Jeder Modus kann optional mit spezifischen Prüf-Intervallen ausgeführt werden.
+
+ - check-interval - Das normale Prüfinterval in Sekunden für eine Anwesenheitsprüfung. Standardwert: 30 Sekunden
+ - present-check-interval - Das Prüfinterval in Sekunden, wenn ein Gerät anwesend (present) ist. Falls nicht angegeben, wird der Wert aus check-interval verwendet
+
+
+
+ Define
+ Modus: lan-ping
+ define <name> PRESENCE lan-ping <IP-Addresse oder Hostname> [ <Interval> [ <Anwesend-Interval> ] ]
+
+ Prüft ob ein Gerät über Netzwerk (üblicherweise WLAN) auf Ping-Anfragen reagiert und setzt entsprechend den Anwesenheitsstatus.
+ Beispiel
+ define iPhone PRESENCE lan-ping 192.168.179.21
+ Modus: fritzbox
+ define <name> PRESENCE fritzbox <Gerätename> [ <Interval> [ <Anwesend-Interval> ] ]
+
+ Prüft ob ein Gerät welches per WLAN mit der FritzBox verbunden ist, erreichbar durch Abfrage des Status mit dem Befehl ctlmgr_ctl.
+ Der Gerätename (Parameter: <Gerätename>) muss dem Namen entsprechen, welcher im Menüpunkt "Heimnetz" auf der FritzBox-Oberfläche angezeigt wird.
+ Dieser Modus ist nur verwendbar, wenn FHEM auf einer FritzBox läuft!
+ Beispiel
+ define iPhone PRESENCE fritzbox iPhone-4S
+ Modus: local-bluetooth
+ define <name> PRESENCE local-bluetooth <Bluetooth-Adresse> [ <Interval> [ <Anwesend-Interval> ] ]
+
+ Prüft ob ein Bluetooth-Gerät abgefragt werden kann und meldet dies als Anwesenheit. Für diesen Modus wird der Shell-Befehl "hcitool" benötigt
+ (wird durch das Paket bluez bereitgestellt), sowie ein funktionierender Bluetooth-Empfänger (intern oder als USB-Stick)
+ Beispiel
+ define iPhone PRESENCE local-bluetooth 0a:4f:36:d8:f9:8
+ Modus: function
+ define <name> PRESENCE function {...} [ <Interval> [ <Anwesend-Interval> ] ]
+
+ Prüft den Anwesenheitsstatus mithilfe einer selbst geschriebenen Perl-Funktion (z.B. SNMP Abfrage).
+ Diese Funktion muss 0 (Abwesend) oder 1 (Anwesend) zurückgeben. Ein entsprechendes Beispiel findet man im FHEM-Wiki.
+ Beispiel
+ define iPhone PRESENCE function {snmpCheck("10.0.1.1","0x44d77429f35c")
+ Mode: shellscript
+ define <name> PRESENCE shellscript "<Skript-Pfad> [<arg1>] [<argN>]..." [ <Interval> [ <Anwesend-Interval> ] ]
+
+ Prüft den Anwesenheitsstatus mithilfe eines selbst geschrieben Skripts oder Programmes (egal in welcher Programmier-/Skriptsprache)
+ Der Aufruf dieses Skriptes muss eine 0 (Abwesend) oder 1 (Anwesend) auf der Kommandozeile (STDOUT) ausgeben. Alle anderen Werte/Ausgaben werden als Fehler behandelt.
+ Beispiel
+ define iPhone PRESENCE shellscript "/opt/check_device.sh iPhone"
+ Modus: lan-bluetooth
+ Prüft ein Bluetooth-Gerät auf Anwesenheit über Netzwerk mit Hilfe von presenced oder collectord. Diese können auf jeder Maschine installiert werden,
+ welche eine Standard-Perl-Umgebung bereitstellt und über Netzwerk erreichbar ist.
+
+
+ define <name> PRESENCE lan-bluetooth <Bluetooth-Adresse> <IP-Adresse>[:Port] [ <Interval> ]
+
+ Der Standardport ist 5111 (presenced). Alternativ kann man den Port 5222 (collectord) nutzen. Generell ist der Port aber frei wählbar.
+ Beispiel
+ define iPhone PRESENCE lan-bluetooth 0a:4f:36:d8:f9:89 127.0.0.1:5222
+ presenced
+ Der presenced ist ein Perl Netzwerk Dienst, welcher eine Bluetooth-Anwesenheitserkennung von ein oder mehreren Geräten über Netzwerk bereitstellt.
+ Dieser lauscht standardmäßig auf TCP Port 5111 nach eingehenden Verbindungen von dem PRESENCE Modul oder einem collectord.
+
+Usage:
+ presenced -d [-p <port>] [-P <filename>]
+ presenced [-h | --help]
+
+
+Options:
+ -p, --port
+ TCP Port which should be used (Default: 5111)
+ -P, --pid-file
+ PID file for storing the local process id (Default: /var/run/presenced.pid)
+ -d, --daemon
+ detach from terminal and run as background daemon
+ -v, --verbose
+ Print detailed log output
+ -h, --help
+ Print detailed help screen
+
+
+ Zur Bluetooth-Abfrage wird der Shell-Befehl "hcitool" verwendet (Paket: bluez)
+ um sogenannte "Paging-Request" an die gewünschte Bluetooth Adresse (z.B. 01:B4:5E:AD:F6:D3) durchzuführen. Das Gerät muss dabei nicht sichtbar sein, allerdings ständig aktiviert sein
+ um Bluetooth-Anfragen zu beantworten.
+
+
+ Wenn ein Gerät anwesend ist, wird dies an FHEM übermittelt zusammen mit dem Gerätenamen als Reading.
+
+ Der presenced ist zum Download verfügbar als:
+
+
+ collectord
+
+ Der collectord ist ein Perl Netzwerk Dienst, welcher Verbindungen zu mehreren presenced-Instanzen verwaltet um eine koordinierte Suche nach ein oder mehreren Bluetooth-Geräten über Netzwerk durchzuführen.
+
+ Er lauscht auf TCP port 5222 nach eingehenden Verbindungen von einem PRESENCE Modul.
+
+Usage:
+ collectord -c <configfile> [-d] [-p <port>] [-P <pidfile>]
+ collectord [-h | --help]
+
+
+Options:
+ -c, --configfile <configfile>
+ The config file which contains the room and timeout definitions
+ -p, --port
+ TCP Port which should be used (Default: 5222)
+ -P, --pid-file
+ PID file for storing the local process id (Default: /var/run/collectord.pid)
+ -d, --daemon
+ detach from terminal and run as background daemon
+ -v, --verbose
+ Print detailed log output
+ -l, --logfile <logfile>
+ log to the given logfile
+ -h, --help
+ Print detailed help screen
+
+ Bevor der collectord verwendet werden kann, benötigt er eine Konfigurationsdatei in welcher alle Räume mit einem presenced-Agenten eingetragen sind. Diese Datei sieht wie folgt aus:
+
+
+ # Raum Definitionen
+ # =================
+ #
+ [Raum-Name] # Name des Raumes
+ address=192.168.0.10 # IP-Adresse oder Hostname
+ port=5111 # TCP Port welcher benutzt werden soll (standardmäßig 5111)
+ presence_timeout=120 # Prüfinterval in Sekunden für jede Abfrage eines Gerätes, welches anwesend ist
+ absence_timeout=20 # Prüfinterval in Sekunden für jede Abfrage eines Gerätes, welches abwesend ist
+
+ [Wohnzimmer]
+ address=192.168.0.11
+ port=5111
+ presence_timeout=180
+ absence_timeout=20
+
+
+ Wenn ein Gerät in irgend einem Raum anwesend ist, wird dies an FHEM übermittelt, zusammen mit dem Gerätenamen und dem Raum, in welchem das Gerät erkannt wurde.
+
+ Der collectord ist zum Download verfügbar als:
+
+
+
+
+
+
+
+ Set
+
+
+ - statusRequest - Startet einen sofortigen Check.
+
+
+
+
+ Get
+
+
+
+
+ Attributes
+
+ - do_not_notify
+ - readingFnAttributes
+ - disable
+ Wenn dieses Attribut aktiviert ist, wird die Anwesenheitserkennung nicht mehr durchgeführt.
+ Mögliche Werte: 0 => Erkennung durchführen , 1 => Keine Erkennungen durchführen
+ Standardwert ist 0 (Erkennung durchführen)
+ - ping_count
(Nur im Modus "ping" anwendbar auf Nicht-Windows-Maschinen)
+ Verändert die Anzahl der Ping-Pakete die gesendet werden sollen um die Anwesenheit zu erkennen.
+ Je nach Netzwerkstabilität können erste Pakete verloren gehen oder blockiert werden.
+ Standartwert ist 4 (Versuche)
+ - fritzbox_repeater
(Nur im Modus "fritzbox" anwendbar)
+ Wenn die FritzBox Teil eines Netzwerkes ist, welches mit Repeatern arbeitet, dann muss dieses Attribut gesetzt sein um die Erkennung von Geräten zu gewährleisten,
+ welche über einen Repeater erreichbar sind.
+
+ Dies gilt ebenso für Devices, welche keine Geschwindigkeitsangaben auf der FritzBox Seite (Heimnetz) anzeigen können.
+ ACHTUNG: Die Erkennung der Abwesenheit eines Gerätes in einem Repeater-Netzwerk kann ca. 15 - 20 Minuten dauern!!
+
+ Mögliche Werte: 0 => Standarderkennung verwenden, 1 => Erkennung für Repeatergeräte verwenden
+ Standardwert ist 0 (Standarderkennung verwenden)
+
+
+
+
+
+
+ Generierte Events:
+
+ Generelle Events:
+
+ - state: $state (absent|present|disabled) - Der Anwesenheitsstatus eine Gerätes (absent = abwesend; present = anwesend) oder "disabled" wenn das disable-Attribut aktiviert ist
+
+ Bluetooth-spezifische Events:
+
+ - device_name: $name - Der Name des Bluetooth-Gerätes, wenn es anwesend (Status: present) ist
+
+ presenced-/collectord-spezifische Events:
+
+ - command_accepted: $command_accepted (yes|no) - Wurde das letzte Kommando an den presenced/collectord akzeptiert (yes = ja, no = nein)?
+ - room: $room - Wenn das Modul mit einem collectord verbunden ist, zeigt dieses Event den Raum an, in welchem dieses Gerät erkannt wurde (Raumname entsprechend der Konfigurationsdatei des collectord)
+
+
+
+
+
+
+PachLog
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: PachLog
+
+
+Pushover
+
+ Pushover ist ein Dienst, um Benachrichtigungen von einer vielzahl
+ von Quellen auf Deinem Smartphone oder Tablet zu empfangen.
+ Du brauchst einen Account um dieses Modul zu verwenden.
+ Für weitere Informationen über den Dienst besuche pushover.net.
+
+ Diskutiere das Modul hier.
+
+
+
+ Define
+
+ define <name> Pushover <token> <user>
+
+ Du musst einen Account erstellen, um den User Key zu bekommen.
+ Und du musst eine Anwendung erstellen, um einen API Token zu bekommen.
+
+ Beispiel:
+
+ define Pushover1 Pushover 01234 56789
+
+
+
+
+ Set
+
+ set <name> msg <title> <msg> <device> <priority> <sound> [<retry> <expire>]
+
+
+ Beispiele:
+
+ set Pushover1 msg 'Titel' 'Dies ist ein Text.' '' 0 ''
+ set Pushover1 msg 'Notfall' 'Sicherheitsproblem im Wohnzimmer.' '' 2 'siren' 30 3600
+
+
+ Anmerkungen:
+
+ - Wenn device leer ist, wird die Nachricht an alle Geräte geschickt.
+
+ - Wenn sound leer ist, dann wird die Standardeinstellung in der App verwendet.
+
+ - Wenn die Priorität höher oder gleich 2 ist müssen retry und expire definiert sein.
+
+ - Für weiterführende Dokumentation über diese Parameter lies Dir die Pushover API durch.
+
+
+
+
+ Get
+
+ Attributes
+
+
+ - timestamp
+ Sende den Unix-Zeitstempel mit jeder Nachricht.
+
+
+
+
+ Generated events:
+
+
+
+
+
+
+
+ RESIDENTS
+
+
+ Define
+
+ define <rgr_ResidentsName> RESIDENTS
+
+ Stellt ein spezielles Dummy-Device bereit, um eine Gruppe von Personen zu repräsentieren, die zusammen wohnen.
+ Es kombiniert dabei logisch die individuellen Stati von ROOMMATE und GUEST Devices und erlaubt den Status für alle Mitglieder zeitgleich zu ändern. Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
+
+ Beispiele:
+
+ # Einzeln
+ define rgr_Residents RESIDENTS
+
+
+
+ Set
+
+ set <rgr_ResidentsName> <command> [<parameter>]
+
+ Momentan sind die folgenden Kommandos definiert.
+
+ -
+ addGuest - erstellt ein neues GUEST Device und fügt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Platzhalternamen eingeben und das wars.
+
+ -
+ addRoommate - erstellt ein neues GUEST Device und fügt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Vornamen eingeben und das wars.
+
+ -
+ removeGuest - zeigt alle Mitglieder vom Typ GUEST an und ermöglicht ein einfaches löschen des dazugehörigen Dummy Devices.
+
+ -
+ removeRoommate - zeigt alle Mitglieder vom Typ ROOMMATE an und ermöglicht ein einfaches löschen des dazugehörigen Dummy Devices.
+
+ -
+ state home,gotosleep,asleep,awoken,absent,gone wechselt den Status für alle Gruppenmitglieder gleichzeitig; siehe Attribut rgr_states, um die angezeigte Liste in FHEMWEB abzuändern
+
+
+
+
+
+ Mögliche Stati und ihre Bedeutung
+
+
+ Dieses Modul unterscheidet 7 verschiedene Stati:
+
+
+ -
+ home - Bewohner sind zu Hause und mindestens einer schläft nicht
+
+ -
+ gotosleep - alle anwesenden Bewohner sind auf dem Weg ins Bett (wenn sie nicht schon schlafen)
+
+ -
+ asleep - alle anwesenden Bewohner schlafen
+
+ -
+ awoken - mindestens einer der anwesenden Bewohner ist gerade aufgewacht
+
+ -
+ absent - keiner der Bewohner ist momentan zu Hause; mindestens einer ist aber in Kürze zurück
+
+ -
+ gone - alle Bewohner sind für längere Zeit verreist
+
+ -
+ none - kein Mitglied aktiv
+
+
+
+ Hinweis: Der Status 'none' kann nicht explizit gesetzt werden. Das setzen von 'gone' wird bei Mitgliedern vom Typ GUEST als 'none' behandelt.
+
+
+
+ Attribute
+
+
+ -
+ rgr_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
+
+ -
+ rgr_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
+
+
+
+
+
+ Generierte Readings/Events:
+
+
+ -
+ lastActivity - der letzte Status Wechsel eines Gruppenmitglieds
+
+ -
+ lastActivityBy - der Name des Gruppenmitglieds, dessen Status zuletzt geändert wurde
+
+ -
+ lastArrival - Zeitstempel der letzten Ankunft zu Hause
+
+ -
+ lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
+
+ -
+ lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
+
+ -
+ lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
+
+ -
+ lastState - der vorherige Status
+
+ -
+ presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
+
+ -
+ residentsAbsent - Anzahl der Bewohner mit Status 'absent'
+
+ -
+ residentsAsleep - Anzahl der Bewohner mit Status 'asleep'
+
+ -
+ residentsAwoken - Anzahl der Bewohner mit Status 'awoken'
+
+ -
+ residentsGone - Anzahl der Bewohner mit Status 'gone'
+
+ -
+ residentsGotosleep - Anzahl der Bewohner mit Status 'gotosleep'
+
+ -
+ residentsGuests - Anzahl der aktiven Gäste, welche momentan du den Bewohnern dazugezählt werden
+
+ -
+ residentsHome - Anzahl der Bewohner mit Status 'home'
+
+ -
+ residentsTotal - Summe aller aktiven Bewohner unabhängig von ihrem aktuellen Status
+
+ -
+ residentsTotalAbsent - Summe aller aktiven Bewohner, die unterwegs sind
+
+ -
+ residentsTotalPresent - Summe aller aktiven Bewohner, die momentan Zuhause sind
+
+ -
+ residentsTotalWayhome - Summe aller aktiven Bewohner, die momentan auf dem Weg zurück nach Hause sind
+
+ -
+ state - gibt den aktuellen Status wieder
+
+
+
+
+
+
+RFXCOM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: RFXCOM
+
+
+RFXMETER
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: RFXMETER
+
+
+RFXX10REC
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: RFXX10REC
+
+
+
+
+
+ ROOMMATE
+
+
+ Define
+
+ define <rr_FirstName> ROOMMATE [<Device Name der Bewohnergruppe>]
+
+ Stellt ein spezielles Dummy Device bereit, welches einen Mitbewohner repräsentiert.
+ Basierend auf dem aktuelle Status und anderen Readings können andere Aktionen innerhalb von FHEM angestoßen werden.
+
+ Wird vom übergeordneten Modul RESIDENTS verwendet, kann aber auch einzeln benutzt werden.
+
+ Beispiele:
+
+ # Einzeln
+ define rr_Manfred ROOMMATE
+
+ # Typisches Gruppenmitglied
+ define rr_Manfred ROOMMATE rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein
+
+ # Mitglied in mehreren Gruppen
+ define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # um Mitglied den Gruppen rgr_Residents und rgr_Parents zu sein
+
+ # Komplexe Familien Struktur
+ define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # Elternteil
+ define rr_Lisa ROOMMATE rgr_Residents,rgr_Parents # Elternteil
+ define rr_Rick ROOMMATE rgr_Residents,rgr_Children # Kind1
+ define rr_Alex ROOMMATE rgr_Residents,rgr_Children # Kind2
+
+
+
+ Bitte beachten, dass das RESIDENTS Gruppen Device zunächst angelegt werden muss, bevor ein ROOMMATE Objekt dort Mitglied werden kann.
+
+
+
+ Set
+
+ set <rr_FirstName> <command> [<parameter>]
+
+ Momentan sind die folgenden Kommandos definiert.
+
+ -
+ location - setzt das Reading 'location'; siehe auch Attribut rr_locations, um die in FHEMWEB angezeigte Liste anzupassen
+
+ -
+ mood - setzt das Reading 'mood'; siehe auch Attribut rr_moods, um die in FHEMWEB angezeigte Liste anzupassen
+
+ -
+ state home,gotosleep,asleep,awoken,absent,gone wechselt den Status; siehe auch Attribut rr_states, um die in FHEMWEB angezeigte Liste anzupassen
+
+
+
+
+
+ Mögliche Stati und ihre Bedeutung
+
+
+ Dieses Modul unterscheidet 6 verschiedene Stati:
+
+
+ -
+ home - Mitbrwohner ist zuhause und wach
+
+ -
+ gotosleep - Mitbewohner ist auf dem Weg ins Bett
+
+ -
+ asleep - Mitbewohner schläft
+
+ -
+ awoken - Mitbewohner ist gerade aufgewacht
+
+ -
+ absent - Mitbewohner ist momentan nicht zuhause, wird aber bald zurück sein
+
+ -
+ gone - Mitbewohner ist für längere Zeit verreist
+
+
+
+
+
+
+ Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location
+
+
+ Unter bestimmten Umständen führt der Wechsel des Status auch zu einer Änderung des Readings 'location'.
+
+ Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rr_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.
+
+ Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rr_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
+
+
+
+
+ Auto-Status 'gone'
+
+
+ Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Zähler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.
+ Der Standard ist nach 36 Stunden.
+
+ Dieses Verhalten kann über das Attribut rr_autoGoneAfter angepasst werden.
+
+
+
+
+ Anwesenheit mit anderen ROOMMATE oder GUEST Devices synchronisieren
+
+
+ Wenn Sie immer zusammen mit anderen Mitbewohnern oder Gästen das Haus verlassen oder erreichen, können Sie ihren Status ganz einfach auf andere Mitbewohner übertragen.
+ Durch das Setzen des Attributs rr_PassPresenceTo folgen die dort aufgeführten Mitbewohner ihren eigenen Statusänderungen nach 'home', 'absent' oder 'gone'.
+
+ Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von Gästen) nicht beachtet werden.
+
+
+
+
+ Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence
+
+
+ Unter bestimmten Umständen hat der Wechsel des Readings 'location' auch einen Einfluss auf den tatsächlichen Status.
+
+ Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rr_locationHome gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.
+
+ Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rr_locationUnderway gesetzt wurde, so lösen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' übertragen.
+
+ Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rr_locationWayhome gesetzt wurde, so führt das VERLASSEN einer dort aufgeführten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 Möglichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).
+ Die Ankunft zuhause setzt den Wert von 'wayhome' zurück auf '0'.
+
+ Wenn Sie auch das GEOFANCY Modul verwenden, können Sie das Reading 'location' ganz einfach über GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:
+
+ define n_rr_Manfred.location notify geofancy:currLoc_Manfred.* set rr_Manfred location $EVTPART1
+
+ Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zukünftig automatisch alle Statusänderungen wie oben beschrieben durchgeführt.
+
+
+
+ Attribute
+
+
+ -
+ rr_autoGoneAfter - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' ändert, wenn der aktuelle Status 'absent' ist; Standard ist 36 Stunden
+
+ -
+ rr_locationHome - hiermit übereinstimmende Lokationen werden als zuhause gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'home'
+
+ -
+ rr_locationUnderway - hiermit übereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird für das Zusammenspiel bei Statusänderungen benutzt; mehrere Einträge durch Leerzeichen trennen; Standard ist 'underway'
+
+ -
+ rr_locationWayhome - das Verlassen einer Lokation, die hier aufgeführt ist, lässt das Reading 'wayhome' auf '1' setzen; mehrere Einträge durch Leerzeichen trennen; Standard ist "wayhome"
+
+ -
+ rr_locations - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
+
+ -
+ rr_moodDefault - die Stimmung, die nach Ankunft zuhause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
+
+ -
+ rr_moodSleepy - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
+
+ -
+ rr_moods - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Einträge nur durch Komma trennen und KEINE Leerzeichen verwenden
+
+ -
+ rr_passPresenceTo - synchronisiere die Anwesenheit mit anderen ROOMMATE oder GUEST Devices; mehrere Devices durch Leerzeichen trennen
+
+ -
+ rr_realname - wo immer ROOMMATE den richtigen Namen verwenden möchte nutzt es den Wert des Attributs alias oder group; Standard ist group
+
+ -
+ rr_showAllStates - die Stati 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess über das devStateIcon Attribut zu ermöglichen; Standard ist 0
+
+ -
+ rr_states - Liste aller in FHEMWEB angezeigter Stati; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterstützte Stati führen zu Fehlern
+
+
+
+
+
+ Generierte Readings/Events:
+
+
+ -
+ durTimerAbsence - Timer, der die Dauer der Abwesenheit in Minuten anzeigt
+
+ -
+ durTimerPresence - Timer, der die Dauer der Anwesenheit in Minuten anzeigt
+
+ -
+ durTimerSleep - Timer, der die Schlafdauer in Minuten anzeigt
+
+ -
+ lastArrival - Zeitstempel der letzten Ankunft zu Hause
+
+ -
+ lastAwake - Zeitstempel des Endes des letzten Schlafzyklus
+
+ -
+ lastDeparture - Zeitstempel des letzten Verlassens des Zuhauses
+
+ -
+ lastDurAbsence - Dauer der letzten Abwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurPresence - Dauer der letzten Anwesenheit im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastDurSleep - Dauer des letzten Schlafzyklus im folgenden Format: Stunden:Minuten:Sekunden
+
+ -
+ lastLocation - der vorherige Aufenthaltsort
+
+ -
+ lastMood - die vorherige Stimmung
+
+ -
+ lastSleep - Zeitstempel des Beginns des letzten Schlafzyklus
+
+ -
+ lastState - der vorherige Status
+
+ -
+ location - der aktuelle Aufenthaltsort
+
+ -
+ presence - gibt den Zuhause Status in Abhängigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
+
+ -
+ mood - die aktuelle Stimmung
+
+ -
+ state - gibt den aktuellen Status wieder
+
+ -
+ wayhome - abhängig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zurück nach Hause ist
+
+
+
+
+
+
+RPII2C
+
+
+ Ermöglicht den Zugriff auf die I2C Schnittstellen des Raspberry Pi über logische Module. Register von I2C IC's können auch direkt gelesen und geschrieben werden.
+ Dieses Modul funktioniert grunsätzlich auf allen Linux Systemen, die /dev/i2c-x bereitstellen.
+
+ Vorbereitung:
+
+ -
+ Dieses Modul nutzt das gpio Utility der WiringPi Bibliothek um FHEM Schreibrechte auf die I2C Schnittstelle zu geben.
+ WiringPi Installation ist hier beschrieben: RPI_GPIO
+ Für andere Systeme (BeagleBone, etc.) oder auch für das Raspberry kann auf WiringPi verzichtet werden. In diesem Fall müssen die Dateien /dev/i2c-x Schreib-/Leserechte, für den User unter dem FHEM läuft, gesetzt bekommen. (z.B. in der etc/init.d/fhem)
+
+ -
+ Installation der I2C Abhängigkeiten:
+ sudo apt-get install libi2c-dev i2c-tools build-essential
+
+ -
+ I2C Kernelmodule laden:
+ modules Datei öffnen
+ sudo nano /etc/modules
+ folgendes einfügen
+
+ i2c-dev
+ i2c-bcm2708
+
+
+ -
+ Desweiteren ist das Perl Modul Device::SMBus für den Zugrff auf den I2C Bus notwendig:
+ sudo apt-get install libmoose-perl
+ sudo cpan Device::SMBus
+
+
+
+ Define
+
+ define <name> RPII2C <I2C Bus Number>
+ Die <I2C Bus Number> ist die Nummer des I2C Bus an den die I2C IC's angeschlossen werden (0 oder 1)
+
+
+
+ Set
+
+ -
+ Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein I2C device (manche I2C Module sind so einfach, das es nicht einmal mehrere Register gibt):
+ set <name> writeByte <I2C Address> <value>
+
+ -
+ Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein Register des adressierten I2C device:
+ set <name> writeByteReg <I2C Address> <Register Address> <value>
+
+ -
+ Schreibe n-bytes auf einen Registerbereich, beginnend mit dem angegebenen Register:
+ set <name> writeBlock <I2C Address> <Register Address> <value>
+
+ -
+ Identisch zu writeBlock nur kann der Registerbereich sequentiell beschrieben werden. Die Anzahl der Byte muss ein vielfaches der <number of registers> sein.
+
set <name> writeNBlock <I2C Address> <Register Address> <number of registers> <value>
+
+ Beispiele:
+
+ Schreibe 0xAA zu Modul mit I2C Addresse 0x60
+ set test1 writeByte 60 AA
+ Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E
+ set test1 writeByteReg 6E 01 AA
+ Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E, schreibe danach 0x55 in das Register 0x02 als einzelne Befehle
+ set test1 writeByteReg 6E 01 AA 55
+ Schreibe 0xA4 zu Register 0x03, 0x00 zu Register 0x04 und 0xDA zu Register 0x05 des Moduls mit der I2C Adresse 0x60 zusammen als ein Blockbefehl
+ set test1 writeBlock 60 03 A4 00 DA
+
+
+
+
+ Get
+
+ get <name> read <I2C Address> [<Register Address> [<number of registers>]]
+
+ Auslesen der Registerinhalte des I2C Moduls
+ Examples:
+
+ Lese Byte vom Modul mit der I2C Adresse 0x60
+ get test1 writeByte 60
+ Lese den Inhalt des Registers 0x01 vom Modul mit der I2C Adresse 0x6E.
+ get test1 read 6E 01 AA 55
+ Lese den Inhalt des Registerbereichs 0x03 bis 0x06 vom Modul mit der I2C Adresse 0x60.
+ get test1 read 60 03 4
+
+
+
+
+ Attribute
+
+
+
+
+
+RPI_GPIO
+
+
+
+ Das Raspberry Pi ermöglicht direkten Zugriff zu einigen GPIO's über den Pfostenstecker P1 (und P5 bei V2). Die Steckerbelegung ist in den Tabellen unter Define zu finden.
+ Dieses Modul ermöglicht es, die herausgefühten GPIO's direkt als Ein- und Ausgang zu benutzen. Die Eingänge können zyklisch abgefragt werden oder auch sofort bei Pegelwechsel gesetzt werden.
+ Wichtig: Niemals Spannung an einen GPIO anlegen, der als Ausgang eingestellt ist! Die interne Logik der GPIO's arbeitet mit 3,3V. Ein überschreiten der 3,3V zerstört den GPIO und vielleicht auch den ganzen Prozessor!
+
+ Vorbereitung:
+ Auf GPIO Pins wird im Modul über sysfs zugegriffen. Die Dateien befinden sich unter /system/class/gpio und können nur mit root erreicht werden.
+ Dieses Modul nutzt das gpio Tool von der WiringPi. Bibliothek um GPIS zu exportieren und die korrekten Nutzerrechte zu setzen.
+ Installation WiringPi:
+
+ sudo apt-get update
+ sudo apt-get upgrade
+ sudo apt-get install git-core
+ git clone git://git.drogon.net/wiringPi
+ cd wiringPi
+ ./build
+ sudo adduser fhem gpio
+ Das wars!
+
+
+ Define
+
+ define <name> RPI_GPIO <GPIO number>
+ Alle verfügbaren GPIO number sind in den folgenden Tabellen zu finden
+
+
+
+ PCB Revision 1 P1 pin header
+
+ Function | Pin | | Pin | Function |
+ 3,3V | 1 | | 2 | 5V |
+ GPIO 0 (SDA0) | 3 | | 4 | |
+ GPIO 1 (SCL0) | 5 | | 6 | GND |
+ GPIO 4 (GPCLK0) | 7 | | 8 | GPIO 14 (TxD) |
+ | 9 | | 10 | GPIO 15 (RxD) |
+ GPIO 17 | 11 | | 12 | GPIO 18 (PCM_CLK) |
+ GPIO 21 | 13 | | 14 | |
+ GPIO 22 | 15 | | 16 | GPIO 23 |
+ | 17 | | 18 | GPIO 24 |
+ GPIO 10 (MOSI) | 19 | | 20 | |
+ GPIO 9 (MISO) | 21 | | 22 | GPIO 25 |
+ GPIO 11 (SCLK) | 23 | | 24 | GPIO 8 (CE0) |
+ | 25 | | 26 | GPIO 7 (CE1) |
+ |
+
+ PCB Revision 2 P1 pin header
+
+ Function | Pin | | Pin | Function |
+ 3,3V | 1 | | 2 | 5V |
+ GPIO 2 (SDA1) | 3 | | 4 | |
+ GPIO 3 (SCL1) | 5 | | 6 | GND |
+ GPIO 4 (GPCLK0) | 7 | | 8 | GPIO 14 (TxD) |
+ | 9 | | 10 | GPIO 15 (RxD) |
+ GPIO 17 | 11 | | 12 | GPIO 18 (PCM_CLK) |
+ GPIO 27 | 13 | | 14 | |
+ GPIO 22 | 15 | | 16 | GPIO 23 |
+ | 17 | | 18 | GPIO 24 |
+ GPIO 10 (MOSI) | 19 | | 20 | |
+ GPIO 9 (MISO) | 21 | | 22 | GPIO 25 |
+ GPIO 11 (SCLK) | 23 | | 24 | GPIO 8 (CE0) |
+ | 25 | | 26 | GPIO 7 (CE1) |
+ |
+
+ PCB Revision 2 P5 pin header
+
+ Function | Pin | | Pin | Function |
+ 5V | 1 | | 2 | 3,3V |
+ GPIO 28 (SDA0) | 3 | | 4 | GPIO 29 (SCL0) |
+ GPIO 30 | 5 | | 6 | GPOI 31 |
+ GND | 7 | | 8 | GND |
+ |
+
+
+ Beispiele:
+
+ define Pin12 RPI_GPIO 18
+ attr Pin12
+ attr Pin12 poll_interval 5
+
+
+
+
+ Set
+
+ set <name> <value>
+
+ value ist dabei einer der folgenden Werte:
+ - Für GPIO der als output konfiguriert ist
+
+ Die set extensions werden auch unterstützt.
+
+ - Für GPIO der als input konfiguriert ist
+
+ readval aktualisiert das reading Pinlevel und, wenn attr toggletostate nicht gesetzt ist, auch state
+
+
+ Beispiele:
+
+ set Pin12 off
+ set Pin11,Pin12 on
+
+
+
+
+ Get
+
+ get <name>
+
+ Gibt "high" oder "low" entsprechend dem aktuellen Pinstatus zurück und schreibt den Wert auch in das reading Pinlevel
+
+
+
+ Attributes
+
+ - direction
+ Setzt den GPIO auf Ein- oder Ausgang.
+ Standard: input, gültige Werte: input, output
+
+ - interrupt
+ kann nur gewählt werden, wenn der GPIO als Eingang konfiguriert ist
+ Aktiviert Flankenerkennung für den GPIO
+ bei jedem interrupt Ereignis werden die readings Pinlevel und state aktualisiert
+ Standard: none, gültige Werte: none, falling, rising, both
+ Bei "both" wird ein reading Longpress angelegt, welches auf on gesetzt wird solange der Pin länger als 1s gedrückt wird
+ Bei "falling" und "rising" wird ein reading Toggle angelegt, das bei jedem Interruptereignis toggelt und das Reading Counter, das bei jedem Ereignis um 1 hochzählt
+
+
+ - poll_interval
+ Fragt den Zustand des GPIO regelmäßig ensprechend des eingestellten Wertes in Minuten ab
+ Standard: -, gültige Werte: Dezimalzahl
+
+ - toggletostate
+ Funktioniert nur bei auf falling oder rising gesetztem Attribut interrupt
+ Wenn auf "yes" gestellt wird bei jedem Triggerereignis das state reading invertiert
+ Standard: no, gültige Werte: yes, no
+
+ - pud_resistor
+ Interner Pullup/down Widerstand
+ Standard: -, gültige Werte: off, up, down
+
+ - debounce_in_ms
+ Wartezeit in ms bis nach ausgelöstem Interrupt der entsprechende Pin abgefragt wird. Kann zum entprellen von mechanischen Schaltern verwendet werden
+ Standard: 0, gültige Werte: Dezimalzahl
+
+ - restoreOnStartup
+ Wiederherstellen der Portzust&äuml;nde nach Neustart
+ Standard: on, gültige Werte: on, off
+
+ - longpressinterval
+ Funktioniert nur bei auf both gesetztem Attribut interrupt
+ Zeit in Sekunden, die ein GPIO auf high verweilen muss, bevor das Reading longpress auf on gesetzt wird
+ Standard: 1, gültige Werte: 0.1 - 10
+
+ - readingFnAttributes
+
+
+
+
+
+RSS
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: RSS
+
+
+RandomTimer
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: RandomTimer
+
+
+Revolt
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: Revolt
+
+
+SCIVT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SCIVT
+
+
+SISPM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SISPM
+
+
+SIS_PMS
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SIS_PMS
+
+
+SML
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SML
+
+
+STACKABLE_CC
+
+ Mit Hilfe dieses Moduls kann man die "Stackable CC" Geräte von busware.de in
+ FHEM integrieren. Diese Geräte ermöglichen eine Menge von CULs an einem RPi
+ anzuschliessen.
+ Das erste Gerät wird als CUL definiert, alle nachfolgenden als STACKABLE_CC.
+
+
+
+ Define
+
+ define <name> STACKABLE_CC <Base-Device-Name>
+
+ <Base-Device-Name> ist der Name des Gerätes, der als Basis für das
+ aktuelle Gerät dient.
+ Beispiel:
+
+ define SCC0 CUL /dev/ttyAMA0@38400
+ attr SCC0 rfmode SlowRF
+ define SCC1 STACKABLE_CC CUL
+ attr SCC1 rfmode HomeMatic
+ define SCC2 STACKABLE_CC CUL
+ attr SCC2 rfmode Max
+
+ Wichtig:
+
+ - Das rfmode Attribut muss explizit spezifiziert werden. Das gilt nur
+ für die STACKABLE_CC Definitionen, und nicht für die erste, die
+ als CUL definiert wurde.
+ - Falls SlowRF spezifiziert wurde, dann muss das FHTID explizit gesetzt
+ werden, mit folgendem Kommando: "set SCCX raw T01HHHH". Auch das ist nur
+ für die STACKABLE_CC nötig.
+ - Falls ein Gerät umbenannt wird, was als Basis für ein STACKABLE_CC
+ dient, dann muss es auch in der Definition des abhängigen Gerätes
+ umbenannt werden, und FHEM muss neugestartet werden.
+
+
+
+
+ Set Die gleichen wie für das CUL.
+
+
+ Get Die gleichen wie für das CUL.
+
+
+ Attributes
+
+ - IODev
+ - ignore
+ Die anderen Attribute sind die gleichen wie für das CUL.
+
+
+
+STV
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: STV
+
+
+SUNRISE_EL
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SUNRISE_EL
+
+
+SVG
+
+
+ Define
+
+ define <name> SVG <logDevice>:<gplotfile>:<logfile>
+
+ Dies ist das Zeichenmodul von FHEMWEB, mit dem Vektorgrafiken (SVG) erzeugt
+ werden.
+ Beispiel:
+
+ define MyPlot SVG inlog:temp4hum4:CURRENT
+
+
+
+ Hinweise:
+
+ - Normalerweise müssen SVG-Geräte nicht manuell erzeugt
+ werden, da FHEMWEB es für den Nutzer einfach macht: man muss in
+ der Detailansicht eines FileLogs wechseln und auf "Create SVG instance"
+ klicken.
+
+ - CURRENT als <logfile> wird immer das aktuelle Logfile
+ benutzen, selbst dann, wenn der Name des Logfiles sich
+ regelmäßig ändert.
+
+ - Aus historischen Gründen benötigt jede SVG-Instanz eine
+ sog. .gplot Datei, die auch als Input für das gnuplot Programm
+ verwendet werden kann. Einige besondere Zeilen (welche mit #FileLog
+ oder #DbLog beginnen) werden zusätzlich benutzt, diese werden von
+ gnuplot als Kommentar betrachtet. Auf der anderen Seite implementiert
+ dieses Modul nicht alle gnuplot-Attribute.
+
+
+
+
+
+
+ Set
+
+ - copyGplotFile
+ Kopiert die aktuell ausgewählte .gplot Datei in eine neue Datei, die
+ den Namen der SVG Instanz trägt; bereits bestehende Dateien mit
+ gleichem Namen werden überschrieben. Diese Vorgehensweise ist
+ notwendig, wenn man den Ploteditor benutzt. Erzeugt man aus der
+ Detailansicht des FileLogs die SVG Instanz, wird eine eindeutige
+ .gplot-Datei erzeugt. In diesem Fall ist dieses Befehl nicht
+ erforderlich.
+
+
+
+
+ Get
+
+
+ Attribute
+
+
+ - fixedrange [offset]
+ Version 1
+ Enthält zwei Zeit-Spezifikationen in der Schreibweise YYYY-MM-DD,
+ getrennt durch ein Leerzeichen. Im Plotmodus gnuplot-Scroll oder SVG wird
+ das vorgegebene Intervall verwendet und ein Scrolling der Zeitachse ist
+ nicht möglich. Dies wird z.B. verwendet, um sich die Daten des
+ vergangenen Jahres ohne Scrollen anzusehen.
+
+ Version 2
+ Wenn der Wert entweder Tag, <N>Tage, Woche, Monat oder Jahr lautet,
+ kann der Zoom-Level für dieses SVG unabhängig vom
+ User-spezifischen Zoom eingestellt werden. Diese Einstellung ist
+ nützlich für mehrere Plots auf einer Seite: Eine Grafik ist mit
+ dem Standard-Zoom am aussagekräftigsten, die anderen mit einem Zoom
+ über eine Woche.
+ Der optionale ganzzahlige Parameter [offset] setzt ein anderes
+ Zeitintervall (z.B. letztes Jahr: fixedrange year -1 ,
+ vorgestern: fixedrange day -2 ).
+
+
+
+ - fixedoffset <nTage>
+ Verschiebt den Plot-Offset um einen festen Wert (in Tagen).
+
+
+
+ - startDate
+ Setzt das Startdatum für den Plot. Wird für Demo-Installationen
+ verwendet.
+
+
+ - plotsize
+
+ - plotmode
+
+
+ - label
+ Eine Liste, bei der die einzelnen Werte mit einem zweifachen Doppelpunkt
+ voneinander getrennt werden. Diese Liste wird verwendet um die <L#>
+ Zeichenfolgen in der .gplot-Datei zu ersetzen. Dabei steht das # für
+ eine laufende Ziffer beginnend mit 1 (<L1>, <L2>, usw.).
+ Jeder Wert wird als Perl-Ausdruck bewertet, deshalb hat man Zugriff z.B.
+ auf die hinterlegten Funktionen.
+
+ Egal, ob es sich bei der Plotart um gnuplot-scroll oder SVG handelt, es
+ können ebenfalls die Werte der individuellen Kurve für min,
+ max, avg, cnt, sum, currval (letzter Wert) und currdate (letztes Datum)
+ durch Zugriff der entsprechenden Werte über das DataHash verwendet
+ werden. Siehe untenstehendes Beispiel:
+
+ - Beschriftunng der rechten und linken y-Achse:
+
+ - Fhem config:
+ attr wl_1 label "Temperature"::"Humidity"
+ - Eintrag in der .gplot-Datei:
+ set ylabel <L1>
+ set y2label <L2>
+
+
+ - Überschrift aus Maximum und dem letzten Wert der ersten
+ Kurve(FileLog)
+
+ - Fhem config:
+ attr wl_1 label "Max $data{max1}, Current
+ $data{currval1}"
+ - Eintrag in der .gplot-Datei:
+ set title <L1>
+
+
+
+
+
+
+ - title
+ Eine besondere Form der Überschrift (siehe oben), bei der die
+ Zeichenfolge <TL> in der .gplot-Datei ersetzt wird.
+ Standardmäßig wird als <TL> der Dateiname des Logfiles
+ eingesetzt.
+
+
+
+ - plotfunction
+ Eine Liste, deren Werte durch Leerzeichen voneinander getrennt sind.
+ Diese Liste wird verwendet um die <SPEC#> Zeichenfolgen in der
+ .gplot-Datei zu ersetzen. Dabei steht das # für eine laufende Ziffer
+ beginnend mit 1 (<SPEC1>, <SPEC2>, usw.) in der #FileLog oder
+ #DBLog Anweisung. Mit diesem Attrbute ist es möglich eine
+ .gplot-Datei für mehrere Geräte mit einem einzigen logdevice zu
+ verwenden.
+
+ Beispiel:
+ - #FileLog <SPEC1>
+ mit:
+ attr <SVGdevice> plotfunction "4:IR\x3a:0:"
+ anstelle von:
+ #FileLog 4:IR\x3a:0:
+
+ - #DbLog <SPEC1>
+ mit:
+ attr <SVGdevice> plotfunction
+ "Garage_Raumtemp:temperature::"
+ anstelle von:
+ #DbLog Garage_Raumtemp:temperature::
+
+
+
+
+
+
+
+ Plot-Editor
+
+ Dieser Editor ist in der Detailansicht der SVG-Instanz zu sehen. Die
+ meisten Features sind hier einleuchtend und bekannt, es gibt aber auch
+ einige Ausnahmen:
+
+ - wenn für ein Diagramm die Überschrift unterdrückt werden
+ soll, muss im Eingabefeld
notitle eingetragen werden.
+
+
+ - wenn ein fester Wert (nicht aus einer Wertespalte) definiert werden
+ soll, für den Fall, das eine Zeichenfoge gefunden wurde (z.B. 1
+ für eine FS20 Schalter, der AN ist und 0 für den AUS-Zustand),
+ muss zuerst das Tics-Feld gefüllt, und die .gplot-Datei
+ gespeichert werden, bevor der Wert über die Dropdownliste erreichbar
+ ist.
+
Beispiel:
+ Eingabe im Tics-Feld: ("On" 1, "Off" 0)
+ .gplot-Datei speichern
+ "1" als Regexp switch.on und "0" für den Regexp switch.off vom
+ Spalten-Dropdown auswählen (auf die Gänsefüßchen
+ achten!).
+ .gplot-Datei erneut speichern
+
+
+
+ Die sichtbarkeit des Plot-Editors kann mit dem FHEMWEB Attribut ploteditor konfiguriert werden.
+
+
+
+
+SWAP
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SWAP
+
+
+SWAP_0000002200000003
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: SWAP_0000002200000003
+
+
+SYSMON
+
+ Dieses Modul liefert diverse Informationen und Statistiken zu dem System, auf dem FHEM-Server ausgeführt wird.
+ Es werden nur Linux-basierte Systeme unterstützt. Manche Informationen sind hardwarespezifisch und sind daher nicht auf jeder Plattform
+ verfügbar.
+ Bis jetzt wurde dieses Modul auf folgenden Systemen getestet: Raspberry Pi (Debian Wheezy), BeagleBone Black,
+ FritzBox 7390 (keine CPU-Daten), WR703N unter OpenWrt.
+
+ Define
+
+ define <name> SYSMON [<M1>[ <M2>[ <M3>[ <M4>]]]]
+
+ Diese Anweisung erstellt eine neue SYSMON-Instanz.
+ Die Parameter M1 bis M4 legen die Aktualisierungsintervalle für verschiedenen Readings (Statistiken) fest.
+ Die Parameter sind als Multiplikatoren für die Zeit, die durch INTERVAL_BASE definiert ist, zu verstehen.
+ Da diese Zeit fest auf 60 Sekunden gesetzt ist, können die Mx-Parameters als Zeitintervalle in Minuten angesehen werden.
+ Wird einer (oder mehrere) Multiplikatoren auf Null gesetzt werden, wird das entsprechende Readings deaktiviert.
+
+ Die Parameter sind für die Aktualisierung der Readings nach folgender Schema zuständig:
+
+ - M1: (Default-Wert: 1)
+ cpu_freq, cpu_temp, cpu_temp_avg, loadavg, stat_cpu, stat_cpu_diff, stat_cpu_percent, stat_cpu_text
+
+ - M2: (Default-Wert: M1)
+ ram, swap
+
+ - M3: (Default-Wert: M1)
+ eth0, eth0_diff, wlan0, wlan0_diff
+
+ - M4: (Default-Wert: 10*M1)
+ Filesystem-Informationen
+
+ - folgende Parameter werden immer anhand des Basisintervalls (unabhängig von den Mx-Parameters) aktualisiert:
+ fhemuptime, fhemuptime_text, idletime, idletime_text, uptime, uptime_text
+
+
+
+
+ Readings:
+
+
+ - cpu_bogomips
+ CPU Speed: BogoMIPS
+
+ - cpu_freq
+ CPU-Frequenz
+
+
+ - cpu_temp
+ CPU-Temperatur
+
+
+ - cpu_temp_avg
+ Durchschnitt der CPU-Temperatur, gebildet über die letzten 4 Werte.
+
+
+ - fhemuptime
+ Zeit (in Sekunden) seit dem Start des FHEM-Servers.
+
+
+ - fhemuptime_text
+ Zeit seit dem Start des FHEM-Servers: Menschenlesbare Ausgabe (texttuelle Darstellung).
+
+
+ - idletime
+ Zeit (in Sekunden und in Prozent), die das System (nicht der FHEM-Server!)
+ seit dem Start in dem Idle-Modus verbracht hat. Also die Zeit der Inaktivität.
+
+
+ - idletime_text
+ Zeit der Inaktivität des Systems seit dem Systemstart in menschenlesbarer Form.
+
+
+ - loadavg
+ Ausgabe der Werte für die Systemauslastung (load average): 1 Minute-, 5 Minuten- und 15 Minuten-Werte.
+
+
+ - ram
+ Ausgabe der Speicherauslastung.
+
+
+ - swap
+ Benutzung und Auslastung der SWAP-Datei (bzw. Partition).
+
+
+ - uptime
+ Zeit (in Sekenden) seit dem Systemstart.
+
+
+ - uptime_text
+ Zeit seit dem Systemstart in menschenlesbarer Form.
+
+
+ - Netzwerkinformationen
+ Informationen zu den über die angegebene Netzwerkschnittstellen übertragene Datenmengen
+ und der Differenz zu der vorherigen Messung.
+
+ Beispiele:
+ Menge der übertragenen Daten über die Schnittstelle eth0.
+ eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB
+ Änderung der übertragenen Datenmenge in Bezug auf den vorherigen Aufruf (für eth0).
+ eth0_diff: RX: 0.66 MB, TX: 0.06 MB, Total: 0.72 MB
+
+
+ - Dateisysteminformationen
+ Informationen zu der Größe und der Belegung der gewünschten Dateisystemen.
+ Seit Version 1.1.0 können Dateisysteme auch benannt werden (s.u.).
+ In diesem Fall werden für die diese Readings die angegebenen Namen verwendet.
+ Dies soll die Übersicht verbessern und die Erstellung von Plots erleichten.
+ Beispiel:
+ fs_root: Total: 7340 MB, Used: 3573 MB, 52 %, Available: 3425 MB at /
+
+
+ - CPU Auslastung
+ Informationen zu der Auslastung der CPU(s).
+ Beispiel:
+ stat_cpu: 10145283 0 2187286 90586051 542691 69393 400342
+ stat_cpu_diff: 2151 0 1239 2522 10 3 761
+ stat_cpu_percent: 4.82 0.00 1.81 93.11 0.05 0.00 0.20
+ stat_cpu_text: user: 32.17 %, nice: 0.00 %, sys: 18.53 %, idle: 37.72 %, io: 0.15 %, irq: 0.04 %, sirq: 11.38 %
+
+
+ - Benutzerdefinierte Einträge
+ Diese Readings sind Ausgaben der Kommanden, die an das Betriebssystem übergeben werden.
+ Die entsprechende Angaben werden im Attribut user-defined vorgenommen.
+
+
+
+
+
+ Beispiel-Ausgabe:
+
+
+
+cpu_freq |
+ |
+ |
+
+ |
+ |
+ |
+
+ |
+ |
+ |
+
+ |
+RX: 2954.22 MB, TX: 3469.21 MB, Total: 6423.43 MB |
+ |
+
+ |
+RX: 6.50 MB, TX: 0.23 MB, Total: 6.73 MB |
+ |
+
+ |
+ |
+ |
+
+ |
+0 days, 03 hours, 07 minutes |
+ |
+
+ |
+ |
+ |
+
+ |
+10 days, 18 hours, 37 minutes (88.35 %) |
+ |
+
+ |
+ |
+ |
+
+ |
+Total: 485 MB, Used: 140 MB, 28.87 %, Free: 345 MB |
+ |
+
+ |
+ |
+ |
+
+ |
+ |
+ |
+
+ |
+12 days, 04 hours, 42 minutes |
+ |
+
+ |
+RX: 0.00 MB, TX: 0.00 MB, Total: 0 MB |
+ |
+
+ |
+RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB |
+ |
+
+ |
+Total: 7404 MB, Used: 3533 MB, 50 %, Available: 3545 MB at / |
+ |
+
+ |
+Total: 56 MB, Used: 19 MB, 33 %, Available: 38 MB at /boot |
+ |
+
+fs_usb1 |
+Total: 30942 MB, Used: 6191 MB, 21 %, Available: 24752 MB at /media/usb1 |
+2013-11-27 00:05:36 |
+
+stat_cpu |
+10145283 0 2187286 90586051 542691 69393 400342 |
+2013-11-27 00:05:36 |
+
+stat_cpu_diff |
+2151 0 1239 2522 10 3 761 |
+2013-11-27 00:05:36 |
+
+stat_cpu_percent |
+4.82 0.00 1.81 93.11 0.05 0.00 0.20 |
+2013-11-27 00:05:36 |
+
+stat_cpu_text |
+user: 32.17 %, nice: 0.00 %, sys: 18.53 %, idle: 37.72 %, io: 0.15 %, irq: 0.04 %, sirq: 11.38 % |
+2013-11-27 00:05:36 |
+
+
+
+
+ Get:
+
+ - interval
+ Listet die bei der Definition angegebene Polling-Intervalle auf.
+
+
+ - list
+ Gibt alle Readings aus.
+
+
+ - update
+ Aktualisiert alle Readings. Alle Werte werden neu abgefragt.
+
+
+ - version
+ Zeigt die Version des SYSMON-Moduls.
+
+
+
+
+ Set:
+
+ - interval_multipliers
+ Definiert Multipliers (wie bei der Definition des Gerätes).
+
+
+ - clean
+ Löscht benutzerdefinierbare Readings. Nach einem Update (oder nach der automatischen Aktualisierung) werden neue Readings generiert.
+
+
+ - clear <reading name>
+ Löscht den Reading-Eintrag mit dem gegebenen Namen. Nach einem Update (oder nach der automatischen Aktualisierung)
+ wird dieser Eintrag ggf. neu erstellt (falls noch definiert). Dieses Mechanismus erlaubt das gezielte Löschen nicht mehr benötigter
+ benutzerdefinierten Einträge.
+
+
+
+
+ Attributes:
+
+ - filesystems <reading name>[:<mountpoint>[:<comment>]],...
+ Gibt die zu überwachende Dateisysteme an. Es wird eine kommaseparierte Liste erwartet.
+ Reading-Name wird bei der Anzeige und Logging verwendet, Mount-Point ist die Grundlage der Auswertung,
+ Kommentar ist relevant für die HTML-Anzeige (s. SYSMON_ShowValuesHTML)
+ Beispiel: /boot,/,/media/usb1
+ oder: fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
+ Im Sinne der besseren Übersicht sollten zumindest Name und MountPoint angegeben werden.
+
+
+ - network-interfaces <name>[:<interface>[:<comment>]],...
+ Kommaseparierte Liste der Netzwerk-Interfaces, die überwacht werden sollen.
+ Jeder Eintrag besteht aus dem Reading-Namen, dem Namen
+ des Netwerk-Adapters und einem Kommentar für die HTML-Anzeige (s. SYSMON_ShowValuesHTML). Wird kein Doppelpunkt verwendet,
+ wird der Wert gleichzeitig als Reading-Name und Interface-Name verwendet.
+ Beispiel ethernet:eth0:Ethernet,wlan:wlan0:WiFi
+
+
+ - user-defined <readingsName>:<Interval_Minutes>:<Comment>:<Cmd>,...
+ Diese kommaseparierte Liste definiert Einträge mit jeweils folgenden Daten:
+ Reading-Name, Aktualisierungsintervall in Minuten, Kommentar und Betriebssystem-Commando.
+ Die BS-Befehle werden entsprechend des angegebenen Intervalls ausgeführt und als Readings mit den angegebenen Namen vermerkt.
+ Kommentare werden für die HTML-Ausgaben (s. SYSMON_ShowValuesHTML) benötigt.
+ Alle Parameter sind nicht optional!
+ Es ist wichtig, dass die angegebenen Befehle schnell ausgeführt werden, denn in dieser Zeit wird der gesamte FHEM-Server blockiert!
+ Werden Ergebnisse der lang laufenden Operationen benötigt, sollten diese z.B als CRON-Job eingerichtet werden
+ und in FHEM nur die davor gespeicherten Ausgaben visualisiert.
+ Beispiel: Anzeige der vorliegenden Paket-Aktualisierungen für das Betriebssystem:
+ In einem cron-Job wird folgendes täglich ausgeführt:
+ apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null > /opt/fhem/data/updatestatus.txt
+
+ Das Attribute uder-defined wird auf
sys_updates:1440:System Aktualisierungen:cat /opt/fhem/data/updatestatus.txt gesetzt.
+ Danach wird die Anzahl der verfügbaren Aktualisierungen täglich als Reading 'sys_updates' protokolliert.
+
+
+ - disable
+ Mögliche Werte: 0,1 . Bei 1 wird die Aktualisierung gestoppt.
+
+
+
+
+ Plots:
+
+ Für dieses Modul sind bereits einige gplot-Dateien vordefiniert:
+
+ FileLog-Versionen:
+
+ SM_RAM.gplot
+ SM_CPUTemp.gplot
+ SM_FS_root.gplot
+ SM_FS_usb1.gplot
+ SM_Load.gplot
+ SM_Network_eth0.gplot
+ SM_Network_eth0t.gplot
+ SM_Network_wlan0.gplot
+ SM_CPUStat.gplot
+ SM_CPUStatSum.gplot
+ SM_CPUStatTotal.gplot
+
+ DbLog-Versionen:
+
+ SM_DB_all.gplot
+ SM_DB_CPUFreq.gplot
+ SM_DB_CPUTemp.gplot
+ SM_DB_Load.gplot
+ SM_DB_Network_eth0.gplot
+ SM_DB_RAM.gplot
+
+
+
+
+ HTML-Ausgabe-Methode (für ein Weblink): SYSMON_ShowValuesHTML(<SYSMON-Instanz>[,<Liste>])
+
+ Das Modul definiert eine Funktion, die ausgewählte Readings in HTML-Format ausgibt.
+ Als Parameter wird der Name des definierten SYSMON-Geräts erwartet.
+ Der zweite Parameter ist optional und gibt eine Liste der anzuzeigende Readings
+ im Format <ReadingName>[:<Comment>[:<Postfix>]] an.
+ Dabei gibt ReadingName den anzuzeigenden Reading an, der Wert aus Comment wird als der Anzeigename verwendet
+ und Postfix wird nach dem eihentlichen Wert angezeigt (so können z.B. Einheiten wie MHz angezeigt werden).
+ Falls kein Comment angegeben ist, wird eine intern vordefinierte Beschreibung angegeben.
+ Bei benutzerdefinierbaren Readings wird ggf. Comment aus der Definition verwendet.
+ Wird keine Liste angegeben, wird eine vordefinierte Auswahl verwendet (alle Werte).
+ define sysv1 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
+ define sysv2 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'cpu_freq:CPU Frequenz: MHz'))}
+
+
+ Text output method (see Weblink): SYSMON_ShowValuesText(<SYSMON-Instance>[,<Liste>])
+
+ Analog SYSMON_ShowValuesHTML, jedoch formatiert als reines Text.
+
+
+ Beispiele:
+
+
+ # Modul-Definition
+ define sysmon SYSMON 1 1 1 10
+ #attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,^~ /.*usb.*,~ /$
+ attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent
+ attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
+ attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi
+ attr sysmon group RPi
+ attr sysmon room 9.03_Tech
+
+ # Log
+ define FileLog_sysmon FileLog ./log/sysmon-%Y-%m.log sysmon
+ attr FileLog_sysmon group RPi
+ attr FileLog_sysmon logtype SM_CPUTemp:Plot,text
+ attr FileLog_sysmon room 9.03_Tech
+
+ # Visualisierung: CPU-Temperatur
+ define wl_sysmon_temp SVG FileLog_sysmon:SM_CPUTemp:CURRENT
+ attr wl_sysmon_temp group RPi
+ attr wl_sysmon_temp label "CPU Temperatur: Min $data{min2}, Max $data{max2}, Last $data{currval2}"
+ attr wl_sysmon_temp room 9.03_Tech
+
+ # Visualisierung: Netzwerk-Datenübertragung für eth0
+ define wl_sysmon_eth0 SVG FileLog_sysmon:SM_Network_eth0:CURRENT
+ attr wl_sysmon_eth0 group RPi
+ attr wl_sysmon_eth0 label "Netzwerk-Traffic eth0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
+ attr wl_sysmon_eth0 room 9.03_Tech
+
+ # Visualisierung: Netzwerk-Datenübertragung für wlan0
+ define wl_sysmon_wlan0 SVG FileLog_sysmon:SM_Network_wlan0:CURRENT
+ attr wl_sysmon_wlan0 group RPi
+ attr wl_sysmon_wlan0 label "Netzwerk-Traffic wlan0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
+ attr wl_sysmon_wlan0 room 9.03_Tech
+
+ # Visualisierung: CPU-Auslastung (load average)
+ define wl_sysmon_load SVG FileLog_sysmon:SM_Load:CURRENT
+ attr wl_sysmon_load group RPi
+ attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
+ attr wl_sysmon_load room 9.03_Tech
+
+ # Visualisierung: RAM-Nutzung
+ define wl_sysmon_ram SVG FileLog_sysmon:SM_RAM:CURRENT
+ attr wl_sysmon_ram group RPi
+ attr wl_sysmon_ram label "RAM-Nutzung Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
+ attr wl_sysmon_ram room 9.03_Tech
+
+ # Visualisierung: Dateisystem: Root-Partition
+ define wl_sysmon_fs_root SVG FileLog_sysmon:SM_FS_root:CURRENT
+ attr wl_sysmon_fs_root group RPi
+ attr wl_sysmon_fs_root label "Root Partition Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
+ attr wl_sysmon_fs_root room 9.03_Tech
+
+ # Visualisierung: Dateisystem: USB-Stick
+ define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT
+ attr wl_sysmon_fs_usb1 group RPi
+ attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
+ attr wl_sysmon_fs_usb1 room 9.03_Tech
+
+ # Anzeige der Readings zum Einbinden in ein 'Raum'.
+ define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
+ attr SysValues group RPi
+ attr SysValues room 9.03_Tech
+
+ # Anzeige CPU Auslasung
+ define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT
+ attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
+ attr wl_sysmon_cpustat group RPi
+ attr wl_sysmon_cpustat room 9.99_Test
+ attr wl_sysmon_cpustat plotsize 840,420
+ define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT
+ attr wl_sysmon_cpustat_s label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
+ attr wl_sysmon_cpustat_s group RPi
+ attr wl_sysmon_cpustat_s room 9.99_Test
+ attr wl_sysmon_cpustat_s plotsize 840,420
+ define wl_sysmon_cpustatT SVG FileLog_sysmon:SM_CPUStatTotal:CURRENT
+ attr wl_sysmon_cpustatT label "CPU-Auslastung"
+ attr wl_sysmon_cpustatT group RPi
+ attr wl_sysmon_cpustatT plotsize 840,420
+ attr wl_sysmon_cpustatT room 9.99_Test
+
+
+
+
+
+
+SYSSTAT
+
+ Das Modul stellt Systemstatistiken für den Rechner, auf dem FHEM läuft bzw.
+ für ein entferntes Linux System, das per vorkonfiguriertem ssh Zugang ohne Passwort
+ erreichbar ist, zur Vefügung.
+
+ Notes:
+
+ - Dieses Modul benötigt
Sys::Statistics::Linux für Linux.
+ Es kann mit 'cpan install Sys::Statistics::Linux '
+ bzw. auf Debian mit 'apt-get install libsys-statistics-linux-perl '
+ installiert werden.
+
+ - Um einen Zielrechner mit snmp zu überwachen, muss
+
Net::SNMP installiert sein.
+
+ - Um die Lastwerte zu plotten, kann der folgende Code verwendet werden:
+
+ define sysstatlog FileLog /usr/local/FHEM/var/log/sysstat-%Y-%m.log sysstat
+ attr sysstatlog nrarchive 1
+ define wl_sysstat weblink fileplot sysstatlog:sysstat:CURRENT
+ attr wl_sysstat label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
+ attr wl_sysstat room System
+
+ - Um das Wurzel-Dateisystem (Mountpunkt '/') bei Plots der Plattennutzung zu erhalten,
+ sollte dieser Code '
#FileLog 4:/\x3a:0: ' bzw. '#FileLog 4:\s..\s:0: '
+ und nicht dieser Code '#FileLog 4:/:0: ' verwendet werden, da der letztere
+ alle Mountpunkte darstellt. .
+
+
+
+ Define
+
+ define <name> SYSSTAT [<interval> [<interval_fs>] [<host>]]
+
+
+ definiert ein SYSSTAT Device.
+
+ Die (Prozessor)last wird alle <interval> Sekunden aktualisiert. Standard bzw. Minimum ist 60.
+ Die Plattennutzung wird alle <interval_fs> Sekunden aktualisiert. Standardwert ist <interval>*60
+ und Minimum ist 60.
+ <interval_fs> wird nur angenähert und funktioniert am Besten, wenn <interval_fs>
+ ein ganzzahliges Vielfaches von <interval> ist.
+
+ Wenn <host> angegeben wird, muss der Zugang per ssh ohne Passwort möglich sein.
+
+ Beispiele:
+
+ define sysstat SYSSTAT
+ define sysstat SYSSTAT 300
+ define sysstat SYSSTAT 60 600
+
+
+
+
+ Readings
+
+ - load
+ die durchschnittliche (Prozessor)last der letzten 1 Minute (für Windows Rechner mit
+ snmp angenähertem Wert)
+ - state
+ die durchschnittliche (Prozessor)last der letzten 1, 5 und 15 Minuten (für Windows
+ Rechner die Nutzung pro CPU via snmp ermittelt)
+ - user, system, idle, iowait
+ den Prozentsatz der entsprechenden Systemlast (nur für Linux Systeme)
+ - <mountpoint>
+ Anzahl der freien Bytes für <mountpoint>
+
+
+
+ Get
+
+ get <name> <value>
+
+ Werte für value sind
+ - filesystems
+ zeigt die Dateisysteme an, die überwacht werden können.
+
+
+
+ Attributes
+
+ - disable
+ lässt die Timer weiterlaufen, aber stoppt die Speicherung der Daten.
+ - filesystems
+ Liste mit Komma getrennten Dateisystemen (nicht Mountpunkten) die überwacht
+ werden sollen.
+ Beispiele:
+
+ attr sysstat filesystems /dev/md0,/dev/md2
+ attr sysstat filesystems /dev/.*
+ attr sysstat filesystems 1,3,5
+
+ - showpercent
+ Wenn gesetzt, wird die Nutzung in Prozent angegeben. Wenn nicht gesetzt, wird der verfübare
+ Platz in Bytes angezeigt.
+ - snmp
+ 1 -> snmp wird verwendet, um Last, Einschaltzeit und Dateisysteme (inkl. physikalischem und
+ virtuellem Speicher) zu überwachen
+ - stat
+ 1 -> überwacht Prozentsatz der user, system, idle und iowait Last
+ (nur auf Linux Systemen verfügbar)
+ - raspberrytemperature
+ Wenn gesetzt und > 0 wird der Temperatursensor auf dem Raspberry Pi ausgelesen.
+ Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.
+ - synologytemperature
+ Wenn gesetzt und > 0 wird die Temperatur einer Synology Diskstation ausgelesen (erfordert snmp).
+ Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.
+ - raspberrycpufreq
+ Wenn gesetzt und > 0 wird die Raspberry Pi CPU Frequenz ausgelesen.
+ - uptime
+ Wenn gesetzt und > 0 wird die Betriebszeit (uptime) des Systems ausgelesen.
+ Wenn Wert 2 ist, wird die Betriebszeit (uptime) in Sekunden angezeigt.
+ - useregex
+ Wenn Wert gesetzt, werden die Einträge der Dateisysteme als regex behandelt.
+ - ssh_user
+ Der Username für den ssh Zugang auf dem entfernten Rechner.
+ - readingFnAttributes
+
+
+
+
+TCM
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TCM
+
+
+THRESHOLD
+
+ Vielfältige Steuerungen, bei denen durch die Auswertung von Sensordaten eine Steuerung erfolgen soll, können mit Hilfe dieses Moduls realisiert werden.
+ Nach der Definition eines THRESHOLD-Moduls und der Vorgabe eines Sollwertes beginnt bereits das definierte Modul mit der Steuerung. Im einfachsten Fall liest das Modul einen Sensor aus, der Werte als Dezimalzahlen liefert
+ und schaltet beim Ãœberschreiten einer definierten Schwellen-Obergrenze (Sollwert)
+ bzw. beim Unterschreiten einer Schwellen-Untergrenze einen Aktor oder führt beliebige FHEM/Perl-Befehle aus.
+ Typisches Anwendungsgebiet ist z. B. die Nachbildung eines Thermostats oder Hygrostats - auch Zweipunktregler genannt.
+
+ Mit Hilfe des Moduls, bzw. vieler solcher Module, lassen sich einfache oder auch komplexe Steuerungen für Heizung, Kühlung, Lüftung, Entfeuchtung, Beschattung oder z. B. einfache Benachrichtung
+ beim Über- oder Unterschreiten eines bestimmten Wertes realisieren. Dabei müssen keine If-Abfragen in Perl oder Notify-Definitionen vorgenommen werden.
+ Das führt, nicht nur bei FHEM-Anfängern, zu schnell erstellten und übersichtlichen Steuerungen, ohne zwingend in die Perl-Materie einsteigen zu müssen.
+
+ Nach der Definition eines Moduls vom Typ THRESHOLD z. B. mit:
+
+ define <name> THRESHOLD <sensor> <actor>
+
+ erfolgt die eigentliche Steuerung über die Vorgabe eines Sollwertes. Das geschieht über:
+
+ set <name> desired <value>
+
+ Das Modul beginnt mit der Steuerung erst dann, wenn ein Sollwert gesetzt wird!
+
+ Die Vorgabe des Sollwertes kann bereits bei der Definition des Moduls angegeben werden. Alternativ kann der Sollwert von einem weiteren Sensor kommen.
+ Damit kann eine Steuerung durch den Vergleich zweier Sensoren stattfinden.
+ Typisches Anwendungsbeispiel ist z. B. die Steuerung von Umwälz- oder Zirkulationspumpen.
+
+ Die Vorgabe der Solltemperatur kann auch von beliebigen Wandthermostaten (z. B. HM, MAX, FHT) genutzt werden.
+
+ Das Schaltverhalten des THRESHOLD-Moduls kann zusätzlich durch einen weiteren Sensor oder eine Sensorgruppe,
+ definiert über structure (z. B. Fensterkontakte), über eine AND- bzw. OR-Verknüpfung beeinflusst werden.
+
+ Ebenfalls ist die Kombination mehrerer THRESHOLD-Module miteinander möglich.
+
+
+ Beispiele für Heizungssteuerung:
+
+ Einfaches Heizungsthermostat:
+
+ Es soll bis 20 Grad geheizt werden. Beim Unterschreiten der Untergrenze von 19=20-1 Grad (Sollwert-Hysterese) wird die Heizung wieder eingeschaltet.
+
+ define TH_room THRESHOLD temp_room heating
+ set TH_room desired 20
+
+ Zeitgesteuertes Heizen mit Hilfe des Heating_Control-Moduls:
+
+ define TH_room THRESHOLD temp_room heating
+ define HC_room Heating_Control TH_room 06:00|22 22:00|18 set @ desired %
+
+ Steuerung einer Heizung durch ein Wandthermostat mit Ãœbernahme der Soll- und Ist-Temperatur vom Wandthermostat:
+
+ define TH_Heizung THRESHOLD WT_ch1:measured-temp:1:WT_ch2:desired-temp Heizung
+
+ Mit set TH_Heizung desired 17 wird die Vorgabe vom Wandthermostat übersteuert bis set TH_Heizung external aufgerufen wird.
+
+ Heizung in Kombination mit einem Fensterkontakt mit Zuständen: open, closed:
+
+ define TH_room THRESHOLD temp_room OR win_sens heating
+
+ Heizung in Kombination mit mehreren Fensterkontakten:
+
+ define W_ALL structure W_type W1 W2 W3 ....
+ attr W_ALL clientstate_behavior relative
+ attr W_ALL clientstate_priority open closed
+
+ define thermostat THRESHOLD S1 OR W_ALL heating
+
+ Kombination mehrerer THRESHOLD-Module miteinander:
+
+ Es soll bis 21 Grad geheizt werden, aber nur, wenn die Außentemperatur unter 15 Grad ist:
+
+ define TH_outdoor THRESHOLD outdoor:temperature:0:15
+ define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating
+ set TH_room desired 21
+
+
+ Beispiele für Belüftungssteuerung:
+
+ Einfache Belüftung anhand der Luftfeuchtigkeit:
+
+ Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
+
+ define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1
+
+ Belüftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen:
+
+ Es soll gelüftet werden, wenn die Luftfeuchtigkeit im Zimmer über 70 % ist und der Taupunkt innen höher ist als außen.
+
+ define TH_hum THRESHOLD sens:humidity:10:70||||on:off|_sc
+ define dewpoint dewpoint indoor
+ define dewpoint dewpoint outdoor
+ define TH_room THRESHOLD indoor:dewpoint:0:outdoor:dewpoint AND TH_hum:state:on ventilator|set @ on|set @ off|2
+
+ Belüftung in Kombination mit einem Lichtschalter mit Nachlaufsteuerung:
+
+ Der Lüfter soll angehen, wenn das Licht mindestens 2 Minuten lang brennt oder die Luftfeuchtigkeit 65 % überschreitet,
+ der Lüfter soll ausgehen, wenn die Luftfeuchtigkeit unter 60 % fällt und das Licht mindestens 3 Minuten lang aus ist.
+
+ define ventilator_state dummy
+ define w_ventilator_state_off watchdog light_switch:off 00:03 light_switch:on set ventilator_state off;; trigger w_ventilator_state_off .
+ define w_ventilator_state_on watchdog light_switch:on 00:02 light_switch:off set ventilator_state on;; trigger w_ventilator_state_on .
+ define TH_ventilator THRESHOLD humsensor:humidity:5:65 OR ventilator_state:state:on ventilator|set @ on|set @ off|1
+
+
+ Beispiele für die Steuerung der Warmwasserzirkulation:
+
+ Zeitgesteuerte Warmwasserzirkulation:
+
+ In der Hauptzeit soll die Wassertemperatur im Rücklauf mindestens 38 Grad betragen.
+
+ define TH_circ TRHESHOLD return_w:temperature:0 circ_pump
+ define HC_circ Heating_Control TH_circ 12345|05:30|38 67|07:00|38 23:00|15 set @ desired %
+
+ Alternative Steuerung mit Sollwert-Vorgabe durch einen weiteren Sensor des Warmwasserspeichers:
+
+ Die Rücklauftemperatur soll 5 Grad (offset) unter der Warmwasserspeichertemperatur liegen und bis zu 4 Grad (Hysterese) schwanken dürfen.
+
+ define TH_circ THRESHOLD return_w:temperature:4:water_storage:temperature:-5 circ_pump
+
+
+ Beispiele für Beschattungssteuerung:
+
+ Beispiel für einfache Beschattung im Sommer:
+
+ Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der Südseite) wird der Rolladen auf 30 % heruntergefahren,
+ wenn die Raumtemperatur über 23 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 23),
+ will man von der Sonnenenergie profitieren und den Rollladen oben lassen.
+
+ define TH_shutter_room THRESHOLD T_room AND sun:state:on shutter_room|set @ 30||2
+ define HC_R_Keller Heating_Control TH_shutter_room 12:00|23 20:00|30 set @ desired %
+
+ Beispiel für Beschattung im Sommer mit Verzögerung und automatischem Hochfahren des Rollladens:
+
+ Zusätzlich zum obigen Beispiel wird der Rollladen erst heruntergefahren, wenn die Sonne mindestens 15 Minuten scheint
+ und wieder hochgefahren, wenn die Sonne mindestens 30 Minuten nicht mehr scheint.
+
+ define sun_state dummy
+ define w_sun_state_off watchdog sun:off 00:30 sun:on set sun_state off;; trigger w_sun_state_off .
+ define w_sun state_on watchdog sun:on 00:15 sun:off set sun_state on;; trigger w_sun_state_on .
+ define TH_shutter_room THRESHOLD T_room AND sun_state:state:on shutter_room|set @ 30|set @ 100|2
+ define HC_R_Keller Heating_Control TH_shutter_room 12:00|23 20:00|30 set @ desired %
+
+ Beispiel für Beschattung mit Verzögerung mit Hilfe eines Helligkeitssensors:
+
+ Der Rollladen soll herunterfahren, wenn der Helligkeitssensor mindesten 15 Minuten einen Schwellenwert von 10000 überschreitet
+ und wieder hochfahren, wenn der Schwellenwert 10000 mindestens 30 Minuten lang unterschritten wird.
+
+ define sun dummy
+ define sun_state dummy
+ define TH_lightness THRESHOLD lightness_sensor:0:10000 sun||||on:off|_sc
+ define w_sun_state_off watchdog sun:off 00:30 sun:on set sun_state off;; trigger w_sun_state_off .
+ define w_sun state_on watchdog sun:on 00:15 sun:off set sun_state on;; trigger w_sun_state_on .
+ define TH_shutter_room THRESHOLD T_room AND sun_state:state:on shutter_room|set @ 30|set @ 100|2
+
+
+ Beispiele für die Ausführung beliebiger FHEM/Perl-Befehlsketten:
+
+ define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1
+ define thermostat THRESHOLD sensor alarm|{Log 2,"Wert überschritten"}|set @ off|
+ define thermostat THRESHOLD sensor ||{Log 2,"Wert unterschritten"}|
+
+
+ Einige weitere Bespiele für Entfeuchtung, Klimatisierung, Bewässerung:
+
+ define hygrostat THRESHOLD hym_sens:humidity dehydrator|set @ on|set @ off|1
+ define hygrostat THRESHOLD hym_sens:humidity AND Sensor2:state:closed dehydrator|set @ on|set @ off|1
+ define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1
+ define thermostat THRESHOLD temp_sens AND Sensor2:state:closed aircon|set @ on|set @ off|1
+ define hygrostat THRESHOLD hym_sens:humidity:20 watering|set @ off|set @ on|2
+
+
+ Beispiele für angepasste Statusanzeige des THRESHOLD-Moduls:
+
+ define thermostat THRESHOLD sensor aircon|set @ on|set @ off|2|on:off
+
+ Beispiel für reine Zustandanzeige (z. B. für Zustandsauswertung in anderen Modulen) ohne Ausführung von Code:
+
+ define thermostat THRESHOLD sensor:temperature:0:30
+
+ entspricht wegen Defaultwerte:
+
+ define thermostat THRESHOLD sensor:temperature:0:30||||off:on|_sc
+
+ Es soll der Modus (mode), Status (state_cmd), Sollvorgabewert (desired_value) und Wert des ersten Sensors (sensor_value) angezeigt werden:
+
+ define TH_living_room THRESHOLD T_living_room heating|set @ off|set @ on|2|off:on|_m _sc _dv _s1v
+
+ oder
+
+ define TH_living_room THRESHOLD T_living_room heating
+ attr TH_living_room state_cmd1_gt off
+ attr TH_living_room state_cmd2_lt on
+ attr TH_living_room state_format _m _sc _dv _s1v
+
+
+
+ Define
+
+
+ define <name> THRESHOLD <sensor>:<reading>:<hysteresis>:<target_value>:<offset> AND|OR <sensor2>:<reading2>:<state> <actor>|<cmd1_gt>|<cmd2_lt>|<cmd_default_index>|<state_cmd1_gt>:<state_cmd2_lt>|<state_format>
+
+
+ - sensor
+ ein in FHEM definierter Sensor
+
+
+ - reading (optional)
+ Reading des Sensors, der einen Wert als Dezimalzahl beinhaltet
+ Defaultwert: temperature
+
+
+ - hysteresis (optional)
+ Hysterese, daraus errechnet sich die Untergrenze = Sollwert - hysteresis
+ Defaultwert: 1 bei Temperaturen, 10 bei Feuchtigkeit
+
+
+ - target_value (optional)
+ bei Zahl: Initial-Sollwert, wenn kein Wert vorgegeben wird, muss er mit "set desired value" gesetzt werden.
+ sonst: <sensorname>:<reading>, hier kann ein weiterer Sensor angegeben werden, der den Sollwert dynamisch vorgibt.
+ Defaultwert: kein
+
+
+ - offset (optional)
+ Offset zum Sollwert
+ Damit errechnet sich: die Sollwertobergrenze = Sollwert + offset und die Sollwertuntergrenze = Sollwert - Hysterese + offset
+ Defaultwert: 0
+
+
+
+ - AND|OR (optional)
+ Verknüpfung mit einem optionalen zweiten Sensor
+
+
+ - sensor2 (optional, nur in Verbindung mit AND oder OR)
+ ein definierter Sensor, dessen Status abgefragt wird
+
+
+ - reading2 (optional)
+ Reading, der den Status des Sensors beinhaltet
+ Defaultwert: state
+
+
+ - state (optional)
+ Status des Sensors, der zu einer Aktion führt
+ Defaultwert: open
+
+
+ - actor (optional)
+ ein in FHEM definierter Aktor
+
+
+ - cmd1_gt (optional)
+ FHEM/Perl Befehl, der beim Überschreiten des Sollwertes ausgeführt wird bzw.
+ wenn status des sensor2 übereinstimmt. @ ist ein Platzhalter für den angegebenen Aktor.
+ Defaultwert: set actor off, wenn Aktor angegeben ist
+
+
+ - cmd2_lt (optional)
+ FHEM/Perl Befehl, der beim Unterschreiten der Untergrenze (Sollwert-Hysterese) ausgeführt wird bzw.
+ wenn status des sensor2 nicht übereinstimmt. @ ist ein Platzhalter für den angegebenen Aktor.
+ Defaultwert: set actor on, wenn Aktor angegeben ist
+
+
+ - cmd_default_index (optional)
+ FHEM/Perl Befehl, der nach dem Setzen des Sollwertes ausgeführt wird, bis Sollwert oder die Untergrenze erreicht wird.
+ 0 - kein Befehl
+ 1 - cmd1_gt
+ 2 - cmd2_lt
+ Defaultwert: 2, wenn Aktor angegeben ist, sonst 0
+
+
+ - state_cmd1_gt (optional, wird gleichzeitig als Attribut definiert)
+ Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd1_gt ausgeführt wurde.
+ Defaultwert: kein
+
+
+ - state_cmd2_lt (optional, wird gleichzeitig als Attribut definiert)
+ Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd2_lt ausgeführt wurde.
+ Defaultwert: kein
+
+
+ - state_format (optional, wird gleichzeitig als Attribut definiert und kann dort verändert werden)
+ Format der Statusanzeige: beliebiger Text mit Platzhaltern
+ Mögliche Platzhalter:
+ _m: mode
+ _dv: desired_value
+ _s1v: sensor_value
+ _s2s: sensor2_state
+ _sc: state_cmd
+ Defaultwert: _m _dv _sc, _sc, wenn state_cmd1_gt und state_cmd2_lt ohne Aktor gesetzt wird.
+
+
+
+
+
+ Set
+
+ set <name> desired <value>
+ Setzt den Sollwert. Wenn kein Sollwert gesetzt ist, ist das Modul nicht aktiv.
+ Sollwert-Vorgabe durch einen Sensor wird hiermit übersteuert, solange bis "set external" gesetzt wird.
+
+
+ set <name> deactivated <value>
+ Modul wird deaktiviert.
+
+
+ set <name> active
+ Modul wird aktiviert, falls unter target_value ein Sensor für die Sollwert-Vorgabe definiert wurde, wird der aktuelle Sollwert solange eingefroren bis "set external" gesetzt wird.
+
+
+ set <name> externel
+ Modul wird aktiviert, Sollwert-Vorgabe kommt vom Sensor, falls ein Sensor unter target_value definierte wurde.
+
+
+ set <name> hysteresis <value>
+ Setzt Hysterese-Wert.
+
+
+ set <name> offset <value>
+ Setzt Offset-Wert.
+ Defaultwert: 0
+
+
+ set <name> cmd1_gt
+ Führt das unter cmd1_gt definierte Kommando aus.
+
+
+ set <name> cmd2_lt
+ Führt das unter cmd2_lt definierte Kommando aus.
+
+
+
+
+ Get
+
+
+
+
+ Attributes
+
+
+
+
+THZ
+
+ THZ Modul: Kommuniziert mittels einem seriellen Interface RS232/USB (z.B. /dev/ttyxx), oder mittels ser2net (z.B. 10.0.x.x:5555) mit einer Tecalor / Stiebel
+ Eltron Wärmepumpe.
+ Getestet mit einer Tecalor THZ303/Sol (Serielle Geschwindigkeit 57600/115200@USB) und einer THZ403 (Serielle Geschwindigkeit 115200) mit identischer
+ Firmware 4.39.
+ Getestet mit einer Stiebel LWZ404 (Serielle Geschwindigkeit 115200@USB) mit Firmware 5.39.
+ Getestet auf FritzBox, nas-qnap, Raspberry Pi and MacOS.
+ Dieses Modul funktioniert nicht mit äterer Firmware; Gleichwohl, das "parsing" könnte leicht angepasst werden da die Register gut
+ beschrieben wurden.
+ https://answers.launchpad.net/heatpumpmonitor/+question/100347
+ Implementiert: Lesen der Statusinformation sowie Lesen und Schreiben einzelner Einstellungen.
+
+
+
+ Define
+
+ define <name> THZ <device>
+
+ device kann einige Parameter beinhalten (z.B. @baudrate, @direction,
+ TCP/IP, none) wie das CUL, z.B. 57600 baud oder 115200.
+ Beispiel:
+ Direkte Verbindung
+
+ define Mytecalor THZ /dev/ttyUSB0@115200
+
+ oder vir Netzwerk (via ser2net)
+
+ define Myremotetecalor THZ 192.168.0.244:2323
+
+
+
+ define Mythz THZ /dev/ttyUSB0@115200
+ attr Mythz interval_allFB 300 # Internes Polling Intervall 5min
+ attr Mythz interval_history 28800 # Internes Polling Intervall 8h
+ attr Mythz interval_last10errors 86400 # Internes Polling Intervall 24h
+ define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz
+
+
+ Wenn die Attribute interval_allFB und interval_history nicht definiert sind (oder 0), ist das interne Polling deaktiviert.
+ Natürlich kann das Polling auch mit dem "at" Befehl ausserhalb des Moduls definiert werden.
+
+
+ define Mythz THZ /dev/ttyUSB0@115200
+ define atMythzFB at +*00:05:00 {fhem "get Mythz allFB","1";;return()}
+ define atMythz09 at +*08:00:00 {fhem "get Mythz history","1";;return()}
+ define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz
+
+
+
+
+
+
+
+TRX
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TRX
+
+
+TRX_ELSE
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TRX_ELSE
+
+
+TRX_LIGHT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TRX_LIGHT
+
+
+TRX_SECURITY
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TRX_SECURITY
+
+
+TRX_WEATHER
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TRX_WEATHER
+
+
+TUL
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TUL
+
+
+TellStick
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: TellStick
+
+
+Text2Speech
+
+
+
+Set
+
+ - tts:
+ Setzen eines Textes zur Sprachausgabe.
+
+ - volume:
+ Setzen der Ausgabe Lautstärke.
+ Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
+
+
+
+
+Get
+
+
+
+Attribute
+
+ - TTS_Delemiter
+ Optional: Wird ein Delemiter angegeben, so wird der Sprachbaustein an dieser Stelle geteilt.
+ Als Delemiter ist nur ein einzelnes Zeichen zulässig.
+ Hintergrund ist die Tatsache, das die Google Sprachengine nur 100Zeichen zulässt.
+ Im Standard wird nach jedem Satzende geteilt. Ist ein einzelner Satz länger als 100 Zeichen,
+ so wird zusätzlich nach Kommata, Semikolon und dem Verbindungswort und geteilt.
+ Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich und nur Nutzung der Google Sprachengine relevant!
+
+
+ - TTS_Ressource
+ Optional: Auswahl der Sprachengine
+ Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
+
+ - Google
+ Nutzung der GoogleSprachengine. Ein Internetzugriff ist notwendig! Aufgrund der Qualität ist der
+ Einsatz diese Engine zu empfehlen und der Standard.
+
+ - ESpeak
+ Nutzung der ESpeak Offline Sprachengine. Die Qualitä ist schlechter als die Google Engine.
+ ESpeak ist vor der Nutzung zu installieren.
+ apt-get install espeak
+
+
+
+
+ - TTS_CacheFileDir
+ Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt.
+ Es findet zurZEit keine automatisierte Löschung statt.
+ Default: cache/
+ Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
+
+
+ - TTS_UseMP3Wrap
+ Optional: Für eine flüssige Sprachausgabe ist es zu empfehlen, die einzelnen vorher per Google
+ geladenen Sprachbausteine zu einem einzelnen Sprachbaustein zusammenfassen zu lassen bevor dieses per
+ Mplayer ausgegeben werden. Dazu muss Mp3Wrap installiert werden.
+ apt-get install mp3wrap
+ Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich!
+
+
+ - TTS_MplayerCall
+ Optional: Angabe der Systemaufrufes zu Mplayer. Das folgende Beispiel ist der Standardaufruf.
+ Beispiel: sudo /usr/bin/mplayer
+
+
+ - TTS_SentenceAppendix
+ Optional: Angabe einer mp3-Datei die mit jeder Sprachausgabe am Ende ausgegeben wird.
+ Voraussetzung ist die Nutzung von MP3Wrap. Die Sprachbausteine müssen bereits als mp3 im
+ CacheFileDir vorliegen.
+ Beispiel: silence.mp3
+
+
+ - TTS_FileMapping
+ Angabe von möglichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen.
+ Die Templatedefinitionen können in den per tts übergebenen Sprachbausteinen verwendet werden
+ und müssen mit einem beginnenden und endenden Doppelpunkt angegeben werden.
+ Die Dateien müssen im Verzeichnis TTS_FIleTemplateDir gespeichert sein.
+ attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3
+ set MyTTS tts Achtung: hier kommt mein Klingelton :ring: War der laut?
+
+
+ - TTS_FileTemplateDir
+ Verzeichnis, in dem die per TTS_FileMapping und TTS_SentenceAppendix definierten
+ MP3-Dateien gespeichert sind.
+ Optional, Default: cache/templates
+
+
+ - readingFnAttributes
+
+ - disable
+ If this attribute is activated, the soundoutput will be disabled.
+ Possible values: 0 => not disabled , 1 => disabled
+ Default Value is 0 (not disabled)
+
+
+ - verbose
+ 4: Alle Zwischenschritte der Verarbeitung werden ausgegeben
+ 5: Zusätzlich werden auch die Meldungen von Mplayer und Mp3Wrap ausgegeben
+
+
+
+
+
+Twilight
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: Twilight
+
+
+UNIRoll
+Deutsche Version der Doku nicht vorhanden. Englische Version unter
+
+ UNIRoll
+
+
+USBWX
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: USBWX
+
+
+USF1000
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: USF1000
+
+
+Utils
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: Utils
+
+
+VIERA
+
+
+ Define
+
+ define <name> VIERA <host> [<interval>]
+
+ Dieses Modul steuert einen Panasonic Fernseher über das Netzwerk. Es ist möglich den Fernseher
+ auszuschalten, die Lautstärke zu ändern oder zu muten bzw. unmuten. Dieses Modul kann zusätzlich
+ die Fernbedienung simulieren. Somit können also die Schaltaktionen einer Fernbedienung simuliert werden.
+ Getestet wurde das Modul mit einem Panasonic Plasma TV tx-p50vt30e
+
+ Beim definieren des Gerätes in FHEM wird ein interner Timer gestartet, welcher zyklisch alle 30 Sekunden
+ den Status der Lautstärke und des Mute-Zustand ausliest. Das Intervall des Timer kann über den Parameter <interval>
+ geändert werden. Wird kein Interval angegeben, liest das Modul alle 30 Sekunden die Werte aus und triggert ein notify.
+
+ Beispiel:
+
+ define myTV1 VIERA 192.168.178.20
+ define myTV1 VIERA 192.168.178.20 60 #Mit einem Interval von 60 Sekunden
+
+
+
+
+
+ Set
+
+ set <name> <command> [<value>]
+
+ Zur Zeit sind die folgenden Befehle implementiert:
+
+ off
+ mute [on|off]
+ volume [0-100]
+ volumeUp
+ volumeDown
+ channel [1-9999]
+ channelUp
+ channelDown
+ statusRequest
+ remoteControl <command>
+
+
+
+
+ Fernbedienung (Kann vielleicht nach Modell variieren)
+ Das Modul hat die folgenden Fernbedienbefehle implementiert:
+
+ 3D => 3D Knopf
+ BLUE => Blau
+ CANCEL => Cancel / Exit
+ CHG_INPUT => AV
+ CH_DOWN => Kanal runter
+ CH_UP => Kanal hoch
+ D0 => Ziffer 0
+ D1 => Ziffer 1
+ D2 => Ziffer 2
+ D3 => Ziffer 3
+ D4 => Ziffer 4
+ D5 => Ziffer 5
+ D6 => Ziffer 6
+ D7 => Ziffer 7
+ D8 => Ziffer 8
+ D9 => Ziffer 9
+ DISP_MODE => Anzeigemodus / Seitenverhältnis
+ DOWN => Navigieren runter
+ ENTER => Navigieren enter
+ EPG => Guide / EPG
+ FF => Vorspulen
+ GREEN => Grün
+ HOLD => Bild einfrieren
+ INDEX => TTV index
+ INFO => Info
+ INTERNET => VIERA connect
+ LEFT => Navigieren links
+ MENU => Menü
+ MUTE => Mute
+ PAUSE => Pause
+ PLAY => Play
+ POWER => Power off
+ P_NR => P-NR (Geräuschreduzierung)
+ REC => Aufnehmen
+ RED => Rot
+ RETURN => Enter
+ REW => Zurückspulen
+ RIGHT => Navigieren Rechts
+ R_TUNE => Vermutlich die selbe Funktion wie INFO
+ SD_CARD => SD-card
+ SKIP_NEXT => Skip next
+ SKIP_PREV => Skip previous
+ STOP => Stop
+ STTL => Untertitel
+ SUBMENU => Option
+ TEXT => TeleText
+ TV => TV
+ UP => Navigieren Hoch
+ VIERA_LINK => VIERA link
+ VOLDOWN => Lauter
+ VOLUP => Leiser
+ VTOOLS => VIERA tools
+ YELLOW => Gelb
+
+
+
+ Beispiel:
+
+ set <name> mute on
+ set <name> volume 20
+ set <name> remoteControl CH_DOWN
+
+
+
+ Anmerkung:
+ Aktivieren von Fernbedienung der Lautstärke per DLNA: Menü -> Setup -> Netzwerk-Setup -> Netzwerkverbindungsein. -> DLNA-Fernbed. Lautst. -> Ein
+
+
+
+
+ Get
+
+ get <name> <what>
+
+ Die folgenden Befehle sind definiert und geben den entsprechenden Wert zurück, der vom Fernseher zurückgegeben wurde.
+
+ mute
+ volume
+ power
+ presence
+
+
+
+
+
+ Attribute
+
+
+
+
+ Generierte events:
+
+ - volume
+ - mute
+ - presence
+ - power
+ - state
+
+
+
+
+VantagePro2
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: VantagePro2
+
+
+WEBCOUNT
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WEBCOUNT
+
+
+WEBIO
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WEBIO
+
+
+WEBIO_12DIGITAL
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WEBIO_12DIGITAL
+
+
+WEBTHERM
+
+Sorry, keine deutsche Dokumentation vorhanden.
+Die englische Doku gibt es hier: WEBTHERM
+
+
+WOL
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WOL
+
+
+WS2000
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WS2000
+
+
+WS300
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WS300
+
+
+WS3600
+
+ Definiert eine Wetterstation, die über ein externes Programm ausgelesen
+ wird. Dieses Programm wird zyklisch durch FHEM aufgerufen. Es muss die
+ Daten im gleichen Format wie fetch3600 (Details siehe unten) auf der
+ Standardausgabe liefern.
+
+ Define
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+ - model WS3600, WS2300,
+ WS1080 (z.Zt (noch) ohne Wirkung)
+
+
+
+
+
+WWO
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WWO
+
+
+Weather
+
+
+
+
+ Define
+
+ define <name> Weather <location> [<interval> [<language>]]
+
+ Bezechnet ein virtuelles Gerät für Wettervorhersagen.
+
+ Eine solche virtuelle Wetterstation sammelt periodisch aktuelle und zukünftige Wetterdaten aus der Yahoo-Wetter-API.
+
+ Der Parameter location entspricht der sechsstelligen WOEID (WHERE-ON-EARTH-ID). Die WOEID für den eigenen Standort kann auf http://weather.yahoo.com gefunden werden.
+
+ Der optionale Parameter interval gibt die Dauer in Sekunden zwischen den einzelnen Aktualisierungen der Wetterdaten an. Der Standardwert ist 3600 (1 Stunde). Wird kein Wert angegeben, gilt der Standardwert.
+
+ Der optionale Parameter für die möglichen Sprachen darf einen der folgende Werte annehmen: de , en oder nl . Er bezeichnet die natürliche Sprache, in der die Wetterinformationen dargestellt werden. Der Standardwert ist en . Wird für die Sprache kein Wert angegeben, gilt der Standardwert. Wird allerdings der Parameter für die Sprache gesetzt, muss ebenfalls ein Wert für das Abfrageintervall gesetzt werden.
+
+
+ Beispiele:
+
+ define MyWeather Weather 673513
+ define Forecast Weather 673513 1800
+
+
+ Das Modul unterstützt zusätzlich vier verschiedene Funktionen WeatherAsHtml , WeatherAsHtmlV , WeatherAsHtmlH und WeatherAsHtmlD . Die ersten beiden Funktionen sind identisch: sie erzeugen den HTML-Code für eine vertikale Darstellung des Wetterberichtes. Die dritte Funktion liefert den HTML-Code für eine horizontale Darstellung des Wetterberichtes. Die letztgenannte Funktion wählt automatisch eine Ausrichtung, die abhängig davon ist, ob ein Smallcreen Style ausgewählt ist (vertikale Darstellung) oder nicht (horizontale Darstellung).
+ Beispiel:
+
+ define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlH("MyWeather") }
+
+
+
+
+
+
+
+ Set
+
+ set <name> update
+
+ Erzwingt eine Abfrage der Wetterdaten. Die darauffolgende Abfrage wird gemäß dem eingestellten Intervall interval Sekunden später durchgeführt.
+
+
+
+
+ Get
+
+ get <name> <reading>
+
+ Gültige ausgelesene Daten (readings) und ihre Bedeutung (das ? kann einen der Werte 1, 2, 3 , 4 oder 5 annehmen und steht für heute, morgen, übermorgen etc.):
+
+ city | Name der Stadt, der aufgrund der WOEID übermittelt wird |
+ code | Code für die aktuellen Wetterverhältnisse |
+ condition | aktuelle Wetterverhältnisse |
+ current_date_time | Zeitstempel der letzten Aktualisierung der Wetterdaten vom Server |
+ fc?_code | Code für die vorhergesagten Wetterverhältnisse |
+ fc?_condition | vorhergesagte Wetterverhältnisse |
+ fc?_day_of_week | Wochentag des Tages, der durch ? dargestellt wird |
+ fc?_high_c | vorhergesagte maximale Tagestemperatur in Grad Celsius |
+ fc?_icon | Icon für Vorhersage |
+ fc?_low_c | vorhergesagte niedrigste Tagestemperatur in Grad Celsius |
+ humidity | gegenwärtige Luftfeuchtgkeit in % |
+ icon | relativer Pfad für das aktuelle Icon |
+ pressure | Luftdruck in hPa |
+ pressure_trend | Luftdrucktendenz (0= gleichbleibend, 1= steigend, 2= fallend) |
+ pressure_trend_txt | textliche Darstellung der Luftdrucktendenz |
+ pressure_trend_sym | symbolische Darstellung der Luftdrucktendenz |
+ temperature | gegenwärtige Temperatur in Grad Celsius |
+ temp_c | gegenwärtige Temperatur in Grad Celsius |
+ temp_f | gegenwärtige Temperatur in Grad Celsius |
+ visibility | Sichtweite in km |
+ wind | Windgeschwindigkeit in km/h |
+ wind_chill | gefühlte Temperatur in Grad Celsius |
+ wind_condition | Windrichtung und -geschwindigkeit |
+ wind_direction | Gradangabe der Windrichtung (0 = Nordwind) |
+ wind_speed | Windgeschwindigkeit in km/h (mit wind identisch) |
+
+
+
+
+
+
+ Attribute
+
+
+
+
+
+WeekdayTimer
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: WeekdayTimer
+
+
+X10
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: X10
+
+
+XBMC
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: XBMC
+
+
+XmlList
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: XmlList
+
+
+YAMAHA_AVR
+
+
+
+ Definition
+
+ define <name> YAMAHA_AVR <IP-Addresse> [<Zone>] [<Status_Interval>]
+
+ define <name> YAMAHA_AVR <IP-Addresse> [<Zone>] [<Off_Interval>] [<On_Interval>]
+
+
+
+ Dieses Modul steuert AV-Receiver des Herstellers Yamaha über die Netzwerkschnittstelle.
+ Es bietet die Möglichkeit den Receiver an-/auszuschalten, den Eingangskanal zu wählen,
+ die Lautstärke zu ändern, den Receiver "Stumm" zu schalten, sowie den aktuellen Status abzufragen.
+
+ Bei der Definition eines YAMAHA_AVR-Moduls wird eine interne Routine in Gang gesetzt, welche regelmäßig
+ (einstellbar durch den optionalen Parameter <Status_Interval> ; falls nicht gesetzt ist der Standardwert 30 Sekunden)
+ den Status des Receivers abfragt und entsprechende Notify-/FileLog-Geräte triggert.
+
+ Sofern 2 Interval-Argumente übergeben werden, wird der erste Parameter <Off_Interval> genutzt
+ sofern der Receiver ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <On_Interval>
+ wird verwendet, sofern der Receiver eingeschaltet ist.
+
+ Beispiel:
+
+ define AV_Receiver YAMAHA_AVR 192.168.0.10
+
+ # Mit modifiziertem Status Interval (60 Sekunden)
+ define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60
+
+ # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)
+ define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60 10
+
+
+ Zonenauswahl
+
+ Wenn der zu steuernde Receiver mehrere Zonen besitzt (z.B. RX-V671, RX-V673,... sowie die AVANTAGE Modellreihe)
+ kann die zu steuernde Zone explizit angegeben werden. Die Modellreihen RX-V3xx und RX-V4xx als Beispiel
+ haben nur eine Zone (Main Zone). Je nach Receiver-Modell stehen folgende Zonen zur Verfügung, welche mit
+ dem optionalen Parameter <Zone> angegeben werden können.
+
+ - mainzone - Das ist die Hauptzone (Standard)
+ - zone2 - Die zweite Zone (Zone 2)
+ - zone3 - Die dritte Zone (Zone 3)
+ - zone4 - Die vierte Zone (Zone 4)
+
+
+ Je nach Receiver-Modell stehen in den verschiedenen Zonen nicht immer alle Eingänge zur Verfügung.
+ Dieses Modul bietet nur die tatsächlich verfügbaren Eingänge an.
+
+ Beispiel:
+
+ define AV_Receiver YAMAHA_AVR 192.168.0.10 # Wenn keine Zone angegeben ist, wird
+ attr AV_Receiver YAMAHA_AVR room Wohnzimmer # standardmäßig "mainzone" verwendet
+
+ # Definition der zweiten Zone
+ define AV_Receiver_Zone2 YAMAHA_AVR 192.168.0.10 zone2
+ attr AV_Receiver_Zone2 room Schlafzimmer
+
+ Für jede Zone muss eine eigene YAMAHA_AVR Definition erzeugt werden, welche dann unterschiedlichen Räumen zugeordnet werden kann.
+ Jede Zone kann unabhängig von allen anderen Zonen (inkl. der Main Zone) gesteuert werden.
+
+
+
+
+ Set-Kommandos
+
+ set <Name> <Kommando> [<Parameter>]
+
+ Aktuell werden folgende Kommandos unterstützt. Die verfügbaren Eingänge und Szenen können je nach Receiver-Modell variieren.
+ Die folgenden Eingänge stehen beispielhaft an einem RX-V473 Receiver zur Verfügung.
+ Aktuell stehen folgende Kommandos zur Verfügung.
+
+
+- on - Schaltet den Receiver ein
+- off - Schaltet den Receiver aus
+- input hdmi1,hdmiX,... - Wählt den Eingangskanal (es werden nur die tatsächlich verfügbaren Eingänge angeboten)
+- scene scene1,sceneX - Wählt eine vorgefertigte Szene aus
+- volume 0...100 - Setzt die Lautstärke in Prozent (0 bis 100%)
+- volumeStraight -87...15 - Setzt die Lautstärke in Dezibel (-80.5 bis 15.5 dB) so wie sie am Receiver auch verwendet wird.
+- volumeUp [0...100] - Erhöht die Lautstärke um 5% oder entsprechend dem Attribut volumeSteps (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang)
+- volumeDown [0...100] - Veringert die Lautstärke um 5% oder entsprechend dem Attribut volumeSteps (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang)
+- mute on,off,toggle - Schaltet den Receiver stumm
+- statusRequest - Fragt den aktuell Status des Receivers ab
+- remoteControl up,down,... - Sendet Fernbedienungsbefehle wie im nächsten Abschnitt beschrieben
+
+
+
+Fernbedienung (je nach Modell nicht in allen Zonen verfügbar)
+
+ In vielen Receiver-Modellen existieren Eingänge, welche nach der Auswahl keinen Sound ausgeben. Diese Eingänge
+ bedürfen manueller Interaktion mit der Fernbedienung um die Wiedergabe zu starten (z.B. Internet Radio, Netzwerk Streaming, usw.).
+ Für diesen Fall gibt es folgende Befehle:
+
+ Cursor Steuerung:
+
+ remoteControl up
+ remoteControl down
+ remoteControl left
+ remoteControl right
+ remoteControl enter
+ remoteControl return
+
+
+ Menü Auswahl:
+
+ remoteControl setup
+ remoteControl option
+ remoteControl display
+
+
+ Radio Steuerung:
+
+ remoteControl tunerPresetUp
+ remoteControl tunerPresetDown
+
+ Die Befehlsnamen entsprechen den Tasten auf der Fernbedienung.
+
+ Ein typisches Beispiel ist das automatische Einschalten und Abspielen eines Internet Radio Sender:
+
+ # Die Gerätedefinition
+ define AV_receiver YAMAHA_AVR 192.168.0.3
+
+ Und in der 99_MyUtils.pm die folgende Funktion:
+
+ sub startNetRadio
+ {
+ fhem "set AV_Receiver on";
+ sleep 5;
+ fhem "set AV_Receiver input netradio";
+ sleep 4;
+ fhem "set AV_Receiver remoteControl enter";
+ sleep 2;
+ fhem "set AV_Receiver remoteControl enter";
+ }
+
+ Die Kommandos der Fernbedienung müssen mit einem sleep pausiert werden, da der Receiver in der Zwischenzeit arbeitet und keine Befehle annimmt..
+
+ Nun kann man diese Funktion in der FHEM Kommandozeile oder in notify-Definitionen wie folgt verwenden.:
+
+
+
+
+ Get-Kommandos
+
+ get <Name> <Readingname>
+
+ Aktuell stehen via GET lediglich die Werte der Readings zur Verfügung. Eine genaue Auflistung aller möglichen Readings folgen unter "Generierte Readings/Events".
+
+
+
+ Attribute
+
+
+ - do_not_notify
+ - readingFnAttributes
+ - request-timeout
+ Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum Receiver.
+
+ Mögliche Werte: 1-5 Sekunden. Standardwert ist 4 Sekunden
+ - disable
+ Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch möglich.
+
+ Mögliche Werte: 0 => zyklische Status-Updates, 1 => keine zyklischen Status-Updates.
+ - volume-smooth-change
+ Optionales Attribut, welches einen weichen Lautstärkeübergang aktiviert..
+
+ Mögliche Werte: 0 => deaktiviert , 1 => aktiviert
+ - volume-smooth-steps
+ Optionales Attribut, welches angibt, wieviele Schritte zur weichen Lautstärkeanpassung
+ durchgeführt werden sollen. Standardwert ist 5 Anpassungschritte
+ - volumeSteps
+ Optionales Attribut, welches den Standardwert zur Lautstärkenerhöhung (volumeUp) und Lautstärkenveringerung (volumeDown) konfiguriert. Standardwert ist 5%
+
+
+ Generierte Readings/Events:
+
+ - input - Der ausgewählte Eingang entsprechend dem FHEM-Kommando
+ - inputName - Die Eingangsbezeichnung, so wie sie am Receiver eingestellt wurde und auf dem Display erscheint
+ - mute - Der aktuelle Stumm-Status ("on" => Stumm, "off" => Laut)
+ - power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)
+ - presence - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)
+ - volume - Der aktuelle Lautstärkepegel in Prozent (zwischen 0 und 100 %)
+ - volumeStraight - Der aktuelle Lautstärkepegel in Dezibel (zwischen -80.0 und +15 dB)
+ - state - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Gerätes (mögliche Werte: "on", "off" oder "absent")
+
Eingangsabhängige Readings/Events:
+ - currentChannel - Nummer des Eingangskanals (nur bei SIRIUS)
+ - currentStation - Name des Radiosenders (nur bei TUNER, NET RADIO und PANDORA)
+ - currentAlbum - Album es aktuell gespielten Titel
+ - currentArtist - Interpret des aktuell gespielten Titel
+ - currentTitle - Name des aktuell gespielten Titel
+ - playStatus - Wiedergabestatus des Eingangs
+
+
+ Hinweise des Autors
+
+ Dieses Modul ist nur nutzbar, wenn die Option "Network Standby" am Receiver aktiviert ist. Ansonsten ist die Steuerung nur im eingeschalteten Zustand möglich.
+
+
+
+
+YAMAHA_BD
+
+
+
+ Definition
+
+ define <name> YAMAHA_BD <IP-Addresse> [<Status_Interval>]
+
+ define <name> YAMAHA_BD <IP-Addresse> [<Off_Interval>] [<On_Interval>]
+
+
+
+ Dieses Modul steuert Blu-Ray Player des Herstellers Yamaha über die Netzwerkschnittstelle.
+ Es bietet die Möglichkeit den Player an-/auszuschalten, die Schublade zu öffnen und schließen,
+ die Wiedergabe beeinflussen, sämtliche Fernbedieungs-Befehle zu senden, sowie den aktuellen Status abzufragen.
+
+ Bei der Definition eines YAMAHA_BD-Moduls wird eine interne Routine in Gang gesetzt, welche regelmäßig
+ (einstellbar durch den optionalen Parameter <Status_Interval> ; falls nicht gesetzt ist der Standardwert 30 Sekunden)
+ den Status des Players abfragt und entsprechende Notify-/FileLog-Definitionen triggert.
+
+ Sofern 2 Interval-Argumente übergeben werden, wird der erste Parameter <Off_Interval> genutzt
+ sofern der Player ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <On_Interval>
+ wird verwendet, sofern der Player eingeschaltet ist.
+
+ Beispiel:
+
+ define BD_Player YAMAHA_BD 192.168.0.10
+
+ # Mit modifiziertem Status Interval (60 Sekunden)
+ define BD_Player YAMAHA_BD 192.168.0.10 60
+
+ # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)
+ define BD_Player YAMAHA_BD 192.168.0.10 60 10
+
+
+
+
+ Set-Kommandos
+
+ set <Name> <Kommando> [<Parameter>]
+
+ Aktuell werden folgende Kommandos unterstützt.
+
+
+- on - schaltet den Player ein
+- off - schaltet den Player aus
+- tray open,close - öffnet oder schließt die Schublade
+- statusRequest - fragt den aktuellen Status ab
+- remoteControl up,down,... - sendet Fernbedienungsbefehle wie im folgenden Kapitel beschrieben.
+
+Wiedergabespezifische Kommandos
+
+- play - startet die Wiedergabe des aktuellen Mediums
+- pause - pausiert die Wiedergabe
+- stop - stoppt die Wiedergabe
+- skip forward,reverse - überspringt das aktuelle Kapitel oder den aktuellen Titel
+- fast forward,reverse - schneller Vor- oder Rücklauf
+- slow forward,reverse - langsamer Vor- oder Rücklauf
+
+
+
+
+
+Fernbedienung
+
+ Es stehen folgende Befehle zur Verfügung:
+
+ Zahlen Tasten (0-9):
+
+ remoteControl 0
+ remoteControl 1
+ remoteControl 2
+ ...
+ remoteControl 9
+
+
+ Cursor Steuerung:
+
+ remoteControl up
+ remoteControl down
+ remoteControl left
+ remoteControl right
+ remoteControl enter
+ remoteControl return
+
+
+ Menü Auswahl:
+
+ remoteControl OSDonScreen
+ remoteControl OSDstatus
+ remoteControl popupMenu
+ remoteControl topMenu
+ remoteControl setup
+ remoteControl home
+ remoteControl clear
+
+
+ Farbtasten:
+
+ remoteControl red
+ remoteControl green
+ remoteControl yellow
+ remoteControl blue
+
+ Die Befehlsnamen entsprechen den Tasten auf der Fernbedienung.
+
+
+
+ Get-Kommandos
+
+ get <Name> <Readingname>
+
+ Aktuell stehen via GET lediglich die Werte der Readings zur Verfügung. Eine genaue Auflistung aller möglichen Readings folgen unter "Generierte Readings/Events".
+
+
+
+ Attribute
+
+
+ - do_not_notify
+ - readingFnAttributes
+ - disable
+ Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch möglich.
+
+ Mögliche Werte: 0 => zyklische Status-Updates, 1 => keine zyklischen Status-Updates.
+ - request-timeout
+ Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum Player.
+
+ Mögliche Werte: 1-5 Sekunden. Standartwert ist 4 Sekunden
+
+ Generierte Readings/Events:
+
+ - input - Die aktuelle Wiedergabequelle ("DISC", "USB" oder "Network")
+ - discType - Die Art der eingelegten Disc (z.B "No Disc" => keine Disc eingelegt, "CD", "DVD", "BD",...)
+ - error - zeigt an, ob ein interner Fehler im Player vorliegt ("none" => kein Fehler, "fan error" => Lüfterdefekt, "usb overcurrent" => USB Spannungsschutz)
+ - power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)
+ - presence - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)
+ - trayStatus - Der Status der Schublade("open" => geöffnet, "close" => geschlossen)
+ - state - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Gerätes (mögliche Werte: "on", "off" oder "absent")
+
Quellenabhängige Readings/Events:
+ - currentChapter - Das aktuelle Kapitel eines DVD- oder Blu-Ray-Films
+ - currentMedia - Der Name der aktuell wiedergebenden Datei (Nur bei der Wiedergabe über USB)
+ - playTimeCurrent - Der aktuelle Timecode an dem sich die Wiedergabe momentan befindet.
+ - playTimeTotal - Die komplette Spieldauer des aktuellen Films (Nur bei der Wiedergabe von DVD/BD's)
+ - playStatus - Wiedergabestatus des aktuellen Mediums
+
+
+ Hinweise des Autors
+
+ - Einige ältere Player-Modelle (z.B. BD-S671) können im Auslieferungszustand nicht via Netzwerk gesteuert werden. Um eine Steuerung via FHEM zu ermöglichen ist ein Firmware-Update notwending!
+ - Dieses Modul ist nur nutzbar, wenn die Option "Netzwerksteuerung" am Player aktiviert ist. Ansonsten ist die Steuerung nicht möglich.
+
+
+
+
+ZWDongle
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: ZWDongle
+
+
+ZWave
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: ZWave
+
+
+apptime
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: apptime
+
+
+at
+
+
+ Startet einen beliebigen FHEM Befehl zu einem späteren Zeitpunkt.
+
+
+
+ Define
+
+ define <name> at <timespec> <command>
+
+ <timespec> Format: [+][*{N}]<timedet>
+
+ Das optionale + zeigt, dass die Angabe relativ ist
+ (also zur jetzigen Zeit dazugezählt wird).
+
+ Das optionale * zeigt, dass die Ausführung
+ wiederholt erfolgen soll.
+
+ Das optionale {N} nach dem * bedeutet, dass der Befehl genau
+ N-mal wiederholt werden soll.
+
+ <timedet> ist entweder HH:MM, HH:MM:SS oder {perlfunc()}, wobei
+ perlfunc HH:MM or HH:MM:SS zurückgeben muss. Hinweis: {perlfunc()}
+ darf keine Leerzeichen enthalten.
+
+
+
+
+ Beispiele:
+
+ # Absolute Beispiele:
+ define a1 at 17:00:00 set lamp on # fhem Befehl
+ define a2 at 17:00:00 { Log 1, "Teatime" } # Perl Befehl
+ define a3 at 17:00:00 "/bin/echo "Teatime" > /dev/console" # shell Befehl
+ define a4 at *17:00:00 set lamp on # Jeden Tag
+
+ # Realtive Beispiele:
+ define a5 at +00:00:10 set lamp on # Einschalten in 10 Sekunden
+ define a6 at +00:00:02 set lamp on-for-timer 1 # Einmal blinken in 2 Sekunden
+ define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blinke 3 mal
+
+ # Blinke 3 mal wenn piri einen Befehl sendet
+ define n1 notify piri:on.* define a8 at +*{3}00:00:02 set lamp on-for-timer 1
+
+ # Lampe von Sonnenuntergang bis 23:00 Uhr einschalten
+ define a9 at +*{sunset_rel()} set lamp on
+ define a10 at *23:00:00 set lamp off
+
+ # Elegantere Version, ebenfalls von Sonnenuntergang bis 23:00 Uhr
+ define a11 at +*{sunset_rel()} set lamp on-till 23:00
+
+ # Nur am Wochenende ausführen
+ define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }
+
+ # Schalte lamp1 und lamp2 ein von 7:00 bis 10 Minuten nach Sonnenaufgang
+ define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}
+
+ # Schalte lamp jeden Tag 2 Minuten nach Sonnenaufgang aus
+ define a14 at +{sunrise(+120)} set lamp on
+
+ # Schalte lamp1 zum Sonnenuntergang ein, aber nicht vor 18:00 und nicht nach 21:00
+ define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on
+
+
+
+ Hinweise:
+
+ - wenn kein
* angegeben wird, wird der Befehl nur einmal
+ ausgeführt und der entsprechende at Eintrag danach
+ gelöscht. In diesem Fall wird der Befehl im Statefile gespeichert
+ (da er nicht statisch ist) und steht nicht im Config-File (siehe auch save).
+
+ - wenn die aktuelle Zeit größer ist als die angegebene Zeit,
+ dann wird der Befehl am folgenden Tag ausgeführt.
+
+ - Für noch komplexere Datums- und Zeitabläufe muss man den
+ Aufruf entweder per cron starten oder Datum/Zeit mit perl weiter
+ filtern. Siehe hierzu das letzte Beispiel und das Perl
+ special.
+
+
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attribute
+
+
+ - disable
+ Deaktiviert das entsprechende Ger&aauml;t.
+ Hinweis: Wenn angewendet auf ein at, dann wird der
+ Befehl nicht ausgeführt, jedoch die nächste
+ Ausführungszeit berechnet.
+
+
+ - disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
+ Das Argument ist eine Leerzeichengetrennte Liste von Minuszeichen-
+ getrennten 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.
+ Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei
+ einzelne angeben, z.Bsp.:
+
+ 23:00-24:00 00:00-01:00
+
+
+
+
+ - skip_next
+ Wird bei at Befehlen verwendet um die nächste Ausführung zu
+ überspringen
+
+
+ - alignTime
+ Nur für relative Definitionen: Stellt den Zeitpunkt der
+ Ausführung des Befehls so, dass er auch zur alignTime
+ ausgeführt wird. Dieses Argument ist ein timespec. Siehe oben
+ fü die Definition
+
+ Beispiel:
+
+ # Stelle sicher das es gongt wenn eine neue Stunde beginnt.
+ define at2 at +*01:00 set Chime on-for-timer 1
+ attr at2 alignTime 00:00
+
+
+
+
+
+
+
+
+
+autocreate
+
+
+ Erzeugt für noch nicht definierte fhem-Geräte automatisch die
+ geignete Definition (define). Diese Definition wird aus einer Nachricht
+ gewonnen, die von diesen neuen Geräten empfangen wurde. Hinweis:
+ Geräte, die mit Polling arbeiten (wie z.B. der Zugriff auf EMEM/EMWZ
+ über EM1010PC) werden NICHT automatisch erzeugt.
+
+
+
+ Define
+
+ define <name> autocreate
+
+
+ Durch die Definition dieser Instanz wird das globale Attribut autoload_undefined_devices
+ gesetzt, sodass die Module für unbekannte Geräte automatisch
+ nachgeladen werden. Das autocreate-Modul interpretiert das
+ UNDEFINED-event, welches von jedem Modul gestartet wird, erzeugt ein
+ Gerät (device) und bei Bedarf ein FileLog sowie
+ SVG-Einträge.
+
+ Hinweis 1: Geräte werden mit einem eindeutigen Namen erzeugt,
+ der den Typ und eine individuelle ID für diesen Typ enthält.
+ Wird ein Gerät umbenannt (rename), wird
+ gleichzeitig das automatisch erzeugte FileLog und die SVG Geräte
+ unbenannt.
+
+ Hinweis 2: Durch das Setzen des disable-Attributes kann die automatische Erzeugung
+ ausgeschaltet werden. In diesem Fall ist ausschließlich die oben
+ erläuterte Umbenennung aktiv. Der createlog-Befehl kann zum Hinzufügen von
+ FileLog und SVG eines bereits definierten Gerätes benutzt werden.
+
+
+ Hinweis 3:Es macht keinen Sinn, die Instanz dieses Moduls mehrmals
+ zu erzeugen.
+
+
+
+
+ Beispiel:
+ define autocreate autocreate
+ attr autocreate autosave
+ attr autocreate device_room %TYPE
+ attr autocreate filelog test2/log/%NAME-%Y.log
+ attr autocreate weblink
+ attr autocreate weblink_room Plots
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attribute
+
+
+ - autosave
+ Nach der Erzeugung eines neuen Gerätes wird automatisch die
+ Konfigurationsdatei mit dem Befehl save
+ gespeichert. Der Standardwert ist 1 (d.h. aktiviert), eine 0 schaltet
+ die automatische Speicherung aus.
+
+
+ - device_room
+ "Schiebt" das neu erstellte Gerät in diesen Raum. Der Name kann
+ die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
+ Beispiel.
+
+
+ - filelog
+ Erstellt ein Filelog welches zu einem Gerät gehört. Der
+ Dateiname darf die Wildcards %NAME und %TYPE enthalten, siehe oben
+ stehendes Beispiel. Das Filelog wird in den gleichen Raum "geschoben"
+ wie das zugehörige Gerät.
+
+
+ - weblink
+ Erzeugt ein SVG, welches mit dem Gerät/Filelog verknüpft
+ ist.
+
+
+ - weblink_room
+ "Schiebt" das neu erstellte SVG in den bezeichneten Raum. Der Name kann
+ die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
+ Beispiel.
+
+ - disable
+
+
+
+ - ignoreTypes
+ Dies ist ein Regexp, um bestimmte Geräte zu ignorieren, z.b. der
+ Funk-Heizungsthermostat (FHT) des Nachbarn. In dem Ausdruck können
+ mehr als ein Gerät über die normale Regexp-Syntax angegeben
+ werden.
+
+ Beispiel:
+
+ attr autocreate ignoreTypes CUL_HOERMANN.*|FHT_1234|CUL_WS_7
+
+
+
+
+
+
+
+ createlog
+
+ Dieser Befehl wird für ein manuelles Hinzufügen eines Logfile
+ oder eines SVG zu einem vorhandenen Gerät verwendet.
+
+ Dieser Befehl ist Bestandteilteil des autocreate-Modules.
+
+
+
+
+ usb
+
+ Verwendung:
+
+ usb scan
+ usb create
+
+ Dieser Befehl durchsucht das /dev-Verzeichnis nach angeschlossenen
+ USB-Geräten und versucht gleichzeitig sie zu identifizieren. Mit dem
+ Argument scan wird eine Liste von ausführbaren fhem-Befehlen
+ zurückgegeben. Das Argument create gibt keine Liste o.ä.
+ zurück, die Geräte werden stattdessen erzeugt.
+
+ Es ist zu beachten, dass ein CUL immer noch manuell in den
+ HomeMatic-Modus umgeschaltet werden muss.
+
+ Unter Linux wird gleichzeitig mit dem lsusb-befehl überprüft,
+ ob nichtgeflashte CULs angeschlossen sind. Ist dies der Fall, ruft Linux
+ CULflash mit den geeigneten Parametern auf (oder zeigt den
+ CULflash-Befehl an, falls scan aufgeführt wurde).
+ Pro usb Befehl wird nur ein Gerät geflasht.
+
+ Dieser Befehl ist Bestandteilteil des autocreate-Modules.
+
+
+
+
+
+average
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: average
+
+
+backup
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: backup
+
+
+cloneDummy
+
+ Definiert einen Clon eines Devices oder von FHEM2FHEM im Logmodus uebergebenen Devices und uebernimmt dessen Readings.
+ Sinnvoll um entfernte FHEM-Installationen lesend einzubinden, zum Testen oder Programmieren.
+
+
+
+ Define
+
+ define <name> cloneDummy <Quelldevice> [reading]
+
+ Aktiviert den cloneDummy, der dann an das Device <Quelldevice> gebunden ist. Mit dem optionalen Parameter reading
+ wird bestimmt, welches reading im STATE angezeigt wird, stateFormat ist auch weiterhin möglich.
+
+ Beispiel: Der cloneDummy wird lesend an den Sensor OWX_26_09FF26010000 gebunden und zeigt im State temperature an.
+
+
+
+ define Feuchte cloneDummy OWX_26_09FF26010000 temperature
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+ - clonIgnore
+ Eine durch Kommata getrennte Liste der readings, die cloneDummy nicht in eigene readings umwandelt
+
+ - readingFnAttributes
+
+
+
+
+
+
+cmdalias
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: cmdalias
+
+
+configDB
+
+ configDB ist die Funktionsbibliothek für die Konfiguration aus einer SQL Datenbank.
+ Die ausführliche Dokumentation findet sich in der configdb Befehlsbeschreibung.
+
+
+
+configdb
+
+ Seit version 5079 unterstützt fhem die Verwendung einer SQL Datenbank zum Abspeichern der kompletten Konfiguration
+ Dadurch kann man auf alle cfg Dateien, includes usw. verzichten und die daraus immer wieder resultierenden Probleme vermeiden.
+ Desweiteren gibt es damit eine Versionierung von Konfigurationen und die Möglichkeit,
+ jederzeit eine ältere Version wiederherstellen zu können.
+ Der Zugriff auf die Datenbank erfolgt über die perl-eigene Datenbankschnittstelle DBI.
+
+ Voraussetzungen / Installation
+
+ - Bitte das perl Paket Text::Diff installieren, falls noch nicht auf dem System vorhanden.
+ - Es muss eine SQL Datenbank verfügbar sein, untsrstützt werden SQLITE, MYSQL und POSTGRESQLL.
+ - Das zum Datenbanktype gehörende DBD Modul muss in perl installiert sein,
+ für sqlite3 auf einem Debian System z.B. das Paket libdbd-sqlite3-perl
+ - Eine leere Datenbank muss angelegt werden, z.B. in sqlite3:
+
+ mba:fhem udo$ sqlite3 configDB.db
+
+ SQLite version 3.7.13 2012-07-17 17:46:21
+ Enter ".help" for instructions
+ Enter SQL statements terminated with a ";"
+ sqlite> pragma auto_vacuum=2;
+ sqlite> .quit
+
+ mba:fhem udo$
+
+ - Die benötigten Datenbanktabellen werden automatisch angelegt.
+ - Eine Konfigurationsdatei für die Verbindung zur Datenbank muss angelegt werden.
+
+ WICHTIG:
+
+ - Diese Datei muss den Namen "configDB.conf" haben
+ - Diese Datei muss im fhem Verzeichnis liegen, z.B. /opt/fhem
+
+
+
+## für MySQL
+################################################################
+#%dbconfig= (
+# connection => "mysql:database=configDB;host=db;port=3306",
+# user => "fhemuser",
+# password => "fhempassword",
+#);
+################################################################
+#
+## für PostgreSQL
+################################################################
+#%dbconfig= (
+# connection => "Pg:database=configDB;host=localhost",
+# user => "fhemuser",
+# password => "fhempassword"
+#);
+################################################################
+#
+## für SQLite (username and password bleiben bei SQLite leer)
+################################################################
+#%dbconfig= (
+# connection => "SQLite:dbname=/opt/fhem/configDB.db",
+# user => "",
+# password => ""
+#);
+################################################################
+
+
+
+ Aufruf mit einer vollständig neuen fhem Installation
+
+ Sehr einfach... fhem muss lediglich folgendermassen gestartet werden:
+
+ configDB ist das Schlüsselwort, an dem fhem erkennt,
+ dass eine Datenbank für die Konfiguration verwendet werden soll.
+
+ Das war es schon. Alle Befehle (save, rereadcfg etc) arbeiten wie gewohnt.
+
+
+
+ oder:
+
+
+ übertragen einer bestehenden fhem Konfiguration in die Datenbank
+
+ Auch sehr einfach...
+
+ - fhem wird zum letzten Mal mit der fhem.cfg gestartet
+
+
+ - Bestehende Konfiguration in die Datenbank übertragen
+ configdb migrate
+
+ in die Befehlszeile der fhem-Oberfläche eingeben
+ Nicht die Geduld verlieren! Die Migration eine Weile dauern, speziell bei Mini-Systemen wie
+ RaspberryPi or Beaglebone.
+ Am Ende der Migration wird eine aktuelle Datenbankstatistik angezeigt.
+ Die ursprüngliche Konfigurationsdatei wird bei diesem Vorgang nicht angetastet.
+ - fhem beenden.
+ - fhem mit dem Schlüsselwort configDB starten
+
+ configDB ist das Schlüsselwort, an dem fhem erkennt,
+ dass eine Datenbank für die Konfiguration verwendet werden soll.
+
+ Das war es schon. Alle Befehle (save, rereadcfg etc) arbeiten wie gewohnt.
+
+
+
+ Zusätzliche Funktionen
+
+ Es wird ein neuer Befehl configdb bereitgestellt,
+ der mit verschiedenen Parametern aufgerufen werden kann.
+
+
+ configdb attr [attribute] [value]
+ Hiermit lassen sich attribute setzen, die das Verhalten von Front- und Backend beeinflussen.
+
+ configdb attr private 1 - setzt das Attribut 'private' auf den Wert 1.
+
+ configdb attr private - löscht das Attribut 'private'
+
+ configdb attr - zeigt alle gespeicherten Attribute
+
+ Im Moment ist nur ein Attribut definiert. Wenn 'private' auf 1 gesetzt wird, werden bei 'configdb info'
+ keine Benutzer- und Passwortdaten angezeigt.
+
+
+
+ configdb backup
+ Ersetzt den Standard-Backup-Befehl von fhem, da dieser bei Verwendung von configDB nicht mehr
+ zur Verfügung steht.
+
+ Wichtig:
+ Für die Sicherung der Datenbank ist der Anwender selbst verantwortlich!
+ Der backup Befehl kann diese Aufgabe nicht übernehmen.
+ Ausnahme: Nutzer einer im fhem Verzeichnis liegenden sqlite Datenbank profitieren von der Einfachheit
+ dieser Datenbank, denn das fhem Verzeichnis wird ohnehin komplett gesichert.
+
+
+ configdb diff <device> <version>
+ Vergleicht die Konfigurationsdaten des Gerätes <device> aus der aktuellen Version 0 mit den Daten aus Version <version>
+ Beispielaufruf:
+
+ configdb diff telnetPort 1
+
+ liefert ein Ergebnis ähnlich dieser Ausgabe:
+
+compare device: telnetPort in current version 0 (left) to version: 1 (right)
++--+--------------------------------------+--+--------------------------------------+
+| 1|define telnetPort telnet 7072 global | 1|define telnetPort telnet 7072 global |
+* 2|attr telnetPort room telnet * | |
++--+--------------------------------------+--+--------------------------------------+
+
+ configdb export <zielDateiname> [version];
+ Exportiert die angegebene Version aus der Konfigurationsdatenbank in die Datei <zielDateiname>
+ Standardversion, falls nicht angegeben = 0
+ Die Zieldatei kann später für die Wiederherstellung verwendet werden.
+
+
+ configdb info
+ Liefert eine Datenbankstatistik
+
+--------------------------------------------------------------------------------
+ configDB Database Information
+--------------------------------------------------------------------------------
+ dbconn: SQLite:dbname=/opt/fhem/configDB.db
+ dbuser:
+ dbpass:
+ dbtype: SQLITE
+--------------------------------------------------------------------------------
+ fhemconfig: 7707 entries
+
+ Ver 0 saved: Sat Mar 1 11:37:00 2014 def: 293 attr: 1248
+ Ver 1 saved: Fri Feb 28 23:55:13 2014 def: 293 attr: 1248
+ Ver 2 saved: Fri Feb 28 23:49:01 2014 def: 293 attr: 1248
+ Ver 3 saved: Fri Feb 28 22:24:40 2014 def: 293 attr: 1247
+ Ver 4 saved: Fri Feb 28 22:14:03 2014 def: 293 attr: 1246
+--------------------------------------------------------------------------------
+ fhemstate: 1890 entries saved: Sat Mar 1 12:05:00 2014
+--------------------------------------------------------------------------------
+
+Ver 0 bezeichnet immer die aktuell verwendete Konfiguration.
+
+
+ configdb list [device] [version]
+ Sucht das Gerät [device] in der Konfiguration der Version [version]
+ in der Datenbank.
+ Standardwert für [device] = % um alle Geräte anzuzeigen
+ Standardwert für [version] = 0 um Geräte in der aktuellen Version anzuzeigen.
+ Beispiele für gültige Aufrufe:
+
+ configdb list
+ configdb list global
+ configdb list '' 1
+ configdb list global 1
+
+
+ configdb recover <version>
+ Stellt eine ältere Version aus dem Datenbankarchiv wieder her.
+ set configDB recover 3 kopiert die Version #3 aus der Datenbank
+ zur Version #0.
+ Die ursprüngliche Version #0 wird dabei gelöscht.
+ Wichtig!
+ Die zurückgeholte Version wird NICHT automatisch aktiviert!
+ Ein rereadcfg oder - besser - shutdown restart muss manuell erfolgen.
+
+
+
+
+ configdb reorg [keep]
+ Löscht alle gespeicherten Konfigurationen mit Versionsnummern größer als [keep].
+ Standardwert für den optionalen Parameter keep = 3.
+ Mit dieser Funktion läßt sich eine nächtliche Reorganisation per at umsetzen.
+
+
+ configdb uuid
+ Liefert eine uuid, die man für eigene Zwecke verwenden kann.
+
+
+ Hinweise
+
+
+ - Im Verzeichnis contrib/configDB befinden sich zwei Vorlagen für Datenbank und Konfiguration,
+ die durch einfaches Kopieren in das fhem Verzeichnis sofort verwendet werden können (Nur für sqlite!).
+
+ - Der Menüpunkt "Edit files"->"config file" wird bei Verwendung von configDB nicht mehr angezeigt.
+
+ - Beim Speichern einer Konfiguration nicht ungeduldig werden (egal ob manuell oder durch Klicken auf "save config")
+ Durch das Schreiben der Versionsinformationen dauert das ein paar Sekunden.
+ Der Abschluss des Speichern wird durch eine entsprechende Meldung angezeigt.
+
+ - Diese Erweiterung wird laufend weiterentwickelt. Speziell an der Verbesserung der Performance wird gearbeitet.
+
+ - Viel Spass!
+
+
+
+
+
+dewpoint
+
+ Berechnungen des Taupunkts. Es gibt drei Varianten, das Modul dewpoint zu verwenden:
+
+ - dewpoint: Taupunkt
+ Erzeugt ein zusätzliches Ereignis "dewpoint" aus Temperatur- und Luftfeuchtewerten eines Fühlers.
+ - fan: Lüfter
+ Erzeugt ein Ereignis, um einen Lüfter einzuschalten, wenn die Außenluft
+ weniger Wasser als die Raumluft enthält.
+ - alarm: Alarm
+ Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt fällt.
+
+
+
+
+ Define
+
+ define <name> dewpoint dewpoint <devicename-regex> [<temp_name>
+ <hum_name> <new_name>]
+
+ Berechnet den Taupunkt des Geräts <devicename-regex> basierend auf Temperatur
+ und Luftfeuchte und erzeugt daraus ein neues Reading namens dewpoint.
+ Wenn <temp_name>, <hum_name> und <new_name> angegeben sind,
+ werden die Temperatur aus dem Reading <temp_name>, die Luftfeuchte aus dem
+ Reading <hum_name> gelesen und als berechneter Taupunkt ins Reading <new_name> geschrieben.
+ Wenn <temp_name> T lautet, wird die Temperatur aus state T: H: benutzt
+ und <new_name> zu state hinzugefügt.
+
+ Beispiele:
+
+ # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
+ # in Ereignissen, die vom Gerät temp1 erzeugt wurden und erzeugt ein Reading dewpoint.
+ define dew_temp1 dewpoint dewpoint temp1
+ define dew_temp1 dewpoint dewpoint temp1 temperature humidity dewpoint
+
+ # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
+ # in Ereignissen, die von allen Geräten erzeugt wurden die diese Werte ausgeben
+ # und erzeugt ein Reading dewpoint.
+ define dew_all dewpoint dewpoint .*
+ define dew_all dewpoint dewpoint .* temperature humidity dewpoint
+
+ # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
+ # in Ereignissen, die vom Gerät Aussen_1 erzeugt wurden und ergänzt
+ # mit diesem Wert den Status STATE.
+ define dew_state dewpoint dewpoint Aussen_1 T H D
+
+ # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
+ # in Ereignissen, die von allen Geräten erzeugt wurden die diese Werte ausgeben
+ # und ergänzt mit diesem Wert den Status STATE.
+ # Beispiel STATE: "T: 10 H: 62.5" wird verändert nach
+ # "T: 10 H: 62.5 D: 3.2"
+ define dew_state dewpoint dewpoint .* T H D
+
+
+
+
+ define <name> dewpoint fan <devicename-regex> <devicename-outside> <min-temp> [<diff_temp>]
+
+
+ - Erzeugt ein Ereignis, um einen Lüfter einzuschalten, wenn die Außenluft
+ weniger Wasser als die Raumluft enthält.
+ - Erzeugt das Ereignis "fan: on" wenn (Taupunkt von <devicename-outside>) +
+ <diff_temp> ist niedriger als der Taupunkt von <devicename> und die Temperatur
+ von <devicename-outside> >= min-temp ist. Das Ereignis wird nur erzeugt wenn das
+ Reading "fan" nicht schon "on" war. Das Ereignis wird für das Gerät <devicename> erzeugt.
+ Der Parameter <diff-temp> ist optional.
+ - Andernfalls wird das Ereignis "fan: off" erzeugt, wenn das Reading von "fan" nicht bereits "off" war.
+
+
+ Beispiel:
+
+ # Erzeugt das Ereignis "fan: on", wenn der Taupunkt des Geräts Aussen_1 zum ersten Mal
+ # niedriger ist als der Taupunkt des Geräts basement_tempsensor und die
+ # Außentemperatur >= 0 ist und wechselt nach "fan: off" wenn diese Bedingungen nicht
+ # mehr zutreffen.
+ # Schaltet den Schalter fan_switch abhängig vom Zustand ein oder aus.
+ define dew_fan1 dewpoint fan basement_tempsensor Aussen_1 0
+ define dew_fan1_on notify basement_tempsensor.*fan:.*on set fan_switch on
+ define dew_fan1_off notify basement_tempsensor.*fan:.*off set fan_switch off
+
+
+ define <name> dewpoint alarm <devicename-regex> <devicename-reference> <diff-temp>
+
+
+ - Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt fällt.
+ - Erzeugt ein Reading/Ereignis "alarm: on" wenn die Temperatur von
+ <devicename-reference> - <diff-temp> unter den Taupunkt von
+ <devicename> fällt und das Reading "alarm" nicht bereits "on" ist.
+ Das Ereignis wird für <devicename> erzeugt.
+ - Erzeugt ein Reading/Ereignis "alarm: off" wenn die Temperatur von
+ <devicename-reference> - <diff-temp> über den Taupunkt
+ von <devicename> steigt und das Reading "alarm" nicht bereits "off" ist.
+
+
+ Beispiel:
+
+ # Es wird ein Anlegefühler (Wandsensor) und ein Thermo-/Hygrometer (Raumfühler)
+ # verwendet, um einen Alarm zu erzeugen, wenn die Wandtemperatur
+ # unter den Taupunkt der Luft fällt. In diesem Fall würde sich Wasser an der Wand
+ # niederschlagen (kondensieren), weil die Wand zu kalt ist.
+ # Der Schalter einer Sirene (alarm_siren) wird über ein notify geschaltet.
+ define dew_alarm1 dewpoint alarm roomsensor wallsensor 0
+ define roomsensor_alarm_on notify roomsensor.*alarm:.*on set alarm_siren on
+ define roomsensor_alarm_off notify roomsensor.*alarm:.*off set alarm_siren off
+
+ # Ohne Wandsensor lässt sich auch der Taupunkt eines Raums mit der Temperatur desselben
+ # (oder eines anderen) Fühlers vergleichen.
+ # Die Alarmtemperatur ist 5 Grad niedriger gesetzt als die des Vergleichsthermostats.
+ define dev_alarm2 dewpoint alarm roomsensor roomsensor 5
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+ - disable
+ - max_timediff
+
+ Maximale erlaubter Zeitunterschied in Sekunden zwischen den Temperatur- und Luftfeuchtewerten eines
+ Geräts. dewpoint verwendet Readings von Temperatur oder Luftfeuchte wenn sie nicht im Ereignis
+ mitgeliefert werden. Das ist sowohl für den Betrieb mit event-on-change-reading nötig
+ als auch bei Sensoren die Temperatur und Luftfeuchte in getrennten Ereignissen kommunizieren
+ (z.B. Technoline Sensoren TX3TH).
+ Der Standardwert ist 1 Sekunde.
+
+ Beispiel:
+
+ # Maximal erlaubter Zeitunterschied soll 60 Sekunden sein
+ define dew_all dewpoint dewpoint .*
+ attr dew_all max_timediff 60
+
+
+
+
+
+
+dummy
+
+
+ Definiert eine Pseudovariable, der mit set jeder beliebige
+ Wert zugewiesen werden kann. Sinnvoll zum Programmieren.
+
+
+
+ Define
+
+ define <name> dummy
+
+
+ Beispiel:
+
+ define myvar dummy
+ set myvar 7
+
+
+
+
+
+ Set
+
+ set <name> <value>
+ Weist einen Wert zu.
+
+
+
+
+ Get
+
+
+ Attributes
+
+ - setList
+ Liste mit Werten durch Leerzeichen getrennt. Diese Liste wird mit "set
+ name ?" ausgegeben. Damit kann das FHEMWEB-Frontend Auswahl-Menüs
+ oder Schalter erzeugen.
+ Beispiel: attr dummyName setList on off
+
+
+ - readingFnAttributes
+
+
+
+
+
+
+eventTypes
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: eventTypes
+
+
+fheminfo
+
+ fheminfo [send]
+
+
+ fheminfo zeigt Informationen über das System und FHEM Definitionen an.
+
+
+ Der optionale Parameter send überträgt die Informationen
+ an einen zentralen Server um die Entwicklung von FHEM zu unterstützen.
+ Die übermittelten Daten werden grafisch aufbereitet und können auf
+ http://fhem.de/stats/statistics.cgi
+ abgerufen werden. Anhand der IP-Adresse wird der ungefähre Standort mit
+ einer Genauigkeit von ca. 40-80 km ermittelt. Die IP-Adresse wird nicht gespeichert.
+
+
+ Eigenschaften:
+
+ - Eingesetztes Betriebssystem
+ - Hardware Architektur
+ - Installierte Perl Version
+ - Installierte FHEM release und "branch"
+ - Definierte Module (nur offizielle FHEM Module werden ermittelt)
+ - Definierte Modelle je Modul
+
+
+ Beispiel:
+
+ fhem> fheminfo
+ Fhem info:
+ Release : 5.3
+ Branch : DEVELOPMENT
+ OS : linux
+ Arch : i686-linux-gnu-thread-multi-64int
+ Perl : v5.14.2
+ uniqueID : 87c5cca38dc75a4f388ef87bdcbfbf6f
+
+ Defined modules:
+ ACU : 1
+ CUL : 1
+ CUL_FHTTK : 12
+ CUL_HM : 66
+ CUL_WS : 3
+ FHEM2FHEM : 1
+ FHEMWEB : 3
+ FHT : 9
+ [...]
+ at : 4
+ autocreate : 1
+ dummy : 23
+ notify : 54
+ structure : 3
+ telnet : 2
+ watchdog : 9
+ weblink : 17
+
+ Defined models per module:
+ CUL : CUN
+ CUL_FHTTK : FHT80TF
+ CUL_HM : HM-CC-TC,HM-CC-VD,HM-LC-DIM1T-CV,HM-LC-DIM1T-FM,HM-LC-SW1-PL,[...]
+ CUL_WS : S555TH
+ FHT : fht80b
+ FS20 : fs20pira,fs20s16,fs20s4a,fs20sd,fs20st
+ HMS : hms100-mg,hms100-tf,hms100-wd
+ KS300 : ks300
+ OWSWITCH : DS2413
+
+
+
+
+ Attribute
+
+
+ Die folgenden Attribute werden nur in Verbindung mit dem Parameter
+ send genutzt. Sie werden über attr global gesetzt.
+
+
+
+ - uniqueID
+ Eine zufällig generierte ID (16 Paare aus Hash Werten), z.B.
+ 87c5cca38dc75a4f388ef87bdcbfbf6f welche den übertragenen Daten
+ zur Vermeidung von doppelten Einträge zugewiesen wird.
+
+ Die uniqueID wird automatisch in einer Datei namens FHemUtils/uniqueID
+ im FHEM Modulverzeichnis gespeichert.
+
+ WICHTIGER HINWEIS:
+
+ Jede Installation von FHEM sollte seine eigene eindeutige ID haben.
+
+ Bitte diese Datei nicht verändern, verschieben oder löschen! Diese Datei sollte
+ immer gesichert (wird normalerweise automatisch durch den update Befehl
+ erledigt) und bei einer Neuinstallation auf der gleichen Hardware im gleichen Verzeichnis
+ (FhemtUtils im FHEM Modulverzeichnis) wieder hergestellt werden. Dies verhindert
+ doppelte Einträge identischer Installationen auf der gleichen Hardware in der Statistik.
+
+ Anderfalls, sollten bitte für jede Installation auf unterschiedlicher Hardware eigene
+ IDs genutzt werden, z.B. eine zufällig erzeugte ID für FRITZ!Box, eine weitere für
+ den ersten Raspberry Pi, eine weitere für einen zweiten Raspberry Pi, usw.
+
+ Vielen Dank für die Unterstützung!
+
+
+ - sendStatistics
+ Dieses Attribut wird in Verbindung mit dem update Befehl verwendet.
+
+ onUpdate : Überträgt die Daten bei jedem Update (empfohlene Einstellung).
+
+ manually : Manuelle Überträgung der Daten über fheminfo send .
+
+ never : Verhindert die Überträgung der Daten.
+
+
+
+
+
+
+geodata
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: geodata
+
+
+holiday
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: holiday
+
+
+mailcheck
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: mailcheck
+
+
+netatmo
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: netatmo
+
+
+notice
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: notice
+
+
+notify
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: notify
+
+
+openweathermap
+
+Sorry, keine deutsche Dokumentation vorhanden.
+Die englische Doku gibt es hier: openweathermap
+
+
+panStamp
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: panStamp
+
+
+pilight
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: pilight
+
+
+rain
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: rain
+
+
+readingsGroup
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: readingsGroup
+
+
+readingsProxy
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: readingsProxy
+
+
+remotecontrol
+
+ Erzeugt eine graphische Fernbedienung. Buttons (=icons) können frei ausgewählt und angeordnet werden. Vordefinierte layouts sind verfügbar für z.B. Samsung-TV und iTunes.
+ Jeder "Knopfdruck" kann an das entsprechende fhem-Gerät weitergegeben werden.
+ Weitere Erklaerungen finden sich im Wiki-Eintrag<>.
+
+
+ Define
+
+ define <rc-name> remotecontrol
+ Typische Schritte zur Einrichtung:
+
+ define rc1 remotecontrol | # erzeugt eine "leere" remotecontrol |
+ get rc1 layout | # zeigt alle vorhandenen vordefinierten layouts an |
+ set rc1 layout samsung | # laedt das layout für SamsungTV |
+ set rc1 makenotify myTV | # erzeugt notify_rc1, das jeden Tastendruck an myTV weitergibt |
+ Hinweis:die Tastenbelegung kann jederzeit geaendert werden, ohne dass der weblink erneut erzeugt werden muss. |
+ attr rc1 row15 VOLUP,VOLDOWN |
+
+
+
+
+ Set
+
+ set <rc-name> layout [delete|<layoutname>]
+ layout delete loescht alle rowXX-Attribute
+ layout <layoutname> laedt das vordefinierte layout in die rowXX-Attribute
+ set <rc-name> makeweblink [<name>]
+ erzeugt einen weblink zur Anzeige der remotecontrol in FHEMWEB oder FLOORPLAN. Default-Name ist weblink_<rc-name> .
+ set rc1 makenotify mySamsungTV
+ erzeugt notify_rc1 das jeden Tastendruck an mySamsungTV zur Ausfuehrung weitergibt
+
+
+
+ Attribute
+
+ - loglevel
+ - rc_iconpath
+ Pfad für icons, default ist "icons" . Der Attribut-Wert wird für alle icon-Dateien verwendet ausser .svg .
+ - rc_iconprefix
+ Prefix für icon-Dateien, default ist "" . Der Attribut-Wert wird für alle icon-Dateien verwendet ausser .svg .
+ - Note: Icon-Namen (Tasten-Bild-Datei-Namen) werden zusammengesetzt als fhem/<rc_iconpath>/<rc_iconprefix><command|image>
+ Fuer .svg -icons ist die Zugriffsfolge gemaess dem FHEMWEB-Attribut iconPath, default ist openautomation:fhemSVG:default .
+
+ - rc_devStateIcon
+ Zeigt das button-layout auf dem remotecontrol-device selbst in der FHEMWEB-Raumansicht an. Default ist 1, durch setzen auf 0 erscheint in der FHEMWEB-Raumansciht nicht das layout, sondern nur der Status "Initialized".
+
+
+ - rowXX
+ attr <rc-name> rowXX <command>[:<image>]
+ Komma-separarierte Liste von Tasten/Icons je Tastaturzeile. Eine Tastaturzeile kann beliebig viele Tasten enthalten.
+ - <command> ist der event, der bei Tastendruck ausgelöst wird. Gross/Kleinschreibung beachten.
+ - <image> ist der Dateiname des als Taste angezeigten icons
+ - Verwenden Sie je Taste
+ - <command> wobei als Taste/icon
<command> angezeigt wird
+ Beispiel:
+ attr rc1 rc_iconprefix black_btn_ # gilt für alle Tasten/icons
+ attr rc1 row00 VOLUP
+ -> icon ist black_btn_VOLUP , ein Tastendruck erzeugt den event VOLUP
+
+ oder
+ - <command>:<image> wobei als Taste/icon <rc_iconprefix><image> angezeigt wird.
+ Beispiel:
+ attr rc1 row00 LOUDER:VOLUP
+ icon ist black_btn_VOLUP, ein Tastendruck erzeugt den event LOUDER
+ Beispiele:
+ attr rc1 row00 1,2,3,TV,HDMI
+ attr rc2 row00 play:PLAY,pause:PAUSE,louder:VOLUP,quieter:VOLDOWN
+
+ - Hinweis: verwenden Sie :blank für eine 'leere Taste', oder z.B. :blank,:blank,:blank für eine Abstands-Leerzeile.
+
+
+
+
+sequence
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: sequence
+
+
+speedtest
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: speedtest
+
+
+structure
+
+
+
+ Define
+
+ define <name> structure <struct_type> <dev1>
+ <dev2> ...
+
+ Mit dem Device "Structure" werden Strukturen/Zusammenstellungen von anderen
+ Devices erstellt um sie zu Gruppen zusammenzufassen. (Beispiel: im Haus
+ alles ausschalten)
+
+ Die Liste der Devices die einer Struktur zugeordnet sind kann duch das
+ Kommando addstruct / delstruct im laufenden Betrieb
+ verändert werden. Es können sowohl einzelne Devices als auch
+ Gruppen von Devices (TYPE=FS20) zugefügt werden. Jedes zugefügt
+ Device erhält zwei neue Attribute <struct_type>=<name>
+ sowie <struct_type>_map wenn es zu einer Struktur zugefügt
+ wurde. Diese Attribute werden wieder automatisch entfernt, sobald das
+ Device von der Struktur entfernt wird.
+
+ Eine Struktur kann ebenfalls zu einer anderen Struktur zugefügt
+ werden. Somit können z b. kaskadierende Strukturen erstellt werden.
+ (Z.b. KG,EG,OG, Haus)
+
+ Beispiel:
+
+ - define Kueche structure room lampe1 lampe2
+ - addstruct Kueche TYPE=FS20
+ - delstruct Kueche lampe1
+ - define house structure building kitchen living
+ - set house off
+
+
+
+
+
+
+ Set
+
+ Jedes set Kommando wird an alle Devices dieser Struktur weitergegeben.
+ Aussnahme: das Attribut structexclude ist in einem Device definiert und
+ dessen Attributwert matched als Regexp zum Namen der aktuellen Struktur.
+ Wenn das set Kommando diese Form hat set <structure> [FILTER=<filter>] <type-specific>
+ wird :FILTER=<filter> bei der Weitergebe der set an jeden Devicenamen wie folgt angehängt:
+ set :FILTER=<filter> <type-specific>
+
+
+
+ Get
+
+ Get wird im Structur-Device nicht unterstützt.
+
+
+
+
+ Attribute
+
+
+ - clientstate_behavior
+ Der Status einer Struktur hängt von den Stati der zugefügten
+ Devices ab. Dabei wird das propagieren der Stati der Devices in zwei
+ Gruppen klassifiziert und mittels diesem Attribut definiert:
+
+ - absolute
+ Die Struktur wird erst dann den Status der zugefügten Devices
+ annehmen, wenn alle Devices einen identischen Status vorweisen. Bei
+ unterschiedlichen Devictypen kann dies per Attribut
+ <struct_type>_map pro Device beinflusst werden. Andernfalls hat
+ die Struktur den Status "undefined".
+
+ - relative
+ S.u. clientstate_priority.
+
+ - relativeKnown
+ wie relative, reagiert aber nicht auf unbekannte, in
+ clientstate_priority nicht beschriebene Ereignisse. Wird für
+ HomeMatic Geräte benötigt.
+
+ - last
+ Die Struktur übernimmt den Status des zuletzt geänderten
+ Gerätes.
+
+
+
+
+
+ - clientstate_priority
+ Wird die Struktur auf ein relatives Verhalten eingestellt, so wird die
+ Priorität der Devicestati über das Attribut
+ clientstate_priority beinflusst. Die Prioritäten sind
+ in absteigender Reihenfolge anzugeben. Dabei können Gruppen mit
+ identischer Priorität angegeben werden, um zb. unterschiedliche
+ Devicetypen zusammenfassen zu können. Jede Gruppe wird durch
+ Leerzeichen oder /, jeder Eintrag pro Gruppe durch Pipe getrennt. Der
+ Status der Struktur ist der erste Eintrag in der entsprechenden Gruppe.
+ Beispiel:
+
+ - attr kueche clientstate_behavior relative
+ - attr kueche clientstate_priority An|On|on Aus|Off|off
+ - attr haus clientstate_priority Any_On|An All_Off|Aus
+
+ In diesem Beipiel nimmt die Struktur kueche entweder den
+ Status An oder Aus an. Die Struktur
+ haus nimmt entweder den Status Any_on oder
+ All_off an. Sobald ein Device der Struktur
+ haus den Status An hat nimmt die Struktur den
+ Status Any_On an. Um dagegen den Status All_off
+ anzunehmen, müssen alle Devices dieser Struktur auf off
+ stehen.
+
+
+ - <struct_type>_map
+ Mit diesem Attribut, das dem Struktur-Mitglied zugewiesen werden
+ muss, koennen die Werte, die die einzelnen Struktur- Mitglieder melden,
+ umdefiniert werden, damit man unterschiedliche Geraeteklassen
+ zusammenfassen kann. Es existieren drei Varianten:
+
+ - readingName
+ nehme den Wert von readingName anstatt von state
+
+ - oldVal:newVal
+ falls der Wert der state Reading oldVal (als regex) ist, dann ersetze
+ diesen mit newVal.
+
+ - readingName:oldVal:newVal
+ falls der Wert der readingName oldVal (als regex) ist, dann ersetze
+ diesen mit newVal.
+
+
+ Beispiel:
+
+ - define tuer OWSWITCH <ROMID>
+ - define lampe1 dummy
+ - attr lampe1 cmdlist on off
+ - define kueche structure struct_kitchen lamp1 door
+ - attr kueche clientstate_priority An|on OK|Aus|off
+ - attr lampe1 struct_kitchen_map on:An off:Aus
+ - attr tuer struct_kitchen_map A:open:on A:closed:off
+ - attr tuer2 struct_kitchen_map A
+
+
+
+ - structexclude
+ Bei gesetztem Attribut wird set, attr/deleteattr ignoriert. Dies
+ trifft ebenfalls auf die Weitergabe des Devicestatus an die Struktur zu.
+ Fuer set und fuer die Status-Weitergabe muss der Wert den Strukturnamen
+ matchen, bei einem Attribut-Befehl die Kombination
+ Strukturname:Attributname.
+ Beispiel:
+
+
+ define kitchen structure room lamp1 lamp2
+ attr lamp1 structexclude kitchen
+ attr lamp1 structexclude kitchen:stateFormat
+
+
+
+ - readingFnAttributes
+
+
+
+
+
+telnet
+
+
+
+ Define
+
+ define <name> telnet <portNumber> [global]
+ oder
+ define <name> telnet <servername>:<portNummer>
+
+
+ Erste Form, Server-mode:
+ Überwacht den TCP/IP-Port <portNummer> auf
+ ankommende Verbindungen. Wenn der zweite Parameter gobal nicht
+ angegeben wird, wird der Server nur auf Verbindungen von localhost achten.
+
+
+ Für den Gebrauch von IPV6 muss die Portnummer als IPV6:<nummer>
+ angegeben werden, in diesem Fall wird das Perl-Modul IO::Socket:INET6
+ angesprochen. Unter Linux kann es sein, dass dieses Modul mittels cpan -i
+ IO::Socket::INET6 oder apt-get libio-socket-inet6-perl nachinstalliert werden
+ muss; OSX und Fritzbox-7390 enthalten bereits dieses Modul.
+
+ Beispiele:
+
+ define tPort telnet 7072 global
+ attr tPort globalpassword mySecret
+ attr tPort SSL
+
+ Hinweis: Das alte (pre 5.3) "global attribute port" wird automatisch in
+ eine telnet-Instanz mit dem Namen telnetPort umgewandelt. Im Rahmen dieser
+ Umwandlung geht das globale Attribut allowfrom verloren.
+
+
+ Zweite Form, Client-mode:
+ Verbindet zu einem angegebenen Server-Port und führt die von dort aus
+ empfangenen Anweisungen - genau wie im Server-mode - aus. Dies kann
+ verwendet werden, um sich mit einer fhem-Instanz, die sich hinter einer
+ Firewall befindet, zu verbinden, für den Fall, wenn das Installieren
+ von Ausnahmen in der Firewall nicht erwünscht oder nicht möglich
+ sind. Hinweis: Dieser Client-mode unterstützt zwar SSL, aber nicht
+ IPV6.
+
+ Beispiel:
+
+ Starten von tcptee auf einem öffentlich erreichbaren Host ausserhalb
+ der Firewall:
+ perl contrib/tcptee.pl --bidi 3000
+ Konfigurieren von fhem innerhalb der Firewall:
+ define tClient telnet <tcptee_host>:3000
+ Verbinden mit fhem (hinter der Firewall) von ausserhalb der Firewall:
+ telnet <tcptee_host> 3000
+
+
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attribute
+
+
+ - password
+ Bezeichnet ein Passwort, welches als allererster String eingegeben
+ werden muss, nachdem die Verbindung aufgebaut wurde. Wenn das Argument
+ in {} eingebettet ist, dann wird es als Perl-Ausdruck ausgewertet, und
+ die Variable $password mit dem eingegebenen Passwort verglichen. Ist
+ der zurückgegebene Wert wahr (true), wurde das Passwort
+ akzeptiert. Falls dieser Parameter gesetzt wird, sendet fhem
+ telnet IAC Requests, um ein Echo während der Passworteingabe zu
+ unterdrücken. Ebenso werden alle zurückgegebenen Zeilen mit
+ \r\n abgeschlossen.
+
+ Beispiel:
+
+
+ attr tPort password secret
+ attr tPort password {"$password" eq "secret"}
+
+
+ Hinweis: Falls dieses Attribut gesetzt wird, muss als erstes Argument
+ ein Passwort angegeben werden, wenn fhem.pl im Client-mode betrieben
+ wird:
+
+
+ perl fhem.pl localhost:7072 secret "set lamp on"
+
+
+
+
+
+ - globalpassword
+ Entspricht dem Attribut password; ein Passwort wird aber
+ ausschließlich für nicht-lokale Verbindungen verlangt.
+
+
+
+ - SSL
+ SSL-Verschlüsselung für eine Verbindung aktivieren. Hier gibt es eine Beschreibung, wie das erforderliche
+ SSL-Zertifikat generiert werden kann. Um eine Verbindung mit solch
+ einem Port herzustellen, sind folgende Befehle möglich:
+
+
+ socat openssl:fhemhost:fhemport,verify=0 readline
+ ncat --ssl fhemhost fhemport
+ openssl s_client -connect fhemhost:fhemport
+
+
+
+
+
+ - allowfrom
+ Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut
+ gesetzt wurde, werden ausschließlich Verbindungen von diesen
+ Adressen akzeptiert.
+
+
+
+ - connectTimeout
+ Gibt die maximale Wartezeit in Sekunden an, in der die Verbindung
+ aufgebaut sein muss. Standardwert ist 2.
+
+
+
+ - connectInterval
+ Gibt die Dauer an, die entweder nach Schließen einer Verbindung
+ oder für den Fall, dass die Verbindung nicht zustande kommt,
+ gewartet werden muss, bis ein erneuter Verbindungsversuch gestartet
+ werden soll. Standardwert ist 60.
+
+
+
+ - encoding
+ Bezeichnet die Zeichentabelle für die zum Client gesendeten Daten.
+ Mögliche Werte sind utf8 und latin1. Standardwert ist utf8.
+
+
+
+
+
+
+
+
+update
+
+ FHEM aktualisieren / auf Aktualisierungen prüfen:
+
+ update [development|stable] [<Date|Paket>] [force]
+ update [development|stable] check
+ update housekeeping
+ Aktualisierung eines Fremdpaketes / Fremdpaket auf Aktualisierungen prüfen:
+
+ update thirdparty <url> <Paketname> [force]
+ update thirdparty <url> <Paketname> check
+
+ Die installierte FHEM Distribution und deren Erweiterungen (z.B. das Web-Interface
+ PGM2 (FHEMWEB)) werden mit diesem Befehl über ein Online Repository aktualisiert.
+ Enthält das Repository neuere Dateien oder Dateiversionen als die lokale
+ Installation, werden die aktualisierten Dateien aus dem Repository installiert.
+
+
+ Die Update-Funktion unterstützt erweiterte Distributions Informationen sowie
+ die Steuerung über spezielle Befehle zum aktualisieren, verschieben oder
+ umbenennen von bestehenden Dateien. Neue Verzeichnisstrukturen können ebenfalls
+ über die Aktualisierung erzeugt werden. Die Aktualisierung erfolgt exklusiv
+ im Verzeichnispfad der über das globale Attribut "modpath" gesetzt wurde
+ (Ausnahme: fhem.pl). Der Anwender kann die Aktualisierung wahlweise
+ aus dem stabilen (stable) oder Entwicklungs-Zweig (development) vornehmen lassen.
+ Ein Aktualisierung erfolgt zur Zeit ausschliesslich nur über den
+ Entwicklungs-Zweig (development).
+
+
+ Weiterhin unterstützt der update Befehl die manuelle Installation von Paketen
+ die Bestandteil der FHEM Distribution sind. Aktuell werden noch keine erweiterten FHEM
+ Pakete bereitgestellt.
+
+
+ Der update Befehl unterstützt auch die Installation von Paketen die kein Bestandteil
+ der FHEM Distribution sind. Diese Pakete können z.B. von Entwicklern angebotene
+ Module oder Benutzerinterfaces beinhalten.
+
+
+ Hinweis für Anbieter von zusätzlichen Paketen:
+
+ Weiterführende Informationen zur Bereitstellung von Paketen sind der Datei
+ 'docs/LIESMICH.update-thirdparty' zu entnehmen.
+
+
+ Beispiele:
+ Auf neue Aktualisierungen prüfen:
+ fhem> update check
+
+
+ FHEM aktualisieren:
+ fhem> update
+
+
+ FHEM Aktualisierung erzwingen (alle Dateien werden aktualisiert!):
+ fhem> update force
+
+
+ Eine einzelne Datei aktualisieren:
+ fhem> update 98_foobar.pm
+
+
+ Nach einem Dateinamen suchen:
+ fhem> update backup
+ 'backup' not found. Did you mean:
+ ==> 98_backup.pm
+ nothing to do...
+
+
+ Aktualisierung oder Installation eines Fremdpaketes:
+ fhem> update thirdparty http://domain.tld/path paketname
+
+
+ Fremdpaket auf neue Aktualisierungen prüfen:
+ fhem> update thirdparty http://domain.tld/path paketname check
+
+
+
+ Attribute
+
+
+
+
+watchdog
+
+
+
+
+ Define
+
+ define <name> watchdog <regexp1> <timespec>
+ <regexp2> <command>
+
+
+ Startet einen beliebigen fhem.pl Befehl wenn nach dem Empfang des
+ Ereignisses <regexp1> nicht innerhalb von <timespec> ein
+ <regexp2> Ereignis empfangen wird.
+
+ Der Syntax für <regexp1> und <regexp2> ist der gleiche wie
+ regexp für notify.
+
+ <timespec> ist HH:MM[:SS]
+
+ <command> ist ein gewöhnlicher fhem Befehl wie z.B. in at oderr notify
+
+
+ Beispiele:
+
+ # Frage Daten vom FHT80 _einmalig_ ab, wenn wir keine Nachricht für
+ # 15 Minuten erhalten haben.
+ define w watchdog FHT80 00:15:00 SAME set FHT80 date
+
+ # Frage Daten vom FHT80 jedes Mal ab, wenn keine Nachricht für
+ # 15 Minuten emfpangen wurde, d.h. reaktiviere den Watchdog nachdem er
+ getriggert wurde.
+
+ # Kann gefährlich sein, da er so in einer Schleife getriggert werden
+ kann.
+ define w watchdog FHT80 00:15:00 SAME set FHT80 date;; trigger w .
+
+ # Alarmiere einmalig wenn vom FHT80 für 15 Minuten keine Nachricht
+ # emfpangen wurde.
+ define w watchdog HMS100-FIT 01:00:00 SAME "alarm-fit.sh"
+
+ # Sende eine Mail wenn das Fenster offen gelassen wurde
+ define w watchdog contact1:open 00:15 contact1:closed "mail_me close
+ window1"
+ attr w regexp1WontReactivate
+
+
+ Hinweise:
+
+ - Wenn <regexp1> . (Punkt) ist, dann aktiviere den Watchdog zur
+ definierten Zeit. Sonst wird er durch den Empfang des ersten passenden
+ Events aktiviert.
+
+ - <regexp1> Resetet den Timer eines laufenden Watchdogs. Um das
+ zu verhindern wird das regexp1WontReactivate Attribut gesetzt.
+
+ - Wenn <regexp2> SAME ist , dann ist es das gleiche wie das erste
+ regexp, und wird reaktiviert wenn es empfangen wird.
+
+ - trigger <watchdogname> . aktiviert den Trigger wenn dessen
+ Status defined ist und setzt ihn in den Status defined wenn sein status
+ triggered ist.
+
+ Der Watchdog musst immer mit diesem Befehl reaktiviert werden wenn er
+ getriggert wurde.
+
+ - Ein generischer Watchdog (ein Watchdog, verantwortlich für
+ mehrere Devices) ist derzeit nicht möglich.
+
+
+
+
+
+
+
+ Set
+
+
+ Get
+
+
+ Attributes
+
+
+
+
+=end html
+=cut
+
+weblink
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: weblink
+
+
+withings
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: withings
+
+
+xxLG7000
+
+ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
+ hier: xxLG7000
+
+
+Perl specials
+ Wenn Sie einige Aufgaben automatisieren wollen, dann sollten Sie die Befehle at oder notify
+nutzen. Für komplexere Aufgaben sollten Sie lieber ein SHELLl-Skiipt oder einen
+PERL "oneliner" als das at/notify
+ argument anwenden. Dieser Abschnitt gibt Ihnen einige Tipps zur Anwendung der
+PERL-oneliner.
+
+ - 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.
+ Beispiele:{ "Hello" }
+ { 1+3*4 }
+ { `ls /etc` }
+ { Log 1, "Hello" }
+
+
+
+
+ -
+ PERL Ausdrücke werden durch ein Semikolon (;) getrennt. In FHEM "oneliners"
+ müssen sie durch ein weiteres Semikolon (;;) "escaped" (maskiert) werden
+ Beispiel:
+ { my $a = 1+1;; Log 1, "Hello $a" }
+
+
+
+ - Um FHEM-Kommandos in den PERL-Ausdrücken zu verwenden, benutzen Sie
+bitte die Funktion fhem(),
+ mit einem Textargument. Dieser Text wird als FHEM-Kommando interpretiert.
+ Beispiel
+ { fhem "set light on" }
+ define n1 notify piri:on { fhem "set light on" }
+
+
+ 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...".
+
+
+
+
+ - Notify kann auch dazu verwendet werden, um Macros manuell
+ auszuführen. Verwenden Sie den trigger-Befehl
+ um das Makro zu starten:
+
+ define MyMacro notify MyMacro { Log 1, "Hello"}
+ trigger MyMacro
+ define MacroWithArg notify MyMacro { Log 1, "Hello %"}
+ trigger MyMacro MyArg
+
+
+
+
+ - Um die Verwendung von Datum und Zeitangaben zu vereinfachen, wurden die
+ Variablen $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst
+ für die Verwendung in PERL-"oneliners" eingeführt (s.
+ unter perldoc -f localtime). Ausnahmen: $month hat einen Wertebereich von 1
+ to 12 und $year ist korrigiert von 1900.
+ Weiterhin enthät $hms die Zeit in dem HH:MM:SS Format.
+
+
+ Die Variabe $we hat den Wert 1 wenn der abgefragte Tag auf ein Wochenende
+ fällt (Z.B. $wday == 0 [Sonntag] oder $wday == 6 [Samstag]), und 0
+ für die anderen Wochentage. Wenn man das global holida2we Attribut setzt, dann ist $we ebenfalls 1
+ bei Urlaubstagen.
+
+
+ define n2 notify piri:on { if($hour > 18 || $hour < 5) {
+ fhem "set light on" } }
+ define roll_en *07:45:00 { fhem "trigger SwitchAllRoll on" if(!$we) }
+ define roll_en *08:30:00 { fhem "trigger SwitchAllRoll on" if($we) }
+
+
+
+
+ -
+ Die follgendenHilsfunktionen sind in der Datei 99_Util.pm definiert (wird
+ wie jede mit 99 beginnende Datei automatisch geladen):
+
+ - min(a,b), max(a,b)
+ - time_str2num("YYYY-MM-DD HH:MM:SS") gibt einen numerischen Wert
+ zurück, der die Berechnung von Zeitdifferenzen vereinfacht
+ - abstime2rel("HH:MM:SS") wandelt absolute in relative Zeitangaben um
+
+
+
+
+ -
+ Um auf die Gerätestati/Attribute zuzugreifen benutzen Sie bitte die
+ folgenden Funktionen:
+
+
+ - Value(<devicename>)
+ gibt den Status eines Gerätes zurück (entsprechend dem
+ Ausdruck in Klammern, den Sie beim List-Befehl sehen).
+
+ - OldValue(<devicename>)
+ - OldTimestamp(<devicename>)
+ gibt den vorherigen Wert/Zeitstempel des Gerätes zurück.
+
+ -
+ ReadingsVal(<devicename>,<reading>,<defaultvalue>)
+ Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt
+ von "list device" angezeigt wird)
+
+ -
+ AttrVal(<devicename>,<attribute>,<defaultvalue>)
+ Gibt die gesetzteb Attribute des Gerätes zurück
+
+ { Value("wz") }
+ { OldValue("wz") }
+ { time_str2num(OldTimestamp("wz")) }
+ { ReadingsVal("wz", "measured-temp", "20")+0 }
+ { ReadingsTimestamp("wz", "measured-temp", 0)}
+ { AttrVal("wz", "room", "none") }
+
+ -
+ InternalVal(<devicename>,<reading>,<defaultvalue>)
+ Gibt den Inhalt der "internal" zurück (den Inhalt der in
+ dem "Internals"-Abschnitt von "list device" angezeigt wird)
+
+
+
+
+ -
+ Wenn Sie das 99_SUNRISE_EL.pm Modul benutzen, haben Sie zugriff auf folgende
+ Funktionen:
+
+ sunset($offset, $min, $max)
+ sunrise($offset, $min, $max)
+ isday()
+
+ 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.
+
+
+
+
+
+
+gnuplot file syntax
+
+ Die .gplot Dateien werden ebenso von den FHEMWEB/SVG
+ Modulen falls das plotmode-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
+ diesen fhemwiki Eintrag zur Erstellung von Logdateien.
+ Im folgenden ist eine minimale .gplot Definition (gültig nur bei Plotmode SVG):
+ set terminal size <SIZE>
+ #FileLog 4:::
+ plot title 'Temperature' with lines
+
+ Die .gnuplot Datei besteht aus 3 Teilen:
+
+ - set Befehle
+ Folgende "sets" werden erkannt:
+
+ - terminal, nur die Größenparameter.
+ Dieser ist in der Regel auf <SIZE> gesetzt, welcher ersetzt wird
+ durch das plotsize Attribut von FHEMWEB oder einer
+ Weblink-Instanz.
+
+ - title
+ Normalerweise gesetzt auf <TL> welcher durch das Weblink title-Attribut, oder
+ durch <Lx>, welches wiederum vom Weblink label
+ Attribut ersetzt wird.
+
+ - ylabel,y2label
+ Linke und rechte vertikale Achsenbeschriftungen. Are also subject to label
+ replacement.
+
+ - yrange,y2range
+ Legen den Wertebereich der linken und rechten y-Achse fest.
+ Beispiele:
+
+ set yrange [-0.1:1.1]
+ set y2range [0:]
+
+
+ - ytics,y2tics
+ Beschriftung für die Werte der rechten/linken y-Achse. Beispiele:
+
+ set ytics ("on" 0, "off" 1)
+ set y2tics
+
+
+
+
+
+
+ - #FileLog Einträge
+ Jede Line des Plots muss eine dazugehörige #FileLog
+ Zeile haben. Zur Syntax lesen Sie bitte den Abschnitt "column_spec paragraph"
+ von der Filelog get 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
+
+
+
+ - Plot Einträge
+ 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:
+
+ - axes x1y1 / x1y2
+ weist das Programm an die aktuelle Zeile einer der beiden Achsen (links
+ oder rechts) zuzuweisen.
+
+ - title
+ 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.
+ - with <linetype>
+ 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.
+
+ - ls <linestyle>
+ 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.
+ 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.
+
+ - lw <linewidth>
+ Setzt die Linienbreite der Linie. Dieses Attribut ist veraltet. Das
+ entprechende Feature der css-Datei/(Attribut ls) muss verwendet werden.
+
+
+
+
+
+
+
+
+
| |