====== FHEM - Homematic ====== ===== Firmware===== http://www.eq-3.de/db_action/download_suche.php ===== 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 * hmland herunterladen: https://git.zerfleddert.de/hmcfgusb/releases/ * ggfs. build-essential o.ä. installieren 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 === - Weather - Ist-Temperatur - Climate - Steuerung über einen Wandthermostaten - WindowRec - Fenster offen? - Clima - Wochenprogramm - ClimaTeam - remote === Temperaturlisten === * Speichern: set hm tempList save Legt 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 * Restore / Schreiben set hm tempList restore 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: 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 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 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 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 == und sind die ClimaTeam Kanäle: set peerChan 0 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 crop set output '.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 regSet peerNeedsBurst on [_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 attr vccu model CCU-FHEM Die ist als Atribut im verwendeten CCU hinterlegt. attr vccu IOList set vccu virtual 2 set peerChan 0 vccu_Btn1 single set set 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==== http://www.meintechblog.de/2013/11/fhem-logfiles-und-graphen-datenlast-reduzieren-und-werte-ordentlich-visualisieren/ ==== Schaltaktor 1fach 103029 HM-LC-Sw1PBU-FM ==== ==== Rolladenaktor 1fach 103038 HM-LC-Bl1PBU-FM ==== http://www.meintechblog.de/2015/07/howto-elektrische-rollaeden-per-fhem-und-homematic-automatisieren/ http://www.fhemwiki.de/wiki/HM-LC-Bl1PBU-FM_Unterputz-Jalousieaktor === 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 regSet driveUp 30.0 # Fahrtzeit nach oben [s] set regSet driveDown 26.0 # Fahrtzeit nach unten [s] set 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 on # Schaltet den Aktor ein set off # Schaltet den Aktor aus set toggle # Ändert den logischen Zustand des Aktors set # 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 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 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 == # 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 == # 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 # 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")\ }\ } # 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) ==== http://www.fhemwiki.de/wiki/HM-SEC-SD_Rauchmelder === 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 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