- Wie konfiguriere ich FHEM richtig – Teil 4
- Wie konfiguriere ich FHEM richtig – Teil 3
- Wie konfiguriere ich FHEM richtig – Teil 2
- Wie konfiguriere ich FHEM richtig – Teil 1
Aufgrund vieler Emailanfragen möchte ich meine Konfiguration noch ausführlicher darstellen, auch um einen leichteren Einstieg zu ermöglichen.
In diesem Beitrag zeige ich, wie der CUL (CC1101 USB Lite) – in meinem Fall ein SCC der Firma Busware – initialisiert werden kann. Zudem werden noch einige Dinge definiert, die direkt etwas mit dem SCC zu tun haben.
Es sei darauf hingewiesen, dass bereits hier einige Funktionen aufgerufen werden, die nicht zur Standard-Installation von FHEM gehören. Hierfür habe ich die Datei dkUtils.pm im Verzeichnis /opt/fhem/FHEM angelegt. Wie das genau funktioniert, beschreibe ich im nächsten Beitrag.
#########################################################################
##
## 10_SCC
##
## Stand.........: 16.08.2015
## Zweck.........: Definition des SCC-Funkmoduls und Helfern
## Besonderheiten: Konfiguration für Homematic-Komponenten,
## blinkende Lampe wird ausgeschaltet,
## automatische Erstellung neuer Geräte,
## Batteriewarnung
##
#########################################################################
## SCC Init
#########################################################################
## Für RPI:
## define SCC CUL /dev/ttyAMA0@38400 1234
## Für Bananapi:
## define SCC CUL /dev/ttyS2@38400 1234
define SCC CUL /dev/ttyAMA0@38400 1234
attr SCC group CUL
attr SCC rfmode HomeMatic
attr SCC room System
set SCC led 00
#########################################################################
## Action Detector
#########################################################################
define ActionDetector CUL_HM 000000
attr ActionDetector event-on-change-reading .*
attr ActionDetector group ActionDetector
attr ActionDetector model ActionDetector
attr ActionDetector room System
#####################################################################
## Batteriewarnung
#####################################################################
define lowbattery_notify notify .*:[Bb]attery:.* { if($EVENT !~ m/ok/) { dkPush("warning", "$NAME: Battery warning $EVENT") } }
attr lowbattery_notify group Notifiers
attr lowbattery_notify room System
#########################################################################
# Automatische Erstellung neuer Geräte
#########################################################################
define autocreate autocreate
attr autocreate autosave 1
attr autocreate device_room %TYPE
attr autocreate filelog ./log/%NAME-%Y-%m-%d.log
attr autocreate room System
attr autocreate weblink 1
attr autocreate weblink_room Plots
#########################################################################
## EOF
Wofür stehen die einzelnen Zeilen?
Zunächst wird der SCC initialisiert, auf das Homematic-System eingestellt und die blinkende LED ausgeschaltet.
Als nächstes wird ein ActionDetector erstellt. Dieser prüft, ob sich die Geräte regelmäßig melden.
Der Lowbattery-Notify wird ausgelöst sobald ein Gerät eine entsprechende Warnung aussendet. Dies geht natürlich nur bei Homematic-Geräten. In meinem Fall wird die Funktion dkPush() aufgerufen. Diese befindet sich in der Datei dkUtils.pm, die im FHEM-Verzeichnis liegt.
Der vierte Abschnitt sorgt dafür, dass neue Geräte erkannt werden. Für den Fall, dass ein neues Gerät gefunden wird, wird ein neuer Raum angelegt und entsprechende Logdateien.
Hi, ich hab gerade versucht wie bei dem Artikel beschrieben http://blog.krannich.de/mein-fhem/ deine css Datei einzubinden. Leider klappt das nicht, hab sie in das Verzeichnis „/opt/fhem/www/pgm2“ mit den selben Rechten abgelegt wie die anderen css Dateien. Woran könnte es noch liegen? Es taucht nicht auf der Weboberfläche auf.
Hallo,
bitte noch etwas weiter unten auf der Seite lesen… es fehlt noch der Eintrag in der Konfigurationsdatei
attr WEB stylesheetPrefix dk
Die Schriften (bitte extern besorgen) sollten auch entsprechend vorliegen.
Viele Grüße,
Dennis
Hallo,
ich stehe noch ganz am Anfang mit FHEM und habe meine cfg Datei in mehrere aufgeteilt. Ich bekomme aber diese nicht zum Laufen es wird mir immer
Can’t open opt/fhem/mycfg/00_mycfg.cfg No such file or directory angezeigt.
FHEM ist noch sehr kompliziert ich befasse mich erst seit 1 Woche damit.
Gruss Michael
Hallo,
wo ist der Beitrag zur dkutils.pm?
Gruß Frodo
Hi Frodo,
ich werde demnächst einige Funktionen bereitstellen bzw. erklären.
Mittlerweile habe ich die dkUtils.pm wieder etwas entschlackt und alle Funktionen für die einzelnen Geräte bzw. Szenarien in eigene Dateien ausgelagert. Alle greifen dann auf die dkUtils zurück.
VG
Dennis
Hey Dennis,
erst ein mal fettes Lob für deine Arbeit und deinem Blog. Hat mir schon sehr viel geholfen.
Ich befasse mich eigentlich schon länger mit dem Thema „Hausautomation“ seid 2 Wochen allerdings intensiver mit Fhem und Homematic. Weisst du schon wann du die „Funktionen“ bereitstellen wirst?
Viele Grüße
Ben
Hi Ben,
vielen Dank. Gibt es etwas bestimmtes an dem Du interessiert bist?
Viele Grüße
Dennis
Hey Dennis,
nun ja, du hast in deiner Config viele Dateien included. Mich würde Interessieren was du so für Methoden hast zb in der „dkUtils.pm“ dkPush(). Oder „10_datastorage.cfg“ was hast du dort definiert? Was meinst verbirgt sich hinter „STRUCTURE und RESIDENTS“, „REMOTES & AKTIONEN“, „Floorplan“ Das würde mich Interessieren. Versuche gerade das alles zu verstehen und an Hand von Beispielen so wie du es schon hier im Blog machst lernt man es ziemlich gut 🙂
Würde indirekt die Frage vom Ben erneut aufgreifen. Das Auslagern soweit sehr interessant von der Idee.
Was mich brennend interessiert.
Du hast oben im 10_SCC auch notify hinterlegt. Hast aber auch eine „Aktionen“/Notify (31_xxxx) Datei.
Was genau kommt bei dir wo hin? Bevor ich jetzt die Dateien erstelle und mich dann nach x Monaten ärger und das umschiebe.
Also z.b. 01_Homematic.cfg – Hier definierst du das Gateway gehe ich von aus, da dieses ja zum Anfang definiert werden muss.
Dann auch „Grundsachen“ wie Notify für Batterie usw?
und DANN in 20_EG_Wohnzimmer das define EG_Licht_sw01 CUL_HM … ?
oder hast du alle Homematic Komponenten in der 01_Homematic definiert? Nur was schreibst du dann in die 20_EG_Wohnzimmer.
*Homematic kann für jede andere Gerät/Gerätetypen stehen 🙂
Hallo Basti,
Ich habe versucht alles so gut es geht aufzuteilen, so dass es einfach zu pflegen ist.
Die einzelnen Geräte sind in den jeweiligen Räumen zugeordnet (bis auf Alarmanlage, Heizung und die Plugins wie Fritzbox, etc.).
Hier mal ein aktueller Auszug aus meiner 00_config.pm
In 01_system werden meine STACKABLE_SCC definiert, in 02_web die Weboberfläche, telnet und Tablet-UI.
Alle Dateien mit „20“ sind Räume, dort sind dann auch (fast) alle Geräte, die in dem Raum sind, definiert. Dies gilt dann auch für die zugehörigen Notify.
Damit gehe ich aber sparsam um. Ich versuche diese dann eher via PERL-Funktion (dkUtils & Co.) zu steuern.
include ./mycfg/01_system.cfg
include ./mycfg/02_web.cfg
include ./mycfg/10_datastorage.cfg
include ./mycfg/20_EG_buero.cfg
include ./mycfg/20_EG_hwr.cfg
include ./mycfg/20_EG_kueche.cfg
include ./mycfg/20_EG_werkstatt.cfg
include ./mycfg/20_EG_wohnzimmer.cfg
include ./mycfg/20_FLUR.cfg
include ./mycfg/20_OG_ankleide.cfg
include ./mycfg/20_OG_bad.cfg
include ./mycfg/20_OG_eltern.cfg
include ./mycfg/20_OG_kind.cfg
include ./mycfg/20_OG_gaestezimmer.cfg
include ./mycfg/20_OG_dachboden.cfg
include ./mycfg/21_AUSSEN.cfg
include ./mycfg/21_DEKO.cfg
include ./mycfg/21_HEIZUNG.cfg
include ./mycfg/28_structure.cfg
include ./mycfg/29_residents.cfg
include ./mycfg/30_remotes.cfg
include ./mycfg/31_actions.cfg
include ./mycfg/32_settings.cfg
include ./mycfg/80_alexa.cfg
include ./mycfg/80_calendars.cfg
include ./mycfg/80_fritzbox.cfg
include ./mycfg/80_pushover.cfg
include ./mycfg/80_weather.cfg
include ./mycfg/80_text2speech.cfg
include ./mycfg/80_geofencing.cfg
include ./mycfg/90_timer.cfg
include ./mycfg/91_logs.cfg
include ./mycfg/91_plots.cfg
include ./mycfg/99_alarmanlage.cfg
include ./mycfg/99_tests.cfg
Ich hoffe, ich konnte Dir damit helfen und habe Deine Fragen beantworten können.
Viele Grüße
Dennis
Hallo Dennis,
das beantwortet meine Frage fast komplett 🙂
Ich werde dann die Gateways definition in den 10er Bereich verlagern und dann die Geräte selbst im dazugehörigen Raum
definieren. Das Notify ist dann für jeden Schalter ohnehin nötig bzw dann im regexp alle „remote/switche“ auf den call des Perls verweisen lassen und dort dann an irgendeinem attribut unterscheiden lassen.
Zwei Fragen drängen sich mir noch auf. Eine alte:
Was genau machst du dann in der 31_Actions
und als Nachbrenner:
Hast du mal timeings verglichen zwischen NOTIFY und DOIF ? oder Warum NOTIFYs statt DOIF ?
Im FHEM Forum ist hier eher von einer „Glaubens“-Frage die Rede. Beim DOIF hat man noch eine option des „startup“ gibts/lohnts sich auf das NOTIFY zu setzen?
Wie ist deine Meinung???
Lg
Sebastian