fhem.cfg Beispiele für FHEM nur als KNX<>HomeMatic Gateway

Begonnen von eixman, 24 November 2016, 14:17:42

Vorheriges Thema - Nächstes Thema

eixman

Hallo,
da ich selber eine ganze Weile gesucht und solche einfachen Beispiele nicht gefunden habe, wollte ich ein paar Beispiele posten, wie meine fhem.cfg aussieht um FHEM als Gateway zwischen KNX und HomeMatic zu nutzen. Die Automatisierung und Visualisierung übernimmt bei mir der Gira Homeserver.

Vielleicht kann jemand durch die Beispiele etwas Zeit sparen. Da ich mich aber nicht weiter mit FHEM befasst habe und mein Ziel lediglich die Verbindung von KNX und HomeMatic war, freue ich mich auch über Verbesserungsvorschläge und Anmerkungen.

Das ganze wird wohl eher eine Projektbeschreibung mit funktionierenden Code-Beispielen. Falls das hier nicht gewünscht, dann bitte löschen oder verschieben.

Mein Ziel:

  • Erweiterung bestehender KNX Installation um mobile Sensoren/Aktoren (HomeMatic) und Integration in KNX
Vorgaben:

  • FHEM 24/7 vorhanden, Gira Homeserver vorhanden, Anbindung Homematic durch CUL V3 und KNX durch EIBD
  • neue HomeMatic Geräte sollen sich wie native KNX Geräte verhalten
  • Steuerung durch Quadclient (Gira Homeserver), Logiken nur im Homeserver
  • FHEM lediglich als Gateway KNX<>HomeMatic
  • nur Komfortfunktionen durch Homeserver/FHEM -> Grundfunktionalität auch ohne Homeserver/FHEM (alle gepairt und soweit möglich gepeert)
Funktionen:

  • 1. Schalten: HM Sensor<>HM Aktor und KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status
  •   > Komponenten: 2fach UP HomeMatic Schaltaktor (HM-LC-SW2-FM) und 6fach HomeMatic Tastsensor (HM-PB-6-WM55)
  • 2. Schalten: HM Sensor<>KNX Aktor mit Rückmeldung/Anzeige des Status
  •   > Komponenten: 2fach HomeMatic Tastsensor (HM-PB-2-WM55)
  • 3. Schalten: KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status
  •   > Komponenten: 1fach HomeMatic Schaltaktor (HM-LC-Sw1-Pl-DN-R1)
  • 4. Rollläden: HM Sensor<>HM Aktor und KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status
  •   > Komponenten: 1fach UP HomeMatic Jalousieaktor (HM-LC-Bl1PBU-FM) und 6fach HomeMatic Tastsensor (HM-PB-6-WM55)
Umsetzung/Beispiele:


1. Schalten: HM Sensor<>HM Aktor und KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status:



Besonderheit ist, dass je eine GA für Schalten und Status verwendet wird und die "Schalt-GA" über eine Zentral-Adresse im Homeserver aktualisiert wird.

fhem.cfg für 2fach UP HomeMatic Schaltaktor (HM-LC-SW2-FM):
### KiZi  2f Schaltaktor Hauptgerät
define HM_KiZi_Schaltaktor_2f_4DFB34 CUL_HM 4DFB34
attr HM_KiZi_Schaltaktor_2f_4DFB34 IODev CUL1
attr HM_KiZi_Schaltaktor_2f_4DFB34 autoReadReg 4_reqStatus
attr HM_KiZi_Schaltaktor_2f_4DFB34 expert 2_full
attr HM_KiZi_Schaltaktor_2f_4DFB34 firmware 2.8
attr HM_KiZi_Schaltaktor_2f_4DFB34 model HM-LC-SW2-FM
attr HM_KiZi_Schaltaktor_2f_4DFB34 room CUL_HM
attr HM_KiZi_Schaltaktor_2f_4DFB34 serialNr NEQ0950218
attr HM_KiZi_Schaltaktor_2f_4DFB34 subType switch
attr HM_KiZi_Schaltaktor_2f_4DFB34 webCmd getConfig:clear msgEvents
## Kanäle
define HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe CUL_HM 4DFB3401
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe model HM-LC-SW2-FM
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe peerIDs 00000000,4A8A7201,4A8A7202,
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe room Kizi_
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe webCmd statusRequest:toggle:on:off
define HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe CUL_HM 4DFB3402
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe model HM-LC-SW2-FM
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe peerIDs 00000000,4A8A7203,4A8A7204,
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe room Kizi_
attr HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe webCmd statusRequest:toggle:on:off


