Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:fhem:homematic

FHEM - Homematic

Firmware

Geräte

autoReadReg

2013 eingeführt und zu finden im Device. Steuert das automatische Lesen der Konfiguration - ggf. zeitverzögert um Resourcen zu schonen. Es wird Level 5 empfohlen.

HM-CFG-USB-2

Der USB-Dongle hat gegenüber dem LAN-Konfigurator den Vorteil einer niedrigeren Latenz und der Möglichkeit die Firmware der Geräte flashen zu können, es soll jedoch hin und wieder Probleme mit dem raspberry pi geben (und möglicherweise beschränkt auf ältere). Außerdem ist die Positionierung im Haus u.U. nicht so flexibel wie über LAN.

hmland

Für den USB-Dongle wird eine Emulationsumgebung hmland benötigt: http://forum.fhem.de/index.php/topic,13071.msg79872.html#msg79872

apt-get install build-essential
apt-get install libusb-1.0-0-dev
  • hmland kompilieren
make
  • hmland starten
./hmland -D -p 1234 (Debug)
./hmland -d -p 1234 (Dämon)
  • Nun kann hmland in fhem eingebunden werden
define hmusb HMLAN 127.0.0.1:1234
attr hmusb hmId 424242

Firmware

Welche Firmware läuft?

./hmland -i

Firmware updaten:

1. Herunterladen

http://www.eq-3.de/Downloads/Software/HM-CCU1-Firmware_Updates/HM-CFG-USB-2_FW-UpdateTool-Usersoftware_V1_0_eQ-3_140115.zip

2. Flashen

./flash-hmcfgusb hmusbif.enc

Heizkörperthermostat 105155 HM-CC-RT-DN

Kann mit autocreate leicht hinzugefügt werden.

Kanäle

  1. Weather - Ist-Temperatur
  2. Climate - Steuerung über einen Wandthermostaten
  3. WindowRec - Fenster offen?
  4. Clima - Wochenprogramm
  5. ClimaTeam
  6. remote

Temperaturlisten

  • Speichern:
set hm tempList save <filename>

Legt <filename> mit den aktuell bekannten (programmierten) Temperaturlisten an. Gut als Startpunkt der Konfiguration nutzbar.

  • Prüfen:

Die Konfiguration kann folgendermaßen geprüft werden:

set hm tempList verify <filename>
  • Restore / Schreiben
set hm tempList restore <filename>

Es werden alle Temperaturlisten aus der Datei in die dafür eingerichteten Komponenten eingetragen. Dabei werden ausschließlich die Änderungen geschrieben. Liegen keine Unterschiede zwischen Dateiinhalt und aktuellen Daten vor, wird auch nichts geschrieben. Ein mehrfaches anwenden des Kommandos ist also keine Belastung des Systems.

Ich habe meine Programme zur besseren Übersicht in 3 Dateien gegliedert, wodurch allerdings die verify- und restore-commands (s.u.) umständlicher werden:

tempList-Alltag.cfg
entities:EG.Wo.Clima.Auffahrt_Clima
tempListSat>07:00 19.5 21:00 21.5 24:00 19.5
tempListSun>07:00 19.5 20:30 21.5 24:00 19.5
tempListMon>13:30 19.5 20:30 21.5 24:00 19.5
tempListTue>13:30 19.5 20:30 21.5 24:00 19.5
tempListWed>13:30 19.5 20:30 21.5 24:00 19.5
tempListThu>13:30 19.5 20:30 21.5 24:00 19.5
tempListFri>13:30 19.5 20:30 21.5 24:00 19.5
entities:EG.Wo.Clima.Terrasse_Clima
tempListSat>07:00 19.5 21:00 21.5 24:00 19.5
tempListSun>07:00 19.5 20:30 21.5 24:00 19.5
tempListMon>13:30 19.5 20:30 21.5 24:00 19.5
tempListTue>13:30 19.5 20:30 21.5 24:00 19.5
tempListWed>13:30 19.5 20:30 21.5 24:00 19.5
tempListThu>13:30 19.5 20:30 21.5 24:00 19.5
tempListFri>13:30 19.5 20:30 21.5 24:00 19.5
entities:EG.Wo.Clima_Climate
R_P1_0_tempListSat>07:00 19.5 21:00 21.5 24:00 19.5
R_P1_1_tempListSun>07:00 19.5 20:30 21.5 24:00 19.5
R_P1_2_tempListMon>13:30 19.5 20:30 21.5 24:00 19.5
R_P1_3_tempListTue>13:30 19.5 20:30 21.5 24:00 19.5
R_P1_4_tempListWed>13:30 19.5 20:30 21.5 24:00 19.5
R_P1_5_tempListThu>13:30 19.5 20:30 21.5 24:00 19.5
R_P1_6_tempListFri>13:30 19.5 20:30 21.5 24:00 19.5
R_P2_0_tempListSat>07:00 19.5 21:00 21.5 24:00 19.5
R_P2_1_tempListSun>07:00 19.5 20:30 21.5 24:00 19.5
R_P2_2_tempListMon>13:30 19.5 20:30 21.5 24:00 19.5
R_P2_3_tempListTue>13:30 19.5 20:30 21.5 24:00 19.5
R_P2_4_tempListWed>13:30 19.5 20:30 21.5 24:00 19.5
R_P2_5_tempListThu>13:30 19.5 20:30 21.5 24:00 19.5
R_P2_6_tempListFri>13:30 19.5 20:30 21.5 24:00 19.5
R_P3_0_tempListSat>07:00 19.5 21:00 21.5 24:00 19.5
R_P3_1_tempListSun>07:00 19.5 20:30 21.5 24:00 19.5
R_P3_2_tempListMon>13:30 19.5 20:30 21.5 24:00 19.5
R_P3_3_tempListTue>13:30 19.5 20:30 21.5 24:00 19.5
R_P3_4_tempListWed>13:30 19.5 20:30 21.5 24:00 19.5
R_P3_5_tempListThu>13:30 19.5 20:30 21.5 24:00 19.5
R_P3_6_tempListFri>13:30 19.5 20:30 21.5 24:00 19.5
 
