Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new protocol 98 for wireless door bell GEA-028DB #839

Merged
merged 20 commits into from
Apr 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGED
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
2020-04-20 - Merge branch 'dev-r34' into dev-r34_GEA-028DB
2020-04-20 - new protocol 98 for wireless door bell GEA-028DB

2020-04-14 - 00_SIGNALduino.pm

Changed stringrefs to coderefs
Expand Down
2 changes: 1 addition & 1 deletion FHEM/00_SIGNALduino.pm
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ my %matchListSIGNALduino = (
"24:FS20" => "^81..(04|0c)..0101a001",
"25:CUL_EM" => "^E0.................",
"26:Fernotron" => '^P82#.*',
"27:SD_BELL" => '^P(?:15|32|41|42|57|79|96)#.*',
"27:SD_BELL" => '^P(?:15|32|41|42|57|79|96|98)#.*',
"28:SD_Keeloq" => '^P(?:87|88)#.*',
"29:SD_GT" => '^P49#[A-Fa-f0-9]+',
"X:SIGNALduino_un" => '^[u]\d+#.*',
Expand Down
43 changes: 26 additions & 17 deletions FHEM/14_SD_BELL.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# The file is part of the SIGNALduino project.
# The purpose of this module is to support many wireless BELL devices.
# 2018 / 2019 - HomeAuto_User & elektron-bbs
# 2018 - 2020 - HomeAuto_User & elektron-bbs
#
####################################################################################################################################
# - wireless doorbell TCM_234759 Tchibo [Protocol 15] length 12-20 (3-5)
Expand All @@ -25,6 +25,9 @@
# - VTX-BELL_Funkklingel [Protocol 79] length 12 (3)
# get sduino_dummy raw MU;;P0=656;;P1=-656;;P2=335;;P3=-326;;P4=-5024;;D=01230121230123030303012423012301212301230303030124230123012123012303030301242301230121230123030303012423012301212301230303030124230123012123012303030301242301230121230123030303012423012301212301230303030124230123012123012303030301242301230121230123030303;;CP=2;;O;;
####################################################################################################################################
# - GEA-028DB [Protocol 98] length 16 (4)
# get sduino_dummy raw MU;P0=1488;P1=-585;P2=520;P3=-1509;P4=1949;P5=-5468;CP=2;R=38;D=01232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501;O;
####################################################################################################################################
# !!! ToDo´s !!!
# - KANGTAI doubleCode must CEHCK | only one Code? - MORE USER MSG needed
# -
Expand Down Expand Up @@ -76,12 +79,16 @@ my %models = (
Protocol => "96",
doubleCode => "no"
},
"GEA-028DB" => { hex_lengh => "4",
Protocol => "98",
doubleCode => "no"
},
);


