Homematic IP Modul für Hörmann-Antriebe, HmIP-MOD-HO

Begonnen von joker4791, 25 Juni 2020, 14:42:25

Vorheriges Thema - Nächstes Thema

joker4791

Hi,

aufgrund von Problemen mit HM-MOD-EM-8/HM-MOD-Re-8 bei der Steuerung eines Hörmann-Garagentorantriebes wurde nun das neue Modul aus der Überschrift von eQ-3 besorgt. Nach dem Einbau und dem Anlernen an eine CCU2 kann der Antrieb über das Homematic-WebUI ganz normal und komfortabel bedient werden.

Nun fehlt noch die Integration in FHEM. Das DEV sowie die CHN wurden bereits angelegt, aber können noch nicht bedient werden (oder die Syntax ist einfach nicht korrekt). Muss für ein neues Modul eine Änderung an FHEM erfolgen?

Hier die DeviceInfo:
CHN 00241BE989xxxx:0 HmIP-MOD-HO 00241BE989xxxx:0
  DPT {b} HmIP-RF.00241BE989xxxx:0.CONFIG_PENDING = false [RE]
  DPT {b} HmIP-RF.00241BE989xxxx:0.DUTY_CYCLE = false [RE]
  DPT {b} HmIP-RF.00241BE989xxxx:0.INSTALL_TEST = true [RW]
  DPT {f} HmIP-RF.00241BE989xxxx:0.OPERATING_VOLTAGE = 0.000000 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
  DPT {n} HmIP-RF.00241BE989xxxx:0.RSSI_DEVICE = 158 [RE]
  DPT {n} HmIP-RF.00241BE989xxxx:0.RSSI_PEER = 158 [RE]
  DPT {b} HmIP-RF.00241BE989xxxx:0.UNREACH = true [RE]
  DPT {b} HmIP-RF.00241BE989xxxx:0.UPDATE_PENDING = false [RE]
CHN 00241BE989xxxx:1 HmIP-MOD-HO 00241BE989xxxx:1
  DPT {i} HmIP-RF.00241BE989xxxx:1.DOOR_COMMAND =  [W]
  DPT {i} HmIP-RF.00241BE989xxxx:1.DOOR_STATE = 2 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:1.ERROR_CODE = 0 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:1.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:1.SECTION = 3 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:1.SECTION_STATUS = 0 [RE]
CHN 00241BE989xxxx:2 HmIP-MOD-HO 00241BE989xxxx:2
  DPT {i} HmIP-RF.00241BE989xxxx:2.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:2.SECTION = 3 [RE]
  DPT {i} HmIP-RF.00241BE989xxxx:2.SECTION_STATUS = 0 [RE]
  DPT {b} HmIP-RF.00241BE989xxxx:2.STATE = true [RWE]


Ein ähnliches Modul ist hier auf GitHub beschrieben.

Grüße,
j.

joker4791

Nach einigem Ausprobieren habe ich nun die folgenden Befehle für den Torantrieb ermittelt:

Öffnen:
set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 1

Stopp:
set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 2

Schließen:
set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 3

Lüften:
set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 4

Nun muss nur noch ein wenig für ansprechende Grafik/Funktion gebastelt werden :) .


zap

Die HmIP Devices sind hier ganz gut beschrieben:

https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf

Nicht von den fast 10000 Seiten abschrecken lassen. Im Acrobat Reader hast Du eine gute Navigation sortiert nach Devicetype.

Da wirst Du vermutlich auch die Bedeutung der Werte von DOOR_STATE finden.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

joker4791

#3
In der Tat finde ich das Dokument mit seinen 9742 Seiten unübersichtlich, daher habe ich mal die relevanten Daten zu dem Modul hier in eine Tabelle gepackt:

66.3.1.1: Channel 0 - MAINTENANCE, state parameters
66.3.1.2: Channel 0 - MAINTENANCE, configuration parameters
66.3.2.1: Channel 1 - DOOR_RECEIVER, state parameters
66.3.2.2: Channel 1 - DOOR_RECEIVER, configuration parameters
66.3.3.1: Channel 2 - SIMPLE_SWITCH_RECEIVER, state parameters
66.3.3.2: Channel 2 - SIMPLE_SWITCH_RECEIVER, configuration parameters










