entities:OG.Sc.Clima_Clima
tempListSat>08:00 18.5 19:30 17.5 24:00 18.5
tempListSun>08:00 18.5 19:00 17.5 24:00 18.5
tempListMon>05:30 18.5 19:00 17.5 24:00 18.5
tempListTue>05:30 18.5 19:00 17.5 24:00 18.5
tempListWed>05:30 18.5 19:00 17.5 24:00 18.5
tempListThu>05:30 18.5 19:00 17.5 24:00 18.5
tempListFri>05:30 18.5 19:30 17.5 24:00 18.5
entities:OG.Sc.WT_Climate
R_P1_0_tempListSat>08:00 18.5 19:30 17.5 24:00 18.5
R_P1_1_tempListSun>08:00 18.5 19:00 17.5 24:00 18.5
R_P1_2_tempListMon>05:30 18.5 19:00 17.5 24:00 18.5
R_P1_3_tempListTue>05:30 18.5 19:00 17.5 24:00 18.5
R_P1_4_tempListWed>05:30 18.5 19:00 17.5 24:00 18.5
R_P1_5_tempListThu>05:30 18.5 19:00 17.5 24:00 18.5
R_P1_6_tempListFri>05:30 18.5 19:30 17.5 24:00 18.5
R_P2_0_tempListSat>08:00 18.5 19:30 17.5 24:00 18.5
R_P2_1_tempListSun>08:00 18.5 19:00 17.5 24:00 18.5
R_P2_2_tempListMon>05:30 18.5 19:00 17.5 24:00 18.5
R_P2_3_tempListTue>05:30 18.5 19:00 17.5 24:00 18.5
R_P2_4_tempListWed>05:30 18.5 19:00 17.5 24:00 18.5
R_P2_5_tempListThu>05:30 18.5 19:00 17.5 24:00 18.5
R_P2_6_tempListFri>05:30 18.5 19:30 17.5 24:00 18.5
R_P3_0_tempListSat>08:00 18.5 19:30 17.5 24:00 18.5
R_P3_1_tempListSun>08:00 18.5 19:00 17.5 24:00 18.5
R_P3_2_tempListMon>05:30 18.5 19:00 17.5 24:00 18.5
R_P3_3_tempListTue>05:30 18.5 19:00 17.5 24:00 18.5
R_P3_4_tempListWed>05:30 18.5 19:00 17.5 24:00 18.5
R_P3_5_tempListThu>05:30 18.5 19:00 17.5 24:00 18.5
R_P3_6_tempListFri>05:30 18.5 19:30 17.5 24:00 18.5
 
entities:EG.Ku.Clima_Clima
tempListSat>08:00 19.5 20:00 20.0 24:00 19.5
tempListSun>08:00 19.5 20:00 20.0 24:00 19.5
tempListMon>14:00 19.5 20:00 20.0 24:00 19.5
tempListTue>14:00 19.5 20:00 20.0 24:00 19.5
tempListWed>14:00 19.5 20:00 20.0 24:00 19.5
tempListThu>14:00 19.5 20:00 20.0 24:00 19.5
tempListFri>13:30 19.5 20:00 20.0 24:00 19.5
 