fhem.cfg für 6fach HomeMatic Tastsensor (HM-PB-6-WM55):
### 6fach Taster KiZi  Hauptgerät
define HM_KiZi_Taster_6f_4A8A72 CUL_HM 4A8A72
attr HM_KiZi_Taster_6f_4A8A72 IODev CUL1
attr HM_KiZi_Taster_6f_4A8A72 autoReadReg 4_reqStatus
attr HM_KiZi_Taster_6f_4A8A72 expert 2_full
attr HM_KiZi_Taster_6f_4A8A72 firmware 1.2
attr HM_KiZi_Taster_6f_4A8A72 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72 room CUL_HM
attr HM_KiZi_Taster_6f_4A8A72 serialNr NEQ0435257
attr HM_KiZi_Taster_6f_4A8A72 subType remote
attr HM_KiZi_Taster_6f_4A8A72 webCmd getConfig:clear msgEvents
# Button 1
define HM_KiZi_Taster_6f_4A8A72_Btn_01 CUL_HM 4A8A7201
attr HM_KiZi_Taster_6f_4A8A72_Btn_01 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_01 peerIDs 00000000,4DFB3401,
# Button 2
define HM_KiZi_Taster_6f_4A8A72_Btn_02 CUL_HM 4A8A7202
attr HM_KiZi_Taster_6f_4A8A72_Btn_02 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_02 peerIDs 00000000,4DFB3401,
# Button 3
define HM_KiZi_Taster_6f_4A8A72_Btn_03 CUL_HM 4A8A7203
attr HM_KiZi_Taster_6f_4A8A72_Btn_03 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_03 peerIDs 00000000,
# Button 4
define HM_KiZi_Taster_6f_4A8A72_Btn_04 CUL_HM 4A8A7204
attr HM_KiZi_Taster_6f_4A8A72_Btn_04 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_04 peerIDs 00000000,
# Button 5
define HM_KiZi_Taster_6f_4A8A72_Btn_05 CUL_HM 4A8A7205
attr HM_KiZi_Taster_6f_4A8A72_Btn_05 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_05 peerIDs 00000000,
# Button 6
define HM_KiZi_Taster_6f_4A8A72_Btn_06 CUL_HM 4A8A7206
attr HM_KiZi_Taster_6f_4A8A72_Btn_06 model HM-PB-6-WM55
attr HM_KiZi_Taster_6f_4A8A72_Btn_06 peerIDs 00000000,


fhem.cfg KNX und Verknüpfung KNX<>HomeMatic:
## Verknüpfung HomeMatic und KNX
### Hauptlampe  KiZi Schalten
define Beleuchtung_KiZi_Haupt_HM_Schalten_GA EIB 2/2/40
attr Beleuchtung_KiZi_Haupt_HM_Schalten_GA IODev KNX
attr Beleuchtung_KiZi_Haupt_HM_Schalten_GA model dpt1
define Beleuchtung_KiZi_Haupt_HM_Schalten_GA_NF notify Beleuchtung_KiZi_Haupt_HM_Schalten_GA set HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe $EVENT
### Hauptlampe  KiZi Status
define Beleuchtung_KiZi_Haupt_HM_Status_GA EIB 2/2/41
attr Beleuchtung_KiZi_Haupt_HM_Status_GA EIBanswerReading 1
attr Beleuchtung_KiZi_Haupt_HM_Status_GA IODev KNX
attr Beleuchtung_KiZi_Haupt_HM_Status_GA model dpt1
define Beleuchtung_KiZi_Haupt_HM_Status_GA_NF notify HM_KiZi_Schaltaktor_2f_4DFB34_Sw01_Deckenlampe set Beleuchtung_KiZi_Haupt_HM_Status_GA $EVENT
### Wandlampe  KiZi Schalten
define Beleuchtung_KiZi_Wand_HM_Schalten_GA EIB 2/2/42
attr Beleuchtung_KiZi_Wand_HM_Schalten_GA IODev KNX
attr Beleuchtung_KiZi_Wand_HM_Schalten_GA model dpt1
define Beleuchtung_KiZi_Wand_HM_Schalten_GA_NF notify Beleuchtung_KiZi_Wand_HM_Schalten_GA set HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe $EVENT
### Wandlampe  KiZi Status
define Beleuchtung_KiZi_Wand_HM_Status_GA EIB 2/2/43
attr Beleuchtung_KiZi_Wand_HM_Status_GA EIBanswerReading 1
attr Beleuchtung_KiZi_Wand_HM_Status_GA IODev KNX
attr Beleuchtung_KiZi_Wand_HM_Status_GA model dpt1
define Beleuchtung_KiZi_Wand_HM_Status_GA_NF notify HM_KiZi_Schaltaktor_2f_4DFB34_Sw02_Wandlampe set Beleuchtung_KiZi_Wand_HM_Status_GA $EVENT


