Konfiguration
Die Konfiguration eines Fhem Systems wird im Normalfall definiert durch Eintragungen in der Datei fhem.cfg
, die standardmäßig im Fhem-Installationsverzeichnis abgelegt ist.
Sofern nicht anderweitig erwähnt, beziehen sich alle weiteren Aussagen und Bildschirmfotos auf das Standard Webinterface im Stil "dark".
Grundstruktur
In einer Standardinstallation sind alle Definitionen in der Datei fhem.cfg
abgelegt; diese Datei befindet sich im Installationsverzeichnis (z. B. /opt/fhem
). Soll alternativ eine andere (Start-)Konfigurationsdatei verwendet werden, so ist deren Name beim Start von Fhem mitzugeben.
Auslagerung von Definitionen
Sofern Definitionen aus der fhem.cfg ausgelagert werden sollen bzw. wurden, können die Dateien mit den ausgelagerten Anweisungen mithilfe von include
eingebunden werden.
include Zimmer1.cfg
(Datei muss in/opt/fhem/FHEM
liegen)include /opt/fhem/eigene/Zimmer1.cfg
(Datei muss im angegebenen Verzeichnis liegen)
Sämtliche attr global
Definitionen müssen in der fhem.cfg bleiben.
Nur Konfigurationsdateien, die im Verzeichnis <installationsverzeichnis>/FHEM liegen können mit dem integrierten Editor bearbeitet werden.
Bearbeitung der Konfiguration
Die Fhem-Konfiguration kann auf verschiedene Arten bearbeitet werden, die Methoden "Integrierter Editor" und insbesondere "Externer Editor" sollten als "Expertenmodus" angesehen und nur in begründeten (Ausnahme-)Fällen angewendet werden. Insbesondere beim Mischen der Arten können unerwünschte und/oder unerwartete Effekte auftreten, so beispielsweise, wenn ein benötigtes "save config" nicht erfolgt ist, bevor ein "rereadcfg" oder Neustart von Fhem durchgeführt wird.
Integrierter Editor
Sollte ein direktes Editieren der Konfigurationsdatei als nötig erachtet werden, wird der Editor über den entsprechenden Menüeintrag in der linken Spalte erreicht. Auf die Einhaltung der Syntax von Befehlen und Definitionen ist zu achten, teilweise sind besondere Maßnahmen zu ergreifen ("Escapen" von Sonderzeichen, verdoppeln von Semikolon). Mit dem Abspeichern der editierten Datei werden die Änderungen unmittelbar aktiv, korrekte Syntax und Semantik vorausgesetzt.
Notwendige Aktionen nach speichern der Änderung: keine.
Befehlseingabefenster
Eingaben in das Befehlsfeld, das sich oben auf jeder Seite des Standardinterfaces befindet, stellen einen schnellen und einfachen Weg dar, um z. B. neue Objekte zu definieren (im dargestellten Beispiel die Zuweisung eines (ggf. neuen) Raumes and ein Objekt).
Notwendige Aktionen nach Durchführung der Änderung: "save config" (aus dem Menü in der linken Spalte).
Objektdetails
Durch Anklicken des Namensfeldes eines Objekts werden die Objektdetails aufgerufen. Je nach Objekttyp stehen auf dieser Seite verschiedene Optionen zur Manipulation von Objekteigenschaften zur Verfügung:
-
DEF
zur Anpassung der Definition - Attribute / Attributwerte aus Auswahllisten (nach Auswahl der Werte ist der
attr
Knopf anzuklicken) - je nach Objekttyp stehen weitere / andere Aktionen zur Verfügung
Notwendige Aktionen nach Durchführung der Änderung: "save config"
Externer Editor
Unter bestimmten Umständen kann auch das Editieren der Konfiguration mit einem externen Editor wie z. B.
- Notepad++ (mit der nppFTP-Erweiterung)
- nano in einer Telnet Sitzung
- in wfftp integrierter / integrierbarer Editor
- ...
sinnvoll sein (duplizieren von Definitionen, globale Änderungen, umsortieren von Definitionen, etc.). In diesem Fall sollte der Benutzer sich mit der Bedienung des Editors in der gewählten Umgebung hinreichend gut auskennen.
Auf die Einhaltung der Syntax von Befehlen und Definitionen ist zu achten, teilweise sind besondere Maßnahmen zu ergreifen ("Escapen" von Sonderzeichen, verdoppeln von Semikolon). Nach dem Abspeichern der editierten Datei werden die Änderungen erst nach erneutem Einlesen der Konfiguration aktiv, korrekte Syntax und Semantik vorausgesetzt.
Notwendige Aktionen nach Durchführung der Änderung: "rereadcfg" oder Neustart von Fhem.
Syntaxhervorhebung
Im Zeitraum von Februar bis April 2014 wurde der in Fhem integrierte Editor um Syntaxhervorhebungs-, Befehlsauswahl- und Befehlsvervollständigungsfunktionen erweitert. Diese Erweiterungen wurden ausführlich im Fhem Forum unter der Überschrift Javascript Editor einbinden diskutiert.
Seit Anfang April 2014 ist diese Erweiterung im aktuellen Fhem Update enthalten. Um die Funktionalität zu aktivieren müssen die folgenden zwei Attribute gesetzt werden:
attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }
Die Syntaxhervorhebung / Befehlsvervollständigung, sofern aktiviert, ist wirksam für
- Integrierter Editor
- Bearbeitung der Objektdetails
Darüber hinaus wird (wie im Bildauschnitt dargestellt) über Strg+Leertaste eine Befehlsauswahl bzw. automatische Befehlsvervollständigung angeboten.
Autocreate
Sofern die "Autocreate" Funktion aktiv ist (define autocreate autocreate
), werden unter bestimmten Umständen Objekte automatisch angelegt. Diese Definitionen werden immer in der Start-Konfigurationsdatei abgelegt.
Konfiguration in einer SQL Datenbank
Es werden derzeit Tester gesucht für einen anderen Ansatz zu Speicherung der Konfigurationsdaten: hierbei werden die Definitionen nicht mehr in einfachen Dateien gespeichert, sondern in einer SQL Datenbank abgelegt.
Details zu diesem "Projekt":
- Fhem Forum - "Tester gesucht" (enthält auch die Beschreibung und Installationsanleitung)
- Fhem Forum - Vorüberlegungen
Seit April 2014 (Fhem-Version 5079) sind configDB (Hilfsmodul) und configdb (command) offizieller Bestandteil des aktuellen Fhem und in der commandref dokumentiert.