entities:DG.Ba.Clima_Clima
tempListSat>24:00 18.0
tempListSun>24:00 18.0
tempListMon>06:00 19.5 14:00 20.0 24:00 18.0
tempListTue>06:00 19.5 14:00 20.0 24:00 18.0
tempListWed>06:00 19.5 14:00 20.0 24:00 18.0
tempListThu>06:00 19.5 14:00 20.0 24:00 18.0
tempListFri>06:00 19.5 14:00 20.0 24:00 18.0
entities:DG.Zi.WT_Climate
R_P1_0_tempListSat>24:00 18.0
R_P1_1_tempListSun>24:00 18.0
R_P1_2_tempListMon>06:00 19.5 14:00 20.0 24:00 18.0
R_P1_3_tempListTue>06:00 19.5 14:00 20.0 24:00 18.0
R_P1_4_tempListWed>06:00 19.5 14:00 20.0 24:00 18.0
R_P1_5_tempListThu>06:00 19.5 14:00 20.0 24:00 18.0
R_P1_6_tempListFri>06:00 19.5 14:00 20.0 24:00 18.0
R_P2_0_tempListSat>24:00 18.0
R_P2_1_tempListSun>24:00 18.0
R_P2_2_tempListMon>06:00 19.5 14:00 20.0 24:00 18.0
R_P2_3_tempListTue>06:00 19.5 14:00 20.0 24:00 18.0
R_P2_4_tempListWed>06:00 19.5 14:00 20.0 24:00 18.0
R_P2_5_tempListThu>06:00 19.5 14:00 20.0 24:00 18.0
R_P2_6_tempListFri>06:00 19.5 14:00 20.0 24:00 18.0
R_P3_0_tempListSat>24:00 18.0
R_P3_1_tempListSun>24:00 18.0
R_P3_2_tempListMon>06:00 19.5 14:00 20.0 24:00 18.0
R_P3_3_tempListTue>06:00 19.5 14:00 20.0 24:00 18.0
R_P3_4_tempListWed>06:00 19.5 14:00 20.0 24:00 18.0
R_P3_5_tempListThu>06:00 19.5 14:00 20.0 24:00 18.0
R_P3_6_tempListFri>06:00 19.5 14:00 20.0 24:00 18.0
tempList-Frei.cfg
entities:EG.Wo.Clima.Auffahrt_Clima
tempListSat>07:00 19.5 20:45 21.5 24:00 19.5
tempListSun>07:00 19.5 20:45 21.5 24:00 19.5
tempListMon>07:00 19.5 20:45 21.5 24:00 19.5
tempListTue>07:00 19.5 20:45 21.5 24:00 19.5
tempListWed>07:00 19.5 20:45 21.5 24:00 19.5
tempListThu>07:00 19.5 20:45 21.5 24:00 19.5
tempListFri>07:00 19.5 20:45 21.5 24:00 19.5
entities:EG.Wo.Clima.Terrasse_Clima
tempListSat>07:00 19.5 20:45 21.5 24:00 19.5
tempListSun>07:00 19.5 20:45 21.5 24:00 19.5
tempListMon>07:00 19.5 20:45 21.5 24:00 19.5
tempListTue>07:00 19.5 20:45 21.5 24:00 19.5
tempListWed>07:00 19.5 20:45 21.5 24:00 19.5
tempListThu>07:00 19.5 20:45 21.5 24:00 19.5
tempListFri>07:00 19.5 20:45 21.5 24:00 19.5
entities:EG.Wo.Clima_Climate
R_P1_0_tempListSat>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_1_tempListSun>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_2_tempListMon>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_3_tempListTue>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_4_tempListWed>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_5_tempListThu>07:00 19.5 20:45 21.5 24:00 19.5
R_P1_6_tempListFri>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_0_tempListSat>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_1_tempListSun>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_2_tempListMon>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_3_tempListTue>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_4_tempListWed>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_5_tempListThu>07:00 19.5 20:45 21.5 24:00 19.5
R_P2_6_tempListFri>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_0_tempListSat>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_1_tempListSun>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_2_tempListMon>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_3_tempListTue>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_4_tempListWed>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_5_tempListThu>07:00 19.5 20:45 21.5 24:00 19.5
R_P3_6_tempListFri>07:00 19.5 20:45 21.5 24:00 19.5
entities:OG.Sc.Clima_Clima
tempListSat>08:30 18.5 19:30 17.5 24:00 18.5
tempListSun>08:30 18.5 19:30 17.5 24:00 18.5
tempListMon>08:30 18.5 19:30 17.5 24:00 18.5
tempListTue>08:30 18.5 19:30 17.5 24:00 18.5
tempListWed>08:30 18.5 19:30 17.5 24:00 18.5
tempListThu>08:30 18.5 19:30 17.5 24:00 18.5
tempListFri>08:30 18.5 19:30 17.5 24:00 18.5
entities:OG.Sc.WT_Climate
R_P1_0_tempListSat>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_1_tempListSun>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_2_tempListMon>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_3_tempListTue>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_4_tempListWed>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_5_tempListThu>08:30 18.5 19:30 17.5 24:00 18.5
R_P1_6_tempListFri>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_0_tempListSat>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_1_tempListSun>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_2_tempListMon>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_3_tempListTue>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_4_tempListWed>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_5_tempListThu>08:30 18.5 19:30 17.5 24:00 18.5
R_P2_6_tempListFri>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_0_tempListSat>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_1_tempListSun>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_2_tempListMon>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_3_tempListTue>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_4_tempListWed>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_5_tempListThu>08:30 18.5 19:30 17.5 24:00 18.5
R_P3_6_tempListFri>08:30 18.5 19:30 17.5 24:00 18.5
entities:EG.Ku.Clima_Clima
tempListSat>08:00 18.5 20:45 20.0 24:00 18.5
tempListSun>08:00 18.5 20:45 20.0 24:00 18.5
tempListMon>08:00 18.5 20:45 20.0 24:00 18.5
tempListTue>08:00 18.5 20:45 20.0 24:00 18.5
tempListWed>08:00 18.5 20:45 20.0 24:00 18.5
tempListThu>08:00 18.5 20:45 20.0 24:00 18.5
tempListFri>08:00 18.5 20:45 20.0 24:00 18.5
entities:DG.Ba.Clima_Clima
tempListSat>24:00 16.5
tempListSun>24:00 16.5
tempListMon>24:00 16.5
tempListTue>24:00 16.5
tempListWed>24:00 16.5
tempListThu>24:00 16.5
tempListFri>24:00 16.5
entities:DG.Zi.WT_Climate
R_P1_0_tempListSat>24:00 16.5
R_P1_1_tempListSun>24:00 16.5
R_P1_2_tempListMon>24:00 16.5
R_P1_3_tempListTue>24:00 16.5
R_P1_4_tempListWed>24:00 16.5
R_P1_5_tempListThu>24:00 16.5
R_P1_6_tempListFri>24:00 16.5
R_P2_0_tempListSat>24:00 16.5
R_P2_1_tempListSun>24:00 16.5
R_P2_2_tempListMon>24:00 16.5
R_P2_3_tempListTue>24:00 16.5
R_P2_4_tempListWed>24:00 16.5
R_P2_5_tempListThu>24:00 16.5
R_P2_6_tempListFri>24:00 16.5
R_P3_0_tempListSat>24:00 16.5
R_P3_1_tempListSun>24:00 16.5
R_P3_2_tempListMon>24:00 16.5
R_P3_3_tempListTue>24:00 16.5
R_P3_4_tempListWed>24:00 16.5
R_P3_5_tempListThu>24:00 16.5
R_P3_6_tempListFri>24:00 16.5
tempList-Verreist.cfg
entities:EG.Wo.Clima_Clima
R_0_tempListSat>24:00 17.5
R_1_tempListSun>24:00 17.5
R_2_tempListMon>24:00 17.5
R_3_tempListTue>24:00 17.5
R_4_tempListWed>24:00 17.5
R_5_tempListThu>24:00 17.5
R_6_tempListFri>24:00 17.5
entities:OG.Sc.Clima_Clima
R_0_tempListSat>24:00 15.0
R_1_tempListSun>24:00 15.0
R_2_tempListMon>24:00 15.0
R_3_tempListTue>24:00 15.0
R_4_tempListWed>24:00 15.0
R_5_tempListThu>24:00 15.0
R_6_tempListFri>24:00 15.0
entities:EG.Ku.Clima_Clima
R_0_tempListSat>24:00 15.0
R_1_tempListSun>24:00 15.0
R_2_tempListMon>24:00 15.0
R_3_tempListTue>24:00 15.0
R_4_tempListWed>24:00 15.0
R_5_tempListThu>24:00 15.0
R_6_tempListFri>24:00 15.0
entities:DG.Ba.Clima_Clima
R_0_tempListSat>24:00 12.0
R_1_tempListSun>24:00 12.0
R_2_tempListMon>24:00 12.0
R_3_tempListTue>24:00 12.0
R_4_tempListWed>24:00 12.0
R_5_tempListThu>24:00 12.0
R_6_tempListFri>24:00 12.0