Konfiguration Homeserver. Zentral-Adressen (hörende Adressen) auf die Schaltobjekte, damit der Status korrekt gesetzt wird: siehe Anhang



2. Schalten: HM Sensor<>KNX Aktor mit Rückmeldung/Anzeige des Status:



Besonderheit ist hier das Setzen des Status, damit das Toggeln korrekt ausgeführt wird (über HM oder KNX Sensor) und die Rückmeldung der erfolgreichen Übertragung an den Taster - beides über einen virtuellen Aktor gelöst.

fhem.cfg für 2fach HomeMatic Tastsensor (HM-PB-2-WM55):
### Mobiler 2fach Taster Hauptgerät
define HM_Mobiler_Taster_2f_47BEB6 CUL_HM 47BEB6
attr HM_Mobiler_Taster_2f_47BEB6 IODev CUL1
attr HM_Mobiler_Taster_2f_47BEB6 autoReadReg 4_reqStatus
attr HM_Mobiler_Taster_2f_47BEB6 expert 2_full
attr HM_Mobiler_Taster_2f_47BEB6 firmware 1.4
attr HM_Mobiler_Taster_2f_47BEB6 model HM-PB-2-WM55
attr HM_Mobiler_Taster_2f_47BEB6 room CUL_HM
attr HM_Mobiler_Taster_2f_47BEB6 serialNr NAA0001400
attr HM_Mobiler_Taster_2f_47BEB6 subType pushButton
attr HM_Mobiler_Taster_2f_47BEB6 webCmd getConfig:clear msgEvents
define FileLog_HM_Mobiler_Taster_2f_47BEB6 FileLog /var/log/fhem/HM_Mobiler_Taster_2f_47BEB6-%Y.log HM_47BEB6
attr FileLog_HM_Mobiler_Taster_2f_47BEB6 logtype text
attr FileLog_HM_Mobiler_Taster_2f_47BEB6 room CUL_HM
## Button 1
define HM_Mobiler_Taster_2f_47BEB6_Btn_01 CUL_HM 47BEB601
attr HM_Mobiler_Taster_2f_47BEB6_Btn_01 model HM-PB-2-WM55
attr HM_Mobiler_Taster_2f_47BEB6_Btn_01 peerIDs 00000000,33220001,
attr HM_Mobiler_Taster_2f_47BEB6_Btn_01 room CUL_HM
## Button 2
define HM_Mobiler_Taster_2f_47BEB6_Btn_02 CUL_HM 47BEB602
attr HM_Mobiler_Taster_2f_47BEB6_Btn_02 model HM-PB-2-WM55
attr HM_Mobiler_Taster_2f_47BEB6_Btn_02 peerIDs 00000000,33220002,
attr HM_Mobiler_Taster_2f_47BEB6_Btn_02 room CUL_HM