IDParameterLogicalPhysicalAccessDefaultPossible Values
66.3.1.1.1CONFIG_PENDINGBOOLEANintegerread/eventfalseMin: falseMax: true
66.3.1.1.2DUTY_CYCLEBOOLEANintegerread/eventfalseMin: falseMax: true
66.3.1.1.3OPERATING_VOLTAGEFLOATintegerread/event0.0Min: 0.0Max: 25.2
66.3.1.1.4OPERATING_VOLTAGE_STATUSENUMintegerread/eventNORMALNORMAL / UNKNOWN / OVERFLOW
66.3.1.1.5RSSI_DEVICEINTEGERintegerread/event0Min: -128Max: 127
66.3.1.1.6RSSI_PEERINTEGERintegerread/event0Min: -128Max: 127
66.3.1.1.7UNREACHBOOLEANintegerread/eventfalseMin: falseMax: true
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66.3.1.2.1ARR_TIMEOUTINTEGERintegerread/write10Min: 0Max: 255
66.3.1.2.2CYCLIC_INFO_MSGINTEGERintegerread/write1Min: 0Max: 255
66.3.1.2.3CYCLIC_INFO_MSG_DISINTEGERintegerread/write1Min: 0Max: 255
66.3.1.2.4CYCLIC_INFO_MSG_DIS_UNCHANGEDINTEGERintegerread/write20Min: 0Max: 255
66.3.1.2.5CYCLIC_INFO_MSG_OVERDUE_THRESHOLDINTEGERintegerread/write2Min: 0Max: 2147483647
66.3.1.2.6DISABLE_MSG_TO_ACBOOLEANintegerread/eventfalseMin: falseMax: true
66.3.1.2.7DUTYCYCLE_LIMITINTEGERintegerread/write180Min: 0Max: 255
66.3.1.2.8ENABLE_ROUTINGBOOLEANintegerread/eventtrueMin: falseMax: true
66.3.1.2.9LOCAL_RESET_DISABLEDBOOLEANintegerread/eventfalseMin: falseMax: true
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66.3.2.1.1DOOR_COMMANDENUMintegerwriteNOPNOP / OPEN / STOP /
CLOSE / PARTIAL_OPEN
66.3.2.1.2DOOR_STATEENUMintegerread/eventCLOSEDCLOSED / OPEN /
VENTILATION_POSITION /
POSITION_UNKNOWN
66.3.2.1.3ERROR_CODEINTEGERintegerread/event0Min: 0Max: 255
66.3.2.1.4PROCESSENUMintegerread/eventSTABLESTABLE / NOT_STABLE
66.3.2.1.5SECTIONINTEGERintegerread/event0Min: 0Max: 15
66.3.2.1.6SECTION_STATUSENUMintegerread/eventNORMALNORMAL / UNKNOWN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66.3.2.2.1EVENT_DELAY_UNITENUMintegerread/writeS100MS / S / M / H
66.3.2.2.2EVENT_DELAY_VALUEINTEGERintegerread/write1Min: 0Max: 63
66.3.2.2.3EVENT_RANDOMTIME_UNITENUMintegerread/writeS100MS / S / M / H
66.3.2.2.4EVENT_RANDOMTIME_VALUEINTEGERintegerread/write1Min: 0Max: 63
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66.3.3.1.1PROCESSENUMintegerread/eventSTABLESTABLE / NOT_STABLE
66.3.3.1.2SECTIONINTEGERintegerread/event0Min: 0Max: 15
66.3.3.1.3SECTION_STATUSENUMintegerread/eventNORMALNORMAL / UNKNOWN
66.3.3.1.4STATEBOOLEANintegerread/write/eventfalseMin: falseMax: true
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66.3.3.2.1EVENT_DELAY_UNITENUMintegerread/writeS100MS / S / M / H
66.3.3.2.2EVENT_DELAY_VALUEINTEGERintegerread/write1Min: 0Max: 63
66.3.3.2.3EVENT_RANDOMTIME_UNITENUMintegerread/writeS100MS / S / M / H
66.3.3.2.4EVENT_RANDOMTIME_VALUEINTEGERintegerread/write1Min: 0Max: 63