sub SD_BELL_Initialize($) {
my ($hash) = @_;
$hash->{Match} = "^P(?:15|32|41|42|57|79|96)#.*";
$hash->{Match} = "^P(?:15|32|41|42|57|79|96|98)#.*";
$hash->{DefFn} = "SD_BELL::Define";
$hash->{UndefFn} = "SD_BELL::Undef";
$hash->{ParseFn} = "SD_BELL::Parse";
Expand Down Expand Up @@ -137,7 +144,7 @@ sub Define($$) {
# Argument 0 1 2 3 4
return "SD_BELL: wrong syntax: define <name> SD_BELL <Protocol> <HEX-Value> <optional IODEV>" if(int(@a) < 3 || int(@a) > 5);
### checks - doubleCode yes ###
return "SD_BELL: wrong <protocol> $a[2]" if not($a[2] =~ /^(?:15|32|41|42|57|79|96)/s);
return "SD_BELL: wrong <protocol> $a[2]" if not($a[2] =~ /^(?:15|32|41|42|57|79|96|98)/s);
return "SD_BELL: wrong HEX-Value! Protocol $a[2] HEX-Value <$a[3]> not HEX (0-9 | a-f | A-F)" if (($protocol != 41) && not $a[3] =~ /^[0-9a-fA-F]*$/s);
return "SD_BELL: wrong HEX-Value! Protocol $a[2] HEX-Value <$a[3]> not HEX (0-9 | a-f | A-F) or length wrong!" if (($protocol == 41) && not $a[3] =~ /^[0-9a-fA-F]{8}_[0-9a-fA-F]{8}$/s);

Expand Down Expand Up @@ -198,24 +205,24 @@ sub Set($$$@) {
$doubleCodeCheck = 1;
@splitCode = split("_", $rawDatasend);
$rawDatasend = $splitCode[0];
} else {
$doubleCodeCheck = 0;
}
} else {
$doubleCodeCheck = 0;
}

Log3 $name, 4, "$ioname: SD_BELL_Set_doubleCodeCheck doubleCodeCheck=$doubleCodeCheck splitCode[0]=$rawDatasend";
Log3 $name, 4, "$ioname: SD_BELL_Set_doubleCodeCheck doubleCodeCheck=$doubleCodeCheck splitCode[0]=$rawDatasend";

my $hlen = length($rawDatasend);
my $blen = $hlen * 4;
my $bitData = unpack("B$blen", pack("H$hlen", $rawDatasend));
my $msg = "P$protocol#" . $bitData;
my $hlen = length($rawDatasend);
my $blen = $hlen * 4;
my $bitData = unpack("B$blen", pack("H$hlen", $rawDatasend));
my $msg = "P$protocol#" . $bitData;

if ($model eq "Heidemann_|_Heidemann_HX_|_VTX-BELL") {
$msg .= "#R135";
} else {
$msg .= "#R$repeats";
}
if ($model eq "Heidemann_|_Heidemann_HX_|_VTX-BELL") {
$msg .= "#R135";
} else {
$msg .= "#R$repeats";
}

Log3 $name, 3, "$ioname: $name sendMsg=$msg";
Log3 $name, 4, "$ioname: $name sendMsg=$msg";
IOWrite($hash, 'sendMsg', $msg);
}
}
Expand Down Expand Up @@ -445,6 +452,7 @@ sub Attr(@) {
<li>m-e doorbell fuer FG- and Basic-Serie [Protocol 57]</li>
<li>Heidemann | Heidemann HX | VTX-BELL_Funkklingel [Protocol 79]</li>
<li>Grothe Mistral SE 01.1 (40 bit), 03.1 (48 bit) [Protocol 96]</li>
<li>GEA-028DB [Protokoll 98]</li>
<br>
<u><i>Special feature Protocol 41, 2 different codes will be sent one after the other!</u></i>
</ul><br>
Expand Down Expand Up @@ -492,6 +500,7 @@ sub Attr(@) {
<li>m-e doorbell f&uuml;r FG- und Basic-Serie [Protokoll 57]</li>
<li>Heidemann | Heidemann HX | VTX-BELL_Funkklingel [Protokoll 79]</li>
<li>Grothe Mistral SE 01.1 (40 bit), 03.1 (48 bit) [Protokoll 96]</li>
<li>GEA-028DB [Protokoll 98]</li>
<br>
<u><i>Besonderheit Protokoll 41, es sendet 2 verschiedene Codes nacheinader!</u></i>
</ul><br>
Expand Down
22 changes: 21 additions & 1 deletion FHEM/lib/SD_ProtocolData.pm
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ package lib::SD_ProtocolData;
use strict;
use warnings;

our $VERSION = '1.17';
our $VERSION = '1.18';
our %protocols = (
"0" => ## various weather sensors (500 | 9100)
# Mebus | Id:237 Ch:1 T: 1.9 Bat:low MS;P0=-9298;P1=495;P2=-1980;P3=-4239;D=1012121312131313121313121312121212121212131212131312131212;CP=1;SP=0;R=223;O;m2;
Expand Down Expand Up @@ -2613,6 +2613,26 @@ package lib::SD_ProtocolData;
length_min => '40',
length_max => '40',
},
"98" => # Funk-Tuer-Gong: Modell GEA-028DB, Ningbo Rui Xiang Electrical Co.,Ltd., Vertrieb durch Walter Werkzeuge Salzburg GmbH, Art. Nr. K612021A
# https://forum.fhem.de/index.php/topic,109952.0.html 2020-04-12
# SD_BELL_6A2C MU;P0=1488;P1=-585;P2=520;P3=-1509;P4=1949;P5=-5468;CP=2;R=38;D=01232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501232301230123010101230123230101454501;O;
# SD_BELL_6A2C MU;P0=-296;P1=-1542;P2=1428;P3=-665;P4=483;P5=1927;P6=-5495;P7=92;CP=4;R=31;D=1234141232356562341412341234123232341234141232356562341412341234123232341234141232356562341412341234123232341234141232356562341412341234123232341234141232356562341412341234123232341234141232356562341412341234123232341234141232370;e;i;
{
name => 'GEA-028DB',
comment => 'Wireless doorbell',
knownFreqs => '433.92',
id => '98',
one => [1,-3],
zero => [3,-1],
start => [4,-11,4,-11],
clockabs => 500,
format => 'twostate',
clientmodule => 'SD_BELL',
modulematch => '^P98#',
preamble => 'P98#',
length_min => '16',
length_max => '16',
},
########################################################################
#### ### old information from incomplete implemented protocols #### ####

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Supported Devices / Protocols
|FT0073 | Weather sensors|
|FreeTec PE-6946 | wireless bell |
|Froggit FT007T, FT007TP, FT007TH | Thermo-Hygrometer, Thermometer |
|GEA-028DB | Radio door chime |
|GEIGER GF0x01, GF0x02, GF0x03 | Remote control (compatible to Tedsen) |
|Grothe Mistral SE 03.1| wireless gong |
|GT-9000| Remote control based on protocol GT-9000 with encoding (EASY HOME RCT DS1, Tec Star)|
Expand Down
6 changes: 3 additions & 3 deletions controls_signalduino.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
UPD 2020-04-14_23:06:23 226643 FHEM/00_SIGNALduino.pm
UPD 2020-04-20_16:32:48 226646 FHEM/00_SIGNALduino.pm
UPD 2017-06-23_17:43:38 14541 FHEM/10_FS10.pm
UPD 2019-12-26_22:50:15 19839 FHEM/10_SD_GT.pm
UPD 2016-09-18_21:22:06 10111 FHEM/14_BresserTemeo.pm
UPD 2019-12-27_17:45:04 13627 FHEM/14_FLAMINGO.pm
UPD 2020-04-12_22:14:20 19348 FHEM/14_Hideki.pm
UPD 2020-04-12_22:14:20 9666 FHEM/14_SD_AS.pm
UPD 2019-12-27_17:45:04 23464 FHEM/14_SD_BELL.pm
UPD 2020-04-13_14:19:08 24185 FHEM/14_SD_BELL.pm
UPD 2019-11-16_19:42:18 12593 FHEM/14_SD_RSL.pm
UPD 2020-04-08_22:57:45 132733 FHEM/14_SD_UT.pm
UPD 2020-04-12_22:14:20 68829 FHEM/14_SD_WS.pm
Expand All @@ -14,5 +14,5 @@ UPD 2020-04-07_23:43:04 35356 FHEM/14_SD_WS09.pm
UPD 2020-04-12_22:14:20 14325 FHEM/14_SD_WS_Maverick.pm
UPD 2018-07-04_21:56:16 37910 FHEM/41_OREGON.pm
UPD 2020-01-06_21:42:53 15086 FHEM/90_SIGNALduino_un.pm
UPD 2020-03-30_21:01:10 165155 FHEM/lib/SD_ProtocolData.pm
UPD 2020-04-19_20:42:39 166530 FHEM/lib/SD_ProtocolData.pm
UPD 2019-06-08_09:30:54 5181 FHEM/lib/SD_Protocols.pm