fhem.cfg virtueller Aktor um den Status zu Ermitteln und Rückmeldung an den Taster zu geben:
### Virtuelle Taster für die Steuerung KNX durch HomeMatic 2f Taster
define Virtueller_Aktor_fuer_Mobiler_2f_Taster CUL_HM 332200
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster IODev CUL1
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster expert 2_full
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster model virtual_2
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster room CUL_HM
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster subType virtual
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster webCmd virtual
# Button 1
define Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 CUL_HM 33220001
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 model virtual_2
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 peerIDs 47BEB601,
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 room CUL_HM
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 webCmd press short:press long
# Button 2
define Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn2 CUL_HM 33220002
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn2 model virtual_2
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn2 peerIDs 47BEB602,
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn2 room CUL_HM
attr Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn2 webCmd press short:press long


fhem.cfg KNX und Verknüpfung KNX<>HomeMatic:
## Button 1
#KNX2Homematic, wenn Befehl über KNX kommt, dann den Status in den virtuellen Aktor setzen (nur über setREading?)
define Beleuchtung_Kueche_NF notify EIB_Beleuchtung_Schlafzimmer_Wand_Schalten setreading Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 virtActState $EVENT
#Homematic2KNX wird über Homematic geschaltet, dann aktualisiert sich der Status des virtuellen Aktors und EIB wird geschaltet
define Beleuchtung_Kueche_HM2KNX_NF notify Virtueller_Aktor_fuer_Mobiler_2f_Taster_Btn1 set EIB_Beleuchtung_Schlafzimmer_Wand_Schalten $EVENT
#für virtuellen Taster Beleuchtung Schlafzimmer Wand -> Button1
define EIB_Beleuchtung_Schlafzimmer_Wand_Schalten EIB 2/2/21
attr EIB_Beleuchtung_Schlafzimmer_Wand_Schalten IODev KNX
attr EIB_Beleuchtung_Schlafzimmer_Wand_Schalten eventMap on:ON off:OFF
attr EIB_Beleuchtung_Schlafzimmer_Wand_Schalten room EIB
define FileLog_EIB_Beleuchtung_Schlafzimmer_Wand_Schalten FileLog /var/log/fhem/EIB_Beleuchtung_Schlafzimmer_Wand_Schalten-%Y.log EIB_Beleuchtung_Schlafzimmer_Wand_Schalten
attr FileLog_EIB_Beleuchtung_Schlafzimmer_Wand_Schalten logtype text
attr FileLog_EIB_Beleuchtung_Schlafzimmer_Wand_Schalten room EIB




3. Schalten: KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status:



fhem.cfg für 1fach HomeMatic Schatlaktor (HM-LC-Sw1-Pl-DN-R1):
### Mobiler 1fach Aktor Hauptgerät
### _Steckdose
define HM_Mobiler_Aktor_1f_4D19AD CUL_HM 4D19AD
attr HM_Mobiler_Aktor_1f_4D19AD IODev CUL1
attr HM_Mobiler_Aktor_1f_4D19AD autoReadReg 4_reqStatus
attr HM_Mobiler_Aktor_1f_4D19AD expert 2_full
attr HM_Mobiler_Aktor_1f_4D19AD firmware 2.6
attr HM_Mobiler_Aktor_1f_4D19AD model HM-LC-Sw1-Pl-DN-R1
attr HM_Mobiler_Aktor_1f_4D19AD room CUL_HM
attr HM_Mobiler_Aktor_1f_4D19AD serialNr NEQ0870315
attr HM_Mobiler_Aktor_1f_4D19AD subType switch
attr HM_Mobiler_Aktor_1f_4D19AD webCmd statusRequest:toggle:on:off
define FileLog_HM_Mobiler_Aktor_1f_4D19AD FileLog /var/log/fhem/HM_Mobiler_Aktor_1f_4D19AD-%Y.log HM_4D19AD
attr FileLog_HM_Mobiler_Aktor_1f_4D19AD logtype text
attr FileLog_HM_Mobiler_Aktor_1f_4D19AD room CUL_HM