Diese Templates können dann zugewiesen werden:

attr EG.Wo.Clima.Terrasse_Clima tempListTmpl FHEM/tempList-Alltag.cfg:EG.Wo.Clima_Clima
attr OG.Sc.Clima_Clima tempListTmpl FHEM/tempList-Alltag.cfg:OG.Sc.Clima_Clima

Nach dem Zuweisen wird das Template eingelesen / verifiziert:

set hm tempList verify FHEM/tempList-Alltag.cfg
set EG.Wo.Clima.Terrasse_Clima tempListTmpl verify FHEM/tempList-Alltag.cfg:EG.Wo.Clima_Clima
set OG.Sc.Clima_Clima tempListTmpl verify FHEM/tempList-Alltag.cfg:OG.Sc.Clima_Clima

Mit dem restore-Kommando wird letztendlich der Thermostat geschrieben:

set hm tempList restore FHEM/tempList.cfg
set EG.Wo.Clima.Terrasse_Clima tempListTmpl restore FHEM/tempList-Alltag.cfg:EG.Wo.Clima_Clima
set OG.Sc.Clima_Clima tempListTmpl restore FHEM/tempList-Alltag.cfg:Sc.Clima_Clima

Überprüfen, was gesetzt ist:

get hm param -c tempListTmpl