joker4791

Anbei ein paar Bilder: Unboxing und Einrichtung in FHEM. Was noch fehlt ist die Anzeige/Bedienung der Beleuchtung.

Der Code sieht nun wie folgt aus:
defmod HM_HmIP_MOD_HO_00241BE989xxxx HMCCUDEV 00241BE989xxxx
attr HM_HmIP_MOD_HO_00241BE989xxxx IODev d_ccu
attr HM_HmIP_MOD_HO_00241BE989xxxx alias Garagentor2
attr HM_HmIP_MOD_HO_00241BE989xxxx cmdIcon open:fts_garage_door_up stop:fts_garage_door_manual close:fts_garage_door_down vent:fts_garage_door_60
attr HM_HmIP_MOD_HO_00241BE989xxxx devStateIcon closed:fts_garage_door_100 open:fts_garage vent_pos:fts_garage_door_60 unknown:fts_garage_door_40
attr HM_HmIP_MOD_HO_00241BE989xxxx eventMap /datapoint 1.DOOR_COMMAND 1:open/datapoint 1.DOOR_COMMAND 2:stop/datapoint 1.DOOR_COMMAND 3:close/datapoint 1.DOOR_COMMAND 4:vent/
attr HM_HmIP_MOD_HO_00241BE989xxxx room Garage
attr HM_HmIP_MOD_HO_00241BE989xxxx statedatapoint 1.DOOR_STATE
attr HM_HmIP_MOD_HO_00241BE989xxxx substitute DOOR_STATE!0:closed,1:open,2:vent_pos,3:unknown
attr HM_HmIP_MOD_HO_00241BE989xxxx webCmd open:stop:close:vent

joker4791

Inzwischen ist auch die Beleuchtung integriert, sowie ein DOIF um 10 Minuten nach Sonnenuntergang die Garagentore zu schließen. Nach anfänglichen Signalstörungen läuft die Kommunikation inzwischen reibungslos, d. h. es hat in den letzten 5 Tagen keine einzige Meldung "Kommunikation gestört" gegeben.

Garagentor-Device:
defmod HM_HmIP_MOD_HO_00241BE989xxxx HMCCUDEV 00241BE989xxxx
attr HM_HmIP_MOD_HO_00241BE989xxxx IODev d_ccu
attr HM_HmIP_MOD_HO_00241BE989xxxx alias Garagentor2
attr HM_HmIP_MOD_HO_00241BE989xxxx cmdIcon open:fts_garage_door_up stop:fts_garage_door_manual close:fts_garage_door_down vent:fts_garage_door_60
attr HM_HmIP_MOD_HO_00241BE989xxxx devStateIcon closed:fts_garage_door_100@green open:fts_garage@green vent_pos:fts_garage_door_60@blue unknown:fts_garage_door_20@red
attr HM_HmIP_MOD_HO_00241BE989xxxx eventMap /datapoint 1.DOOR_COMMAND 1:open/datapoint 1.DOOR_COMMAND 2:stop/datapoint 1.DOOR_COMMAND 3:close/datapoint 1.DOOR_COMMAND 4:vent/
attr HM_HmIP_MOD_HO_00241BE989xxxx room Garage
attr HM_HmIP_MOD_HO_00241BE989xxxx statedatapoint 1.DOOR_STATE
attr HM_HmIP_MOD_HO_00241BE989xxxx substitute DOOR_STATE!0:closed,1:open,2:vent_pos,3:unknown
attr HM_HmIP_MOD_HO_00241BE989xxxx webCmd open:stop:close:vent
attr HM_HmIP_MOD_HO_00241BE989xxxx widgetOverride control:uzsuToggle,off,on


