HMCCUConf.pm 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. #########################################################################
  2. #
  3. # HMCCUConf.pm
  4. #
  5. # $Id: HMCCUConf.pm 13300 2017-02-01 17:45:04Z zap $
  6. #
  7. # Version 3.9
  8. #
  9. # Configuration parameters for Homematic devices.
  10. #
  11. # (c) 2016 zap (zap01 <at> t-online <dot> de)
  12. #
  13. # Datapoints LOWBAT, LOW_BAT, UNREACH, ERROR*, SABOTAGE and FAULT* must
  14. # not be specified in ccureadingfilter. They are always stored as readings.
  15. # Datapoints LOWBAT, LOW_BAT and UNREACH must not be specified in
  16. # substitute because they are substituted by default.
  17. # See attributes ccudef-readingname and ccudef-substitute in module HMCCU.
  18. #
  19. #########################################################################
  20. package HMCCUConf;
  21. use strict;
  22. use warnings;
  23. use vars qw(%HMCCU_CHN_DEFAULTS);
  24. use vars qw(%HMCCU_DEV_DEFAULTS);
  25. #
  26. #
  27. # Default attributes for Homematic devices of type HMCCUCHN
  28. #
  29. %HMCCU_CHN_DEFAULTS = (
  30. "HM-Sec-SCo|HM-Sec-SC|HM-Sec-SC-2|HMIP-SWDO" => {
  31. _description => "Tuer/Fensterkontakt optisch und magnetisch",
  32. _channels => "1",
  33. ccureadingfilter => "STATE",
  34. hmstatevals => "ERROR!7:sabotage;SABOTAGE!1:sabotage",
  35. statedatapoint => "STATE",
  36. substitute => "STATE!(0|false):closed,(1|true):open"
  37. },
  38. "HM-Sec-RHS|HM-Sec-RHS-2" => {
  39. _description => "Fenster Drehgriffkontakt",
  40. _channels => "1",
  41. ccureadingfilter => "STATE",
  42. hmstatevals => "ERROR!1:sabotage",
  43. statedatapoint => "STATE",
  44. substitute => "STATE!0:closed,1:tilted,2:open;ERROR!0:no,1:sabotage"
  45. },
  46. "HM-Sec-Key|HM-Sec-Key-S|HM-Sec-Key-O|HM-Sec-Key-Generic" => {
  47. _description => "Funk-Tuerschlossantrieb KeyMatic",
  48. _channels => "1",
  49. ccureadingfilter => "(STATE|INHIBIT)",
  50. eventMap => "/datapoint OPEN true:open/",
  51. hmstatevals => "ERROR!1:clutch_failure,2:motor_aborted",
  52. statedatapoint => "STATE",
  53. statevals => "lock:false,unlock:true",
  54. substitute => "STATE!(0|false):locked,(1|true):unlocked,2:open;INHIBIT!(0|false):no,(1|true):yes;STATE_UNCERTAIN!(1|true):manual;DIRECTION!0:none,1:up,2:down,3:undefined;ERROR!0:no,1:clutch_failure,2:motor_aborted"
  55. },
  56. "HM-LC-Sw1-Pl-2|HMIP-PS" => {
  57. _description => "Steckdose",
  58. _channels => "1,3",
  59. ccureadingfilter => "STATE",
  60. controldatapoint => "STATE",
  61. statedatapoint => "STATE",
  62. statevals => "on:true,off:false",
  63. substitute => "STATE!(1|true):on,(0|false):off",
  64. webCmd => "control",
  65. widgetOverride => "control:uzsuToggle,off,on"
  66. },
  67. "HM-LC-Dim1L-Pl|HM-LC-Dim1L-Pl-2|HM-LC-Dim1L-CV|HM-LC-Dim2L-CV|HM-LC-Dim2L-SM|HM-LC-Dim1L-Pl-3|HM-LC-Dim1L-CV-2" => {
  68. _description => "Funk-Anschnitt-Dimmaktor",
  69. _channels => "1",
  70. ccureadingfilter => "(^LEVEL$|DIRECTION)",
  71. ccuscaleval => "LEVEL:0:1:0:100",
  72. cmdIcon => "on:general_an off:general_aus",
  73. controldatapoint => "LEVEL",
  74. hmstatevals => "ERROR!1:load_failure",
  75. statedatapoint => "LEVEL",
  76. statevals => "on:100,off:0",
  77. stripnumber => 1,
  78. substexcl => "control",
  79. substitute => "ERROR!0:no,1:load_failure:yes;LEVEL!#0-0:off,#1-100:on",
  80. webCmd => "control:on:off",
  81. widgetOverride => "control:slider,0,10,100"
  82. },
  83. "HM-LC-Dim1PWM-CV|HM-LC-Dim1PWM-CV-2" => {
  84. _description => "Funk-PWM-Dimmaktor",
  85. _channels => "1",
  86. ccureadingfilter => "(^LEVEL$|DIRECTION)",
  87. ccuscaleval => "LEVEL:0:1:0:100",
  88. cmdIcon => "on:general_an off:general_aus",
  89. controldatapoint => "LEVEL",
  90. hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat",
  91. statedatapoint => "LEVEL",
  92. statevals => "on:100,off:0",
  93. stripnumber => 1,
  94. substexcl => "control",
  95. substitute => "ERROR_REDUCED,ERROR_OVERHEAT!(0|false):no,(1|true):yes;LEVEL!#0-0:off,#1-100:on;DIRECTION!0:none,1:up,2:down,3:undefined",
  96. webCmd => "control:on:off",
  97. widgetOverride => "control:slider,0,10,100"
  98. }, "HM-LC-Dim1T-Pl|HM-LC-Dim1T-CV|HM-LC-Dim1T-FM|HM-LC-Dim1T-CV-2|HM-LC-Dim2T-SM|HM-LC-Dim2T-SM-2|HM-LC-Dim1T-DR|HM-LC-Dim1T-FM-LF|HM-LC-Dim1T-FM-2|HM-LC-Dim1T-Pl-3|HM-LC-Dim1TPBU-FM|HM-LC-Dim1TPBU-FM-2" => {
  99. _description => "Funk-Abschnitt-Dimmaktor",
  100. _channels => "1",
  101. ccureadingfilter => "(^LEVEL\$|DIRECTION)",
  102. ccuscaleval => "LEVEL:0:1:0:100",
  103. cmdIcon => "on:general_an off:general_aus",
  104. controldatapoint => "LEVEL",
  105. hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat;ERROR_OVERLOAD!1:error_overload",
  106. statedatapoint => "LEVEL",
  107. statevals => "on:100,off:0",
  108. stripnumber => 1,
  109. substexcl => "control",
  110. substitute => "ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;LEVEL!#0-0:off,#1-100:on;DIRECTION!0:none,1:up,2:down,3:undefined",
  111. webCmd => "control:on:off",
  112. widgetOverride => "control:slider,0,10,100"
  113. },
  114. "HM-PB-2-FM" => {
  115. _description => "Funk-Wandtaster 2-fach",
  116. _channels => "1,2",
  117. ccureadingfilter => "PRESS",
  118. statedatapoint => "PRESS_SHORT",
  119. statevals => "press:true",
  120. substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
  121. },
  122. "HM-LC-Sw1PBU-FM" => {
  123. _description => "Unterputz Schaltaktor für Markenschalter",
  124. _channels => "1",
  125. ccureadingfilter => "STATE",
  126. controldatapoint => "STATE",
  127. statedatapoint => "STATE",
  128. statevals => "on:true,off:false",
  129. substitute => "STATE!(true|1):on,(false|0):off",
  130. webCmd => "control",
  131. widgetOverride => "control:uzsuToggle,off,on"
  132. },
  133. "HM-SCI-3-FM" => {
  134. _description => "3 Kanal Schliesserkontakt",
  135. _channels => "1,2,3",
  136. ccureadingfilter => "STATE",
  137. statedatapoint => "STATE",
  138. statevals => "on:true,off:false",
  139. substitute => "STATE!(1|true):on,(0|false):off"
  140. },
  141. "HM-LC-Sw1-Pl|HM-LC-Sw1-Pl-2|HM-LC-Sw1-SM|HM-LC-Sw1-FM|HM-LC-Sw1-PB-FM" => {
  142. _description => "1 Kanal Funk-Schaltaktor",
  143. _channels => "1",
  144. ccureadingfilter => "STATE",
  145. statedatapoint => "STATE",
  146. statevals => "on:true,off:false",
  147. substitute => "STATE!(1|true):on,(0|false):off"
  148. },
  149. "HM-LC-Sw2-SM|HM-LC-Sw2-FM|HM-LC-Sw2-PB-FM|HM-LC-Sw2-DR" => {
  150. _description => "2 Kanal Funk-Schaltaktor",
  151. _channels => "1,2",
  152. ccureadingfilter => "STATE",
  153. statedatapoint => "STATE",
  154. statevals => "on:true,off:false",
  155. substitute => "STATE!(1|true):on,(0|false):off"
  156. },
  157. "HM-LC-Sw4-DR|HM-LC-Sw4-WM|HM-LC-Sw4-PCB|HM-LC-Sw4-SM" => {
  158. _description => "4 Kanal Funk-Schaltaktor",
  159. _channels => "1,2,3,4",
  160. ccureadingfilter => "STATE",
  161. statedatapoint => "STATE",
  162. statevals => "on:true,off:false",
  163. substitute => "STATE!(1|true):on,(0|false):off"
  164. },
  165. "HM-LC-Bl1PBU-FM|HM-LC-Bl1-FM|HM-LC-Bl1-SM|HM-LC-BlX|HM-LC-Bl1-SM-2|HM-LC-Bl1-FM-2" => {
  166. _description => "Jalousienaktor",
  167. _channels => "1",
  168. ccureadingfilter => "(LEVEL|INHIBIT|DIRECTION|WORKING)",
  169. ccuscaleval => "LEVEL:0:1:0:100",
  170. cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
  171. controldatapoint => "LEVEL",
  172. eventMap => "/datapoint STOP true:stop/datapoint LEVEL 0:down/datapoint LEVEL 100:up/",
  173. statedatapoint => "LEVEL",
  174. stripnumber => 1,
  175. substexcl => "control",
  176. substitute => "LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:stop,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes",
  177. webCmd => "control:up:stop:down",
  178. widgetOverride => "control:slider,0,10,100"
  179. },
  180. "HM-WDS40-TH-I|HM-WDS10-TH-O|HM-WDS20-TH-O|IS-WDS-TH-OD-S-R3|ASH550I|ASH550" => {
  181. _description => "Temperatur/Luftfeuchte Sensor",
  182. _channels => "1",
  183. ccureadingfilter => "(^HUMIDITY|^TEMPERATURE)",
  184. statedatapoint => "TEMPERATURE",
  185. stripnumber => 1
  186. },
  187. "HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3" => {
  188. _description => "Bewegungsmelder",
  189. _channels => "1",
  190. ccureadingfilter => "(BRIGHTNESS|MOTION)",
  191. hmstatevals => "ERROR!1:sabotage",
  192. statedatapoint => "MOTION",
  193. substitute => "MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage"
  194. },
  195. "HmIP-SMI" => {
  196. _description => "Bewegungsmelder",
  197. _channels => "1",
  198. ccureadingfilter => "(ILLUMINATION|MOTION)",
  199. statedatapoint => "MOTION",
  200. substitute => "MOTION!(0|false):no,(1|true):yes"
  201. },
  202. "HM-Sen-LI-O" => {
  203. _description => "Lichtsensor",
  204. _channels => "1",
  205. ccureadingfilter => "LUX",
  206. statedatapoint => "LUX",
  207. stripnumber => 1
  208. },
  209. "HM-CC-SCD" => {
  210. _description => "CO2 Sensor",
  211. _channels => "1",
  212. statedatapoint => "STATE",
  213. substitute => "STATE!0:normal,1:added,2:strong"
  214. },
  215. "HM-Sec-SD-2" => {
  216. _description => "Funk-Rauchmelder",
  217. _channels => "1",
  218. ccureadingfilter => "STATE",
  219. hmstatevals => "ERROR_ALARM_TEST!1:alarm_test_failed;ERROR_SMOKE_CHAMBER!1:degraded_smoke_chamber",
  220. statedatapoint => "STATE",
  221. substitute => "ERROR_ALARM_TEST!0:no,1:failed;ERROR_SMOKE_CHAMBER!0:no,1:degraded"
  222. },
  223. "HM-Sec-SFA-SM" => {
  224. _description => "Alarmsirene",
  225. _channels => "1",
  226. ccureadingfilter => "STATE",
  227. hmstatevals => "ERROR_POWER!1:power_failure;ERROR_SABOTAGE!1:sabotage;ERROR_BATTERY!1:battery_defect",
  228. statedatapoint => "STATE",
  229. substitute => "STATE!(0|false):off,(1|true):alarm;ERROR_POWER!0:no,1:failure;ERROR_SABOTAGE!0:no,1:sabotage;ERROR_BATTERY!0:no,1:defect"
  230. },
  231. "WS550|WS888|WS550Tech|WS550LCB|WS550LCW|HM-WDC7000" => {
  232. _description => "Wetterstation",
  233. _channels => "10",
  234. ccureadingfilter => "(TEMPERATURE|HUMIDITY|AIR_PRESSURE)",
  235. statedatapoint => "TEMPERATURE",
  236. stripnumber => 1
  237. },
  238. "HM-Sec-WDS|HM-Sec-WDS-2" => {
  239. _description => "Funk-Wassermelder",
  240. _channels => "1",
  241. ccureadingfilter => "STATE",
  242. statedatapoint => "STATE",
  243. substitute => "STATE!0:dry,1:wet,2:water"
  244. },
  245. "HM-WDS30-OT2-SM|HM-WDS30-OT2-SM-2" => {
  246. _description => "Temperaturdifferenz-Sensor",
  247. _channels => "1,2,3,4,5",
  248. ccureadingfilter => "TEMPERATURE",
  249. statedatapoint => "TEMPERATURE",
  250. stripnumber => 1
  251. },
  252. "HM-OU-LED16|HM-OU-X" => {
  253. _description => "Statusanzeige 16 Kanal LED",
  254. _channels => "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16",
  255. ccureadingfilter => "PRESS_SHORT|LED_STATUS",
  256. eventMap => "/datapoint LED_SLEEP_MODE 0:sleep-off/datapoint LED_SLEEP_MODE 1:sleep-on/",
  257. statedatapoint => "LED_STATUS",
  258. statevals => "off:0,red:1,green:2,orange:3",
  259. substitute => "LED_STATUS!0:off,1:red:2:green:3:orange"
  260. }
  261. );
  262. #
  263. # Default attributes for Homematic devices of type HMCCUDEV
  264. #
  265. %HMCCU_DEV_DEFAULTS = (
  266. "CCU2" => {
  267. _description => "HomeMatic CCU2",
  268. "ccudef-readingfilter" => '^(LOW_?BAT|UNREACH)$',
  269. "ccudef-readingformat" => 'datapoint',
  270. "ccudef-readingname" => '^(.+\.)?AES_KEY$:sign;^(.+\.)?LOW_?BAT$:battery;^(.+\.)?BATTERY_STATE$:batteryLevel;^(.+\.)?UNREACH$:Activity;^(.+\.)?TEMPERATURE$:+temperature;^(.+\.)?SET_TEMPERATURE$:+desired-temp;^(.+\.)?HUMIDITY$:+humidity;^(.+\.)?LEVEL$:+pct;^(.+\.)?CONTROL_MODE$:+controlMode',
  271. "ccudef-substitute" => 'AES_KEY!(0|false):off,(1|true):on;LOWBAT,LOW_BAT!(0|false):ok,(1|true):low;UNREACH!(0|false):alive,(1|true):dead;MOTION!(0|false):noMotion,(1|true):motion;DIRECTION!0:stop,1:up,2:down,3:undefined;WORKING!0:false,1:true;INHIBIT!(0|false):unlocked,(1|true):locked'
  272. },
  273. "HM-Sec-SCo|HM-Sec-SC|HM-Sec-SC-2|HMIP-SWDO" => {
  274. _description => "Tuer/Fensterkontakt optisch und magnetisch",
  275. ccureadingfilter => "STATE",
  276. hmstatevals => "ERROR!7:sabotage;SABOTAGE!1:sabotage",
  277. statedatapoint => "1.STATE",
  278. substitute => "STATE!(0|false):closed,(1|true):open"
  279. },
  280. "HM-Sec-RHS|HM-Sec-RHS-2" => {
  281. _description => "Fenster Drehgriffkontakt",
  282. ccureadingfilter => "STATE",
  283. hmstatevals => "ERROR!1:sabotage",
  284. statedatapoint => "1.STATE",
  285. substitute => "STATE!0:closed,1:tilted,2:open;ERROR!0:no,1:sabotage"
  286. },
  287. "HM-Sec-Key|HM-Sec-Key-S|HM-Sec-Key-O|HM-Sec-Key-Generic" => {
  288. _description => "Funk-Tuerschlossantrieb KeyMatic",
  289. ccureadingfilter => "(STATE|INHIBIT)",
  290. eventMap => "/datapoint 1.OPEN true:open/",
  291. hmstatevals => "ERROR!1:clutch_failure,2:motor_aborted",
  292. statedatapoint => "1.STATE",
  293. statevals => "lock:false,unlock:true",
  294. substitute => "STATE!(0|false):locked,(1|true):unlocked,2:open;INHIBIT!(0|false):no,(1|true):yes;STATE_UNCERTAIN!(1|true):manual;DIRECTION!0:none,1:up,2:down,3:undefined;ERROR!0:no,1:clutch_failure,2:motor_aborted"
  295. },
  296. "HM-Sec-Win|HM-Sec-Win-Generic" => {
  297. _description => "WinMatic",
  298. ccureadingfilter => "(STATE_UNCERTAIN|INHIBIT|LEVEL|STATUS)",
  299. ccuscaleval => "LEVEL:0:1:0:100,SPEED:0.1:0:100",
  300. eventMap => "/datapoint 1.STOP true:stop/",
  301. statedatapoint => "1.LEVEL",
  302. statevals => "open:100,close:0",
  303. stripnumber => 1,
  304. substitute => "LEVEL!-0.005:locked,#0-0:closed,#100-100:open;INHIBIT!(0|false):no,(1|true):yes;ERROR!0:no,1:motor_turn,2:motor_tilt;STATUS!0:trickle_charge,1:charge,2:discharge,3:unknown"
  305. },
  306. "HM-LC-Sw1-Pl-2" => {
  307. _description => "Steckdose",
  308. ccureadingfilter => "STATE",
  309. controldatapoint => "1.STATE",
  310. statedatapoint => "1.STATE",
  311. statevals => "on:true,off:false",
  312. substitute => "STATE!(1|true):on,(0|false):off",
  313. webCmd => "control",
  314. widgetOverride => "control:uzsuToggle,off,on"
  315. },
  316. "HMIP-PS" => {
  317. _description => "Steckdose IP",
  318. ccureadingfilter => "STATE",
  319. controldatapoint => "3.STATE",
  320. statedatapoint => "3.STATE",
  321. statevals => "on:1,off:0",
  322. substitute => "STATE!(1|true):on,(0|false):off",
  323. webCmd => "control",
  324. widgetOverride => "control:uzsuToggle,off,on"
  325. },
  326. "HM-ES-PMSw1-Pl|HM-ES-PMSw1-Pl-DN-R1|HM-ES-PMSw1-Pl-DN-R2|HM-ES-PMSw1-Pl-DN-R3|HM-ES-PMSw1-Pl-DN-R4|HM-ES-PMSw1-Pl-DN-R5" => {
  327. _description => "Steckdose mit Energiemessung",
  328. ccureadingfilter => "(STATE|CURRENT|ENERGY_COUNTER|POWER)",
  329. controldatapoint => "1.STATE",
  330. statedatapoint => "1.STATE",
  331. statevals => "on:1,off:0",
  332. stripnumber => 1,
  333. substitute => "STATE!(1|true):on,(0|false):off",
  334. webCmd => "control",
  335. widgetOverride => "control:uzsuToggle,off,on"
  336. },
  337. "HMIP-PSM" => {
  338. _description => "Steckdose mit Energiemessung IP",
  339. ccureadingfilter => "(STATE|CURRENT|^ENERGY_COUNTER$|POWER)",
  340. controldatapoint => "3.STATE",
  341. statedatapoint => "3.STATE",
  342. statevals => "on:true,off:false",
  343. stripnumber => 1,
  344. substitute => "STATE!(true|1):on,(false|0):off",
  345. webCmd => "control",
  346. widgetOverride => "control:uzsuToggle,off,on"
  347. }, "HM-LC-Dim1L-Pl|HM-LC-Dim1L-Pl-2|HM-LC-Dim1L-CV|HM-LC-Dim2L-CV|HM-LC-Dim2L-SM|HM-LC-Dim1L-Pl-3|HM-LC-Dim1L-CV-2" => {
  348. _description => "Funk-Anschnitt-Dimmaktor",
  349. ccureadingfilter => "(^LEVEL$|DIRECTION)",
  350. ccuscaleval => "LEVEL:0:1:0:100",
  351. cmdIcon => "on:general_an off:general_aus",
  352. controldatapoint => "1.LEVEL",
  353. hmstatevals => "ERROR!1:load_failure",
  354. statedatapoint => "1.LEVEL",
  355. statevals => "on:100,off:0",
  356. stripnumber => 1,
  357. substexcl => "control",
  358. substitute => "ERROR!0:no,1:load_failure;LEVEL!#0-0:off,#1-100:on",
  359. webCmd => "control:on:off",
  360. widgetOverride => "control:slider,0,10,100"
  361. },
  362. "HM-LC-Dim1PWM-CV|HM-LC-Dim1PWM-CV-2" => {
  363. _description => "Funk-PWM-Dimmaktor",
  364. ccureadingfilter => "(^LEVEL$|DIRECTION)",
  365. ccuscaleval => "LEVEL:0:1:0:100",
  366. cmdIcon => "on:general_an off:general_aus",
  367. controldatapoint => "1.LEVEL",
  368. hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat",
  369. statedatapoint => "1.LEVEL",
  370. statevals => "on:100,off:0",
  371. stripnumber => 1,
  372. substexcl => "control",
  373. substitute => "ERROR_REDUCED,ERROR_OVERHEAT!(0|false):no,(1|true):yes;LEVEL!#0-0:off,#1-100:on;DIRECTION!0:none,1:up,2:down,3:undefined",
  374. webCmd => "control:on:off",
  375. widgetOverride => "control:slider,0,10,100"
  376. }, "HM-LC-Dim1T-Pl|HM-LC-Dim1T-CV|HM-LC-Dim1T-FM|HM-LC-Dim1T-CV-2|HM-LC-Dim2T-SM|HM-LC-Dim2T-SM-2|HM-LC-Dim1T-DR|HM-LC-Dim1T-FM-LF|HM-LC-Dim1T-FM-2|HM-LC-Dim1T-Pl-3|HM-LC-Dim1TPBU-FM|HM-LC-Dim1TPBU-FM-2" => {
  377. _description => "Funk-Abschnitt-Dimmaktor",
  378. ccureadingfilter => "(^LEVEL\$|DIRECTION)",
  379. ccuscaleval => "LEVEL:0:1:0:100",
  380. cmdIcon => "on:general_an off:general_aus",
  381. controldatapoint => "1.LEVEL",
  382. hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat;ERROR_OVERLOAD!1:error_overload",
  383. statedatapoint => "1.LEVEL",
  384. statevals => "on:100,off:0",
  385. stripnumber => 1,
  386. substexcl => "control",
  387. substitute => "ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;LEVEL!#0-0:off,#1-100:on;DIRECTION!0:none,1:up,2:down,3:undefined",
  388. webCmd => "control:on:off",
  389. widgetOverride => "control:slider,0,10,100"
  390. },
  391. "HM-PB-2-FM" => {
  392. _description => "Funk-Wandtaster 2-fach",
  393. ccureadingfilter => "PRESS",
  394. substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
  395. },
  396. "HM-LC-Sw1PBU-FM" => {
  397. _description => "Unterputz Schaltaktor für Markenschalter",
  398. ccureadingfilter => "STATE",
  399. controldatapoint => "1.STATE",
  400. statedatapoint => "1.STATE",
  401. statevals => "on:true,off:false",
  402. substitute => "STATE!(true|1):on,(false|0):off",
  403. webCmd => "control",
  404. widgetOverride => "control:uzsuToggle,off,on"
  405. },
  406. "HM-LC-SW4-BA-PCB|HM-SCI-3-FM" => {
  407. _description => "4 Kanal Funk Schaltaktor für Batteriebetrieb, 3 Kanal Schließerkontakt",
  408. ccureadingfilter => "STATE",
  409. statevals => "on:true,off:false",
  410. substitute => "STATE!(1|true):on,(0|false):off"
  411. },
  412. "HM-LC-Bl1PBU-FM|HM-LC-Bl1-FM|HM-LC-Bl1-SM|HM-LC-BlX|HM-LC-Bl1-SM-2|HM-LC-Bl1-FM-2" => {
  413. _description => "Jalousienaktor",
  414. ccureadingfilter => "(LEVEL|INHIBIT|DIRECTION|WORKING)",
  415. ccuscaleval => "LEVEL:0:1:0:100",
  416. cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
  417. controldatapoint => "1.LEVEL",
  418. eventMap => "/datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/",
  419. statedatapoint => "1.LEVEL",
  420. stripnumber => 1,
  421. substexcl => "control",
  422. substitute => "LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:none,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes",
  423. webCmd => "control:up:stop:down",
  424. widgetOverride => "control:slider,0,10,100"
  425. },
  426. "HM-TC-IT-WM-W-EU" => {
  427. _description => "Wandthermostat",
  428. ccureadingfilter => "(^HUMIDITY|^TEMPERATURE|^SET_TEMPERATURE|^WINDOW_OPEN)",
  429. cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
  430. controldatapoint => "2.SET_TEMPERATURE",
  431. eventMap => "/datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/datapoint 2.BOOST_MODE 1:Boost/datapoint 2.MANU_MODE 4.5:off/datapoint 2.MANU_MODE 30.5:on/",
  432. statedatapoint => "2.SET_TEMPERATURE",
  433. stripnumber => 1,
  434. substexcl => "control",
  435. substitute => "CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on",
  436. webCmd => "control:Auto:Manu:Boost:on:off",
  437. widgetOverride => "control:slider,4.5,0.5,30.5,1"
  438. },
  439. "HM-CC-RT-DN" => {
  440. _description => "Heizkoerperthermostat",
  441. ccureadingfilter => "(TEMPERATURE|VALVE_STATE|CONTROL)",
  442. cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
  443. controldatapoint => "4.SET_TEMPERATURE",
  444. eventMap => "/datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/",
  445. hmstatevals => "FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos",
  446. statedatapoint => "4.SET_TEMPERATURE",
  447. stripnumber => 1,
  448. substexcl => "control",
  449. substitute => "CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos",
  450. webCmd => "control:Auto:Manu:Boost:on:off",
  451. widgetOverride => "control:slider,4.5,0.5,30.5,1"
  452. },
  453. "HMIP-eTRV" => {
  454. _description => "Heizkoerperthermostat HM-IP",
  455. ccureadingname => "1.LEVEL:valve_position",
  456. ccuscaleval => "LEVEL:0:1:0:100",
  457. controldatapoint => "1.SET_POINT_TEMPERATURE",
  458. eventMap => "/datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/",
  459. statedatapoint => "1.SET_POINT_TEMPERATURE",
  460. stripnumber => 1,
  461. substexcl => "control",
  462. substitute => "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
  463. webCmd => "control:Boost:Auto:Manual:Holiday:on:off",
  464. widgetOverride => "control:slider,4.5,0.5,30.5,1"
  465. },
  466. "HmIP-WTH|HmIP-WTH-2" => {
  467. _description => "Wandthermostat HM-IP",
  468. controldatapoint => "1.SET_POINT_TEMPERATURE",
  469. eventMap => "/datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/",
  470. statedatapoint => "1.SET_POINT_TEMPERATURE",
  471. stripnumber => 1,
  472. substexcl => "control",
  473. substitute => "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
  474. webCmd => "control:Boost:Auto:Manual:Holiday:on:off",
  475. widgetOverride => "control:slider,4.5,0.5,30.5,1"
  476. },
  477. "HM-WDS40-TH-I|HM-WDS10-TH-O|HM-WDS20-TH-O|IS-WDS-TH-OD-S-R3|ASH550I|ASH550" => {
  478. _description => "Temperatur/Luftfeuchte Sensor",
  479. ccureadingfilter => "(^HUMIDITY|^TEMPERATURE)",
  480. statedatapoint => "1.TEMPERATURE",
  481. stripnumber => 1
  482. },
  483. "HM-ES-TX-WM" => {
  484. _description => "Energiezaehler Sensor",
  485. ccureadingfilter => "(ENERGY_COUNTER|POWER)"
  486. },
  487. "HM-CC-VG-1" => {
  488. _description => "Heizungsgruppe",
  489. ccureadingfilter => "(^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|^VALVE|^CONTROL|^WINDOW_OPEN)",
  490. cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
  491. controldatapoint => "1.SET_TEMPERATURE",
  492. eventMap => "/datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/",
  493. statedatapoint => "1.SET_TEMPERATURE",
  494. stripnumber => 1,
  495. substexcl => "control",
  496. substitute => "CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on",
  497. webCmd => "control:Auto:Manu:Boost:on:off",
  498. widgetOverride => "control:slider,3.5,0.5,30.5,1"
  499. },
  500. "HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3" => {
  501. _description => "Bewegungsmelder",
  502. ccureadingfilter => "(BRIGHTNESS|MOTION)",
  503. hmstatevals => "ERROR!1:sabotage",
  504. statedatapoint => "1.MOTION",
  505. substitute => "MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage"
  506. },
  507. "HmIP-SMI" => {
  508. _description => "Bewegungsmelder",
  509. ccureadingfilter => "(ILLUMINATION|MOTION)",
  510. statedatapoint => "1.MOTION",
  511. substitute => "MOTION!(0|false):no,(1|true):yes"
  512. },
  513. "HM-Sen-LI-O" => {
  514. _description => "Lichtsensor",
  515. ccureadingfilter => "LUX",
  516. statedatapoint => "1.LUX",
  517. stripnumber => 1
  518. },
  519. "HM-CC-SCD" => {
  520. _description => "CO2 Sensor",
  521. ccureadingfilter => "STATE",
  522. statedatapoint => "1.STATE",
  523. substitute => "STATE!0:normal,1:added,2:strong"
  524. },
  525. "HM-Sec-SD-2" => {
  526. _description => "Funk-Rauchmelder",
  527. ccureadingfilter => "STATE",
  528. hmstatevals => "ERROR_ALARM_TEST!1:alarm_test_failed;ERROR_SMOKE_CHAMBER!1:degraded_smoke_chamber",
  529. statedatapoint => "1.STATE",
  530. substitute => "STATE!(0|false):ok,(1|true):alarm;ERROR_ALARM_TEST!0:no,1:failed;ERROR_SMOKE_CHAMBER!0:no,1:degraded"
  531. },
  532. "HM-Sec-SD-2-Team" => {
  533. _description => "Rauchmeldergruppe",
  534. ccureadingfilter => "STATE",
  535. statedatapoint => "1.STATE",
  536. substitute => "STATE!(0|false):ok,(1|true):alarm"
  537. },
  538. "HM-Sec-SFA-SM" => {
  539. _description => "Alarmsirene",
  540. ccureadingfilter => "STATE",
  541. hmstatevals => "ERROR_POWER!1:power_failure;ERROR_SABOTAGE!1:sabotage;ERROR_BATTERY!1:battery_defect",
  542. statedatapoint => "1.STATE",
  543. substitute => "STATE!(0|false):off,(1|true):alarm;ERROR_POWER!0:no,1:failure;ERROR_SABOTAGE!0:no,1:sabotage;ERROR_BATTERY!0:no,1:defect"
  544. },
  545. "HM-Sec-Sir-WM" => {
  546. _description => "Funk-Innensirene",
  547. ccureadingfilter => "STATE",
  548. ccureadingname => "1.STATE:STATE_SENSOR1;2.STATE:STATE_SENSOR2;3.STATE:STATE_PANIC",
  549. eventMap => "/datapoint 3.STATE true:panic/",
  550. hmstatevals => "ERROR_SABOTAGE!1:sabotage",
  551. statedatapoint => "4.ARMSTATE",
  552. statevals => "disarmed:0,extsens-armed:1,allsens-armed:2,alarm-blocked:3",
  553. substitute => "ERROR_SABOTAGE!(0|false):no,(1|true):yes;ARMSTATE!0:disarmed,1:extsens_armed,2:allsens_armed,3:alarm_blocked"
  554. },
  555. "HM-LC-RGBW-WM" => {
  556. _description => "Funk-RGBW-Controller",
  557. ccureadingfilter => "(COLOR|PROGRAM|LEVEL)",
  558. ccureadingname => "2.COLOR:+color;3.PROGRAM:+prog",
  559. controldatapoint => "1.LEVEL",
  560. ccuscaleval => "LEVEL:0:1:0:100",
  561. eventMap => "/datapoint 3.PROGRAM :prog/datapoint 2.COLOR :color/",
  562. statedatapoint => "1.LEVEL",
  563. statevals => "on:100,off:0",
  564. stripnumber => 1,
  565. substexcl => "control",
  566. substitute => "LEVEL!#0-0:off,#1-100:on",
  567. webCmd => "control:color:prog:on:off",
  568. widgetOverride => "control:slider,0,1,100 prog:0,1,2,3,4,5,6 color:colorpicker,HUE,0,1,100"
  569. },
  570. "WS550|WS888|WS550Tech|WS550LCB|WS550LCW|HM-WDC7000" => {
  571. _description => "Wetterstation",
  572. ccureadingfilter => "(TEMPERATURE|HUMIDITY|AIR_PRESSURE)",
  573. statedatapoint => "10.TEMPERATURE",
  574. stripnumber => 1
  575. },
  576. "HM-Sec-WDS|HM-Sec-WDS-2" => {
  577. _description => "Funk-Wassermelder",
  578. ccureadingfilter => "STATE",
  579. statedatapoint => "1.STATE",
  580. substitute => "STATE!0:dry,1:wet,2:water"
  581. },
  582. "HM-WDS30-OT2-SM|HM-WDS30-OT2-SM-2" => {
  583. _description => "Temperaturdifferenz-Sensor",
  584. ccureadingfilter => "TEMPERATURE",
  585. stripnumber => 1
  586. },
  587. "HM-OU-CF-Pl|HM-OU-CFM-Pl|HM-OU-CFM-TW" => {
  588. _description => "Funk-Gong mit Signalleuchte mit/ohne Batterie und Speicher",
  589. ccureadingfilter => "STATE",
  590. eventMap => "/datapoint 1.STATE 1:led-on/datapoint 1.STATE 0:led-off/datapoint 2.STATE 1:sound-on/datapoint 2.STATE 0:sound-off",
  591. statedatapoint => "1.STATE",
  592. statevals => "on:true,off:false",
  593. substitute => "STATE!(0|false):ledOff,(1|true):ledOn;2.STATE!(0|false):soundOff,(1|true):soundOn"
  594. },
  595. "HM-PB-4Dis-WM" => {
  596. _description => "Funk-Display Wandtaster",
  597. ccureadingfilter => "(PRESS_SHORT|PRESS_LONG)",
  598. substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed"
  599. },
  600. "HM-Dis-EP-WM55|HM-Dis-WM55" => {
  601. _description => "E-Paper Display, Display Statusanzeige",
  602. ccureadingfilter => "PRESS",
  603. eventMap => "/datapoint 3.SUBMIT:display/",
  604. substitute => "PRESS_LONG,PRESS_SHORT,PRESS_CONT!(1|true):pressed,(0|false):notPressed;PRESS_LONG_RELEASE!(1|true):release",
  605. widgetOverride => "display:textField"
  606. }
  607. );
  608. 1;