Will man explizit kein Temperaturprofil zuweisen sollte man tempListTmpl auf „none“ setzen.

Heizung umschalten

In der fhem.cfg:

define HeizungUmschalten dummy
attr HeizungUmschalten webCmd Alltag:Daheim:Weg
define n_HeizungUmschalten notify HeizungUmschalten {\
if($EVENT eq "Alltag") { \
  Log(3,"1. schalte Temperaturen auf $EVENT");;\
  fhem "attr EG.Wo.Clima.Terrasse_Clima tempListTmpl FHEM/tempList.cfg:EG.Wo.Clima_Alltag";;\
  fhem "attr OG.Sc.Clima_Clima tempListTmpl FHEM/tempList.cfg:OG.Sc.Clima_Alltag";;\
}\
elsif($EVENT eq "Daheim") { \
  Log(3,"2. schalte Temperaturen auf $EVENT");;\
  fhem "attr EG.Wo.Clima.Terrasse_Clima tempListTmpl FHEM/tempList.cfg:EG.Wo.Clima_Daheim";;\
  fhem "attr OG.Sc.Clima_Clima tempListTmpl FHEM/tempList.cfg:OG.Sc.Clima_Daheim";;\
}\
elsif($EVENT eq "Weg") { \
  Log(3,"3. schalte Temperaturen auf $EVENT");;\
  fhem "attr EG.Wo.Clima.Terrasse_Clima tempListTmpl FHEM/tempList.cfg:EG.Wo.Clima_Weg";;\
  fhem "attr OG.Sc.Clima_Clima tempListTmpl FHEM/tempList.cfg:OG.Sc.Clima_Weg";;\
}\
else { \
  Log(3,"5. $EVENT");;\
}\
fhem "set hm tempList verify";;\
fhem "set hm tempList restore";;\
}

Sommer - Heizung ausschalten / Ventile öffnen

set <rtName_Clima> controlManu off

Beispiele Winter - Sommer siehe https://forum.fhem.de/index.php/topic,22461.30.html

Mehrere Thermostate peeren

Dies geschieht über den Kanal Clima_Team. Dieser Kanal erlaubt es mehrere HM-CC-RT-DN zu einem „Team“ zu gruppieren. Ein Mitglied des Teams meldet

  • Änderungen der Temperatur am Handrad
  • Einschalten des Boost-Modus am Taster

an seine „Teamkollegen“ weiter. Folgende Änderungen werden nicht weitergegeben:

  • Status der Fensterkontakte
  • Temperaturlisten/Wochenplan und daraus folgende Änderungen
  • Änderungen durch Fernbedienungen
  • Änderungen durch eine HomeMatic-Zentrale
Peeren

<rt1-ClimaTeam> und <rt2-ClimaTeam> sind die ClimaTeam Kanäle:

set <rt1-ClimaTeam> peerChan 0 <rt2-ClimaTeam> single

Und beide in den Anlernmodus versetzen.

Fensterkontakt 131775 HM-Sec-SC-2