Channel der Garagenbeleuchtung:
defmod HM_HmIP_MOD_HO_00241BE989xxxx_2 HMCCUCHN 00241BE989xxxx:2
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 IODev d_ccu
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 alias Garagentor2_Beleuchtung
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 room Garage
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 statedatapoint 2.STATE
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 statevals on:true,off:false
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 substitute 2.STATE!(1|true):on,(0|false):off
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 webCmd control
attr HM_HmIP_MOD_HO_00241BE989xxxx_2 widgetOverride control:uzsuToggle,off,on


DOIF:
defmod di_GaragentoreZu DOIF ([{sunset(600)}])  ## Sonnenuntergang +00:10:00 / 600s\
  (IF ([HM_HmIP_MOD_HO_00241BE989xxxx:1.DOOR_STATE] ne "0")         ## Wenn Garagentor2 nicht ZU\
  (set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 3))   ## Dann Garagentor2 ZU\
  (IF ([HM_HmIP_MOD_HO_00241BE989xxxx:1.DOOR_STATE] ne "0")         ## Wenn Garagentor3 nicht ZU\
  (set HM_HmIP_MOD_HO_00241BE989xxxx datapoint 1.DOOR_COMMAND 3))   ## Dann Garagentor3 ZU\

attr di_GaragentoreZu do always
attr di_GaragentoreZu room Garage
attr di_GaragentoreZu stateFormat last execution: {(ReadingsTimestamp('di_GaragentoreZu','cmd_event','0'))}</br>\
next execution: {(ReadingsVal('di_GaragentoreZu','timer_01_c01','0'))}

Frank6320

Hallo zusamen,

ich habe unsere Rotamatic jetzt auch mit einem Hörmann Homematic IP interface ausgestattet. In der CCU3 kann man es wunderbar ansteuern und auch der Status ändert sich auf open/closed/unknown.
Ich habe es daraufhin in FHEM integriert. Hier kann ich auch auf/zu/stop setzen. Das Tor reagiert wie gewünscht.
Was nicht funktioniert, ist das der Status automatisch geupdatet wird. Ich muss per get... Den Status abfragen bekomme aber die jeweils richtige Antwort.
So sieht die Def von dem Hoftor aus:
define HmIP_MOD_HO_00241blub HMCCUDEV 00241blub
setuuid HmIP_MOD_HO_00241blub 6165ec00-f33f-d9f2-65c3-tja
attr HmIP_MOD_HO_00241blub IODev d_ccu
attr HmIP_MOD_HO_00241blub alias Hoftor
attr HmIP_MOD_HO_00241blub cmdIcon open:fts_garage_door_up stop:fts_garage_door_manual close:fts_garage_door_down vent:fts_garage_door_60
attr HmIP_MOD_HO_00241blub eventMap /datapoint 1.DOOR_COMMAND 1:open/datapoint 1.DOOR_COMMAND 2:stop/datapoint 1.DOOR_COMMAND 3:close/datapoint 1.DOOR_COMMAND 4:vent/
attr HmIP_MOD_HO_00241blub room Außen
attr HmIP_MOD_HO_00241blub statedatapoint 1.DOOR_STATE
attr HmIP_MOD_HO_00241blub substitute DOOR_STATE!0:closed,1:open,2:vent_pos,3:unknown
attr HmIP_MOD_HO_00241blub webCmd open:stop:close:vent


Ich hatte es aus dem Post von Joker4791 abgeleitet. Was muss ich hier noch tun, damit der Status sich direkt anpasst?

viele Grüße
Frank

zap

Du musst den RPC Server starten, damit die Readings automatisch aktualisiert werden. Siehe auch Wiki
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Frank6320

Hallo zap,

ich bin hier lange Zeit nicht zu gekommen weiter zu forschen. Ich habe jetzt auch eine Steckdose in Homematic. Die hat korrekt von allein gemeldet.

Hatte beim Schreiben noch mal rum probiert. Ich kann nun sagen, dass es jetzt läuft. Es gab immer einen rpc server.

viele Grüße

Frank