Include: Unterschied zwischen den Versionen
K ((Als Vorschlag:) Hinweistext/Warnung auf "Randnotiz" umgestellt) |
Krikan (Diskussion | Beiträge) (FHEM(R)) |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:include}} | {{SEITENTITEL:include}} | ||
{{Infobox Modul | {{Infobox Modul | ||
|ModPurpose=Liest eine Konfigurations-Datei in | |ModPurpose=Liest eine Konfigurations-Datei in FHEM ein | ||
|ModType=cmd | |ModType=cmd | ||
|ModCmdRef=include | |ModCmdRef=include | ||
Zeile 10: | Zeile 10: | ||
== Allgemeines == | == Allgemeines == | ||
Der Befehl [[include]] gehört zu den FHEM-eigenen Befehlen. Mit ihm kann eine andere Datei eingelesen und ausgeführt werden. Ein typischer Anwendungsfall ist Verteilung bzw. Auslagerung von Plaintext-basierten FHEM-Konfigurationen auf mehrere Dateien. Bei Nutzung der neueren [[Konfiguration#Konfiguration_in_einer_SQL_Datenbank|datenbankbasierten Konfiguration]] widerspricht die Verwendung dem Konzept und ist letztlich nicht möglich. | Der Befehl [[include]] gehört zu den FHEM-eigenen Befehlen. Mit ihm kann eine andere Datei eingelesen und ausgeführt werden. Ein typischer Anwendungsfall ist Verteilung bzw. Auslagerung von Plaintext-basierten FHEM-Konfigurationen auf mehrere Dateien. Bei Nutzung der neueren [[Konfiguration#Konfiguration_in_einer_SQL_Datenbank|datenbankbasierten Konfiguration]] widerspricht die Verwendung dem Konzept und ist letztlich nicht möglich. | ||
{{Randnotiz|RNTyp=r|RNText='''Hinweis:''' Die Verwendung des Befehls [[include]] gehört zum '''"Expertenmodus"'''. Sie sollte nur bei detaillierter Kenntnis der Auswirkungen gewählt werden. Bei Verwendung von includes (wie generell bei direktem Bearbeiten der Konfigurationsdatei(en)) können Fehler auftreten, die allein auf der Reihenfolge der Abarbeitung von Definitionen beruhen. Bei alleiniger Bearbeitung der Konfiguration über die Benutzeroberfläche trägt | {{Randnotiz|RNTyp=r|RNText='''Hinweis:''' Die Verwendung des Befehls [[include]] gehört zum '''"Expertenmodus"'''. Sie sollte nur bei detaillierter Kenntnis der Auswirkungen gewählt werden. Bei Verwendung von includes (wie generell bei direktem Bearbeiten der Konfigurationsdatei(en)) können Fehler auftreten, die allein auf der Reihenfolge der Abarbeitung von Definitionen beruhen. Bei alleiniger Bearbeitung der Konfiguration über die Benutzeroberfläche trägt FHEM selbst Sorge dafür, dass die erforderliche Reihenfolge eingehalten wird.}} | ||
Wenn die [[Konfiguration]] von FHEM mit der Zeit wächst und man die Konfiguration unbedingt direkt mit dem integrierten oder einem externen Editor bearbeiten möchte, wird sie schnell zu unübersichtlich. Dann kann es sich anbieten, nicht mehr alle Konfigurationen in der einen fhem.cfg zu machen, sondern sie in verschiedene eigene Konfigurations-Dateien auszulagern. Diese werden dann in der "Haupt-Konfiguration" fhem.cfg mithilfe von <code>include</code> eingebunden. | Wenn die [[Konfiguration]] von FHEM mit der Zeit wächst und man die Konfiguration unbedingt direkt mit dem integrierten oder einem externen Editor bearbeiten möchte, wird sie schnell zu unübersichtlich. Dann kann es sich anbieten, nicht mehr alle Konfigurationen in der einen fhem.cfg zu machen, sondern sie in verschiedene eigene Konfigurations-Dateien auszulagern. Diese werden dann in der "Haupt-Konfiguration" fhem.cfg mithilfe von <code>include</code> eingebunden. | ||
Zeile 17: | Zeile 17: | ||
* Sämtliche <code>attr global</code> Definitionen '''müssen''' in der fhem.cfg bleiben. | * Sämtliche <code>attr global</code> Definitionen '''müssen''' in der fhem.cfg bleiben. | ||
* Nur Konfigurationsdateien, die im Verzeichnis <code><installationsverzeichnis>/FHEM/</code> liegen, werden unter "Edit files" im Abschnitt "Own modules and helper files" zur Bearbeitung mit dem integrierten Editor aufgeführt. Ansonsten muss man auf diese Dateien per remote-Sitzung oder mit einem anderen Programm (SSH / FTP) zugreifen. | * Nur Konfigurationsdateien, die im Verzeichnis <code><installationsverzeichnis>/FHEM/</code> liegen, werden unter "Edit files" im Abschnitt "Own modules and helper files" zur Bearbeitung mit dem integrierten Editor aufgeführt. Ansonsten muss man auf diese Dateien per remote-Sitzung oder mit einem anderen Programm (SSH / FTP) zugreifen. | ||
* Um Änderungen in den "Teil-Konfigurationen" zu aktivieren, muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der | * Um Änderungen in den "Teil-Konfigurationen" zu aktivieren, muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der FHEM neu gestartet werden. | ||
[[Datei:Include_CFGFN.png|mini|374px|right|Name der Datei, in der das Objekt definiert ist]] | |||
In den Details von Objekten, deren Definition in einer ''include'' Datei steht, findet sich bei den ''Internals'' unter '''CFGFN''' der Name der include-Datei (siehe Screenshot). | |||
== Beispiel einer verteilten Konfiguration == | == Beispiel einer verteilten Konfiguration == | ||
Zeile 41: | Zeile 43: | ||
# | # | ||
# | # FHEM System configs | ||
# | # | ||
Aktuelle Version vom 24. Januar 2017, 16:44 Uhr
include | |
---|---|
Zweck / Funktion | |
Liest eine Konfigurations-Datei in FHEM ein | |
Allgemein | |
Typ | Befehl |
Details | |
Dokumentation | EN / DE |
Modulname | fhem.pl |
Ersteller | rudolfkoenig/Rudolfkoenig (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Allgemeines
Der Befehl include gehört zu den FHEM-eigenen Befehlen. Mit ihm kann eine andere Datei eingelesen und ausgeführt werden. Ein typischer Anwendungsfall ist Verteilung bzw. Auslagerung von Plaintext-basierten FHEM-Konfigurationen auf mehrere Dateien. Bei Nutzung der neueren datenbankbasierten Konfiguration widerspricht die Verwendung dem Konzept und ist letztlich nicht möglich.
Wenn die Konfiguration von FHEM mit der Zeit wächst und man die Konfiguration unbedingt direkt mit dem integrierten oder einem externen Editor bearbeiten möchte, wird sie schnell zu unübersichtlich. Dann kann es sich anbieten, nicht mehr alle Konfigurationen in der einen fhem.cfg zu machen, sondern sie in verschiedene eigene Konfigurations-Dateien auszulagern. Diese werden dann in der "Haupt-Konfiguration" fhem.cfg mithilfe von include
eingebunden.
Bei der Aufteilung der Konfiguration sind ein paar Punkte zu beachten:
- Sämtliche
attr global
Definitionen müssen in der fhem.cfg bleiben. - Nur Konfigurationsdateien, die im Verzeichnis
<installationsverzeichnis>/FHEM/
liegen, werden unter "Edit files" im Abschnitt "Own modules and helper files" zur Bearbeitung mit dem integrierten Editor aufgeführt. Ansonsten muss man auf diese Dateien per remote-Sitzung oder mit einem anderen Programm (SSH / FTP) zugreifen. - Um Änderungen in den "Teil-Konfigurationen" zu aktivieren, muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der FHEM neu gestartet werden.
In den Details von Objekten, deren Definition in einer include Datei steht, findet sich bei den Internals unter CFGFN der Name der include-Datei (siehe Screenshot).
Beispiel einer verteilten Konfiguration
Die folgende verteilte Konfiguration ist sicher schon etwas exzessiv, gibt aber einen guten Überblick über die Möglichkeiten:
fhem.cfg (Haupt-Konfiguration):
attr global userattr DbLogExclude devStateIcon devStateStyle fp_DG fp_OG fp_EG fp_Keller icon sortby webCmd widgetOverride attr global autoload_undefined_devices 1 attr global modpath . attr global motd Error messages while initializing attr global sendStatistics manually attr global statefile ./log/fhem.save attr global updateInBackground 1 attr global verbose 3 # Geo-Koordinaten attr global latitude 52.518611 attr global longitude 13.376111 # Zentrales Logging pro Kalenderwoche attr global logfile ./log/fhem-%Y-w%W.log # # FHEM System configs # include ./FHEM/fhem_1_interfaces.cfg include ./FHEM/fhem_2_dashboard.cfg include ./FHEM/fhem_3_logging.cfg include ./FHEM/fhem_4_devices.cfg include ./FHEM/fhem_5_floorplans.cfg # # Haus # include ./FHEM/fhem_raeume.cfg include ./FHEM/fhem_remoteserver_balkon.cfg # # Sonstiges # include ./FHEM/fhem_systemstate.cfg include ./FHEM/fhem_battery.cfg include ./FHEM/fhem_wetter_dwd.cfg include ./FHEM/fhem_wetter_yr.cfg include ./FHEM/fhem_muell.cfg include ./FHEM/fhem_internet.cfg
Für jede dieser includes gibt es dann eine eigene Konfigurationsdatei nach dem üblichen Schema.
Debugging einer verteilten Konfiguration
Eine einfache Methode zum Debuggen der Konfiguration geht wie folgt:
- Teil-Konfigurationen im internen oder externen Editor bearbeiten und abspeichern.
- Haupt-Konfiguration fhem.cfg im Online-Editor öffnen und wieder abspeichern. Etwaige Fehl-Konfigurationen werden direkt angezeigt.
Links
- ...