fhem.cfg KNX und Verknüpfung KNX<>HomeMatic:
##Verbindung zum mobiler 1f Aktor zu KNX
### Mobiler_Aktor_A_1f_Schalten
define Mobiler_Aktor_A_1f_Schalten_GA EIB 5/1/20
attr Mobiler_Aktor_A_1f_Schalten_GA IODev KNX
attr Mobiler_Aktor_A_1f_Schalten_GA model dpt1
define Mobiler_Aktor_A_1f_Schalten_GA_NF notify Mobiler_Aktor_A_1f_Schalten_GA set HM_Mobiler_Aktor_1f_4D19AD $EVENT
### Mobiler_Aktor_A_1f_Status
define Mobiler_Aktor_A_1f_Schalten_Status_GA EIB 5/1/21
attr Mobiler_Aktor_A_1f_Schalten_Status_GA EIBanswerReading 1
attr Mobiler_Aktor_A_1f_Schalten_Status_GA IODev KNX
attr Mobiler_Aktor_A_1f_Schalten_Status_GA model dpt1
define Mobiler_Aktor_A_1f_Schalten_Status_GA_NF notify HM_Mobiler_Aktor_1f_4D19AD set Mobiler_Aktor_A_1f_Schalten_Status_GA $EVENT


Konfiguration Homeserver. Zentral-Adressen (hörende Adressen) auf die Schaltobjekte, damit der Status korrekt gesetzt wird (siehe oben)



4. Fahren Rollläden: HM Sensor<>HM Aktor und KNX Sensor<>HM Aktor mit Rückmeldung/Anzeige des Status:



Hier ist die Rückmeldung noch nicht realisiert.

fhem.cfg für 1fach HomeMatic Schatlaktor (HM-LC-Sw1-Pl-DN-R1):
#KiZi  Rollladenaktor Hauptgerät
define HM_KiZi_Rollladenaktor_4D03E6 CUL_HM 4D03E6
attr HM_KiZi_Rollladenaktor_4D03E6 IODev CUL1
attr HM_KiZi_Rollladenaktor_4D03E6 autoReadReg 4_reqStatus
attr HM_KiZi_Rollladenaktor_4D03E6 eventMap on:hoch off:runter stop:stop
attr HM_KiZi_Rollladenaktor_4D03E6 expert 2_full
attr HM_KiZi_Rollladenaktor_4D03E6 firmware 2.8
attr HM_KiZi_Rollladenaktor_4D03E6 model HM-LC-Bl1PBU-FM
attr HM_KiZi_Rollladenaktor_4D03E6 room Kizi_
attr HM_KiZi_Rollladenaktor_4D03E6 serialNr NEQ0931365
attr HM_KiZi_Rollladenaktor_4D03E6 subType blindActuator
attr HM_KiZi_Rollladenaktor_4D03E6 webCmd statusRequest:toggleDir:hoch:runter:up:down:stop
define FileLog_HM_KiZi_Rollladenaktor_4D03E6 FileLog /var/log/fhem/HM_KiZi_Rollladenaktor_4D03E6-%Y.log HM_KiZi_Rollladenaktor_4D03E6
attr FileLog_HM_KiZi_Rollladenaktor_4D03E6 logtype text
attr FileLog_HM_KiZi_Rollladenaktor_4D03E6 room CUL_HM


fhem.cfg KNX und Verknüpfung KNX<>HomeMatic:
### Rollladenaktor  KiZi
define Rollladen_KiZi_HM_fahren_GA EIB 3/2/70
attr Rollladen_KiZi_HM_fahren_GA IODev KNX
attr Rollladen_KiZi_HM_fahren_GA model dpt1
define Rollladen_KiZi_HM_fahren_GA_Auf_NF notify Rollladen_KiZi_HM_fahren_GA:on set HM_KiZi_Rollladenaktor_4D03E6 runter
define Rollladen_KiZi_HM_fahren_GA_Ab_NF notify Rollladen_KiZi_HM_fahren_GA:off set HM_KiZi_Rollladenaktor_4D03E6 hoch
define Rollladen_KiZi_HM_stopp_GA EIB 3/2/71
attr Rollladen_KiZi_HM_stopp_GA IODev KNX
attr Rollladen_KiZi_HM_stopp_GA model dpt1
define Rollladen_KiZi_HM_stopp_GA_Stopp_NF1 notify Rollladen_KiZi_HM_stopp_GA:on set HM_KiZi_Rollladenaktor_4D03E6 stop
define Rollladen_KiZi_HM_stopp_GA_Stopp_NF2 notify Rollladen_KiZi_HM_stopp_GA:off set HM_KiZi_Rollladenaktor_4D03E6 stop