| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389 |
- #########################################################################
- #
- # HMCCUConf.pm
- #
- # $Id: HMCCUConf.pm 17372 2018-09-19 11:39:04Z zap $
- #
- # Version 4.3
- #
- # Configuration parameters for HomeMatic devices.
- #
- # (c) 2018 by zap (zap01 <at> t-online <dot> de)
- #
- # Datapoints LOWBAT, LOW_BAT, UNREACH, ERROR.*, SABOTAGE and FAULT.*
- # must not be specified in attribute ccureadingfilter. They are always
- # stored as readings.
- # Datapoints LOWBAT, LOW_BAT and UNREACH must not be specified in
- # attribute substitute because they are substituted by default.
- # See also documentation of attributes ccudef-readingname and
- # ccudef-substitute in module HMCCU.
- #
- #########################################################################
- package HMCCUConf;
- use strict;
- use warnings;
- use vars qw(%HMCCU_CHN_DEFAULTS);
- use vars qw(%HMCCU_DEV_DEFAULTS);
- use vars qw(%HMCCU_SCRIPTS);
- ######################################################################
- # Default attributes for Homematic devices of type HMCCUCHN
- ######################################################################
- %HMCCU_CHN_DEFAULTS = (
- "HM-Sec-SCo|HM-Sec-SC|HM-Sec-SC-2|HMIP-SWDO" => {
- _description => "Tuer/Fensterkontakt optisch und magnetisch",
- _channels => "1",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR!7:sabotage;SABOTAGE!1:sabotage",
- statedatapoint => "STATE",
- substitute => "STATE!(0|false):closed,(1|true):open"
- },
- "HmIP-SWDO-I" => {
- _description => "Tuer/Fensterkontakt verdeckt",
- _channels => "1",
- ccureadingfilter => "STATE",
- hmstatevals => "SABOTAGE!1:sabotage",
- statedatapoint => "STATE",
- substitute => "STATE!(0|false):closed,(1|true):open"
- },
- "HM-Sec-RHS|HM-Sec-RHS-2" => {
- _description => "Fenster Drehgriffkontakt",
- _channels => "1",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR!1:sabotage",
- statedatapoint => "STATE",
- substitute => "STATE!0:closed,1:tilted,2:open;ERROR!0:no,1:sabotage"
- },
- "HM-Sec-Key|HM-Sec-Key-S|HM-Sec-Key-O|HM-Sec-Key-Generic" => {
- _description => "Funk-Tuerschlossantrieb KeyMatic",
- _channels => "1",
- ccureadingfilter => "(STATE|INHIBIT)",
- eventMap => "/datapoint OPEN true:open/",
- hmstatevals => "ERROR!1:clutch_failure,2:motor_aborted",
- statedatapoint => "STATE",
- statevals => "lock:false,unlock:true",
- 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"
- },
- "HM-LC-Sw1-Pl-CT-R1" => {
- _description => "Schaltaktor mit Klemmanschluss",
- _channels => "1",
- ccureadingfilter => "(STATE|WORKING)",
- cmdIcon => "press:general_an",
- eventMap => "/on-for-timer 1:press/",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(0|false):off,(1|true):on;WORKING!(0|false):no,(1|true):yes",
- webCmd => "press"
- },
- "HM-LC-Sw1-Pl-2|HM-LC-Sw1-Pl-DN-R1" => {
- _description => "Steckdose",
- _channels => "1",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off",
- webCmd => "devstate",
- widgetOverride => "devstate:uzsuToggle,off,on"
- },
- "HMIP-PS" => {
- _description => "Steckdose",
- _channels => "3",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off",
- webCmd => "devstate",
- widgetOverride => "devstate:uzsuToggle,off,on"
- },
- "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" => {
- _description => "Funk-Anschnitt-Dimmaktor",
- _channels => "1",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "LEVEL",
- hmstatevals => "ERROR!1:load_failure",
- statedatapoint => "LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- substitute => "ERROR!0:no,1:load_failure:yes;LEVEL!#0-0:off,#1-100:on",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-LC-Dim1PWM-CV|HM-LC-Dim1PWM-CV-2" => {
- _description => "Funk-PWM-Dimmaktor",
- _channels => "1",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "LEVEL",
- hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat",
- statedatapoint => "LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HmIP-BDT" => {
- _description => "Dimmaktor",
- _channels => "4",
- ccureadingfilter => "(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|ACTIVITY_STATE|LEVEL)",
- ccuscaleval => "LEVEL:0:1:0:100",
- controldatapoint => "LEVEL",
- hmstatevals => "ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat",
- statedatapoint => "LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- substitute => "LEVEL!#0-0:off,#1-100:on;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "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" => {
- _description => "Funk-Abschnitt-Dimmaktor",
- _channels => "1",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "LEVEL",
- hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat;ERROR_OVERLOAD!1:error_overload",
- statedatapoint => "LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-PB-2-FM" => {
- _description => "Funk-Wandtaster 2-fach",
- _channels => "1,2",
- ccureadingfilter => "PRESS",
- statedatapoint => "PRESS_SHORT",
- statevals => "press:true",
- substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
- },
- "HmIP-WRC6" => {
- _description => "Wandtaster 6-fach",
- _channels => "1,2,3,4,5,6",
- ccureadingfilter => "PRESS",
- statedatapoint => "PRESS_SHORT",
- statevals => "press:true",
- substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed,(0|false):released"
- },
- "HM-SwI-3-FM" => {
- _description => "Funk-Schalterschnittstelle",
- _channels => "1,2,3",
- ccureadingfilter => "PRESS",
- statedatapoint => "PRESS",
- statevals => "press:true",
- substitute => "PRESS!(1|true):pressed,(0|false):released"
- },
- "HM-PBI-4-FM" => {
- _description => "Funk-Tasterschnittstelle",
- _channels => "1,2,3,4",
- ccureadingfilter => "PRESS",
- statedatapoint => "PRESS_SHORT",
- statevals => "press:true",
- substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
- },
- "HM-RC-Key4-2|HM-RC-Key4-3|HM-RC-Sec4-2|HM-RC-Sec4-3" => {
- _description => "Funk-Handsender",
- _channels => "1,2,3,4",
- ccureadingfilter => "PRESS",
- "event-on-update-reading" => ".*",
- statedatapoint => "PRESS_SHORT",
- substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed"
- },
- "HM-LC-Sw1PBU-FM" => {
- _description => "Unterputz Schaltaktor für Markenschalter",
- _channels => "1",
- ccureadingfilter => "STATE",
- controldatapoint => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-LC-Sw2PBU-FM" => {
- _description => "Funk-Schaltaktor 2-fach",
- _channels => "1,2",
- ccureadingfilter => "STATE",
- controldatapoint => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HmIP-BSM" => {
- _description => "Schalt-Mess-Aktor",
- _channels => "4",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- controldatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-SCI-3-FM" => {
- _description => "3 Kanal Schliesserkontakt",
- _channels => "1,2,3",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "HM-MOD-Re-8" => {
- _description => "8 Kanal Empfangsmodul",
- _channels => "1,2,3,4,5,6,7,8",
- ccureadingfilter => "(STATE|WORKING)",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off;WORKING!(1|true):yes,(0|false):no"
- },
- "HM-LC-Sw1-Pl|HM-LC-Sw1-Pl-2|HM-LC-Sw1-SM|HM-LC-Sw1-FM|HM-LC-Sw1-PB-FM|HM-LC-Sw1-DR" => {
- _description => "1 Kanal Funk-Schaltaktor",
- _channels => "1",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "HM-LC-Sw2-SM|HM-LC-Sw2-FM|HM-LC-Sw2-PB-FM|HM-LC-Sw2-DR" => {
- _description => "2 Kanal Funk-Schaltaktor",
- _channels => "1,2",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "HM-LC-Sw4-DR|HM-LC-Sw4-WM|HM-LC-Sw4-PCB|HM-LC-Sw4-SM" => {
- _description => "4 Kanal Funk-Schaltaktor",
- _channels => "1,2,3,4",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "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|HM-LC-Ja1PBU-FM" => {
- _description => "Jalousienaktor",
- _channels => "1",
- ccureadingfilter => "(LEVEL|INHIBIT|DIRECTION|WORKING)",
- ccureadingname => "LEVEL:+pct",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
- controldatapoint => "LEVEL",
- eventMap => "/datapoint STOP true:stop/datapoint LEVEL 0:down/datapoint LEVEL 100:up/",
- statedatapoint => "LEVEL",
- stripnumber => 1,
- substexcl => "control|pct",
- substitute => "LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:stop,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes",
- webCmd => "control:up:stop:down",
- widgetOverride => "control:slider,0,10,100"
- },
- "HmIP-BROLL" => {
- _description => "Rollladenaktor",
- _channels => "4",
- ccureadingfilter => "(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE)",
- ccureadingname => "LEVEL:+pct",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
- controldatapoint => "LEVEL",
- hmstatevals => "ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat",
- eventMap => "/datapoint STOP true:stop/datapoint LEVEL 0:down/datapoint LEVEL 100:up/",
- statedatapoint => "LEVEL",
- stripnumber => 1,
- substexcl => "control|pct",
- substitute => "LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow",
- webCmd => "control:up:stop:down",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-WDS40-TH-I|HM-WDS10-TH-O|HM-WDS20-TH-O|IS-WDS-TH-OD-S-R3|ASH550I|ASH550" => {
- _description => "Temperatur/Luftfeuchte Sensor",
- _channels => "1",
- ccureadingfilter => "(^HUMIDITY|^TEMPERATURE)",
- statedatapoint => "TEMPERATURE",
- stripnumber => 1
- },
- "HM-WDS100-C6-O-2" => {
- _description => "Funk-Kombisensor",
- _channels => "1",
- ccureadingfilter => "(HUMIDITY|TEMPERATURE|WIND|RAIN|SUNSHINE|BRIGHTNESS)",
- statedatapoint => "TEMPERATURE",
- stripnumber => 1,
- substitute => "RAINING!(1|true):yes,(0|false):no"
- },
- "HmIP-SWO-PR|HmIP-SWO-B|HmIP-SWO-PL" => {
- _description => "Funk-Wettersensor",
- _channels => "1",
- ccureadingfilter => "1!.*",
- stripnumber => 1,
- substitute => "RAINING,RAIN_COUNTER_OVERFLOW,SUNSHINEDURATION_OVERFLOW,SUNSHINE_THRESHOLD_OVERRUN,WIND_THRESHOLD_OVERRUN!(0|false):no,(1|true):yes"
- },
- "HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3" => {
- _description => "Bewegungsmelder",
- _channels => "1",
- ccureadingfilter => "(BRIGHTNESS|MOTION)",
- hmstatevals => "ERROR!1:sabotage",
- statedatapoint => "MOTION",
- substitute => "MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage"
- },
- "HmIP-SMI" => {
- _description => "Bewegungsmelder",
- _channels => "1",
- ccureadingfilter => "(ILLUMINATION|MOTION)",
- eventMap => "/datapoint MOTION_DETECTION_ACTIVE 1:detection-on/datapoint MOTION_DETECTION_ACTIVE 0:detection-off/",
- statedatapoint => "MOTION",
- substitute => "MOTION!(0|false):no,(1|true):yes"
- },
- "HmIP-SPI" => {
- _description => "Anwesenheitssensor",
- _channels => "1",
- ccureadingfilter => "(ILLUMINATION|PRESENCE)",
- controldatapoint => "PRESENCE_DETECTION_ACTIVE",
- eventMap => "/datapoint RESET_PRESENCE 1:reset/datapoint PRESENCE_DETECTION_ACTIVE 1:detection-on/datapoint PRESENCE_DETECTION_ACTIVE 0:detection-off/",
- hmstatevals => "SABOTAGE!(1|true):sabotage",
- statedatapoint => "PRESENCE_DETECTION_STATE",
- stripnumber => 1,
- substitute => "PRESENCE_DETECTION_STATE!(0|false):no,(1|true):yes;PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-Sen-LI-O" => {
- _description => "Lichtsensor",
- _channels => "1",
- ccureadingfilter => "LUX",
- statedatapoint => "LUX",
- stripnumber => 1
- },
- "HmIP-SLO" => {
- _description => "Lichtsensor",
- _channels => "1",
- ccureadingfilter => "_ILLUMINATION\$",
- statedatapoint => "CURRENT_ILLUMINATION",
- stripnumber => 1
- },
- "HM-CC-SCD" => {
- _description => "CO2 Sensor",
- _channels => "1",
- statedatapoint => "STATE",
- substitute => "STATE!0:normal,1:added,2:strong"
- },
- "HM-Sec-SD-2" => {
- _description => "Funk-Rauchmelder",
- _channels => "1",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR_ALARM_TEST!1:alarm_test_failed;ERROR_SMOKE_CHAMBER!1:degraded_smoke_chamber",
- statedatapoint => "STATE",
- substitute => "ERROR_ALARM_TEST!0:no,1:failed;ERROR_SMOKE_CHAMBER!0:no,1:degraded"
- },
- "HmIP-SWSD" => {
- _description => "Funk-Rauchmelder",
- _channels => "1",
- ccureadingfilter => "(ALARM_STATUS|TEST_RESULT|ERROR_CODE)",
- eventMap => "/datapoint SMOKE_DETECTOR_COMMAND 0:reservedAlarmOff/datapoint SMOKE_DETECTOR_COMMAND 1:intrusionAlarmOff/datapoint SMOKE_DETECTOR_COMMAND 2:intrusionAlarmOn/datapoint SMOKE_DETECTOR_COMMAND 3:smokeTest/datapoint SMOKE_DETECTOR_COMMAND 4:comTest/datapoint SMOKE_DETECTOR_COMMAND 5:comTestRepeat/",
- statedatapoint => "SMOKE_DETECTOR_ALARM_STATUS",
- substitute => "SMOKE_DETECTOR_ALARM_STATUS!0:noAlarm,1:primaryAlarm,2:intrusionAlarm,3:secondaryAlarm;SMOKE_DETECTOR_TEST_RESULT!0:none,1:smokeTestOK,2:smokeTestFailed,3:comTestSent,4:comTestOK"
- },
- "HM-Sec-SFA-SM" => {
- _description => "Alarmsirene",
- _channels => "1",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR_POWER!1:power_failure;ERROR_SABOTAGE!1:sabotage;ERROR_BATTERY!1:battery_defect",
- statedatapoint => "STATE",
- 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"
- },
- "WS550|WS888|WS550Tech|WS550LCB|WS550LCW|HM-WDC7000" => {
- _description => "Wetterstation",
- _channels => "10",
- ccureadingfilter => "(TEMPERATURE|HUMIDITY|AIR_PRESSURE)",
- statedatapoint => "TEMPERATURE",
- stripnumber => 1
- },
- "HM-Sec-WDS|HM-Sec-WDS-2" => {
- _description => "Funk-Wassermelder",
- _channels => "1",
- ccureadingfilter => "STATE",
- statedatapoint => "STATE",
- substitute => "STATE!0:dry,1:wet,2:water"
- },
- "HM-WDS30-OT2-SM|HM-WDS30-OT2-SM-2" => {
- _description => "Temperaturdifferenz-Sensor",
- _channels => "1,2,3,4,5",
- ccureadingfilter => "TEMPERATURE",
- statedatapoint => "TEMPERATURE",
- stripnumber => 1
- },
- "HM-OU-LED16|HM-OU-X" => {
- _description => "Statusanzeige 16 Kanal LED",
- _channels => "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16",
- ccureadingfilter => "PRESS_SHORT|LED_STATUS",
- eventMap => "/datapoint LED_SLEEP_MODE 0:sleep-off/datapoint LED_SLEEP_MODE 1:sleep-on/",
- statedatapoint => "LED_STATUS",
- statevals => "off:0,red:1,green:2,orange:3",
- substitute => "LED_STATUS!0:off,1:red:2:green:3:orange"
- }
- );
- ######################################################################
- # Default attributes for Homematic devices of type HMCCUDEV
- ######################################################################
- %HMCCU_DEV_DEFAULTS = (
- "CCU2" => {
- _description => "HomeMatic CCU2",
- "ccudef-readingfilter" => '^(LOW_?BAT|UNREACH)\$',
- "ccudef-readingformat" => 'datapoint',
- "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',
- "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'
- },
- "HM-Sec-SCo|HM-Sec-SC|HM-Sec-SC-2|HMIP-SWDO" => {
- _description => "Tuer/Fensterkontakt optisch und magnetisch",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR!7:sabotage;SABOTAGE!1:sabotage",
- statedatapoint => "1.STATE",
- substitute => "STATE!(0|false):closed,(1|true):open"
- },
- "HmIP-SWDO-I" => {
- _description => "Tuer/Fensterkontakt verdeckt",
- ccureadingfilter => "STATE",
- hmstatevals => "SABOTAGE!1:sabotage",
- statedatapoint => "1.STATE",
- substitute => "STATE!(0|false):closed,(1|true):open"
- },
- "HM-Sec-RHS|HM-Sec-RHS-2" => {
- _description => "Fenster Drehgriffkontakt",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR!1:sabotage",
- statedatapoint => "1.STATE",
- substitute => "STATE!0:closed,1:tilted,2:open;ERROR!0:no,1:sabotage"
- },
- "HM-Sec-Key|HM-Sec-Key-S|HM-Sec-Key-O|HM-Sec-Key-Generic" => {
- _description => "Funk-Tuerschlossantrieb KeyMatic",
- ccureadingfilter => "(STATE|INHIBIT)",
- eventMap => "/datapoint 1.OPEN true:open/",
- hmstatevals => "ERROR!1:clutch_failure,2:motor_aborted",
- statedatapoint => "1.STATE",
- statevals => "lock:false,unlock:true",
- 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"
- },
- "HM-Sec-Win|HM-Sec-Win-Generic" => {
- _description => "WinMatic",
- ccureadingfilter => "(STATE_UNCERTAIN|INHIBIT|LEVEL|STATUS)",
- ccuscaleval => "LEVEL:0:1:0:100,SPEED:0.1:0:100",
- eventMap => "/datapoint 1.STOP true:stop/",
- statedatapoint => "1.LEVEL",
- statevals => "open:100,close:0",
- stripnumber => 1,
- 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"
- },
- "HM-LC-Sw1-Pl-CT-R1" => {
- _description => "Schaltaktor mit Klemmanschluss",
- ccureadingfilter => "(STATE|WORKING)",
- cmdIcon => "press:general_an",
- eventMap => "/on-for-timer 1:press/",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(0|false):off,(1|true):on;WORKING!(0|false):no,(1|true):yes",
- webCmd => "press"
- },
- "HM-LC-Sw1-Pl-2|HM-LC-Sw1-Pl-DN-R1" => {
- _description => "Steckdose",
- ccureadingfilter => "STATE",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off",
- webCmd => "devstate",
- widgetOverride => "devstate:uzsuToggle,off,on"
- },
- "HMIP-PS" => {
- _description => "Steckdose IP",
- ccureadingfilter => "STATE",
- statedatapoint => "3.STATE",
- statevals => "on:1,off:0",
- substitute => "STATE!(1|true):on,(0|false):off",
- webCmd => "devstate",
- widgetOverride => "devstate:uzsuToggle,off,on"
- },
- "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" => {
- _description => "Steckdose mit Energiemessung",
- ccureadingfilter => "(STATE|CURRENT|ENERGY_COUNTER|POWER)",
- controldatapoint => "1.STATE",
- statedatapoint => "1.STATE",
- statevals => "on:1,off:0",
- stripnumber => 1,
- substitute => "STATE!(1|true):on,(0|false):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HMIP-PSM" => {
- _description => "Steckdose mit Energiemessung IP",
- ccureadingfilter => "(STATE|CURRENT|^ENERGY_COUNTER\$|POWER)",
- controldatapoint => "3.STATE",
- statedatapoint => "3.STATE",
- statevals => "on:true,off:false",
- stripnumber => 1,
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "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" => {
- _description => "Funk-Anschnitt-Dimmaktor",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "1.LEVEL",
- hmstatevals => "ERROR!1:load_failure",
- statedatapoint => "1.LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- substitute => "ERROR!0:no,1:load_failure;LEVEL!#0-0:off,#1-100:on",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-LC-Dim1PWM-CV|HM-LC-Dim1PWM-CV-2" => {
- _description => "Funk-PWM-Dimmaktor",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "1.LEVEL",
- hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat",
- statedatapoint => "1.LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "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" => {
- _description => "Funk-Abschnitt-Dimmaktor",
- ccureadingfilter => "(^LEVEL\$|DIRECTION)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "on:general_an off:general_aus",
- controldatapoint => "1.LEVEL",
- hmstatevals => "ERROR_REDUCED!1:error_reduced;ERROR_OVERHEAT!1:error_overheat;ERROR_OVERLOAD!1:error_overload",
- statedatapoint => "1.LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HmIP-BDT" => {
- _description => "Dimmaktor",
- ccureadingfilter => "(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|ACTIVITY_STATE|LEVEL)",
- ccuscaleval => "LEVEL:0:1:0:100",
- controldatapoint => "4.LEVEL",
- hmstatevals => "ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat",
- statedatapoint => "4.LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- substitute => "LEVEL!#0-0:off,#1-100:on;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow",
- webCmd => "control:on:off",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-PB-2-FM" => {
- _description => "Funk-Wandtaster 2-fach",
- ccureadingfilter => "PRESS",
- substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
- },
- "HmIP-WRC6" => {
- _description => "Wandtaster 6-fach",
- ccureadingfilter => "PRESS",
- substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed,(0|false):released"
- },
- "HM-SwI-3-FM" => {
- _description => "Funk-Schalterschnittstelle",
- ccureadingfilter => "PRESS",
- statevals => "press:true",
- substitute => "PRESS!(1|true):pressed,(0|false):released"
- },
- "HM-PBI-4-FM" => {
- _description => "Funk-Tasterschnittstelle",
- ccureadingfilter => "PRESS",
- substitute => "PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes"
- },
- "HM-RC-Key4-2|HM-RC-Key4-3|HM-RC-Sec4-2|HM-RC-Sec4-3" => {
- _description => "Funk-Handsender",
- ccureadingfilter => "PRESS",
- "event-on-update-reading" => ".*",
- substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed"
- },
- "HM-LC-Sw1PBU-FM" => {
- _description => "Unterputz Schaltaktor für Markenschalter",
- ccureadingfilter => "STATE",
- controldatapoint => "1.STATE",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-LC-Sw2PBU-FM" => {
- _description => "Funk-Schaltaktor 2-fach",
- ccureadingfilter => "STATE",
- controldatapoint => "1.STATE",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HmIP-BSM" => {
- _description => "Schalt-Mess-Aktor",
- ccureadingfilter => "(STATE|PRESS)",
- statedatapoint => "4.STATE",
- controldatapoint => "4.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(true|1):on,(false|0):off",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-LC-SW4-BA-PCB|HM-SCI-3-FM" => {
- _description => "4 Kanal Funk Schaltaktor für Batteriebetrieb, 3 Kanal Schließerkontakt",
- ccureadingfilter => "STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "HM-MOD-Re-8" => {
- _description => "8 Kanal Empfangsmodul",
- ccureadingfilter => "(STATE|WORKING)",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off;WORKING!(1|true):yes,(0|false):no"
- },
- "HM-LC-Sw1-Pl|HM-LC-Sw1-Pl-2|HM-LC-Sw1-SM|HM-LC-Sw1-FM|HM-LC-Sw1-PB-FM|HM-LC-Sw1-DR" => {
- _description => "1 Kanal Funk-Schaltaktor",
- ccureadingfilter => "STATE",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(1|true):on,(0|false):off"
- },
- "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|HM-LC-Ja1PBU-FM" => {
- _description => "Jalousienaktor",
- ccureadingfilter => "(LEVEL|INHIBIT|DIRECTION|WORKING)",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
- controldatapoint => "1.LEVEL",
- eventMap => "/datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/",
- statedatapoint => "1.LEVEL",
- stripnumber => 1,
- substexcl => "control",
- substitute => "LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:none,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes",
- webCmd => "control:up:stop:down",
- widgetOverride => "control:slider,0,10,100"
- },
- "HmIP-BROLL" => {
- _description => "Rollladenaktor",
- ccureadingfilter => "(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE|SELF_CALIBRATION_RESULT)",
- ccureadingname => "LEVEL:+pct",
- ccuscaleval => "LEVEL:0:1:0:100",
- cmdIcon => "up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down",
- controldatapoint => "4.LEVEL",
- hmstatevals => "ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat",
- eventMap => "/datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 3.SELF_CALIBRATION 0:stopCalibration/datapoint 3.SELF_CALIBRATION 1:startCalibration/",
- statedatapoint => "4.LEVEL",
- stripnumber => 1,
- substexcl => "control|pct",
- substitute => "LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow;SELF_CALIBRATION_RESULT!(0|false):failed,(1|true):ok",
- webCmd => "control:up:stop:down",
- widgetOverride => "control:slider,0,10,100"
- },
- "HM-TC-IT-WM-W-EU" => {
- _description => "Wandthermostat",
- ccureadingfilter => "(^HUMIDITY|^TEMPERATURE|^SET_TEMPERATURE|^WINDOW_OPEN)",
- cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
- controldatapoint => "2.SET_TEMPERATURE",
- 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/",
- genericDeviceType => "thermostat",
- statedatapoint => "2.SET_TEMPERATURE",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:Auto:Manu:Boost:on:off",
- widgetOverride => "control:slider,4.5,0.5,30.5,1"
- },
- "HM-CC-RT-DN" => {
- _description => "Heizkoerperthermostat",
- ccureadingfilter => "(TEMPERATURE|VALVE_STATE|CONTROL|BATTERY_STATE)",
- cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
- controldatapoint => "4.SET_TEMPERATURE",
- 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/",
- genericDeviceType => "thermostat",
- 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",
- statedatapoint => "4.SET_TEMPERATURE",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:Auto:Manu:Boost:on:off",
- widgetOverride => "control:slider,4.5,0.5,30.5,1"
- },
- "HmIP-eTRV|HmIP-eTRV-2" => {
- _description => "Heizkoerperthermostat HM-IP",
- ccureadingfilter => "^ACTUAL_TEMPERATURE|^BOOST_MODE|^SET_POINT_MODE|^SET_POINT_TEMPERATURE|^LEVEL|^WINDOW_STATE",
- ccureadingname => "1.LEVEL:valve_position",
- ccuscaleval => "LEVEL:0:1:0:100",
- controldatapoint => "1.SET_POINT_TEMPERATURE",
- 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/",
- genericDeviceType => "thermostat",
- statedatapoint => "1.SET_POINT_TEMPERATURE",
- stripnumber => 1,
- substexcl => "control",
- substitute => "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
- webCmd => "control:Boost:Auto:Manual:Holiday:on:off",
- widgetOverride => "control:slider,4.5,0.5,30.5,1"
- },
- "HmIP-WTH|HmIP-WTH-2|HmIP-BWTH" => {
- _description => "Wandthermostat HM-IP",
- controldatapoint => "1.SET_POINT_TEMPERATURE",
- 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/",
- genericDeviceType => "thermostat",
- statedatapoint => "1.SET_POINT_TEMPERATURE",
- stripnumber => 1,
- substexcl => "control",
- substitute => "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
- webCmd => "control:Boost:Auto:Manual:Holiday:on:off",
- widgetOverride => "control:slider,4.5,0.5,30.5,1"
- },
- "HM-WDS40-TH-I|HM-WDS10-TH-O|HM-WDS20-TH-O|IS-WDS-TH-OD-S-R3|ASH550I|ASH550" => {
- _description => "Temperatur/Luftfeuchte Sensor",
- ccureadingfilter => "(^HUMIDITY|^TEMPERATURE)",
- statedatapoint => "1.TEMPERATURE",
- stripnumber => 1
- },
- "HM-Sen-RD-O" => {
- _description => "Regensensor",
- ccureadingfilter => "(STATE|WORKING)",
- controldatapoint => "2.STATE",
- eventMap => "/datapoint 2.STATE 1:on/datapoint 2.STATE 0:off/",
- statedatapoint => "1.STATE",
- substitute => "1.STATE!(0|false):dry,(1|true):rain;2.STATE!(0|false):off,(1|true):on",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-WDS100-C6-O-2" => {
- _description => "Funk-Kombisensor",
- ccureadingfilter => "(HUMIDITY|TEMPERATURE|WIND|RAIN|SUNSHINE|BRIGHTNESS)",
- statedatapoint => "1.TEMPERATURE",
- stripnumber => 1,
- substitute => "RAINING!(1|true):yes,(0|false):no"
- },
- "HmIP-SWO-PR|HmIP-SWO-B|HmIP-SWO-PL" => {
- _description => "Funk-Wettersensor",
- ccureadingfilter => "1!.*",
- stripnumber => 1,
- substitute => "RAINING,RAIN_COUNTER_OVERFLOW,SUNSHINEDURATION_OVERFLOW,SUNSHINE_THRESHOLD_OVERRUN,WIND_THRESHOLD_OVERRUN!(0|false):no,(1|true):yes"
- },
- "HM-ES-TX-WM" => {
- _description => "Energiezaehler Sensor",
- ccureadingfilter => "(ENERGY_COUNTER|POWER)"
- },
- "HM-CC-VG-1" => {
- _description => "Heizungsgruppe",
- ccucalculate => "dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY",
- ccureadingfilter => "1.(^SET_TEMPERATURE|^ACTUAL|^VALVE|^CONTROL);2.^WINDOW_OPEN;4.^VALVE",
- cmdIcon => "Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus",
- controldatapoint => "1.SET_TEMPERATURE",
- 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/",
- statedatapoint => "1.SET_TEMPERATURE",
- stateFormat => "T: 1.ACTUAL_TEMPERATURE° H: 1.ACTUAL_HUMIDITY% D: 1.SET_TEMPERATURE° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE",
- stripnumber => 1,
- substexcl => "control",
- 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",
- webCmd => "control:Auto:Manu:Boost:on:off",
- widgetOverride => "control:slider,4.5,0.5,30.5,1"
- },
- "HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3" => {
- _description => "Bewegungsmelder",
- ccureadingfilter => "(BRIGHTNESS|MOTION)",
- hmstatevals => "ERROR!1:sabotage",
- statedatapoint => "1.MOTION",
- substitute => "MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage"
- },
- "HmIP-SMI" => {
- _description => "Bewegungsmelder",
- ccureadingfilter => "(ILLUMINATION|MOTION)",
- eventMap => "/datapoint 1.MOTION_DETECTION_ACTIVE 1:detection-on/datapoint 1.MOTION_DETECTION_ACTIVE 0:detection-off/",
- statedatapoint => "1.MOTION",
- substitute => "MOTION!(0|false):no,(1|true):yes"
- },
- "HmIP-SMI55" => {
- _description => "Bewegungsmelder",
- ccureadingfilter => "(ILLUMINATION|MOTION|PRESS)",
- "event-on-update-reading" => ".*",
- eventMap => "/datapoint 3.MOTION_DETECTION_ACTIVE 1:detection-on/datapoint 3.MOTION_DETECTION_ACTIVE 0:detection-off/datapoint 3.RESET_MOTION 1:reset/",
- statedatapoint => "3.MOTION",
- substitute => "PRESS_LONG,PRESS_SHORT!(1|true):pressed,(0|false):released;MOTION,MOTION_DETECTION_ACTIVE!(0|false):no,(1|true):yes;ILLUMINATION_STATUS!0:normal,1:unknown,2:overflow"
- },
- "HmIP-SPI" => {
- _description => "Anwesenheitssensor",
- ccureadingfilter => "(ILLUMINATION|PRESENCE)",
- controldatapoint => "1.PRESENCE_DETECTION_ACTIVE",
- eventMap => "/datapoint 1.RESET_PRESENCE 1:reset/datapoint 1.PRESENCE_DETECTION_ACTIVE 1:detection-on/datapoint 1.PRESENCE_DETECTION_ACTIVE 0:detection-off/",
- hmstatevals => "SABOTAGE!(1|true):sabotage",
- statedatapoint => "1.PRESENCE_DETECTION_STATE",
- stripnumber => 1,
- substitute => "PRESENCE_DETECTION_STATE!(0|false):no,(1|true):yes;PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on",
- webCmd => "control",
- widgetOverride => "control:uzsuToggle,off,on"
- },
- "HM-Sen-LI-O" => {
- _description => "Lichtsensor",
- ccureadingfilter => "LUX",
- statedatapoint => "1.LUX",
- stripnumber => 1
- },
- "HmIP-SLO" => {
- _description => "Lichtsensor",
- ccureadingfilter => "_ILLUMINATION\$",
- statedatapoint => "1.CURRENT_ILLUMINATION",
- stripnumber => 1
- },
- "HM-CC-SCD" => {
- _description => "CO2 Sensor",
- ccureadingfilter => "STATE",
- statedatapoint => "1.STATE",
- substitute => "STATE!0:normal,1:added,2:strong"
- },
- "HM-Sec-SD-2" => {
- _description => "Funk-Rauchmelder",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR_ALARM_TEST!1:alarm_test_failed;ERROR_SMOKE_CHAMBER!1:degraded_smoke_chamber",
- statedatapoint => "1.STATE",
- substitute => "STATE!(0|false):ok,(1|true):alarm;ERROR_ALARM_TEST!0:no,1:failed;ERROR_SMOKE_CHAMBER!0:no,1:degraded"
- },
- "HM-Sec-SD-2-Team" => {
- _description => "Rauchmeldergruppe",
- ccureadingfilter => "STATE",
- statedatapoint => "1.STATE",
- substitute => "STATE!(0|false):ok,(1|true):alarm"
- },
- "HmIP-SWSD" => {
- _description => "Funk-Rauchmelder",
- ccureadingfilter => "(ALARM_STATUS|TEST_RESULT|ERROR_CODE)",
- eventMap => "/datapoint 1.SMOKE_DETECTOR_COMMAND 0:reservedAlarmOff/datapoint 1.SMOKE_DETECTOR_COMMAND 1:intrusionAlarmOff/datapoint 1.SMOKE_DETECTOR_COMMAND 2:intrusionAlarmOn/datapoint 1.SMOKE_DETECTOR_COMMAND 3:smokeTest/datapoint 1.SMOKE_DETECTOR_COMMAND 4:comTest/datapoint 1.SMOKE_DETECTOR_COMMAND 5:comTestRepeat/",
- statedatapoint => "SMOKE_DETECTOR_ALARM_STATUS",
- substitute => "SMOKE_DETECTOR_ALARM_STATUS!0:noAlarm,1:primaryAlarm,2:intrusionAlarm,3:secondaryAlarm;SMOKE_DETECTOR_TEST_RESULT!0:none,1:smokeTestOK,2:smokeTestFailed,3:comTestSent,4:comTestOK"
- },
- "HM-Sec-SFA-SM" => {
- _description => "Alarmsirene",
- ccureadingfilter => "STATE",
- hmstatevals => "ERROR_POWER!1:power_failure;ERROR_SABOTAGE!1:sabotage;ERROR_BATTERY!1:battery_defect",
- statedatapoint => "1.STATE",
- 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"
- },
- "HM-Sec-Sir-WM" => {
- _description => "Funk-Innensirene",
- ccureadingfilter => "STATE",
- ccureadingname => "1.STATE:STATE_SENSOR1;2.STATE:STATE_SENSOR2;3.STATE:STATE_PANIC",
- eventMap => "/datapoint 3.STATE true:panic/",
- hmstatevals => "ERROR_SABOTAGE!1:sabotage",
- statedatapoint => "4.ARMSTATE",
- statevals => "disarmed:0,extsens-armed:1,allsens-armed:2,alarm-blocked:3",
- substitute => "ERROR_SABOTAGE!(0|false):no,(1|true):yes;ARMSTATE!0:disarmed,1:extsens_armed,2:allsens_armed,3:alarm_blocked"
- },
- "HM-LC-RGBW-WM" => {
- _description => "Funk-RGBW-Controller",
- ccureadingfilter => "(COLOR|PROGRAM|LEVEL)",
- ccureadingname => "2.COLOR:+color;3.PROGRAM:+prog",
- controldatapoint => "1.LEVEL",
- ccuscaleval => "LEVEL:0:1:0:100",
- eventMap => "/datapoint 3.PROGRAM :prog/datapoint 2.COLOR :color/",
- statedatapoint => "1.LEVEL",
- statevals => "on:100,off:0",
- stripnumber => 1,
- substexcl => "control",
- substitute => "LEVEL!#0-0:off,#1-100:on",
- webCmd => "control:color:prog:on:off",
- widgetOverride => "control:slider,0,1,100 prog:0,1,2,3,4,5,6 color:colorpicker,HUE,0,1,100"
- },
- "WS550|WS888|WS550Tech|WS550LCB|WS550LCW|HM-WDC7000" => {
- _description => "Wetterstation",
- ccureadingfilter => "(TEMPERATURE|HUMIDITY|AIR_PRESSURE)",
- statedatapoint => "10.TEMPERATURE",
- stripnumber => 1
- },
- "HM-Sec-WDS|HM-Sec-WDS-2" => {
- _description => "Funk-Wassermelder",
- ccureadingfilter => "STATE",
- statedatapoint => "1.STATE",
- substitute => "STATE!0:dry,1:wet,2:water"
- },
- "HM-WDS30-OT2-SM|HM-WDS30-OT2-SM-2" => {
- _description => "Temperaturdifferenz-Sensor",
- ccureadingfilter => "TEMPERATURE",
- stripnumber => 1
- },
- "HM-OU-CF-Pl|HM-OU-CFM-Pl|HM-OU-CFM-TW" => {
- _description => "Funk-Gong mit Signalleuchte mit/ohne Batterie und Speicher",
- ccureadingfilter => "STATE",
- 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",
- statedatapoint => "1.STATE",
- statevals => "on:true,off:false",
- substitute => "STATE!(0|false):ledOff,(1|true):ledOn;2.STATE!(0|false):soundOff,(1|true):soundOn"
- },
- "HM-PB-4Dis-WM" => {
- _description => "Funk-Display Wandtaster",
- ccureadingfilter => "(PRESS_SHORT|PRESS_LONG)",
- substitute => "PRESS_SHORT,PRESS_LONG!(1|true):pressed"
- },
- "HM-Dis-EP-WM55|HM-Dis-WM55" => {
- _description => "E-Paper Display, Display Statusanzeige",
- ccureadingfilter => "PRESS",
- eventMap => "/datapoint 3.SUBMIT:display/",
- substitute => "PRESS_LONG,PRESS_SHORT,PRESS_CONT!(1|true):pressed,(0|false):notPressed;PRESS_LONG_RELEASE!(1|true):release",
- widgetOverride => "display:textField"
- },
- "CUX-HM-TC-IT-WM-W-EU" => {
- _description => "CUxD Wandthermostat",
- ccureadingfilter => "(TEMP|HUM|DEW)",
- stripnumber => 1
- }
- );
- ######################################################################
- # Homematic scripts.
- # Scripts can be executed via HMCCU set command 'hmscript'. Script
- # name must be preceeded by a '!'.
- # Example:
- # set mydev hmscript !CreateStringVariable MyVar test "Test variable"
- ######################################################################
- %HMCCU_SCRIPTS = (
- "ActivateProgram" => {
- description => "Activate or deactivate a CCU program",
- syntax => "name, mode",
- parameters => 2,
- code => qq(
- object oPR = dom.GetObject("\$name");
- if (oPR) {
- oPR.Active(\$mode);
- }
- )
- },
- "CreateStringVariable" => {
- description => "Create CCU system variable of type STRING",
- syntax => "name, unit, init, desc",
- parameters => 4,
- code => qq(
- object oSV = dom.GetObject("\$name");
- if (!oSV){
- object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
- oSV = dom.CreateObject(OT_VARDP);
- oSysVars.Add(oSV.ID());
- oSV.Name("\$name");
- oSV.ValueType(ivtString);
- oSV.ValueSubType(istChar8859);
- oSV.DPInfo("\$desc");
- oSV.ValueUnit("\$unit");
- oSV.State("\$init");
- oSV.Internal(false);
- oSV.Visible(true);
- dom.RTUpdate(false);
- }
- else {
- oSV.State("\$init");
- }
- )
- },
- "CreateNumericVariable" => {
- description => "Create CCU system variable of type FLOAT",
- syntax => "name, unit, init, desc, min, max",
- parameters => 6,
- code => qq(
- object oSV = dom.GetObject("\$name");
- if (!oSV){
- object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
- oSV = dom.CreateObject(OT_VARDP);
- oSysVars.Add(oSV.ID());
- oSV.Name("\$name");
- oSV.ValueType(ivtFloat);
- oSV.ValueSubType(istGeneric);
- oSV.ValueMin(\$min);
- oSV.ValueMax(\$max);
- oSV.DPInfo("\$desc");
- oSV.ValueUnit("\$unit");
- oSV.State("\$init");
- oSV.Internal(false);
- oSV.Visible(true);
- dom.RTUpdate(false);
- }
- else {
- oSV.State("\$init");
- }
- )
- },
- "CreateBoolVariable" => {
- description => "Create CCU system variable of type BOOL",
- syntax => "name, unit, init, desc, valtrue, valfalse",
- parameters => 6,
- code => qq(
- object oSV = dom.GetObject("\$name");
- if (!oSV){
- object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
- oSV = dom.CreateObject(OT_VARDP);
- oSysVars.Add(oSV.ID());
- oSV.Name("\$name");
- oSV.ValueType(ivtBinary);
- oSV.ValueSubType(istBool);
- oSV.ValueName0("\$value1");
- oSV.ValueName1("\$value2");
- oSV.DPInfo("\$desc");
- oSV.ValueUnit("\$unit");
- oSV.State("\$init");
- dom.RTUpdate(false);
- }
- else {
- oSV.State("\$init");
- }
- )
- },
- "CreateListVariable" => {
- description => "Create CCU system variable of type LIST",
- syntax => "name, unit, init, desc, list",
- parameters => 5,
- code => qq(
- object oSV = dom.GetObject("\$name");
- if (!oSV){
- object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
- oSV = dom.CreateObject(OT_VARDP);
- oSysVars.Add(oSV.ID());
- oSV.Name("\$name");
- oSV.ValueType(ivtInteger);
- oSV.ValueSubType(istEnum);
- oSV.ValueList("\$list");
- oSV.DPInfo("\$desc");
- oSV.ValueUnit("\$unit");
- oSV.State("\$init");
- dom.RTUpdate(false);
- }
- else {
- oSV.State("\$init");
- }
- )
- },
- "DeleteObject" => {
- description => "Delete CCU object",
- syntax => "name, type",
- parameters => 2,
- code => qq(
- object oSV = dom.GetObject("\$name");
- if (oSV) {
- if (oSV.IsTypeOf(\$type)) {
- dom.DeleteObject(oSV.ID());
- }
- }
- )
- },
- "GetVariables" => {
- description => "Query system variables",
- syntax => "",
- parameters => 0,
- code => qq(
- object osysvar;
- string ssysvarid;
- foreach (ssysvarid, dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs())
- {
- osysvar = dom.GetObject(ssysvarid);
- WriteLine (osysvar.Name() # "=" # osysvar.Variable() # "=" # osysvar.Value());
- }
- )
- },
- "GetDeviceInfo" => {
- description => "Query device info",
- syntax => "devname, ccuget",
- parameters => 2,
- code => qq(
- string chnid;
- string sDPId;
- object odev = dom.GetObject ("\$devname");
- if (odev) {
- foreach (chnid, odev.Channels()) {
- object ochn = dom.GetObject(chnid);
- if (ochn) {
- foreach(sDPId, ochn.DPs()) {
- object oDP = dom.GetObject(sDPId);
- if (oDP) {
- integer op = oDP.Operations();
- string flags = "";
- if (OPERATION_READ & op) { flags = flags # "R"; }
- if (OPERATION_WRITE & op) { flags = flags # "W"; }
- if (OPERATION_EVENT & op) { flags = flags # "E"; }
- WriteLine ("C;" # ochn.Address() # ";" # ochn.Name() # ";" # oDP.Name() # ";" # oDP.ValueType() # ";" # oDP.\$ccuget() # ";" # flags);
- }
- }
- }
- }
- }
- else {
- WriteLine ("ERROR: Device not found");
- }
- )
- },
- "GetDevice" => {
- description => "Query CCU device or channel",
- syntax => "name",
- parameters => 1,
- code => qq(
- object odev=dom.GetObject("\$name");
- if (odev) {
- if (odev.IsTypeOf (OT_CHANNEL)) {
- string devid = odev.Device();
- odev = dom.GetObject (devid);
- }
- string intid=odev.Interface();
- string intna=dom.GetObject(intid).Name();
- string chnid;
- integer cc=0;
- foreach (chnid, odev.Channels()) {
- object ochn=dom.GetObject(chnid);
- WriteLine("C;" # ochn.Address() # ";" # ochn.Name() # ";" # ochn.ChnDirection());
- cc=cc+1;
- }
- WriteLine("D;" # intna # ";" # odev.Address() # ";" # odev.Name() # ";" # odev.HssType() # ";" # cc);
- }
- )
- },
- "GetDeviceList" => {
- description => "Query CCU devices, channels and interfaces",
- syntax => "",
- parameters => 0,
- code => qq(
- string devid;
- string chnid;
- string sifid;
- string prgid;
- foreach(devid, root.Devices().EnumUsedIDs()) {
- object odev=dom.GetObject(devid);
- if(odev) {
- var intid=odev.Interface();
- object oiface=dom.GetObject(intid);
- if(oiface) {
- string intna=oiface.Name();
- integer cc=0;
- foreach (chnid, odev.Channels()) {
- object ochn=dom.GetObject(chnid);
- WriteLine("C;" # ochn.Address() # ";" # ochn.Name() # ";" # ochn.ChnDirection());
- cc=cc+1;
- }
- WriteLine("D;" # intna # ";" # odev.Address() # ";" # odev.Name() # ";" # odev.HssType() # ";" # cc);
- }
- }
- }
- foreach(sifid, root.Interfaces().EnumIDs()) {
- object oIf=dom.GetObject(sifid);
- if (oIf) {
- WriteLine("I;" # oIf.Name() # ';' # oIf.InterfaceInfo() # ';' # oIf.InterfaceUrl());
- }
- }
- string prgid;
- foreach(prgid, dom.GetObject(ID_PROGRAMS).EnumIDs()) {
- object oProg=dom.GetObject(prgid);
- if(oProg) {
- WriteLine ("P;" # oProg.Name() # ";" # oProg.Active() # ";" # oProg.Internal());
- }
- }
- )
- },
- "GetDatapointsByChannel" => {
- description => "Query datapoints of channel list",
- syntax => "list, ccuget",
- parameters => 2,
- code => qq(
- string sDPId;
- string sChnName;
- string sChnList = "\$list";
- integer c = 0;
- foreach (sChnName, sChnList.Split(",")) {
- object oChannel = dom.GetObject (sChnName);
- if (oChannel) {
- foreach(sDPId, oChannel.DPs()) {
- object oDP = dom.GetObject(sDPId);
- if (oDP) {
- if (OPERATION_READ & oDP.Operations()) {
- if (oDP.TypeName() == "HSSDP") {
- WriteLine (sChnName # "=" # oDP.Name() # "=" # oDP.\$ccuget());
- }
- else {
- WriteLine (sChnName # "=sysvar.link." # oDP.Name() # "=" # oDP.\$ccuget());
- }
- c = c+1;
- }
- }
- }
- }
- }
- WriteLine (c);
- )
- },
- "GetDatapointsByDevice" => {
- description => "Query datapoints of device list",
- syntax => "list, ccuget",
- parameters => 2,
- code => qq(
- string chnid;
- string sDPId;
- string sDevName;
- string sDevList = "\$list";
- integer c = 0;
- foreach (sDevName, sDevList.Split(",")) {
- object odev = dom.GetObject (sDevName);
- if (odev) {
- foreach (chnid, odev.Channels()) {
- object ochn = dom.GetObject(chnid);
- if (ochn) {
- foreach(sDPId, ochn.DPs()) {
- object oDP = dom.GetObject(sDPId);
- if (oDP) {
- if (OPERATION_READ & oDP.Operations()) {
- if (oDP.TypeName() == "HSSDP") {
- WriteLine (ochn.Name() # "=" # oDP.Name() # "=" # oDP.\$ccuget());
- }
- else {
- WriteLine (ochn.Name() # "=sysvar.link." # oDP.Name() # "=" # oDP.\$ccuget());
- }
- c = c+1;
- }
- }
- }
- }
- }
- }
- }
- WriteLine (c);
- )
- },
- "GetDatapointList" => {
- description => "Query datapoint information of device list",
- syntax => "list",
- parameters => 1,
- code => qq(
- string chnid;
- string sDPId;
- string sDevice;
- string sDevList = "\$list";
- foreach (sDevice, sDevList.Split(",")) {
- object odev = dom.GetObject (sDevice);
- if (odev) {
- string intid = odev.Interface();
- string intna = dom.GetObject(intid).Name();
- string sType = odev.HssType();
- foreach (chnid, odev.Channels()) {
- object ochn = dom.GetObject(chnid);
- if (ochn) {
- string sAddr = ochn.Address();
- string sChnNo = sAddr.StrValueByIndex(":",1);
- foreach(sDPId, ochn.DPs()) {
- object oDP = dom.GetObject(sDPId);
- if (oDP) {
- string sDPName = oDP.Name();
- if (sDPName.Find(".") >= 0) {
- sDPName = sDPName.StrValueByIndex(".",2);
- }
- WriteLine (intna # ";" # sAddr # ";" # sType # ";" # sChnNo # ";" # sDPName # ";" # oDP.ValueType() # ";" # oDP.Operations());
- }
- }
- }
- }
- }
- }
- )
- },
- "GetChannel" => {
- description => "Get datapoints of channel list",
- syntax => "list, ccuget",
- parameters => 2,
- code => qq(
- string sDPId;
- string sChannel;
- string sChnList = "\$list";
- foreach (sChannel, sChnList.Split(",")) {
- object oChannel = dom.GetObject (sChannel);
- if (oChannel) {
- foreach(sDPId, oChannel.DPs()) {
- object oDP = dom.GetObject(sDPId);
- if (oDP) {
- WriteLine (sChannel # "=" # oDP.Name() # "=" # oDP.\$ccuget());
- }
- }
- }
- }
- )
- },
- "GetInterfaceList" => {
- description => "Get CCU RPC interfaces",
- syntax => "",
- parameters => 0,
- code => qq(
- string sifId;
- foreach(sifId, root.Interfaces().EnumIDs()) {
- object oIf = dom.GetObject(sifId);
- if (oIf) {
- WriteLine (oIf.Name() # ';' # oIf.InterfaceInfo() # ';' # oIf.InterfaceUrl());
- }
- }
- )
- },
- "ClearUnreachable" => {
- description => "Clear device unreachable alarms in CCU",
- syntax => "",
- parameters => 0,
- code => qq(
- string itemID;
- string address;
- object aldp_obj;
- foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
- address = dom.GetObject(itemID).Address();
- aldp_obj = dom.GetObject("AL-" # address # ":0.STICKY_UNREACH");
- if (aldp_obj) {
- if (aldp_obj.Value()) {
- aldp_obj.AlReceipt();
- }
- }
- }
- )
- },
- "GetNameByAddress" => {
- description => "Get device or channel name by address",
- syntax => "iface, address",
- parameters => 2,
- code => qq(
- object lObjDevice = xmlrpc.GetObjectByHSSAddress(interfaces.Get("\$iface"),"\$address");
- if (lObjDevice) {
- WriteLine (lObjDevice.Name());
- }
- )
- },
- "GetGroupDevices" => {
- description => "Get virtual group configuration",
- syntax => "",
- parameters => 0,
- code => qq(
- string lGetOut = "";
- string lGetErr = "";
- string lCommand = "cat /usr/local/etc/config/groups.gson";
- integer lResult;
- lResult = system.Exec(lCommand,&lGetOut,&lGetErr);
- if(lResult == 0) {
- WriteLine(lGetOut);
- }
- )
- }
- );
- 1;
|