Können mit Thermosten (Kanal 3 - WindowRec) gepeert werden.

1. Fensterkontakt abnehmen

2. Kanäle peeren:

set EG.Wo.AD.Terrasse.Rechts peerChan 0 EG.Wo.Clima.Auffahrt_WindowRec single

3. Anlerntaste vom Fensterkontakt drücken

4. Anlerntaste von Thermostat drücken

5. Fensterkontakt schließen

Und beide in den Anlern-Modus setzen.

Batteriestatus aktivieren?

set NameMeines_HM-SEC-SC regSet cyclicInfoMsg on
set hmusb hmPairForSec 600

und Kontakt in den Anlernmodus bringen.

siehe http://www.fhemwiki.de/wiki/HM-SEC-SC_T%C3%BCr-Fensterkontakt

Plots

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Fenster und Türen'
set ytics ("Zu" 0, "Auf" 1)
set y2tics
set grid
set ylabel "Offen"
set y2label ""
set yrange [-0.1:1.1]

#FileLog_EG.Fl.AD.Haustuer 4:EG.Fl.AD.Haustuer\s(open|closed):0:$fld[2]=~"open"?1:0
#FileLog_EG.Wo.AD.Terrasse.Rechts 4:EG.Wo.AD.Terrasse.Rechts\s(open|closed):0:$fld[2]=~"open"?1:0
#FileLog_OG.Sc.AD.Auffahrt 4:OG.Sc.AD.Auffahrt\s(open|closed):0:$fld[2]=~"open"?1:0

Soll ein Fenster z.B. auf die y-Achse einer Ventilstellung gelegt werden:

...
$fld[2]=~"open"?80:0
...

peerNeedsBurst

set <Fensterkontakt> regSet peerNeedsBurst on <Stelltrieb>[_WindowRec]

Wandtaster 131774 HM-PB-2-WM55-2

http://www.fhemwiki.de/wiki/HM-PB-2-WM55_2fach-Funk-Wandtaster

  • ggfs. sollte der Log der Entities zusammengefasst werden
  • falls kein realer Aktor gepeert wird, sollte ein virtueller erstellt werden

Mit virtueller CCU peeren

define vccu CUL_HM <HMId>
attr vccu model CCU-FHEM

Die <HMId> ist als Atribut im verwendeten CCU hinterlegt.

attr vccu IOList <CUL>
set vccu virtual 2
set <Button1 von deinem Schalter> peerChan 0 vccu_Btn1 single set
set <Button2 von deinem Schalter> peerChan 0 vccu_Btn2 single set

