FHEM

Sensorik & Auswertung

Sensoren sind die Sinnesorgane der Hausautomatisierung: Fensterkontakte melden, ob ein Fenster offen ist, und die Thermostate liefern fortlaufend Temperaturwerte. Erst diese Daten machen die Steuerung möglich – und protokolliert ergeben sie aussagekräftige Diagramme über das Verhalten des Hauses. Diese Seite zeigt das Einbinden von Fensterkontakten, das Zusammenfassen mehrerer Sensoren zu Gruppen sowie das strukturierte Logging und die grafische Auswertung. Alle Bezeichner sind generisch gehalten.

Fensterkontakt einbinden

Die Fensterkontakte sind Funk-Sensoren mit den Zuständen opened und closed. Neben Modell und Empfänger lohnt sich ein passendes Status-Icon sowie event-on-change-reading, damit nur echte Zustandswechsel Ereignisse erzeugen.

bashKlick markiert alles · Strg + C
define Fensterkontakt_Wohnzimmer MAX ShutterContact 177bfe
attr  Fensterkontakt_Wohnzimmer IODev cm
attr  Fensterkontakt_Wohnzimmer model ShutterContact
attr  Fensterkontakt_Wohnzimmer event-on-change-reading .*
attr  Fensterkontakt_Wohnzimmer devStateIcon closed:fts_window_1w opened:fts_window_open
attr  Fensterkontakt_Wohnzimmer room Wohnzimmer

Der Zustand dieses Kontakts ist die zentrale Eingangsgröße der fenstergesteuerten Heizungssteuerung und kann ebenso Benachrichtigungen auslösen.

Mehrere Fenster zu einer Gruppe zusammenfassen

Hat ein Raum mehrere Fenster, soll die Heizung schon dann absenken, wenn irgendeines offen ist. Das Modul structure bündelt mehrere Kontakte zu einem gemeinsamen Status. Über clientstate_priority erhält opened Vorrang – die Gruppe gilt also als offen, sobald ein einzelnes Fenster offen ist.

bashKlick markiert alles · Strg + C
define KuecheFensterStructure structure Fenster Fensterkontakt_Kueche_Links Fensterkontakt_Kueche_Rechts
attr  KuecheFensterStructure clientstate_behavior relative
attr  KuecheFensterStructure clientstate_priority opened closed
attr  KuecheFensterStructure room Kueche

In der Heizungsregel wird dann statt eines einzelnen Kontakts einfach die Gruppe KuecheFensterStructure abgefragt.

Messwerte strukturiert protokollieren

Damit Werte nicht nur im Moment sichtbar sind, schreibt das Modul FileLog sie in Logdateien. Bewährt hat sich eine klare Ablage: je ein Unterordner pro Gerätetyp und eine wochenweise Rotation über %Y-KW%W. Das Attribut nrarchive begrenzt die Zahl der aufbewahrten alten Dateien.

bashKlick markiert alles · Strg + C
define FileLog_Fensterkontakt_Wohnzimmer FileLog ./log/Fensterkontakt/Fensterkontakt_Wohnzimmer-%Y-KW%W.log Fensterkontakt_Wohnzimmer
attr  FileLog_Fensterkontakt_Wohnzimmer logtype text
attr  FileLog_Fensterkontakt_Wohnzimmer nrarchive 3
attr  FileLog_Fensterkontakt_Wohnzimmer room hidden

Für Temperaturwerte wird statt text ein plotfähiger Logtype gesetzt. Damit ist die Datei direkt als Diagramm auswertbar:

bashKlick markiert alles · Strg + C
define FileLog_HZ_Wohnzimmer FileLog ./log/Heizung/HZ_Wohnzimmer-%Y-KW%W.log HZ_Wohnzimmer
attr  FileLog_HZ_Wohnzimmer logtype temp4:Plot,text
attr  FileLog_HZ_Wohnzimmer nrarchive 3
attr  FileLog_HZ_Wohnzimmer room hidden

Diagramme erzeugen

Aus einer plotfähigen Logdatei erstellt FHEM mit dem SVG-Modul ein Diagramm. Am einfachsten geht das im Web-Interface über die Schaltfläche „Create SVG plot" am Logeintrag; auf der Konsole lässt sich der Plot ebenfalls anlegen:

bashKlick markiert alles · Strg + C
define SVG_HZ_Wohnzimmer SVG FileLog_HZ_Wohnzimmer:temp4:CURRENT
attr  SVG_HZ_Wohnzimmer room Auswertung

Im grafischen Plot-Editor werden anschließend Datenreihen (Soll- und Ist-Temperatur, Ventilstellung), Achsen und Farben festgelegt. Das fertige Diagramm zeigt den Tages- und Wochenverlauf und macht den Effekt der Heizungsautomatik unmittelbar sichtbar.

Erweiterung: schaltbare Aktoren

Dasselbe Muster aus Sensor, Regel und Protokoll lässt sich auf schaltbare Aktoren übertragen. Ein über Funk geschalteter Aktor (z. B. eine Steckdose oder ein Schaltrelais) wird wie ein Gerät eingebunden und per notify oder DOIF an einen Sensor- oder Anwesenheitsstatus gekoppelt – etwa um Licht abhängig von der Anwesenheit zu schalten:

bashKlick markiert alles · Strg + C
set Aktor_Stehlampe on
set Aktor_Stehlampe off

Test und Speichern

  1. Ein Fenster öffnen und schließen und über list Fensterkontakt_Wohnzimmer prüfen, ob der Status korrekt wechselt.
  2. Mit list KuecheFensterStructure kontrollieren, dass die Gruppe bei einem offenen Fenster auf opened geht.
  3. Das erzeugte SVG-Diagramm im Web-Interface betrachten.
  4. Konfiguration sichern:
bashKlick markiert alles · Strg + C
save

Damit ist eine saubere Datengrundlage geschaffen: Fensterkontakte und Temperaturen werden erfasst, sinnvoll gruppiert, strukturiert protokolliert und als Diagramm auswertbar gemacht.