Konfiguration: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Kleinere Korrekturen und Ergänzungen)
K (Wiki-Link auf Befehl "save")
 
(67 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''Konfiguration''' eines Fhem [[Systemübersicht|Systems]] wird im Normalfall definiert durch Eintragungen in der Datei <code>fhem.cfg</code>, die standardmäßig im Fhem-Installationsverzeichnis abgelegt ist.
Die '''Konfiguration''' eines FHEM [[Systemübersicht|Systems]] wird über eine zentrale Datei, die <code>fhem.cfg</code><ref>Diese Begrifflichkeit wird im FHEM-Kontext auch verwendet, wenn die Konfiguration über mehrere Dateien verteilt oder in einer Datenbank gespeichert sein sollte</ref>, festgelegt<ref>Sofern nicht anderweitig erwähnt, beziehen sich alle weiteren Aussagen und Bildschirmfotos auf das [[FHEMWEB|Standard Webinterface]] im Stil "f18"</ref>.  


Sofern nicht anderweitig erwähnt, beziehen sich alle weiteren Aussagen und Bildschirmfotos auf das [[PGM2|Standard Webinterface]] im Stil "dark".
== Grundstruktur ==
Beim Systemstart wird die zuletzt gespeicherte Konfiguration gelesen. Diese befindet sich standardmäßig in der Datei <code>fhem.cfg</code><ref>Diese Datei befindet sich im Installationsverzeichnis (z.&nbsp;B. <code>/opt/fhem</code>)</ref>, die Konfiguration kann stattdessen auch in einer [[Konfiguration#Konfiguration in einer SQL Datenbank|Datenbank]] hinterlegt werden.
Soll eine andere (Start-)Konfiguration verwendet werden, als im jeweiligen automatischen Startaufruf<ref>Betriebssystemspezifisch; bei neueren Linux-Versionen über systemd</ref> hinterlegt, so ist deren Name beim Start von FHEM mitzugeben.
 
== Autocreate ==
Sofern die "autocreate" Funktion aktiv ist (<code>define autocreate autocreate</code>), werden unter bestimmten Umständen Objekte automatisch angelegt. Diese Definitionen werden immer in der Start-Konfigurationsdatei abgelegt und abgespeichert. Nach der Erstinstallation von FHEM ist die [[Quick-Start#autocreate|autocreate]] Funktion standardmäßig aktiv.
 
== Bearbeitung der Konfiguration ==
[[Bild:saveConfig.png|mini|130px|links|"Knopf" zum Speichern der Konfigurationsänderungen]]
[[Bild:saveConfigChangeList.png|mini|220px|rechts|Beispiel einer Liste der ungesicherten Änderungen der Konfiguration]]
Die FHEM-Konfiguration kann auf verschiedene Arten bearbeitet werden. Nicht nur für Einsteiger empfiehlt sich grundsätzlich die Verwendung des "Befehl-Eingabefeld" und der "Objektdetails" mit eingeschalteter Syntaxhervorhebung. Die Methoden "Integrierter Editor" und insbesondere "Externer Editor" sollten als "Expertenmodus" angesehen und nur in begründeten (Ausnahme-)Fällen angewendet werden; viele Automatiken und Fehlerkontrollen/-hinweise von FHEM stehen bei diesen Methoden nicht zur Verfügung. 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.
 
Ungesicherte Konfigurationsänderungen signalisiert FHEM durch ein rotes Fragezeichen neben dem Link "Save config". Durch Anklicken des roten {{Taste|?}} wird eine Teilliste der ungesicherten Konfigurationsänderungen, wie im Bild rechts dargestellt, angezeigt.
 
=== Befehl-Eingabefeld ===
[[Bild:ConfCommandField.png|thumb|300px|Right|Befehl-Eingabefeld]]
Eingaben in das Befehl-Eingabefeld (teilweise auch bezeichnet als "Kommando-Eingabefeld" oder kurz "Eingabefeld"), das sich oben auf jeder Seite des Standardinterfaces befindet, stellen einen schnellen und einfachen Weg dar, um z.&nbsp;B. neue Objekte zu definieren (im dargestellten Beispiel die Anlage eines dummy-Devices). Nach Bestätigung mit der <Enter>-Taste werden die Änderungen unmittelbar wirksam.
 
Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl [[save]] im Befehl-Eingabefeld eingeben.
 
=== 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:
* [[Bild:ConfModifyDEF.png|thumb|300px|right|DEF-Editor]] [[DEF-Editor]] zur Anpassung der Definition
* [[Bild:ConfAttrDropdown.png|thumb|300px|right|Attribut-Auswahlliste]] Attribute / Attributwerte aus Auswahllisten (nach Auswahl der Werte ist der <code>attr</code> Knopf anzuklicken)
* je nach Objekttyp stehen weitere / andere Aktionen zur Verfügung
Nach einem Klick auf "Modify" werden die Änderungen an der Definition unmittelbar wirksam.


== Grundstruktur ==
Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl "save" im Befehl-Eingabefeld eingeben.
In einer Standardinstallation sind alle Definitionen in der Datei <code>fhem.cfg</code> abgelegt; diese Datei befindet sich im Installationsverzeichnis (z.&nbsp;B. <code>/opt/fhem</code>). Soll alternativ eine andere (Start-)Konfigurationsdatei verwendet werden, so ist deren Name beim Start von Fhem mitzugeben.


== Auslagerung von Definitionen ==
=== RAW-Import ===
Sofern Definitionen aus der fhem.cfg ausgelagert werden sollen bzw. wurden, können die Dateien mit den ausgelagerten Anweisungen mithilfe von <code>include</code> eingebunden werden.
[[Datei:GotoRAW-Import firststeps.PNG|thumb|right|300px|"+" zum Öffnen des mehrzeiligen Befehl-Eingabefeld / RAW-Import]]Der [[Import von Code Snippets|RAW-Import]] ist eine einfache Möglichkeit, mehrere Befehle oder ganze Gerätedefinitionen samt [[Attribut|Attributen]] "en Block" in die Konfiguration zu übernehmen.
:<code>include Zimmer1.cfg</code> (Datei muss in <code>/opt/fhem/FHEM</code> liegen)
:<code>include /opt/fhem/eigene/Zimmer1.cfg</code> (Datei muss im angegebenen Verzeichnis liegen)


Sämtliche <code>attr global</code> Definitionen '''müssen''' in der fhem.cfg bleiben.  
Im Style ''f18'' ist ein entsprechendes Dialogfeld direkt über das "+" neben dem Befehl-Eingabefeld zu erreichen, ansonsten am Ende jeder Geräte-Detailansicht über den Link ''Raw definition''.


Nur Konfigurationsdateien, die im Verzeichnis <installationsverzeichnis>/FHEM liegen, werden unter "Edit files" zur Bearbeitung mit dem integrierten Editor aufgeführt.
Nach einem Klick auf "Execute" werden die Änderungen unmittelbar wirksam.


== Bearbeitung der Konfiguration ==
Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl "save" im Befehl-Eingabefeld eingeben.
[[Bild:saveConfig.png|mini|120px|rechts|"Knopf" zum Speichern der Konfigurationsänderungen]]
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 ===
=== Integrierter Editor ===
Zeile 24: Zeile 44:
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.
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.
Seit Februar 2015 ist die Bearbeitung der Konfiguration über den Integrierten Editor als nicht empfohlene Variante standardmäßig gesperrt. Rudolf König dazu: ''"Durch das direkte Editieren der Datei kann FHEM die Fehler der Benutzer nicht so gut abfangen (kein dropdown, wizard, etc), bzw. die Fehlermeldungen sind etwas aufwendiger  zu interpretieren, d.h. man muss sie lesen und verstehen. Dass sowas nicht selbstverstaendlich ist, beweist gerade diese Diskussion, und solche Probleme muessen wir (die Supporter) hier im Forum ausbaden. Deswegen sollten die Anfaenger nicht dazu ermuntert werden, die Konfiguration in FHEMWEB direkt zu editieren. Verboten ist es keinesfalls, es wird seit gestern nur eine kleine Huerde (Hinweis + Eintrittspruefung) hingelegt."'' {{Link2Forum|Topic=33839|Message=262029}}


=== Befehlseingabefenster ===
=== Syntaxhervorhebung ===
[[Bild:ConfCommandField.png|thumb|300px|Right|Befehlsfeld]]
FHEM bietet für die oben genannten Varianten der Konfigurationsbearbeitung über FHEMWEB -mit Ausnahme des Befehl-Eingabefeldes- Syntaxhervorhebungs-, Befehlsauswahl- und Befehlsvervollständigungsfunktionen.
Eingaben in das Befehlsfeld, das sich oben auf jeder Seite des Standardinterfaces befindet, stellen einen schnellen und einfachen Weg dar, um z.&nbsp;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 ===
Um die Funktionalität zu aktivieren, muss folgendes Attribut bei der entsprechenden FHEMWEB-Instanz gesetzt werden:
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:
:<code>attr <FHEMWEB-Devicename> JavaScripts codemirror/fhem_codemirror.js</code>
* [[Bild:ConfModifyDEF.png|300px|right]] <code>DEF</code> zur Anpassung der Definition
* [[Bild:ConfAttrDropdown.png|300px|right]] Attribute / Attributwerte aus Auswahllisten (nach Auswahl der Werte ist der <code>attr</code> Knopf anzuklicken)
* je nach Objekttyp stehen weitere / andere Aktionen zur Verfügung


Notwendige Aktionen nach Durchführung der Änderung: "Save config"
Details zu der Funktionalität und zu Anpassungsmöglichkeiten enthält der Artikel zu [[codemirror]].


=== Externer Editor ===
=== Externer Editor ===
Unter bestimmten Umständen kann auch das Editieren der Konfiguration mit einem externen Editor wie z.&nbsp;B.
Das Editieren der Konfiguration kann auch mit einem externen Editor wie z.&nbsp;B.
* Notepad++ (mit der nppFTP-Erweiterung)
* Notepad++ (beispielweise mit der nppFTP-Erweiterung)
* nano in einer Telnet Sitzung
* nano in einer Telnet Sitzung
* in wfftp integrierter / integrierbarer Editor
* in wfftp integrierter / integrierbarer Editor
* ...
erfolgen (duplizieren von Definitionen (auch möglich mit {{Link2CmdRef|Anker=copy|Label=copy}}), globale Änderungen (auch möglich mit {{Link2CmdRef|Anker=rename|Label=rename}}, {{Link2CmdRef|Anker=attr|Label=attr}}, usw in Verbindung mit {{Link2CmdRef|Anker=devspec|Label=devspec}}...), umsortieren von Definitionen (fehleranfällig und übernimmt FHEM bei Bearbeitung über FHEMWEB automatisch), etc.). In diesem Fall sollte der Benutzer sich mit der Bedienung des Editors in der gewählten Umgebung und FHEM hinreichend gut auskennen.
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.
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.
Notwendige Aktionen nach Durchführung der Änderung: "rereadcfg" oder Neustart von FHEM.
 
=== Syntaxhervorhebung ===
[[Bild:ConfEditDEFAutocomplete.png|mini|300px|rechts|Automatische Vervollständigung / Befehlsauswahlfenster ("se" getippt, dann Strg+Leertaste gedrückt)]]
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 [http://forum.fhem.de/index.php/topic,20444.0.html 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:
:<code>attr WEB JavaScripts codemirror/fhem_codemirror.js</code>
:<code>attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }</code>


Die Syntaxhervorhebung / Befehlsvervollständigung, sofern aktiviert, ist wirksam für
'''Syntax-Highlighting''' kann bei verschiedenen externen Editoren verwendet werden, näheres s. [[Syntax Highlighting bei externen Editoren]].
* [[Konfiguration#Integrierter Editor|Integrierter Editor]]
* Bearbeitung der [[Konfiguration#Objektdetails|Objektdetails]]


Darüber hinaus wird (wie im Bildauschnitt dargestellt) über Strg+Leertaste eine Befehlsauswahl bzw. automatische Befehlsvervollständigung angeboten.
== Aufteilung der fhem.cfg in mehrere Konfigurationsdateien ==
 
Die fhem.cfg kann bei Bedarf mit Hilfe des Befehls [[include]] in mehrere Konfigurationsdateien aufgeteilt werden. Dies ist als '''"Expertenmodus"''' zu betrachten und sollte (wenn überhaupt) nur von erfahrenen Benutzern angewendet werden.
== Autocreate ==
Sofern die "Autocreate" Funktion aktiv ist (<code>define autocreate autocreate</code>), werden unter bestimmten Umständen Objekte automatisch angelegt. Diese Definitionen werden immer in der Start-Konfigurationsdatei abgelegt.  


== Konfiguration in einer SQL Datenbank ==
== 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.
Seit April 2014 (FHEM-Version 5079) können Definitionen alternativ zur Speicherung in einer einfachen Text-Konfigurationsdatei(en) in einer SQL Datenbank abgelegt werden. Hierzu dienen configDB (Modul) und [[configdb]] (Befehl), die in der {{Link2CmdRef|Anker=configDB}} dokumentiert sind.


Details zu diesem "Projekt":
Weitere Informationen hierzu im FHEM Forum:
* Fhem Forum - "[http://forum.fhem.de/index.php/topic,20194.0.html Tester gesucht]" (enthält auch die Beschreibung und Installationsanleitung)
* {{Link2Forum|Topic=54055|LinkText=Workshop zum Umstieg}}
* Fhem Forum - [http://forum.fhem.de/index.php/topic,20117.0.html Vorüberlegungen]
* {{Link2Forum|Topic=20194|LinkText=Tester gesucht}}
* {{Link2Forum|Topic=20117|LinkText=Vorüberlegungen}}


Seit April 2014 (Fhem-Version 5079) sind configDB (Hilfsmodul) und configdb (command) offizieller Bestandteil des aktuellen Fhem und in der [http://fhem.de/commandref.html#configDB commandref] dokumentiert.
== Anmerkungen ==
<references />


[[Kategorie:FHEM]]
[[Kategorie:FHEM-Verwendung]]
[[Kategorie:Glossary]]

Aktuelle Version vom 3. Juli 2020, 18:05 Uhr

Die Konfiguration eines FHEM Systems wird über eine zentrale Datei, die fhem.cfg[1], festgelegt[2].

Grundstruktur

Beim Systemstart wird die zuletzt gespeicherte Konfiguration gelesen. Diese befindet sich standardmäßig in der Datei fhem.cfg[3], die Konfiguration kann stattdessen auch in einer Datenbank hinterlegt werden. Soll eine andere (Start-)Konfiguration verwendet werden, als im jeweiligen automatischen Startaufruf[4] hinterlegt, so ist deren Name beim Start von FHEM mitzugeben.

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 und abgespeichert. Nach der Erstinstallation von FHEM ist die autocreate Funktion standardmäßig aktiv.

Bearbeitung der Konfiguration

"Knopf" zum Speichern der Konfigurationsänderungen
Beispiel einer Liste der ungesicherten Änderungen der Konfiguration

Die FHEM-Konfiguration kann auf verschiedene Arten bearbeitet werden. Nicht nur für Einsteiger empfiehlt sich grundsätzlich die Verwendung des "Befehl-Eingabefeld" und der "Objektdetails" mit eingeschalteter Syntaxhervorhebung. Die Methoden "Integrierter Editor" und insbesondere "Externer Editor" sollten als "Expertenmodus" angesehen und nur in begründeten (Ausnahme-)Fällen angewendet werden; viele Automatiken und Fehlerkontrollen/-hinweise von FHEM stehen bei diesen Methoden nicht zur Verfügung. 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.

Ungesicherte Konfigurationsänderungen signalisiert FHEM durch ein rotes Fragezeichen neben dem Link "Save config". Durch Anklicken des roten ? wird eine Teilliste der ungesicherten Konfigurationsänderungen, wie im Bild rechts dargestellt, angezeigt.

Befehl-Eingabefeld

Befehl-Eingabefeld

Eingaben in das Befehl-Eingabefeld (teilweise auch bezeichnet als "Kommando-Eingabefeld" oder kurz "Eingabefeld"), 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 Anlage eines dummy-Devices). Nach Bestätigung mit der <Enter>-Taste werden die Änderungen unmittelbar wirksam.

Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl save im Befehl-Eingabefeld eingeben.

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-Editor
    DEF-Editor zur Anpassung der Definition
  • Attribut-Auswahlliste
    Attribute / Attributwerte aus Auswahllisten (nach Auswahl der Werte ist der attr Knopf anzuklicken)
  • je nach Objekttyp stehen weitere / andere Aktionen zur Verfügung

Nach einem Klick auf "Modify" werden die Änderungen an der Definition unmittelbar wirksam.

Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl "save" im Befehl-Eingabefeld eingeben.

RAW-Import

"+" zum Öffnen des mehrzeiligen Befehl-Eingabefeld / RAW-Import

Der RAW-Import ist eine einfache Möglichkeit, mehrere Befehle oder ganze Gerätedefinitionen samt Attributen "en Block" in die Konfiguration zu übernehmen.

Im Style f18 ist ein entsprechendes Dialogfeld direkt über das "+" neben dem Befehl-Eingabefeld zu erreichen, ansonsten am Ende jeder Geräte-Detailansicht über den Link Raw definition.

Nach einem Klick auf "Execute" werden die Änderungen unmittelbar wirksam.

Die Änderung müssen manuell in der Konfigurationsdatei abspeichert werden, ansonsten gehen die Änderungen beim Neustart verloren: "Save config" (aus dem Menü in der linken Spalte) anklicken oder den Befehl "save" im Befehl-Eingabefeld eingeben.

Integrierter Editor

Aufruf des integrierten Editors
Editfenster (Ausschnitt) mit Syntaxhervorhebung

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.

Seit Februar 2015 ist die Bearbeitung der Konfiguration über den Integrierten Editor als nicht empfohlene Variante standardmäßig gesperrt. Rudolf König dazu: "Durch das direkte Editieren der Datei kann FHEM die Fehler der Benutzer nicht so gut abfangen (kein dropdown, wizard, etc), bzw. die Fehlermeldungen sind etwas aufwendiger zu interpretieren, d.h. man muss sie lesen und verstehen. Dass sowas nicht selbstverstaendlich ist, beweist gerade diese Diskussion, und solche Probleme muessen wir (die Supporter) hier im Forum ausbaden. Deswegen sollten die Anfaenger nicht dazu ermuntert werden, die Konfiguration in FHEMWEB direkt zu editieren. Verboten ist es keinesfalls, es wird seit gestern nur eine kleine Huerde (Hinweis + Eintrittspruefung) hingelegt." Beitrag

Syntaxhervorhebung

FHEM bietet für die oben genannten Varianten der Konfigurationsbearbeitung über FHEMWEB -mit Ausnahme des Befehl-Eingabefeldes- Syntaxhervorhebungs-, Befehlsauswahl- und Befehlsvervollständigungsfunktionen.

Um die Funktionalität zu aktivieren, muss folgendes Attribut bei der entsprechenden FHEMWEB-Instanz gesetzt werden:

attr <FHEMWEB-Devicename> JavaScripts codemirror/fhem_codemirror.js

Details zu der Funktionalität und zu Anpassungsmöglichkeiten enthält der Artikel zu codemirror.

Externer Editor

Das Editieren der Konfiguration kann auch mit einem externen Editor wie z. B.

  • Notepad++ (beispielweise mit der nppFTP-Erweiterung)
  • nano in einer Telnet Sitzung
  • in wfftp integrierter / integrierbarer Editor

erfolgen (duplizieren von Definitionen (auch möglich mit copy), globale Änderungen (auch möglich mit rename, attr, usw in Verbindung mit devspec...), umsortieren von Definitionen (fehleranfällig und übernimmt FHEM bei Bearbeitung über FHEMWEB automatisch), etc.). In diesem Fall sollte der Benutzer sich mit der Bedienung des Editors in der gewählten Umgebung und FHEM 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.

Syntax-Highlighting kann bei verschiedenen externen Editoren verwendet werden, näheres s. Syntax Highlighting bei externen Editoren.

Aufteilung der fhem.cfg in mehrere Konfigurationsdateien

Die fhem.cfg kann bei Bedarf mit Hilfe des Befehls include in mehrere Konfigurationsdateien aufgeteilt werden. Dies ist als "Expertenmodus" zu betrachten und sollte (wenn überhaupt) nur von erfahrenen Benutzern angewendet werden.

Konfiguration in einer SQL Datenbank

Seit April 2014 (FHEM-Version 5079) können Definitionen alternativ zur Speicherung in einer einfachen Text-Konfigurationsdatei(en) in einer SQL Datenbank abgelegt werden. Hierzu dienen configDB (Modul) und configdb (Befehl), die in der commandref/configDB dokumentiert sind.

Weitere Informationen hierzu im FHEM Forum:

Anmerkungen

  1. Diese Begrifflichkeit wird im FHEM-Kontext auch verwendet, wenn die Konfiguration über mehrere Dateien verteilt oder in einer Datenbank gespeichert sein sollte
  2. Sofern nicht anderweitig erwähnt, beziehen sich alle weiteren Aussagen und Bildschirmfotos auf das Standard Webinterface im Stil "f18"
  3. Diese Datei befindet sich im Installationsverzeichnis (z. B. /opt/fhem)
  4. Betriebssystemspezifisch; bei neueren Linux-Versionen über systemd