Und am Taster die Anlernen-Taste drücken (ggfs. getConfig wiederholen.

Bewegungsmelder außen 131777 HM-Sen-MDIR-O

Schaltaktor 1fach 103029 HM-LC-Sw1PBU-FM

Rolladenaktor 1fach 103038 HM-LC-Bl1PBU-FM

Installation

Etwas tricky, evtl. muss ein nicht vorhandener Nullleiter aus einer benachbarten Dose gezogen werden. Evtl. muss auch die Dose nach hinten erweitert werden (brauchen ganz schön viel Platz, die Dinger…)

Achtung: Vor endgültiger Montage richtige Laufrichtung der Rollläden testen!

Hinweise für meinen Rückbau:

  • Auf und Ab waren vertauscht (rechter Taster war runter?)
  • L war zweimal vorhanden (jetzt über 3fach Wagoklemmen gebündelt)
  • zusätzlicher Nullleiter kann entfernt werden

Kalibrierung

set <name> regSet driveUp 30.0       # Fahrtzeit nach oben [s]
set <name> regSet driveDown 26.0     # Fahrtzeit nach unten [s]
set <name> regSet driveTurn 0.5      # Benötigte Fahrrichtungswechselzeit [s]

Anschließend die Rolläden einmal ganz hoch oder runter fahren, dann hat er seinen Nullpunkt gefunden.

Bedienung

set <name> on                            # Schaltet den Aktor ein
set <name> off                           # Schaltet den Aktor aus
set <name> toggle                        # Ändert den logischen Zustand des Aktors
set <name> <Prozentangabe[0 bis 100]>    # Prozentuale Öffnung, berechnet aus definierter Laufzeit

Hinweis:

  • on bzw. 100% steht für „Offen“
  • off bzw. 0% steht für „Geschlossen“

Status-Icon

Standardmäßig werden hier Lampen genommen. Da es nicht besonders intuitiv ist, können auf dem Status entsprechen geschlossene Rollläden verwendet werden:

attr <Gerätename> devStateIcon on:fts_shutter_1w_0@green off:fts_shutter_1w_100@black 9\d.*:fts_shutter_1w_10 8\d.*:fts_shutter_1w_20 7\d.*:fts_shutter_1w_30 6\d.*:fts_shutter_1w_40 5\d.*:fts_shutter_1w_50 4\d.*:fts_shutter_1w_60 3\d.*:fts_shutter_1w_70 2\d.*:fts_shutter_1w_80 1\d.*:fts_shutter_1w_90 0\d.*:fts_shutter_1w_100

Prozentleiste

Standardmäßig wird ein Silder dargestellt. Wer dies nicht möchte, kann bspw. folgendes versuchen:

attr <Gerätename> webCmd stop:up:90:80:70:60:50:40:30:20:10:down

Meine Automatisierung

define RolladenWarten dummy
define RolladenNacht dummy
Hochfahren, falls Tür geöffnet wird
fhem.cfg
# Notify, um die rechte Rollade zu öffnen, falls die Tür geöffnet wird:
define n_RolladenOeffnen notify (EG.Wo.AD.Terrasse.Rechts:open) {\
 if ( Value("EG.Wo.BA.TerrasseRechts") ne "on" and Value("RolladenNacht") eq "on" ) {\
  fhem("set EG.Wo.BA.TerrasseRechts on;; set RolladenWarten on")\
  }\
 elsif ( Value("EG.Wo.BA.TerrasseRechts") ne "on" and Value("RolladenNacht") ne "on" ) {\
  fhem("set EG.Wo.BA.TerrasseRechts on")\
   }\
 }
Zeitsteuerung
fhem.cfg
# 1.
# Fahre morgens die Rollläden hoch, deaktiviere den Nacht-Modus und lösche ein evtl. verzögertes Herunterfahren:
efine RolladenOeffnen at *{sunrise("NAUTIC",0,"06:00","07:30")} set EG.Wo.BA.Terrasse.* on;; set RolladenNacht off;; set RolladenWarten off
fhem.cfg
# 2.
# Rolläden sollen um 21 Uhr heruntergefahren werden; der Nacht-Modus wird aktiviert.
# Wenn die rechte Tür offen ist, soll links heruntergefahren werden und RolladenWarten angeschaltet werden
define RolladenSchliessen at *{sunset("NAUTIC",0,"18:00","22:00")} { if ( Value("EG.Wo.AD.Terrasse.Rechts") eq "open" ) {\
  fhem("set RolladenNacht on;; set EG.Wo.BA.TerrasseLinks off;; set RolladenWarten on")\
  }\
  else {\
   fhem("set RolladenNacht on;; set EG.Wo.BA.Terrasse.* off")\
   }\
 }
fhem.cfg
# 3.
# Wenn die rechte Rollade verzögert gefahren werden muss, ist RolladenWarten eq "on" (und es ist Nacht - notify)
# 5 Minuten nach dem Schließen der Tür, fährt die Rollade runter (falls die Tür dann immer noch geschlossen ist)
# Falls die Tür dann doch wieder offen ist, wird nichts gemacht (und es beginnt von vorne)
  define di_RolladenWarten DOIF ([EG.Wo.AD.Terrasse.Rechts] eq "closed" and [RolladenWarten] eq "on") (set EG.Wo.BA.TerrasseRechts 30, set RolladenWarten off)
  attr di_RolladenWarten do always
  attr di_RolladenWarten wait 300

Man beachte das Komma bei mehreren auszuführenden Befehlen!

Bosch Ferion 3000 OW (baugleich HM-SEC-SD)

TeamLead

Hat man nur einen SD, sollte man ihn mit sich selbst peeren und damit ein Team erstellen:

set EG.Wo.SD peerChan 0 EG.Wo.SD single set actor.

Kommandos

set EurerTeamleader alarmOn
set EurerTeamleader alarmOff
set EurerTeamleader teamCall

ToDo

  • Alarmlevel

Wandthermostat HM-TC-IT-WM-W-EU

http://www.fhemwiki.de/wiki/HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP

  • peeren:
    • Channel (Kanal) 01 _Weather für Temperaturmessung
    • Channel (Kanal) 02 _Climate für Wochenprogramm
    • Channel (Kanal) 03 _WindowRec für Fenster
      • Würde ich vermeiden, da unnötige Funklast
  • Die Termperaturlisten werden identisch verwaltet
  • Anzeigeeinstellungen über Register

Peeren

Channel (Kanal) 01 _Weather

Peeren des Temperatursensors:

set EG.Wo.Clima_Weather peerChan 0 EG.Wo.Clima.Terrasse_Weather single set
set EG.Wo.Clima_Weather peerChan 0 EG.Wo.Clima.Auffahrt_Weather single set

Und die Stelltriebe in den Anlernmodus versetzen.

Channel (Kanal) 02 _Climate

Zum Einstellen der Solltemperatur:

set EG.Wo.Clima_Climate peerChan 0 EG.Wo.Clima.Terrasse_Climate single set
set EG.Wo.Clima_Climate peerChan 0 EG.Wo.Clima.Auffahrt_Climate single set

Temperaturlisten

Analog zum Thermostaten!

Anzeige

Plots

Zum Plotten muss evtl. noch ein LogFile für den Weather-Channel angelegt werden

define FileLog_EG.Wo.Clima FileLog ./log/EG.Wo.Clima-%Y.log EG.Wo.Clima
attr FileLog_EG.Wo.Clima logtype text
attr FileLog_EG.Wo.Clima room CUL_HM

define FileLog_EG.Wo.Clima_Weather FileLog ./log/EG.Wo.Clima_Weather-%Y.log EG.Wo.Clima_Weather
attr FileLog_EG.Wo.Clima_Weather logtype plotWandthermostat:Plot,text
attr FileLog_EG.Wo.Clima_Weather room CUL_HM

Außentemperatursensor HM-WDS10-TH-O

Analog zu „Wandthermostat HM-TC-IT-WM-W-EU“

Plots

define FileLog_A.Clima FileLog ./log/A.Clima-%Y.log A.Clima
attr FileLog_A.Clima logtype plotAussenTemp:Plot,text
attr FileLog_A.Clima room Aussen
define plotAussenTemp SVG FileLog_A.Clima:plotAussenTemp:CURRENT
attr plotAussenTemp room Außen
attr plotAussenTemp alias Außentemperatursensor
attr plotAussenTemp group Wetter
attr plotAussenTemp sortby 1

Das Modul HMInfo

http://www.fhemwiki.de/wiki/HomeMatic_HMInfo

Das Modul HMInfo wird aktiviert / angelegt mit

define hm HMinfo

„hm“ ist dabei ein Name der Wahl. Anschließend können seine Funktionen mit

get hm help

aufgelistet werden.

Readings und Internals von HMInfo bieten eine Zusammenfassung des Zustands aller HM Komponenten. Diese sind in Fehler ERR' , Warnungen W_ und Information I_ untergliedert. Die Prüfung und Erneuerung der Zähler und Werte wird mit update erreicht. Dies lässt sich automatisiert (lt. wiki erscheint alle 5 min sinnvoll) durchführen:

set hm update
attr hm autoupdate 00:05

peerCheck

get hm peerCheck

regCheck

get hm regCheck

configCheck

get hm configCheck

Kombiniert beide obigen Befehle

protoEvents

Mittels

set hm protoEvents short

erhält man eine Tabelle mit Informationen über

  • State: aktueller Zustand der Messageübertragung: processing, pending oder done
  • CmdPend: wenn Nachrichten pending sind ist hier aufgeführt, wieviele es sind
  • Snd: Anzahl der gesendeten Nachrichten
  • Resnd: Anzahl der Nachrichten, die von FHEM wiederholt werden mussten
  • #: nach dem Hash stehe Fehler. Wenn hier Werte stehen sit etwas schief gegangen
  • CmdDel: Anzahl vor der Übertragung gelöschter Komamndos
  • ResndFail: Trotz wiederholen nicht erfolgreiche Übertragung
  • Nack: Anzahl von Device zurückgewiesener Messages
  • IOerr: Anzahl Probleme aufgrund von Fehlern des IO device (overload,…)

Der Zähler ist fortlaufend und lääst sich mittels

set <device> clear msgEvents

bzw. f

Geräte ersetzen

1. Pairen der neue Aktor heißt dann z.B. HM_1AFCC3 neue Schreibweise , wenn du einigermasen aktuell bist

2. testen über Fhemweb on off , ob Pairing funktioniert hat :)

3. DEF vom Aktor notieren z.B.hier 1AFCC3

4. delete HM_1AFCC3 mein Beispiel war nur zum Pairen des neuen Aktors, das define wollen wir nicht mehr haben!

5. DEF ändern vom alten Aktor von xxxxxx nach 1AFCC3 modify (DEF)

6. save

7 shutdown restart um die alte hmid los zu werden

linux/fhem/homematic.txt · Zuletzt geändert: 31.10.2021 09:29 von marc