Include: Unterschied zwischen den Versionen

Aus FHEMWiki
(Kapitel "Auslagerung von Konfigurationen" im Artikel "Konfiguration" in eigenen Artikel "include" umgezogen.)
 
K (Infobox Modul eingefügt; Kategorie gelöscht, da diese automatisch durch Infobox-Vorlage ergänzt wird)
Zeile 1: Zeile 1:
{{SEITENTITEL:include}}
{{Infobox Modul
|ModPurpose=Liest eine Konfigurations-Datei in Fhem ein
|ModType=cmd
|ModCmdRef=include
|ModTechName=fhem.pl
|ModOwner=rudolfkoenig/Rudolfkoenig ({{Link2FU|8|Forum}}/[[Benutzer Diskussion:Rudolfkoenig|Wiki]])
}}


== Allgemeines ==
== Allgemeines ==
Zeile 13: Zeile 21:


* 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" zur Bearbeitung mit dem integrierten Editor aufgeführt.
* Nur Konfigurationsdateien, die im Verzeichnis <code><installationsverzeichnis>/FHEM/</code> liegen, werden unter "Edit files" unter "Own modules and helper files" zur Bearbeitung mit dem integrierten Editor aufgeführt. Ansonsten muss man auf diese Dateien per remote-Sitzung oder einem anderen Programm (SSH / FTP) zugreifen.
* Um Änderungen in den "Teil-Konfigurationen" muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der fhem neu gestartet werden.
* Um Änderungen in den "Teil-Konfigurationen" muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der fhem neu gestartet werden.


Zeile 76: Zeile 84:


== Links ==
== Links ==
 
* ...
[[FHEM Command Beispiele#include]]
 
[[Kategorie:FhemBefehl]]

Version vom 16. Februar 2015, 14:32 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 FHEM-Konfigurationen auf mehrere Dateien.

Hinweis: Die Verwendung des Befehls include gehört zum "Expertenmodus". Sie sollte nur bei detaillierter Kenntnis der Auswirkungen gewählt werden.

Wenn die Konfiguration des FHEM mit der Zeit wächst, wird sie schnell 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" unter "Own modules and helper files" zur Bearbeitung mit dem integrierten Editor aufgeführt. Ansonsten muss man auf diese Dateien per remote-Sitzung oder einem anderen Programm (SSH / FTP) zugreifen.
  • Um Änderungen in den "Teil-Konfigurationen" muss die "Haupt-Konfiguration" fhem.cfg neu eingelesen oder der fhem neu gestartet werden.

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:

  1. Teil-Konfigurationen im internen oder externen Editor bearbeiten und abspeichern.
  2. Haupt-Konfiguration fhem.cfg im Online-Editor öffnen und wieder abspeichern. Etwaige Fehl-Konfigurationen werden direkt angezeigt.

Links

  • ...