mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
14_SD_UT.pm: added new model (TR_502MSV,Techmar,Tedsen_SKX1xx,Tedsen_SKX2xx,Tedsen_SKX4xx,Tedsen_SKX6xx,KL_RF01,RC_10) !!! all models Manax are new dedect to RC_10 --> Manax are the wrong modelname
git-svn-id: https://svn.fhem.de/fhem/trunk@19886 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
973e6abcaa
commit
efa4b13287
@ -3,7 +3,7 @@
|
||||
#
|
||||
# The file is part of the SIGNALduino project.
|
||||
# The purpose of this module is universal support for devices.
|
||||
# 2016 - 1.fhemtester | 2018 - HomeAuto_User & elektron-bbs
|
||||
# 2016 - 1.fhemtester | 2018/2019 - HomeAuto_User & elektron-bbs
|
||||
#
|
||||
# - unitec Modul alte Variante bis 20180901 (Typ unitec-Sound) --> keine MU MSG!
|
||||
# - unitec Funkfernschalterset (Typ uniTEC_48110) ??? EIM-826 Funksteckdosen --> keine MU MSG!
|
||||
@ -52,6 +52,11 @@
|
||||
# get sduino_dummy raw MU;;P0=-5476;;P1=592;;P2=-665;;P3=1226;;P4=-1309;;D=01232323232323232323232323412323412323414;;CP=3;;R=1;;
|
||||
#} Send Adresse FFF funktioniert nicht 100%ig!
|
||||
###############################################################################################################################################################################
|
||||
# - TR-502MSV (LIBRA GmbH) [LIDL] Funk-Steckdosendimmer + Schalter | transmitter TR-502MSV - receiver RC-710DX|RC-710 [Protocol 34]
|
||||
#{ nibble 0-1 -> Hauscode | nibble 3 ??? | nibble 3-4 -> Tastencode | repeats 3
|
||||
# get sduino_dummy raw MU;;P0=-12064;;P1=717;;P2=-669;;P3=1351;;P4=-1319;;D=012323414141234123232323232323232323232323;;
|
||||
#} get sduino_dummy raw MU;;P0=697;;P1=-1352;;P2=-679;;P3=1343;;D=01010101010231023232323232323232323232323;CP=0;R=27;;
|
||||
###############################################################################################################################################################################
|
||||
# - Remote Control Novy_840029 for Novy Pureline 6830 kitchen hood [Protocol 86] (Länge je nach Taste 12 oder 18 Bit)
|
||||
#{ 0100 "novy_button" - nicht geprüft
|
||||
# 0101 "+_button" - i.O.
|
||||
@ -86,8 +91,8 @@
|
||||
# 0000 0000 1110 0110 1011 1110 1001 0001 0000 1101 1100 (HSM4 Taste D)
|
||||
#} get sduino_dummy raw MU;;P0=-3656;;P1=12248;;P2=-519;;P3=1008;;P4=506;;P5=-1033;;D=01232323232323232324545453232454532453245454545453245323245323232453232323245453245454532321232323232323232324545453232454532453245454545453245323245323232453232323245453245454532321232323232323232324545453232454532453245454545453245323245323232453232323;;CP=4;;R=48;;O;;
|
||||
###############################################################################################################################################################################
|
||||
# - Transmitter SF01 01319004 433,92 MHz (SF01_01319004) (NEFF kitchen hood) [Protocol 86]
|
||||
#{ https://github.com/RFD-FHEM/RFFHEM/issues/376 | https://forum.fhem.de/index.php?topic=93545.0
|
||||
# - Transmitter SF01 01319004 433,92 MHz (SF01_01319004) (NEFF / Refsta Topdraft kitchen hood) [Protocol 86]
|
||||
#{ https://github.com/RFD-FHEM/RFFHEM/issues/376 | https://forum.fhem.de/index.php?topic=93545.0 | https://forum.fhem.de/index.php/topic,93545.msg908150.html#msg908150
|
||||
# Sends 18 bits, converting to hex in SIGNALduino.pm adds 2 bits of 0
|
||||
# iiii iiii iiii ii bbbb aa hex
|
||||
# ------------------------------------------------
|
||||
@ -123,7 +128,15 @@
|
||||
# - Berner Garagentorantrieb GA401 | remote TEDSEN SKX1MD 433.92 MHz - 1 button | settings via 9 switch on battery compartment [Protocol 46]
|
||||
#{ compatible with doors: BERNER SKX1MD, ELKA SKX1MD, TEDSEN SKX1LC, TEDSEN SKX1
|
||||
# https://github.com/RFD-FHEM/RFFHEM/issues/91
|
||||
#} get sduino_dummy raw MU;;P0=-15829;;P1=-3580;;P2=1962;;P3=-330;;P4=245;;P5=-2051;;D=1234523232345234523232323234523234540023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323;;CP=2;;
|
||||
# get sduino_dummy raw MU;;P0=-15829;;P1=-3580;;P2=1962;;P3=-330;;P4=245;;P5=-2051;;D=1234523232345234523232323234523234540023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323232323452323454023452323234523452323;;CP=2;;
|
||||
# GEIGER GF0001, 2 Button, DIP-Schalter: + 0 + - + + - 0 0
|
||||
# https://forum.fhem.de/index.php/topic,39153.0.html
|
||||
# rauf: MU;P0=-32001;P1=2072;P2=-260;P3=326;P4=-2015;P5=-15769;D=01212123412123434121212123434123412351212123412123434121212123434123412351212123412123434121212123434123412351212123412123434121212123434123412351212123412123434121212123434123412351212123412123434121212123434123412351212123412123434121212123434123412351;CP=3;R=37;O;
|
||||
# runter: MU;P0=-15694;P1=2009;P2=-261;P3=324;P4=-2016;D=01212123412123434121212123434123434301212123412123434121212123434123434301212123412123434121212123434123434301212123412123434121212123434123434301212123412123434121212123434123434301;CP=3;R=30;
|
||||
# ???
|
||||
# MU;P0=313;P1=1212;P2=-309;P4=-2024;P5=-16091;P6=2014;D=01204040562620404626204040404040462046204040562620404626204040404040462046204040562620404626204040404040462046204040562620404626204040404040462046204040;CP=0;R=236;
|
||||
# MU;P0=-15770;P1=2075;P2=-264;P3=326;P4=-2016;P5=948;D=012121234121234341212121234341234343012125;CP=3;R=208;
|
||||
#}
|
||||
###############################################################################################################################################################################
|
||||
# - Chilitec Großhandel 22640 - LED Christbaumkerzen mit Fernbedienung
|
||||
#{ Taste -: AA802 0010 brightness_minus
|
||||
@ -177,7 +190,7 @@
|
||||
# Kontakt auf | Gehäuse zu get sduino_dummy raw MS;;P1=-404;;P2=813;;P3=-794;;P4=409;;P5=-4002;;D=45412123434123412123434341234123434121234123412121212341234343434121212343;;CP=4;;SP=5;;R=65;;m0;;
|
||||
# Kontakt zu | Gehäuse zu get sduino_dummy raw MS;;P0=-800;;P1=402;;P2=-401;;P3=806;;P4=-3983;;D=14123230101230123230101012301230101232301230123232323232301010101232301010;;CP=1;;SP=4;;R=57;;O;;m2;;
|
||||
#}
|
||||
#{ Vibration Schock Sensor MD-2018R
|
||||
#{ Vibration Schock Sensor MD-2018R | water sensor MD_230R
|
||||
#
|
||||
# iiiiiiiiiiiiiiiiiiiiiiiisc?kttttCCCC
|
||||
# ------------------------------------
|
||||
@ -211,10 +224,38 @@
|
||||
#
|
||||
# mumbi m-FS300 https://github.com/RFD-FHEM/RFFHEM/issues/60
|
||||
# ...
|
||||
#
|
||||
# SET mumbi AFS300-s https://forum.fhem.de/index.php/topic,94327.msg953226.html#msg953226 | https://forum.fhem.de/index.php/topic,94327.msg953235.html#msg953235
|
||||
# remote control typ RC-10 | random code wireless switch typ RCS-22GS
|
||||
# Taste A on : MS;P1=781;P3=-372;P4=251;P5=-903;P6=-10342;D=46451313131345454545131345134545134545454513131313454513454513451345;CP=4;SP=6;O;m1;E;
|
||||
# Taste A off : MS;P1=790;P2=-363;P3=257;P4=-896;P5=-10283;D=35341212121234343434121234123434123434343412121234343412343412343434;CP=3;SP=5;O;m2;C;C;
|
||||
# Taste B on : MS;P0=-367;P2=-892;P3=265;P4=-10335;P5=787;D=34325050505032323232505032503232503232323250503250323250323250503232;CP=3;SP=4;O;m2;2;P;
|
||||
# Taste B off : MS;P0=264;P1=-367;P2=791;P4=-887;P6=-10335;D=06042121212104040404212104210404210404040421210404040421040421212104;CP=0;SP=6;O;m2;
|
||||
# Taste C on : MS;P0=-887;P1=790;P2=-361;P3=265;P5=-10342;D=35301212121230303030121230123030123030303012301212303012303030301230;CP=3;SP=5;O;m2;0;0;
|
||||
# Taste C off : MS;P0=794;P1=-364;P2=265;P3=-885;P4=-10325;D=24230101010123232323010123012323012323232301230123232301232323232323;CP=2;SP=4;O;m1;
|
||||
# Taste D on : MS;P0=-884;P1=790;P2=-365;P3=272;P4=-10323;D=34301212121230303030121230123030123030303030121212303012301230301230;CP=3;SP=4;O;m1;0;
|
||||
# Taste D off : MS;P1=-364;P2=264;P3=-892;P4=787;P5=-10331;D=25234141414123232323414123412323412323232323414123232341234123232323;CP=2;SP=5;O;m2;A;
|
||||
# Taste All on : MS;P1=-361;P2=267;P3=-884;P4=792;P5=-10342;D=25234141414123232323414123412323412323232323412323232341234123414123;CP=2;SP=5;O;m2;A;
|
||||
# Taste All off : MS;P1=-363;P2=789;P3=267;P4=-887;P5=-10332;D=35342121212134343434212134213434213434343421343434343421343434212134;CP=3;SP=5;O;m2;4;
|
||||
#}
|
||||
###############################################################################################################################################################################
|
||||
# - ESTO Lighting GmbH | remote control KL-RF01 with 9 buttons (CP 375-395) [Protocol 93] and [additionally Protocol 90]
|
||||
#{ https://github.com/RFD-FHEM/RFFHEM/issues/449
|
||||
#}
|
||||
###############################################################################################################################################################################
|
||||
# Techmar / Garden Lights Fernbedienung, 6148011 Remote control + 12V Outdoor receiver
|
||||
# https://github.com/RFD-FHEM/RFFHEM/issues/558 @BlackcatSandy
|
||||
# Fernbedienung mit 10 Tasten, 9 Gruppentasten und 1 Master
|
||||
# gesamt 50 Bit, Bit 0-31 Ident, Bit 32-39 Button, Bit 40-47 = Bit 32-39 invertiert, Bit 48-49 wechselt 00|01|02
|
||||
# Die letzten beiden Bits wechseln bei der Fernbedienung zwischen 00, 01 oder 02. Der Empfänger reagiert aber auch, wenn nur 00 gesendet wird.
|
||||
# sendet bei jedem Tastendruck ca. 50 Wiederholungen, Dauer etwa 6 Sekunden
|
||||
#
|
||||
# Group_1_on: MU;P0=-972;P1=526;P2=-335;P3=-666;D=01213131312131313121212121312121313131313121312131313121313131312121212121312121313131313121313121212101213131312131313121212121312121313131313121312131313121313131312121212121312121313131313121313121212101213131312131313121212121312121313131313121312131;CP=1;R=44;O;
|
||||
# Group_5_on: MU;P0=-651;P1=530;P2=-345;P3=-969;D=01212121312101010121010101212121210121210101010101210121010101210101010121212121012121210101010121010101212101312101010121010101212121210121210101010101210121010101210101010121212121012121210101010121010101212121312101010121010101212121210121210101010101;CP=1;R=24;O;
|
||||
# Group_8_off: MU;P0=538;P1=-329;P2=-653;P3=-964;D=01020301020202010202020101010102010102020202020102010202020102020202010101010101010201020202020202010202010301020202010202020101010102010102020202020102010202020102020202010101010101010201020202020202010201010301020202010202020101010102010102020202020102;CP=0;R=19;O;
|
||||
###############################################################################################################################################################################
|
||||
# !!! ToDo´s !!!
|
||||
# - LED lights, counter battery-h reading
|
||||
# - LED lights, counter battery-h reading --> commandref hour_counter module
|
||||
# -
|
||||
###############################################################################################################################################################################
|
||||
|
||||
@ -227,6 +268,9 @@ no warnings 'portable'; # Support for 64-bit ints required
|
||||
|
||||
#$| = 1; #Puffern abschalten, Hilfreich für PEARL WARNINGS Search
|
||||
|
||||
sub SD_UT_bin2tristate($);
|
||||
sub SD_UT_tristate2bin($);
|
||||
|
||||
### HASH for all modul models ###
|
||||
my %models = (
|
||||
# keys(model) => values
|
||||
@ -293,8 +337,32 @@ my %models = (
|
||||
"00111100" => "Ch4_off",
|
||||
"00001111" => "Master_on",
|
||||
"00011110" => "Master_off",
|
||||
"00010100" => "Unknown_on",
|
||||
"00000101" => "Unknown_off",
|
||||
"00010100" => "Unknown_up",
|
||||
"00000101" => "Unknown_down",
|
||||
hex_lengh => "5",
|
||||
Protocol => "P34",
|
||||
Typ => "remote"
|
||||
},
|
||||
"TR_502MSV" => { "11101110" => "Ch1_on",
|
||||
"11111111" => "Ch1_off",
|
||||
"01101100" => "Ch2_on",
|
||||
"01111101" => "Ch2_off",
|
||||
"10101111" => "Ch3_on",
|
||||
"10111110" => "Ch3_off",
|
||||
"00101101" => "Ch4_on",
|
||||
"00111100" => "Ch4_off",
|
||||
"00001111" => "Master_on",
|
||||
"00011110" => "Master_off",
|
||||
"00010100" => "dim_up", # after Master on/off
|
||||
"00000101" => "dim_down", # after Master on/off
|
||||
"11110101" => "Ch1_dim_up", # after CH1 on/off
|
||||
"11100100" => "Ch1_dim_down", # after CH1 on/off
|
||||
"01110111" => "Ch2_dim_up", # after CH2 on/off
|
||||
"01100110" => "Ch2_dim_down", # after CH2 on/off
|
||||
"10110100" => "Ch3_dim_up", # after CH3 on/off
|
||||
"10100101" => "Ch3_dim_down", # after CH3 on/off
|
||||
"00110110" => "Ch4_dim_up", # after CH4 on/off
|
||||
"00100111" => "Ch4_dim_down", # after CH4 on/off
|
||||
hex_lengh => "5",
|
||||
Protocol => "P34",
|
||||
Typ => "remote"
|
||||
@ -318,7 +386,55 @@ my %models = (
|
||||
Protocol => "P81",
|
||||
Typ => "remote"
|
||||
},
|
||||
"TEDSEN_SKX1MD" => { "0" => "send",
|
||||
"Techmar" => { "00001001" => "Group_1_on", # 0x09
|
||||
"00001010" => "Group_1_off", # 0x0A
|
||||
"00001111" => "Group_2_on", # 0x0F
|
||||
"00010000" => "Group_2_off", # 0x10
|
||||
"00000101" => "Group_3_on", # 0x05
|
||||
"00000110" => "Group_3_off", # 0x06
|
||||
"00001011" => "Group_4_on", # 0x0B
|
||||
"00001100" => "Group_4_off", # 0x0C
|
||||
"00010001" => "Group_5_on", # 0x11
|
||||
"00010010" => "Group_5_off", # 0x12
|
||||
"00001101" => "Group_6_on", # 0x0D
|
||||
"00001110" => "Group_6_off", # 0x0E
|
||||
"00000111" => "Group_7_on", # 0x07
|
||||
"00001000" => "Group_7_off", # 0x08
|
||||
"00000001" => "Group_8_on", # 0x01
|
||||
"00000010" => "Group_8_off", # 0x02
|
||||
"00000011" => "Group_9_on", # 0x03
|
||||
"00000100" => "Group_9_off", # 0x04
|
||||
"00010011" => "All_on", # 0x13
|
||||
"00010100" => "All_off", # 0x14
|
||||
hex_lengh => "13",
|
||||
Protocol => "P95",
|
||||
Typ => "remote"
|
||||
},
|
||||
"Tedsen_SKX1xx" => { "1100" => "Button_1", # tristate 10
|
||||
hex_lengh => "5",
|
||||
Protocol => "P46",
|
||||
Typ => "remote"
|
||||
},
|
||||
"Tedsen_SKX2xx" => { "1000" => "Button_1", # tristate F0 = GEIGER Ab: 0-
|
||||
"1010" => "Button_2", # tristate FF = GEIGER Auf: 00
|
||||
hex_lengh => "5",
|
||||
Protocol => "P46",
|
||||
Typ => "remote"
|
||||
},
|
||||
"Tedsen_SKX4xx" => { "1000" => "Button_1", # tristate F0 = GEIGER Ab: 0-
|
||||
"1010" => "Button_2", # tristate FF = GEIGER Auf: 00
|
||||
"0000" => "Button_3", # tristate 00 = GEIGER Ab: --
|
||||
"0010" => "Button_4", # tristate 0F = GEIGER Auf: -0
|
||||
hex_lengh => "5",
|
||||
Protocol => "P46",
|
||||
Typ => "remote"
|
||||
},
|
||||
"Tedsen_SKX6xx" => { "1000" => "Button_1", # tristate F0 = GEIGER Ab: 0-
|
||||
"1010" => "Button_2", # tristate FF = GEIGER Auf: 00
|
||||
"0000" => "Button_3", # tristate 00 = GEIGER Ab: --
|
||||
"0010" => "Button_4", # tristate 0F = GEIGER Auf: -0
|
||||
"1110" => "Button_5", # tristate 1F = GEIGER Ab: +0
|
||||
"1011" => "Button_6", # tristate F1 = GEIGER Auf: 0+
|
||||
hex_lengh => "5",
|
||||
Protocol => "P46",
|
||||
Typ => "remote"
|
||||
@ -351,6 +467,19 @@ my %models = (
|
||||
Protocol => "P86",
|
||||
Typ => "remote"
|
||||
},
|
||||
"KL_RF01" => { "0001" => "light_color_cold_white",
|
||||
"0010" => "night_mode",
|
||||
"0100" => "on",
|
||||
"0110" => "alternating_full_luminosity",
|
||||
"1000" => "full_brightness",
|
||||
"1001" => "off",
|
||||
"1010" => "light_color_warm_white",
|
||||
"1100" => "dimdown",
|
||||
"1110" => "dimup",
|
||||
Protocol => "P93",
|
||||
hex_lengh => "9",
|
||||
Typ => "remote"
|
||||
},
|
||||
"MD_2003R" => { Protocol => "P91", #P91.1
|
||||
hex_lengh => "9",
|
||||
Typ => "gas"
|
||||
@ -363,16 +492,16 @@ my %models = (
|
||||
hex_lengh => "9",
|
||||
Typ => "vibration"
|
||||
},
|
||||
"Manax" => { "1111" => "button_A_on",
|
||||
"1110" => "button_A_off",
|
||||
"1101" => "button_B_on",
|
||||
"1100" => "button_B_off",
|
||||
"1011" => "button_C_on",
|
||||
"1010" => "button_C_off",
|
||||
"0111" => "button_D_on",
|
||||
"0110" => "button_D_off",
|
||||
"0100" => "button_All_on",
|
||||
"1000" => "button_All_off",
|
||||
"RC_10" => { "1" => "on",
|
||||
"0" => "off",
|
||||
"buttons" => {
|
||||
"111" => "A",
|
||||
"110" => "B",
|
||||
"101" => "C",
|
||||
"011" => "D",
|
||||
"010" => "all",
|
||||
"100" => "all",
|
||||
},
|
||||
Protocol => "P90",
|
||||
hex_lengh => "9",
|
||||
Typ => "remote"
|
||||
@ -386,7 +515,7 @@ my %models = (
|
||||
#############################
|
||||
sub SD_UT_Initialize($) {
|
||||
my ($hash) = @_;
|
||||
$hash->{Match} = "^P(?:14|29|30|34|46|69|76|81|83|86|90|91|91.1|92)#.*";
|
||||
$hash->{Match} = "^P(?:14|29|30|34|46|69|76|81|83|86|90|91|91.1|92|93|95)#.*";
|
||||
$hash->{DefFn} = "SD_UT_Define";
|
||||
$hash->{UndefFn} = "SD_UT_Undef";
|
||||
$hash->{ParseFn} = "SD_UT_Parse";
|
||||
@ -398,6 +527,7 @@ sub SD_UT_Initialize($) {
|
||||
"MD_2003R.*" => {ATTR => "model:MD_2003R", FILTER => "%NAME", autocreateThreshold => "3:180", GPLOT => ""},
|
||||
"MD_210R.*" => {ATTR => "model:MD_210R", FILTER => "%NAME", autocreateThreshold => "3:180", GPLOT => ""},
|
||||
"MD_2018R.*" => {ATTR => "model:MD_2018R", FILTER => "%NAME", autocreateThreshold => "3:180", GPLOT => ""},
|
||||
"Techmar.*" => {ATTR => "model:Techmar", FILTER => "%NAME", autocreateThreshold => "3:180", GPLOT => ""},
|
||||
"unknown_please_select_model" => {ATTR => "model:unknown", FILTER => "%NAME", autocreateThreshold => "5:180", GPLOT => ""},
|
||||
};
|
||||
}
|
||||
@ -407,11 +537,6 @@ sub SD_UT_Define($$) {
|
||||
my ($hash, $def) = @_;
|
||||
my @a = split("[ \t][ \t]*", $def);
|
||||
|
||||
### checks all ###
|
||||
#Log3 $hash->{NAME}, 3, "SD_UT: Define arg0=$a[0] arg1=$a[1] arg2=$a[2]" if($a[0] && $a[1] && $a[2] && !$a[3]);
|
||||
#Log3 $hash->{NAME}, 3, "SD_UT: Define arg0=$a[0] arg1=$a[1] arg2=$a[2] arg3=$a[3]" if($a[0] && $a[1] && $a[2] && $a[3] && !$a[4]);
|
||||
#Log3 $hash->{NAME}, 3, "SD_UT: Define arg0=$a[0] arg1=$a[1] arg2=$a[2] arg3=$a[3] arg4=$a[4]" if($a[0] && $a[1] && $a[2] && $a[3] && $a[4]);
|
||||
|
||||
# Argument 0 1 2 3 4
|
||||
return "wrong syntax: define <name> SD_UT <model> <HEX-Value> <optional IODEV>" if(int(@a) < 3 || int(@a) > 5);
|
||||
return "wrong <model> $a[2]\n\n(allowed modelvalues: " . join(" | ", sort keys %models).")" if $a[2] && ( !grep { $_ eq $a[2] } %models );
|
||||
@ -428,25 +553,31 @@ sub SD_UT_Define($$) {
|
||||
}
|
||||
}
|
||||
|
||||
### [2] checks CAME_TOP_432EV & Novy_840029 & Unitec_47031 ###
|
||||
if (($a[2] eq "CAME_TOP_432EV" || $a[2] eq "Novy_840029" || $a[2] eq "Unitec_47031") && not $a[3] =~ /^[0-9a-fA-F]{2}/s) {
|
||||
### [2] checks CAME_TOP_432EV & Novy_840029 & Unitec_47031 & TR_502MSV ###
|
||||
if (($a[2] eq "CAME_TOP_432EV" || $a[2] eq "Novy_840029" || $a[2] eq "Unitec_47031" || $a[2] eq "TR_502MSV") && not $a[3] =~ /^[0-9a-fA-F]{2}/s) {
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){2}";
|
||||
}
|
||||
### [3] checks SA_434_1_mini & QUIGG_DMV ###
|
||||
if (($a[2] eq "SA_434_1_mini" || $a[2] eq "QUIGG_DMV") && not $a[3] =~ /^[0-9a-fA-F]{3}/s) {
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){3}";
|
||||
}
|
||||
### [4] checks Neff SF01_01319004 & BOSCH SF01_01319004_Typ2 & Chilitec_22640 & Manax ###
|
||||
if (($a[2] eq "SF01_01319004" || $a[2] eq "SF01_01319004_Typ2" || $a[2] eq "Chilitec_22640" || $a[2] eq "Manax") && not $a[3] =~ /^[0-9a-fA-F]{4}/s) {
|
||||
### [4] checks Neff SF01_01319004 & BOSCH SF01_01319004_Typ2 & Chilitec_22640 & ESTO KL_RF01###
|
||||
if (($a[2] eq "SF01_01319004" || $a[2] eq "SF01_01319004_Typ2" || $a[2] eq "Chilitec_22640" || $a[2] eq "KL_RF01") && not $a[3] =~ /^[0-9a-fA-F]{4}/s) {
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){4}";
|
||||
}
|
||||
### [6] checks Manax | mumbi ###
|
||||
if ($a[2] eq "RC_10" && not $a[3] =~ /^[0-9a-fA-F]{4}_([ABCD]|all)$/s) {
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){4}_[ABCD]|[all]";
|
||||
}
|
||||
|
||||
### [5] checks TEDSEN_SKX1MD ###
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){5}" if ($a[2] eq "TEDSEN_SKX1MD" && not $a[3] =~ /^[0-9a-fA-F]{5}/s);
|
||||
### [6] checks MD_2003R | MD_210R | MD_2018R ###
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){6}" if (($a[2] eq "MD_2003R" || $a[2] eq "MD_210R" || $a[2] eq "MD_2018R") && not $a[3] =~ /^[0-9a-fA-F]{6}/s);
|
||||
### [7] checks Hoermann HSM4 | Krinner_LUMIX ###
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){7}" if (($a[2] eq "HSM4" || $a[2] eq "Krinner_LUMIX") && not $a[3] =~ /^[0-9a-fA-F]{7}/s);
|
||||
### [7] checks Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx (tristate code)###
|
||||
return "Wrong tristate code! ($a[3]) $a[2] code to short or long (must be 7 chars) or values not 0, 1 or F" if (($a[2] eq "Tedsen_SKX1xx" || $a[2] eq "Tedsen_SKX2xx" || $a[2] eq "Tedsen_SKX4xx" || $a[2] eq "Tedsen_SKX6xx") && not $a[3] =~ /^[01fF]{7}$/s);
|
||||
### [8 nibble] checks Techmar remote control ###
|
||||
return "Wrong HEX-Value! ($a[3]) $a[2] Hex-value to short or long (must be 8 chars) or not hex (0-9 | a-f | A-F)" if ($a[2] eq "Techmar" && not $a[3] =~ /^[0-9a-fA-F]{8}$/s);
|
||||
### [9] checks Hoermann HS1-868-BS ###
|
||||
return "wrong HEX-Value! ($a[3]) $a[2] HEX-Value to short | long or not HEX (0-9 | a-f | A-F){9}" if ($a[2] eq "HS1_868_BS" && not $a[3] =~ /^[0-9a-fA-F]{9}/s);
|
||||
### [14] checks LED_XM21_0 ###
|
||||
@ -507,17 +638,24 @@ sub SD_UT_Set($$$@) {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $bitData = sprintf( "%012b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 12 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $bitData . "#R" . $repeats;
|
||||
############ TEDSEN_SKX1MD ############
|
||||
} elsif ($model eq "TEDSEN_SKX1MD" && $cmd ne "?") {
|
||||
############ Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx ############
|
||||
} elsif (($model eq "Tedsen_SKX1xx" || $model eq "Tedsen_SKX2xx" || $model eq "Tedsen_SKX4xx" || $model eq "Tedsen_SKX6xx") && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $bitData = sprintf( "%020b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 20 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $bitData . "#R" . $repeats;
|
||||
my $adr = SD_UT_tristate2bin($definition[1]); # argument 1 - adress tristate to bin with 18 bits
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr;
|
||||
$msgEnd = "#R" . $repeats;
|
||||
############ QUIGG_DMV ############
|
||||
} elsif ($model eq "QUIGG_DMV" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $adr = sprintf( "%012b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 12 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr;
|
||||
$msgEnd = "P#R" . $repeats;
|
||||
############ TR_502MSV ############
|
||||
} elsif ($model eq "TR_502MSV" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $adr = sprintf( "%08b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 8 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr . "1111";
|
||||
$msgEnd = "P#R" . $repeats;
|
||||
############ Novy_840029 ############
|
||||
} elsif ($model eq "Novy_840029" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
@ -563,12 +701,46 @@ sub SD_UT_Set($$$@) {
|
||||
############ Krinner_LUMIX ############
|
||||
} elsif ($model eq "Krinner_LUMIX" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $adr = sprintf( "%028b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 14 digits
|
||||
my $adr = sprintf( "%028b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 28 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr;
|
||||
$msgEnd .= "#R" . $repeats;
|
||||
############ Manax ############
|
||||
} elsif ($model eq "Manax" && $cmd ne "?") {
|
||||
return "ERROR: the send command is currently not supported";
|
||||
############ Manax | mumbi ############
|
||||
} elsif ($model eq "RC_10" && $cmd ne "?") {
|
||||
return "ERROR: to send, please push button on and off again on remote" if ( (ReadingsVal($name, "x_n5-8_on", "0") eq "0") || (ReadingsVal($name, "x_n5-8_off", "0") eq "0") || (ReadingsVal($name, "x_n4", "0") eq "0") );
|
||||
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
$definition[1] = substr($definition[1],0,4);
|
||||
my $adr = sprintf( "%016b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 16 digits
|
||||
my $unknown1 = ReadingsVal($name, "x_n4", "0");
|
||||
my $unknown2_btn = "x_n5-8_".$cmd;
|
||||
my $unknown2 = ReadingsVal($name, $unknown2_btn, "0");
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr . $unknown1 . $unknown2;
|
||||
$msgEnd .= "#R" . $repeats;
|
||||
|
||||
### if device _all, set A | B | C | D ### -> RC_10_7869_all (model_device_button)
|
||||
my $device = $model."_".substr($name,6,4);
|
||||
if ($name =~ /^$device.all$/) {
|
||||
foreach my $d (sort keys %defs) {
|
||||
if (defined($defs{$d}) && defined($defs{$d}{NAME}) && $defs{$d}{NAME} =~ /^$device.[ABCD]$/) {
|
||||
readingsSingleUpdate($defs{$d}, "state" , $cmd , 1);
|
||||
Log3 $name, 4, "$ioname: SD_UT_Set attr_model=$model device $name set ".$defs{$d}{NAME}." to $cmd";
|
||||
}
|
||||
}
|
||||
}
|
||||
############ ESTO KL_RF01############
|
||||
} elsif ($model eq "KL_RF01" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $adr = sprintf( "%016b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 16 digits
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr;
|
||||
$msgEnd .= "11110"; # nibble7 every?
|
||||
$msgEnd .= "#R" . $repeats;
|
||||
############ Techmar Garden Lights ############
|
||||
} elsif ($model eq "Techmar" && $cmd ne "?") {
|
||||
my @definition = split(" ", $hash->{DEF}); # split adress from def
|
||||
my $adr = sprintf( "%032b", hex($definition[1])) if ($name ne "unknown"); # argument 1 - adress to binary with 32 bits
|
||||
|
||||
$msg = $models{$model}{Protocol} . "#" . $adr;
|
||||
$msgEnd = "00#R" . $repeats; # Last two bits alternately by transmitter 00, 01 or 02. Receiver also reacts to only 00.
|
||||
}
|
||||
|
||||
Log3 $name, 4, "$ioname: SD_UT_Set attr_model=$model msg=$msg msgEnd=$msgEnd" if(defined $msgEnd);
|
||||
@ -590,7 +762,18 @@ sub SD_UT_Set($$$@) {
|
||||
last if ($value eq $cmd);
|
||||
}
|
||||
}
|
||||
|
||||
if ($model eq "KL_RF01") {
|
||||
my $save2 = $save;
|
||||
$save2 =~ tr/01/10/; # invert message (nibble6 invert = nibble4)
|
||||
$msg .= $save."0000".$save2.$msgEnd; # 0000 = nibble5 every?
|
||||
} elsif ($model eq "Techmar") {
|
||||
my $invert = $save;
|
||||
$invert =~ tr/01/10/; # invert byte 4 (byte5 = inverted byte 4)
|
||||
$msg .= $save.$invert.$msgEnd;
|
||||
} else {
|
||||
$msg .= $save.$msgEnd;
|
||||
}
|
||||
Log3 $name, 5, "$ioname: SD_UT_Set attr_model=$model msg=$msg cmd=$cmd value=$value (cmd loop)";
|
||||
}
|
||||
|
||||
@ -647,6 +830,8 @@ sub SD_UT_Parse($$) {
|
||||
my $sabotage; # MD_210R
|
||||
my $batteryState;
|
||||
my $state = "unknown";
|
||||
my $tristateCode;
|
||||
my $unknown_bits; # unknown bits to a reading
|
||||
|
||||
my $deletecache = $modules{SD_UT}{defptr}{deletecache};
|
||||
Log3 $iohash, 5, "$ioname: SD_UT device in delete cache = $deletecache" if($deletecache && $deletecache ne "-");
|
||||
@ -661,7 +846,7 @@ sub SD_UT_Parse($$) {
|
||||
|
||||
if ($hlen == 3) {
|
||||
### Westinghouse Buttons_five [P29] ###
|
||||
if(!$def && ($protocol == 29 || $protocol == 30)) {
|
||||
if (!$def && ($protocol == 29 || $protocol == 30)) {
|
||||
$deviceCode = substr($rawData,2,1);
|
||||
$devicedef = "Buttons_five " . $deviceCode;
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
@ -715,12 +900,24 @@ sub SD_UT_Parse($$) {
|
||||
$devicedef = "QUIGG_DMV " . $deviceCode;
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
}
|
||||
### Remote control TEDSEN_SKX1MD [P46] ###
|
||||
if (!$def && $protocol == 46) {
|
||||
$deviceCode = $rawData;
|
||||
$devicedef = "TEDSEN_SKX1MD " . $deviceCode;
|
||||
### TR_502MSV [P34] ###
|
||||
if (!$def && $protocol == 34) {
|
||||
$deviceCode = substr($rawData,0,2);
|
||||
$devicedef = "TR_502MSV " . $deviceCode;
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
}
|
||||
### Remote control Tedsen_SKX2xx [P46] ###
|
||||
if (!$def && $protocol == 46) {
|
||||
$deviceCode = SD_UT_bin2tristate(substr($bitData,0,14)); # only 14 bit from bitdata to tristate
|
||||
$devicedef = "Tedsen_SKX1xx " . $deviceCode if (!$def);
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef} if (!$def);
|
||||
$devicedef = "Tedsen_SKX2xx " . $deviceCode if (!$def);
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef} if (!$def);
|
||||
$devicedef = "Tedsen_SKX4xx " . $deviceCode if (!$def);
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef} if (!$def);
|
||||
$devicedef = "Tedsen_SKX6xx " . $deviceCode if (!$def);
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef} if (!$def);
|
||||
}
|
||||
### NEFF SF01_01319004 || BOSCH SF01_01319004_Typ2 [P86] ###
|
||||
if (!$def && $protocol == 86) {
|
||||
$deviceCode = substr($bitData,0,14) . "00";
|
||||
@ -777,10 +974,41 @@ sub SD_UT_Parse($$) {
|
||||
Log3 $iohash, 4, "$ioname: SD_UT device $model from category $deviceTyp with code $deviceCode are ready to decode";
|
||||
}
|
||||
|
||||
### Manax MX-RCS250 [P90] ###
|
||||
### Manax MX-RCS250 | mumbi [P90] ###
|
||||
if (!$def && $protocol == 90) {
|
||||
$deviceCode = substr($rawData,0,4);
|
||||
$devicedef = "Manax " . $deviceCode;
|
||||
my $button = substr($bitData,20,3);
|
||||
|
||||
foreach my $keys (sort keys %{$models{RC_10}{buttons}}) {
|
||||
if ($keys eq $button) {
|
||||
$devicedef = "RC_10 " . $deviceCode ."_".$models{RC_10}{buttons}{$keys};
|
||||
$button = $models{RC_10}{buttons}{$keys};
|
||||
last;
|
||||
}
|
||||
}
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
|
||||
$state = substr($bitData,23,1);
|
||||
$state = $state eq "1" ? "on" : "off" if ($button ne "all");
|
||||
if ($button eq "all") {
|
||||
$state = substr($bitData,20,4);
|
||||
if ($state eq "0100") {
|
||||
$state = "on";
|
||||
} elsif ($state eq "1000") {
|
||||
$state = "off";
|
||||
} else {
|
||||
$state = "unknown";
|
||||
$def = undef;
|
||||
}
|
||||
}
|
||||
Log3 $iohash, 4, "$ioname: SD_UT device - RC_10 devicedef: $devicedef";
|
||||
Log3 $iohash, 4, "$ioname: SD_UT device - RC_10 button: $button | state: $state";
|
||||
}
|
||||
|
||||
### ESTO KL_RF01 [P93] ###
|
||||
if (!$def && ($protocol == 93 || $protocol == 90)) {
|
||||
$deviceCode = substr($rawData,0,4);
|
||||
$devicedef = "KL_RF01 " . $deviceCode;
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
}
|
||||
}
|
||||
@ -796,6 +1024,24 @@ sub SD_UT_Parse($$) {
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef} if (!$def);
|
||||
}
|
||||
|
||||
if ($hlen == 13 && $protocol == 95) {
|
||||
### Remote control Techmar Garden Lights [P95] ###
|
||||
Log3 $iohash, 4, "$ioname: SD_UT_Parse device Techmar - check length and protocol number - OK";
|
||||
|
||||
my $check = hex(substr($rawData,8,2)) ^ hex(substr($rawData,10,2)); # byte 5 is inverted to byte 4
|
||||
if ($check != 255) {
|
||||
Log3 $iohash, 3, "$ioname: SD_UT_Parse device Techmar - check byte 4 and byte 5 - ERROR";
|
||||
return "";
|
||||
} else {
|
||||
Log3 $iohash, 4, "$ioname: SD_UT_Parse device Techmar - check byte 4 and byte 5 - OK";
|
||||
$deviceCode = substr($rawData,0,8);
|
||||
$devicedef = "Techmar " . $deviceCode;
|
||||
$def = $modules{SD_UT}{defptr}{$devicedef};
|
||||
$model = "Techmar";
|
||||
$name = "Techmar_" . $deviceCode;
|
||||
}
|
||||
}
|
||||
|
||||
if (($hlen == 15 || $hlen == 16) && !$def && $protocol == 76) {
|
||||
### Remote LED_XM21_0 [P76] ###
|
||||
$deviceCode = substr($rawData,0,14);
|
||||
@ -823,7 +1069,7 @@ sub SD_UT_Parse($$) {
|
||||
$deviceCode = undef; # reset
|
||||
|
||||
$model = AttrVal($name, "model", "unknown");
|
||||
Log3 $name, 5, "$ioname: SD_UT_Parse devicedef=$devicedef attr_model=$model protocol=$protocol state= (before check)";
|
||||
Log3 $name, 5, "$ioname: SD_UT_Parse devicedef=$devicedef attr_model=$model protocol=$protocol state=$state (before check)";
|
||||
|
||||
############ Westinghouse_Delancey RH787T ############ Protocol 83 or 30 ############
|
||||
if ($model eq "RH787T" && ($protocol == 83 || $protocol == 30)) {
|
||||
@ -897,9 +1143,11 @@ sub SD_UT_Parse($$) {
|
||||
$usersystem = "Unitec 47125" if (oct("0b".$zone) == 7);
|
||||
}
|
||||
Log3 $name, 5, "$ioname: SD_UT_Parse devicedef=$devicedef attr_model=$model protocol=$protocol deviceCode=$deviceCode state=$state Zone=$zone";
|
||||
############ TEDSEN_SKX1MD ############ Protocol 46 ############
|
||||
} elsif ($model eq "TEDSEN_SKX1MD" && $protocol == 46) {
|
||||
$state = "receive";
|
||||
############ Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx ############ Protocol 46 ############
|
||||
} elsif (($model eq "Tedsen_SKX1xx" || $model eq "Tedsen_SKX2xx" || $model eq "Tedsen_SKX4xx" || $model eq "Tedsen_SKX6xx") && $protocol == 46) {
|
||||
$state = substr($bitData,14,4);
|
||||
$tristateCode = SD_UT_bin2tristate(substr($bitData,0,-2)); # only 18 bit from bitdata
|
||||
Log3 $iohash, 4, "$ioname: SD_UT_Parse $model - converted to tristate $tristateCode";
|
||||
############ SA_434_1_mini ############ Protocol 81 ############
|
||||
} elsif ($model eq "SA_434_1_mini" && ($protocol == 81 || $protocol == 83 || $protocol == 86)) {
|
||||
$state = "receive";
|
||||
@ -907,6 +1155,11 @@ sub SD_UT_Parse($$) {
|
||||
} elsif ($model eq "QUIGG_DMV" && $protocol == 34) {
|
||||
$state = substr($bitData,12,8);
|
||||
$deviceCode = substr($bitData,0,12);
|
||||
############ TR_502MSV ############ Protocol 34 ############
|
||||
} elsif ($model eq "TR_502MSV" && $protocol == 34) {
|
||||
$state = substr($bitData,12,8);
|
||||
$deviceCode = substr($bitData,0,8);
|
||||
$unknown_bits = substr($bitData,8,4);
|
||||
############ Novy_840029 ############ Protocol 86 ############
|
||||
} elsif ($model eq "Novy_840029" && ($protocol == 86 || $protocol == 81)) {
|
||||
if ($hlen == 3) { # 12 Bit [3]
|
||||
@ -974,18 +1227,44 @@ sub SD_UT_Parse($$) {
|
||||
$state = "warning";
|
||||
}
|
||||
}
|
||||
} elsif ($model eq "Manax" && $protocol == 90) {
|
||||
############ Manax ############ Protocol 90 ############
|
||||
## Check fixed bits
|
||||
my $unknown1 = substr($bitData,16,4); # ?
|
||||
my $unknown2 = substr($bitData,24,12); # ?
|
||||
} elsif ($model eq "RC_10" && $protocol == 90) {
|
||||
############ Manax | mumbi ############ Protocol 90 ############
|
||||
## Check fixed bits ## Workaround to send ##
|
||||
my $nibble4 = substr($bitData,16,4); # evey 0000 ?
|
||||
my $nibble5 = substr($bitData,20,4); # Button and State
|
||||
my $nibble6to8 = substr($bitData,24,9); # unknown crc ? | SIGNALduino added to full nibble
|
||||
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate($hash, "x_n4" , $nibble4, 0);
|
||||
readingsBulkUpdate($hash, "x_n5-8_on" , $nibble5.$nibble6to8, 0) if ($state eq "on");
|
||||
readingsBulkUpdate($hash, "x_n5-8_off" , $nibble5.$nibble6to8, 0) if ($state eq "off");
|
||||
readingsEndUpdate($hash, 1);
|
||||
|
||||
$state = substr($bitData,20,4);
|
||||
$deviceCode = substr($bitData,0,16);
|
||||
} elsif ($model eq "KL_RF01" && $protocol == 93) {
|
||||
############ ESTO KL_RF01 ############ Protocol 90 ############
|
||||
## Check fixed bits
|
||||
my $unknown1 = substr($bitData,20,4); # ?
|
||||
my $unknown2 = substr($bitData,28,4); # ?
|
||||
|
||||
$state = substr($bitData,16,4);
|
||||
my $state_invers = substr($bitData,24,4);
|
||||
$deviceCode = substr($bitData,0,16);
|
||||
$state_invers =~ tr/01/10/; # invert message
|
||||
if ($state eq $state_invers) {
|
||||
Log3 $name, 4, "$ioname: SD_UT_Parse - check $model OK, nibble4 ($state) = nibble6 ($state_invers)";
|
||||
} else {
|
||||
Log3 $name, 3, "$ioname: SD_UT_Parse - check $model FAILED, $state!=$state_invers, ERROR, nibble4 ($state) NOT nibble6 ($state_invers)!";
|
||||
return "";
|
||||
}
|
||||
### Remote control Techmar Garden Lights [P95] ###
|
||||
} elsif ($model eq "Techmar" && $protocol == 95) {
|
||||
$state = substr($bitData,32,8);
|
||||
$deviceCode = substr($rawData,0,8);
|
||||
############ unknown ############
|
||||
} else {
|
||||
readingsSingleUpdate($hash, "state", "???", 0);
|
||||
readingsSingleUpdate($hash, "unknownMSG", $bitData." (protocol: ".$protocol.")", 1);
|
||||
readingsSingleUpdate($hash, "unknownMSG", $bitData." (protocol: ".$protocol.")", 1) if (AttrVal($name, "model", "unknown") eq "unknown");
|
||||
Log3 $name, 3, "$ioname: SD_UT Please define your model of Device $name in Attributes!" if (AttrVal($name, "model", "unknown") eq "unknown");
|
||||
Log3 $name, 5, "$ioname: SD_UT_Parse devicedef=$devicedef attr_model=$model protocol=$protocol rawData=$rawData, bitData=$bitData";
|
||||
}
|
||||
@ -1006,6 +1285,7 @@ sub SD_UT_Parse($$) {
|
||||
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate($hash, "deviceCode", $deviceCode, 0) if (defined($deviceCode) && $models{$model}{Typ} eq "remote");
|
||||
readingsBulkUpdate($hash, "unknown_bits", $unknown_bits, 0) if (defined($unknown_bits) && $models{$model}{Typ} eq "remote");
|
||||
readingsBulkUpdate($hash, "contact", $contact) if (defined($contact) && ($model eq "MD_210R" || $model eq "MD_2018R" || $model eq "MD_2003R"));
|
||||
readingsBulkUpdate($hash, "batteryState", $batteryState) if (defined($batteryState));
|
||||
readingsBulkUpdate($hash, "deviceTyp", $deviceTyp,0) if (defined($deviceTyp) && ($model eq "MD_210R" || $model eq "MD_2018R" || $model eq "MD_2003R"));
|
||||
@ -1016,6 +1296,7 @@ sub SD_UT_Parse($$) {
|
||||
readingsBulkUpdate($hash, "Usersystem", $usersystem, 0) if (defined($zoneRead) && $model eq "Unitec_47031");
|
||||
readingsBulkUpdate($hash, "LastAction", "receive", 0) if (defined($state) && $models{$model}{Typ} eq "remote" && ($model ne "SA_434_1_mini" || $model ne "HS1_868_BS"));
|
||||
readingsBulkUpdate($hash, "state", $state) if (defined($state) && $state ne "unknown");
|
||||
readingsBulkUpdate($hash, "tristateCode", $tristateCode) if (defined($tristateCode));
|
||||
readingsEndUpdate($hash, 1); # Notify is done by Dispatch
|
||||
|
||||
return $name;
|
||||
@ -1080,9 +1361,9 @@ sub SD_UT_Attr(@) {
|
||||
} elsif ($attrName eq "model" && $attrValue eq "SA_434_1_mini") {
|
||||
$deviceCode = sprintf("%03X", oct( "0b$bitData" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ TEDSEN_SKX1MD ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "TEDSEN_SKX1MD") {
|
||||
$deviceCode = sprintf("%05X", oct( "0b$bitData" ) );
|
||||
############ Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx ############
|
||||
} elsif ($attrName eq "model" && ($attrValue eq "Tedsen_SKX1xx" || $attrValue eq "Tedsen_SKX2xx" || $attrValue eq "Tedsen_SKX4xx" || $attrValue eq "Tedsen_SKX6xx")) {
|
||||
$deviceCode = SD_UT_bin2tristate(substr($bitData,0,14)); # only 14 bit from bitdata to tristate
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ Unitec_47031 ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "Unitec_47031") {
|
||||
@ -1094,6 +1375,11 @@ sub SD_UT_Attr(@) {
|
||||
$deviceCode = substr($bitData,0,12);
|
||||
$deviceCode = sprintf("%03X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ TR_502MSV ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "TR_502MSV") {
|
||||
$deviceCode = substr($bitData,0,8);
|
||||
$deviceCode = sprintf("%02X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ Novy_840029 ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "Novy_840029") {
|
||||
$deviceCode = substr($bitData,0,8);
|
||||
@ -1104,7 +1390,7 @@ sub SD_UT_Attr(@) {
|
||||
$deviceCode = substr($bitData,0,8);
|
||||
$deviceCode = sprintf("%X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ NEFF SF01_01319004 || BOSCH SF01_01319004_Typ2 ############
|
||||
############ NEFF SF01_01319004 || BOSCH SF01_01319004_Typ2 || Refsta Topdraft (Tecnowind) ############
|
||||
} elsif ($attrName eq "model" && ($attrValue eq "SF01_01319004" || $attrValue eq "SF01_01319004_Typ2")) {
|
||||
$deviceCode = substr($bitData,0,14) . "00";
|
||||
$deviceCode = sprintf("%04X", oct( "0b$deviceCode" ) );
|
||||
@ -1133,10 +1419,29 @@ sub SD_UT_Attr(@) {
|
||||
$deviceCode = substr($bitData,0,28);
|
||||
$deviceCode = sprintf("%07X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ Manax ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "Manax") {
|
||||
############ Manax | mumbi ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "RC_10") {
|
||||
$deviceCode = substr($bitData,0,16);
|
||||
$deviceCode = sprintf("%04X", oct( "0b$deviceCode" ) );
|
||||
|
||||
my $button = substr($bitData,20,3);
|
||||
foreach my $keys (sort keys %{$models{RC_10}{buttons}}) {
|
||||
if ($keys eq $button) {
|
||||
$deviceCode = $deviceCode."_".$models{RC_10}{buttons}{$keys};
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ ESTO KL_RF01 ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "KL_RF01") {
|
||||
$deviceCode = substr($bitData,0,16);
|
||||
$deviceCode = sprintf("%04X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ Techmar Garden Lights ############
|
||||
} elsif ($attrName eq "model" && $attrValue eq "Techmar") {
|
||||
$deviceCode = substr($bitData,0,32);
|
||||
$deviceCode = sprintf("%08X", oct( "0b$deviceCode" ) );
|
||||
$devicename = $devicemodel."_".$deviceCode;
|
||||
############ unknown ############
|
||||
} else {
|
||||
@ -1164,9 +1469,7 @@ sub SD_UT_Attr(@) {
|
||||
}
|
||||
|
||||
if ($cmd eq "del" && $attrName eq "model") { ### delete readings
|
||||
|
||||
for my $readingname (qw/Button deviceCode LastAction state unknownMSG/)
|
||||
{
|
||||
for my $readingname (qw/Button deviceCode LastAction state unknownMSG/) {
|
||||
readingsDelete($hash,$readingname);
|
||||
}
|
||||
}
|
||||
@ -1179,6 +1482,36 @@ sub SD_UT_Attr(@) {
|
||||
return undef;
|
||||
}
|
||||
|
||||
###################################
|
||||
sub SD_UT_bin2tristate($) {
|
||||
my $bitData = shift;
|
||||
my %bintotristate=(
|
||||
"00" => "0",
|
||||
"10" => "F",
|
||||
"11" => "1"
|
||||
);
|
||||
my $tscode;
|
||||
for (my $n=0; $n < length($bitData); $n = $n + 2) {
|
||||
$tscode = $tscode . $bintotristate{substr($bitData,$n,2)};
|
||||
}
|
||||
return $tscode;
|
||||
}
|
||||
|
||||
###################################
|
||||
sub SD_UT_tristate2bin($) {
|
||||
my $tsData = shift;
|
||||
my %tristatetobin=(
|
||||
"0" => "00",
|
||||
"F" => "10",
|
||||
"1" => "11"
|
||||
);
|
||||
my $bitData;
|
||||
for (my $n=0; $n < length($tsData); $n++) {
|
||||
$bitData = $bitData . $tristatetobin{substr($tsData,$n,1)};
|
||||
}
|
||||
return $bitData;
|
||||
}
|
||||
|
||||
###################################
|
||||
|
||||
1;
|
||||
@ -1196,20 +1529,32 @@ sub SD_UT_Attr(@) {
|
||||
<i><u><b>Note:</b></u></i> As soon as the attribute model of a defined device is changed or deleted, the module re-creates a device of the selected type, and when a new message is run, the current device is deleted.
|
||||
Devices of <u>the same or different type with the same deviceCode will result in errors</u>. PLEASE use different <code>deviceCode</code>.<br><br>
|
||||
<u>The following devices are supported:</u><br>
|
||||
<ul> - Atlantic Security sensors <small>(module model: MD-2003R, MD-2018R,MD-210R | Protokoll 91|91.1)</small></ul>
|
||||
<ul> - Atlantic Security sensors <small>(module model: MD-2003R, MD-2018R,MD-210R | Protokoll 91|91.1)</small><br>
|
||||
<code> note: the model MD_230R (water) is recognized as MD-2018R due to the same hardware ID!</code></ul>
|
||||
<ul> - BOSCH ceiling fan <small>(module model: SF01_01319004_Typ2 | protocol 86)</small></ul>
|
||||
<ul> - CAME swing gate drive <small>(module model: CAME_TOP_432EV | protocol 86)</small></ul>
|
||||
<ul> - ChiliTec LED X-Mas light <small>(module model: Chilitec_22640 | protocol 14)</small></ul>
|
||||
<ul> - ESTO ceiling lamp <small>(model: KL_RF01 | protocol 93)</small></ul>
|
||||
<ul> - Hoermann HS1-868-BS <small>(module model: HS1_868_BS | protocol 69)</small></ul>
|
||||
<ul> - Hoermann HSM4 <small>(module model: HSM4 | protocol 69)</small></ul>
|
||||
<ul> - Krinner LUMIX X-Mas light string <small>(module model: Krinner_LUMIX | protocol 92)</small></ul>
|
||||
<ul> - LED_XM21_0 X-Mas light string <small>(module model: LED_XM21_0 | protocol 76)</small></ul>
|
||||
<ul> - Manax RCS250 <b>ONLY RECEIVE!</b> <small>(module model: Manax | protocol 90)</small></ul>
|
||||
<ul> - NEFF kitchen hood <small>(module model: SF01_01319004 | protocol 86)</small></ul>
|
||||
<ul> - LIBRA TR-502MSV (LIDL) <small>(module model: TR_502MSV | protocol 34)</small></ul>
|
||||
<ul> - Manax RCS250 <small>(module model: RC_10 | protocol 90)</small></ul>
|
||||
<ul> - mumbi AFS300-s (remote control RC-10 | random code wireless switch RCS-22GS) <small>(module model: RC_10 | protocol 90)</small></ul>
|
||||
<ul> - NEFF or Refsta Topdraft (Tecnowind) kitchen hood <small>(module model: SF01_01319004 | protocol 86)</small></ul>
|
||||
<ul> - Novy Pureline 6830 kitchen hood <small>(module model: Novy_840029 | protocol 86)</small></ul>
|
||||
<ul> - QUIGG DMV-7000 <small>(module model: QUIGG_DMV | protocol 34)</small></ul>
|
||||
<ul> - Remote control SA-434-1 mini 923301 <small>(module model: SA_434_1_mini | protocol 81)</small></ul>
|
||||
<ul> - Remote control TEDSEN SKX1MD <small>(module model: TEDSEN_SKX1MD | protocol 46)</small></ul>
|
||||
<ul> - Remote control for Techmar Garden Lights <small>(Modulmodel: Techmar | Protokoll 95)</small></ul>
|
||||
<ul> - Tedsen Teletaster <small>(protocol 46)</small>:
|
||||
<small>
|
||||
<ul>SKX1xx, 1 button - module model: Tedsen_SKX1xx</ul>
|
||||
<ul>SKX2xx, 2 button (GEIGER_GF0x01) - module model: Tedsen_SKX2xx</ul>
|
||||
<ul>SKX4xx, 4 button (GEIGER_GF0x02) - module model: Tedsen_SKX4xx</ul>
|
||||
<ul>SKX6xx, 6 button (GEIGER_GF0x03) - module model: Tedsen_SKX6xx</ul>
|
||||
</small>
|
||||
</ul>
|
||||
<ul> - unitec remote door reed switch 47031 (Unitec 47121 | Unitec 47125 | Friedland) <small>(module model: Unitec_47031 | protocol 30)</small></ul>
|
||||
<ul> - Westinghouse Delancey ceiling fan (remote, 5 buttons without SET) <small>(module model: Buttons_five | protocol 29)</small></ul>
|
||||
<ul> - Westinghouse Delancey ceiling fan (remote, 9 buttons with SET) <small>(module model: RH787T | protocol 83)</small></ul>
|
||||
@ -1224,7 +1569,7 @@ sub SD_UT_Attr(@) {
|
||||
</ul> </ul><br><br>
|
||||
<b>Set</b><br>
|
||||
<ul>Different transmission commands are available.</ul><br>
|
||||
<ul><u>BOSCH (SF01_01319004_Typ2) | NEFF (SF01_01319004)</u></ul>
|
||||
<ul><u>BOSCH (SF01_01319004_Typ2) | NEFF / Refsta Topdraft (SF01_01319004)</u></ul>
|
||||
<ul><a name="delay"></a>
|
||||
<li>delay<br>
|
||||
button one on the remote</li>
|
||||
@ -1272,6 +1617,44 @@ sub SD_UT_Attr(@) {
|
||||
button + on the remote</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>ESTO KL_RF01</u></ul>
|
||||
<ul><a name="on"></a>
|
||||
<li>on<br>
|
||||
button ON on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="off"></a>
|
||||
<li>off<br>
|
||||
button OFF on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="alternating_full_luminosity"></a>
|
||||
<li>alternating_full_luminosity<br>
|
||||
button alternating_full_luminosity on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="full_brightness"></a>
|
||||
<li>full_brightness<br>
|
||||
button full_brightness on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="light_color_warm_white"></a>
|
||||
<li>light_color_warm_white<br>
|
||||
button light_color_warm_white on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="light_color_cold_white"></a>
|
||||
<li>light_color_cold_white<br>
|
||||
button light_color_cold_white on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="dimup"></a>
|
||||
<li>dimup<br>
|
||||
button DIMUP on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="dimdown"></a>
|
||||
<li>dimdown<br>
|
||||
button DIMDOWN on the remote</li>
|
||||
</ul>
|
||||
<ul><a name="night_mode"></a>
|
||||
<li>night_mode<br>
|
||||
button moon on the remote</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>LED_XM21_0 light string</u></ul>
|
||||
<ul><a name="on"></a>
|
||||
<li>on<br>
|
||||
@ -1282,7 +1665,7 @@ sub SD_UT_Attr(@) {
|
||||
button O on the remote</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Remote control SA-434-1 mini 923301 | Hoermann HS1-868-BS | TEDSEN_SKX1MD</u></ul>
|
||||
<ul><u>Remote control SA-434-1 mini 923301 | Hoermann HS1-868-BS | Tedsen_SKX1/2/4/6xx</u></ul>
|
||||
<ul>
|
||||
<li>send<br>
|
||||
button <small>(Always send the same, even if the user sends another set command via console.)</small></li>
|
||||
@ -1306,7 +1689,15 @@ sub SD_UT_Attr(@) {
|
||||
Button four on the remote</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Westinghouse Deckenventilator (remote with 5 buttons and without SET)</u></ul>
|
||||
<ul><u>Techmar Garden Lights (remote control with 10 buttons)</u></ul>
|
||||
<ul><li>Group_1 ... Group_9<br>
|
||||
Group 1 to 9, on / off</li>
|
||||
</ul>
|
||||
<ul><li>All_on / All_off<br>
|
||||
All Groups on / off</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Westinghouse ceiling fan (remote with 5 buttons and without SET)</u></ul>
|
||||
<ul><a name="1_fan_low_speed"></a>
|
||||
<li>1_fan_low_speed<br>
|
||||
Button LOW on the remote</li>
|
||||
@ -1381,13 +1772,13 @@ sub SD_UT_Attr(@) {
|
||||
<ul><a name="model"></a>
|
||||
<li>model<br>
|
||||
The attribute indicates the model type of your device.<br>
|
||||
(unknown, Buttons_five, CAME_TOP_432EV, Chilitec_22640, HS1-868-BS, HSM4, QUIGG_DMV, LED_XM21_0, Manax, Novy_840029, RH787T, SA_434_1_mini, SF01_01319004, TEDSEN_SKX1MD, Unitec_47031)</li>
|
||||
(unknown, Buttons_five, CAME_TOP_432EV, Chilitec_22640, KL_RF01, HS1-868-BS, HSM4, QUIGG_DMV, LED_XM21_0, Novy_840029, RC_10, RH787T, SA_434_1_mini, SF01_01319004, Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx, TR_502MSV, Unitec_47031)</li>
|
||||
</ul><br>
|
||||
<ul><li><a name="repeats">repeats</a><br>
|
||||
This attribute can be used to adjust how many repetitions are sent. Default is 5.</li></ul><br>
|
||||
|
||||
<b><i>Generated readings of the models</i></b><br>
|
||||
<ul><u>Buttons_five | CAME_TOP_432EV | Chilitec_22640 | HSM4 | LED_XM21_0 | Manax | Novy_840029 | QUIGG_DMV | SF01_01319004 | SF01_01319004_Typ2 | RH787T</u><br>
|
||||
<ul><u>Buttons_five | CAME_TOP_432EV | Chilitec_22640 | HSM4 | KL_RF01 | LED_XM21_0 | Novy_840029 | QUIGG_DMV | RC_10 | RH787T | SF01_01319004 | SF01_01319004_Typ2 | TR_502MSV</u><br>
|
||||
<li>deviceCode<br>
|
||||
Device code of the system</li>
|
||||
<li>LastAction<br>
|
||||
@ -1395,7 +1786,7 @@ sub SD_UT_Attr(@) {
|
||||
<li>state<br>
|
||||
Last executed keystroke of the remote control</li></ul><br>
|
||||
|
||||
<ul><u>MD_2003R (gas) | MD_2018R (vibration) | MD_210R (door/windows switch)</u><br>
|
||||
<ul><u>MD_2003R (gas) | MD_2018R (vibration) | MD_210R (door/windows switch) | MD_230R (water)</u><br>
|
||||
<li>contact<br>
|
||||
Status of the internal alarm contact</li>
|
||||
<li>deviceTyp<br>
|
||||
@ -1405,7 +1796,7 @@ sub SD_UT_Attr(@) {
|
||||
<li>state<br>
|
||||
State of the device</li></ul><br>
|
||||
|
||||
<ul><u>HS1-868-BS | SA_434_1_mini | TEDSEN_SKX1MD</u><br>
|
||||
<ul><u>HS1-868-BS | SA_434_1_mini | Tedsen_SKX1xx | Tedsen_SKX2xx | Tedsen_SKX4xx | Tedsen_SKX6xx</u><br>
|
||||
<li>LastAction<br>
|
||||
Last executed action of FHEM. <code>send</code> for command send.</li>
|
||||
<li>state<br>
|
||||
@ -1434,20 +1825,32 @@ sub SD_UT_Attr(@) {
|
||||
<i><u><b>Hinweis:</b></u></i> Sobald das Attribut model eines definieren Gerätes verstellt oder gelöscht wird, so legt das Modul ein Gerät des gewählten Typs neu an und mit Durchlauf einer neuen Nachricht wird das aktuelle Gerät gelöscht.
|
||||
Das betreiben von Geräten des <u>gleichen oder unterschiedliches Typs mit gleichem <code>deviceCode</code> führt zu Fehlern</u>. BITTE achte stets auf einen unterschiedlichen <code>deviceCode</code>.<br><br>
|
||||
<u>Es werden bisher folgende Geräte unterstützt:</u><br>
|
||||
<ul> - Atlantic Security Sensoren <small>(Modulmodel: MD-2003R, MD-2018R,MD-210R | Protokoll 91|91.1)</small></ul>
|
||||
<ul> - Atlantic Security Sensoren <small>(Modulmodel: MD-2003R, MD-2018R,MD-210R | Protokoll 91|91.1)</small><br>
|
||||
<code> Hinweis: Das Model MD_230R (water) wird aufgrund von gleicher Hardwarekennung als MD-2018R erkannt!</code></ul>
|
||||
<ul> - BOSCH Deckenlüfter <small>(Modulmodel: SF01_01319004_Typ2 | Protokoll 86)</small></ul>
|
||||
<ul> - CAME Drehtor Antrieb <small>(Modulmodel: CAME_TOP_432EV | Protokoll 86)</small></ul>
|
||||
<ul> - ChiliTec LED Christbaumkerzen <small>(Modulmodel: Chilitec_22640 | Protokoll 14)</small></ul>
|
||||
<ul> - ESTO Deckenlampe <small>(Modulmodel: KL_RF01 | Protokoll 93)</small></ul>
|
||||
<ul> - Hoermann HS1-868-BS <small>(Modulmodel: HS1_868_BS | Protokoll 69)</small></ul>
|
||||
<ul> - Hoermann HSM4 <small>(Modulmodel: HSM4 | Protokoll 69)</small></ul>
|
||||
<ul> - Krinner LUMIX Christbaumkerzen <small>(Modulmodel: Krinner_LUMIX | Protokol 92)</small></ul>
|
||||
<ul> - LED_XM21_0 Christbaumkerzen <small>(Modulmodel: LED_XM21_0 | Protokol 76)</small></ul>
|
||||
<ul> - Manax RCS250 <b>NUR EMPFANG!</b> <small>(Modulmodel: Manax | Protokoll 90)</small></ul>
|
||||
<ul> - NEFF Dunstabzugshaube <small>(Modulmodel: SF01_01319004 | Protokoll 86)</small></ul>
|
||||
<ul> - LIBRA TR-502MSV (LIDL) <small>(Modulmodel: TR_502MSV | Protokol 34)</small></ul>
|
||||
<ul> - Manax RCS250 <small>(Modulmodel: RC_10 | Protokoll 90)</small></ul>
|
||||
<ul> - mumbi AFS300-s (remote control RC-10 | random code wireless switch RCS-22GS) <small>(Modulmodel: RC_10 | Protokoll 90)</small></ul>
|
||||
<ul> - NEFF oder Refsta Topdraft (Tecnowind) Dunstabzugshaube <small>(Modulmodel: SF01_01319004 | Protokoll 86)</small></ul>
|
||||
<ul> - Novy Pureline 6830 Dunstabzugshaube <small>(Modulmodel: Novy_840029 | Protokoll 86)</small></ul>
|
||||
<ul> - QUIGG DMV-7000 <small>(Modulmodel: QUIGG_DMV | Protokoll 34)</small></ul>
|
||||
<ul> - Remote control SA-434-1 mini 923301 <small>(Modulmodel: SA_434_1_mini | Protokoll 81)</small></ul>
|
||||
<ul> - Remote control TEDSEN_SKX1MD <small>(Modulmodel: TEDSEN_SKX1MD | Protokoll 46)</small></ul>
|
||||
<ul> - Techmar Garden Lights <small>(Modulmodel: Techmar | Protokoll 95)</small></ul>
|
||||
<ul> - Tedsen Teletaster <small>(Protokoll 46)</small>:
|
||||
<small>
|
||||
<ul>SKX1xx, 1 Taste - Modulmodel: Tedsen_SKX1xx</ul>
|
||||
<ul>SKX2xx, 2 Tasten (GEIGER_GF0x01) - Modulmodel: Tedsen_SKX2xx</ul>
|
||||
<ul>SKX4xx, 4 Tasten (GEIGER_GF0x02) - Modulmodel: Tedsen_SKX4xx</ul>
|
||||
<ul>SKX6xx, 6 Tasten (GEIGER_GF0x03) - Modulmodel: Tedsen_SKX6xx</ul>
|
||||
</small>
|
||||
</ul>
|
||||
<ul> - unitec remote door reed switch 47031 (Unitec 47121 | Unitec 47125 | Friedland) <small>(Modulmodel: Unitec_47031 | Protokoll 30)</small></ul>
|
||||
<ul> - Westinghouse Deckenventilator (Fernbedienung, 5 Tasten ohne SET) <small>(Modulmodel: Buttons_five | Protokoll 29)</small></ul>
|
||||
<ul> - Westinghouse Delancey Deckenventilator (Fernbedienung, 9 Tasten mit SET) <small>(Modulmodel: RH787T | Protokoll 83)</small></ul>
|
||||
@ -1464,7 +1867,7 @@ sub SD_UT_Attr(@) {
|
||||
|
||||
<b>Set</b><br>
|
||||
<ul>Je nach Gerät sind unterschiedliche Sendebefehle verfügbar.</ul><br>
|
||||
<ul><u>BOSCH (SF01_01319004_Typ2) | NEFF (SF01_01319004)</u></ul>
|
||||
<ul><u>BOSCH (SF01_01319004_Typ2) | NEFF / Refsta Topdraft (SF01_01319004)</u></ul>
|
||||
<ul><a name="delay"></a>
|
||||
<li>delay<br>
|
||||
Taste 1 auf der Fernbedienung</li>
|
||||
@ -1512,6 +1915,44 @@ sub SD_UT_Attr(@) {
|
||||
Taste + auf der Fernbedienung</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>ESTO KL_RF01</u></ul>
|
||||
<ul><a name="on"></a>
|
||||
<li>on<br>
|
||||
Taste ON auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="off"></a>
|
||||
<li>off<br>
|
||||
Taste OFF auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="alternating_full_luminosity"></a>
|
||||
<li>alternating_full_luminosity<br>
|
||||
Taste ABWECHSELNDE_LEUCHTKRAFT auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="full_brightness"></a>
|
||||
<li>full_brightness<br>
|
||||
Taste VOLLE_HELLIGKEIT auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="light_color_warm_white"></a>
|
||||
<li>light_color_warm_white<br>
|
||||
Taste LICHTFARBE_WARMWEIß auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="light_color_cold_white"></a>
|
||||
<li>light_color_cold_white<br>
|
||||
Taste LICHTFARBE_KALTWEIß auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="dimup"></a>
|
||||
<li>dimup<br>
|
||||
Taste DIMUP auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="dimdown"></a>
|
||||
<li>dimdown<br>
|
||||
Taste DIMDOWN auf der Fernbedienung</li>
|
||||
</ul>
|
||||
<ul><a name="night_mode"></a>
|
||||
<li>night_mode<br>
|
||||
Taste MOND auf der Fernbedienung</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>LED_XM21_0 Christbaumkerzen</u></ul>
|
||||
<ul><a name="on"></a>
|
||||
<li>on<br>
|
||||
@ -1522,7 +1963,7 @@ sub SD_UT_Attr(@) {
|
||||
Taste O auf der Fernbedienung</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Remote control SA-434-1 mini 923301 | Hoermann HS1-868-BS | TEDSEN_SKX1MD</u></ul>
|
||||
<ul><u>Remote control SA-434-1 mini 923301 | Hoermann HS1-868-BS | Tedsen_SKX1xx</u></ul>
|
||||
<ul>
|
||||
<li>send<br>
|
||||
Knopfdruck <small>(Sendet immer das selbe, auch wenn der Benutzer einen anderen Set-Befehl via Konsole sendet.)</small></li>
|
||||
@ -1546,6 +1987,14 @@ sub SD_UT_Attr(@) {
|
||||
Taste 4 auf der Fernbedienung</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Techmar Garden Lights (Fernbedienung mit 10 Tasten)</u></ul>
|
||||
<ul><li>Group_1 ... Group_9<br>
|
||||
Gruppe 1 bis 9, jeweils ein und aus</li>
|
||||
</ul>
|
||||
<ul><li>All_on / All_off<br>
|
||||
Alle Gruppen ein / aus</li>
|
||||
</ul><br>
|
||||
|
||||
<ul><u>Westinghouse Deckenventilator (Fernbedienung mit 5 Tasten)</u></ul>
|
||||
<ul><a name="1_fan_low_speed"></a>
|
||||
<li>1_fan_low_speed<br>
|
||||
@ -1620,13 +2069,13 @@ sub SD_UT_Attr(@) {
|
||||
<ul><li><a href="#IODev">IODev</a></li></ul><br>
|
||||
<ul><li><a name="model">model</a><br>
|
||||
Das Attribut bezeichnet den Modelltyp Ihres Gerätes.<br>
|
||||
(unknown, Buttons_five, CAME_TOP_432EV, Chilitec_22640, HS1-868-BS, HSM4, QUIGG_DMV, RH787T, LED_XM21_0, Manax, Novy_840029, SA_434_1_mini, SF01_01319004, TEDSEN_SKX1MD, Unitec_47031)</li><a name=" "></a>
|
||||
(unknown, Buttons_five, CAME_TOP_432EV, Chilitec_22640, KL_RF01, HS1-868-BS, HSM4, QUIGG_DMV, RC_10, RH787T, LED_XM21_0, Novy_840029, SA_434_1_mini, SF01_01319004, Tedsen_SKX1xx, Tedsen_SKX2xx, Tedsen_SKX4xx, Tedsen_SKX6xx, TR_502MSV, Unitec_47031)</li><a name=" "></a>
|
||||
</ul><br>
|
||||
<ul><li><a name="repeats">repeats</a><br>
|
||||
Mit diesem Attribut kann angepasst werden, wie viele Wiederholungen sendet werden. Standard ist 5.</li></ul><br>
|
||||
|
||||
<b><i>Generierte Readings der Modelle</i></b><br>
|
||||
<ul><u>Buttons_five | CAME_TOP_432EV | Chilitec_22640 | HSM4 | LED_XM21_0 | Manax | Novy_840029 | QUIGG_DMV | SF01_01319004 | SF01_01319004_Typ2 | RH787T</u><br>
|
||||
<ul><u>Buttons_five | CAME_TOP_432EV | Chilitec_22640 | HSM4 | KL_RF01 | LED_XM21_0 | Novy_840029 | QUIGG_DMV | RC_10 | RH787T | SF01_01319004 | SF01_01319004_Typ2 | TR_502MSV</u><br>
|
||||
<li>deviceCode<br>
|
||||
GeräteCode des Systemes</li>
|
||||
<li>LastAction<br>
|
||||
@ -1634,7 +2083,7 @@ sub SD_UT_Attr(@) {
|
||||
<li>state<br>
|
||||
Zuletzt ausgeführter Tastendruck der Fernbedienung</li></ul><br>
|
||||
|
||||
<ul><u>MD_2003R (gas) | MD_2018R (vibration) | MD_210R (door/windows switch)</u><br>
|
||||
<ul><u>MD_2003R (gas) | MD_2018R (vibration) | MD_210R (door/windows switch) | MD_230R (water)</u><br>
|
||||
<li>contact<br>
|
||||
Zustand des internen Alarmkontaktes.</li>
|
||||
<li>deviceTyp<br>
|
||||
@ -1644,7 +2093,7 @@ sub SD_UT_Attr(@) {
|
||||
<li>state<br>
|
||||
Zustand des Gerätes.</li></ul><br>
|
||||
|
||||
<ul><u>HS1-868-BS | SA_434_1_mini | TEDSEN_SKX1MD</u><br>
|
||||
<ul><u>HS1-868-BS | SA_434_1_mini | Tedsen_SKX1xx | Tedsen_SKX2xx | Tedsen_SKX4xx | Tedsen_SKX6xx</u><br>
|
||||
<li>LastAction<br>
|
||||
Zuletzt ausgeführte Aktion aus FHEM. <code>send</code> für Kommando gesendet.</li>
|
||||
<li>state<br>
|
||||
|
Loading…
x
Reference in New Issue
Block a user