From 3a96ef50cab66a7a5ab8e35a4bc6ec6a90e77ec4 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 19:57:33 +0200 Subject: [PATCH 01/34] Update SD_ProtocolData.pm * added WMBUS definitions (register settings are not sufficient for reception) --- FHEM/lib/SD_ProtocolData.pm | 74 ++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 75971f68e..289ab113e 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3522,6 +3522,50 @@ package lib::SD_ProtocolData; length_min => '24', length_max => '24', }, + + #"133" => ## reserved elektron-bbs + + "134" => # WMBus_S + # https://wiki.fhem.de/wiki/WMBUS + # note !!! Implementation in the FW still needs to be done, register settings are not sufficient + # - definition is in advance in order to dispatch a DMSG + { + name => 'WMBus_S', + comment => 'WMBus mode S', + id => '134', + #developId => 'm', + knownFreqs => '868.300', + datarate => '', + preamble => 'b', + modulation => '2-FSK', + rfmode => 'WMBus_S', + # registers need to be adjusted and can be optimized if necessary + register => ['0006','012E','0200','0300','0476','0596','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E65','0F6A','106A','114A','1206','1322','14F8','1547','1607','1700','1818','192E','1A6D','1B04','1C09','1DB2','1E87','1F6B','20F8','21B6','2210','23EF','242A','2512','261F','2741'], + length_min => '56', # to filter messages | must check + clientmodule => 'WMBUS', + #regexMatch => qr/^b/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf + }, + "135" => # WMBus_T + # https://wiki.fhem.de/wiki/WMBUS + # note !!! Implementation in the FW still needs to be done, register settings are not sufficient + # - definition is in advance in order to dispatch a DMSG + { + name => 'WMBus_T', + comment => 'WMBus mode C and T', + id => '135', + # developId => 'm', + knownFreqs => '868.950', + datarate => '100.000', + preamble => 'b', + modulation => '2-FSK', + rfmode => 'WMBus_T', + # registers need to be adjusted and can be optimized if necessary + register => ['0006','012E','0200','0300','0454','053D','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E6B','0FD0','105C','1104','1206','1322','14F8','1544','1607','1700','1818','192E','1ABF','1B43','1C09','1DB5','1E87','1F6B','20F8','21B6','2210','23EF','242A','2513','261F','2741'], + length_min => '56', # to filter messages | must check + clientmodule => 'WMBUS', + #regexMatch => qr/^b/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf + }, + ######################################################################## #### ### register informations from other hardware protocols #### #### @@ -3598,36 +3642,6 @@ package lib::SD_ProtocolData; # register => ['0029','012E','023F','0307','04D3','0591','06FF','0704','0845','0900','0A00','0B0F','0C00','0D1E','0EC4','0FEC','108C','1122','1202','1322','14F8','1547','1607','1730','1804','1976','1A6C','1B03','1C40','1D91','1E87','1F6B','20F8','2156','2210','23A9','240A','2520','260D','2741'], # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf # }, - # "998" => # WMBus_S - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_S', - # comment => '', - # id => '998', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_S', - # register => ['0006','012E','0200','0300','0476','0596','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E65','0F6A','106A','114A','1206','1322','14F8','1547','1607','1700','1818','192E','1A6D','1B04','1C09','1DB2','1E87','1F6B','20F8','21B6','2210','23EF','242A','2512','261F','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, - # "999" => # WMBus_T - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_T', - # comment => '', - # id => '999', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_T', - # register => ['0006','012E','0200','0300','0454','053D','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E6B','0FD0','105C','1104','1206','1322','14F8','1544','1607','1700','1818','192E','1ABF','1B43','1C09','1DB5','1E87','1F6B','20F8','21B6','2210','23EF','242A','2513','261F','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, ######################################################################## #### ### old information from incomplete implemented protocols #### #### From d1441d26669b2414aec210b2a24334dc86db917b Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 17:58:03 +0000 Subject: [PATCH 02/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 8df000bf7..8249b843b 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-01-06_20:21:35 252437 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-03_19:57:33 253219 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 5d2d7cd24ebe0bc0ba820d115bdccf583c30a1fa Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 20:03:39 +0200 Subject: [PATCH 03/34] Update 00_SIGNALduino.pm * added WMBUS extensions to process messages --- FHEM/00_SIGNALduino.pm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index f29671db2..a72e171b6 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -1,4 +1,4 @@ -# $Id: 00_SIGNALduino.pm 3.5.6 2024-03-09 15:50:25Z sidey79 $ +# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-03 15:50:25Z sidey79 $ # v3.5.6 - https://github.com/RFD-FHEM/RFFHEM/tree/master # The module is inspired by the FHEMduino project and modified in serval ways for processing the incoming messages # see http://www.fhemwiki.de/wiki/SIGNALDuino @@ -232,6 +232,7 @@ my $clientsSIGNALduino = ':CUL_EM:' .'SD_WS:' .'SD_WS_Maverick:' .'SOMFY:' + .'WMBUS:' .' :' # Zeilenumbruch .'Siro:' .'SIGNALduino_un:' @@ -271,6 +272,7 @@ my %matchListSIGNALduino = ( '31:KOPP_FC' => '^kr\w{18,}', '32:PCA301' => '^\\S+\\s+24', '33:SD_Rojaflex' => '^P109#[A-Fa-f0-9]+', + '34:WMBUS' => '^b.*', 'X:SIGNALduino_un' => '^[u]\d+#.*', ); @@ -2904,7 +2906,12 @@ sub SIGNALduino_Parse_MN { my $hash = shift // return; #return if no hash is provided my $rmsg = shift // return; #return if no rmsg is provided - + + my $mark; + if (substr($rmsg,5,1) eq 'Y') { # WMBus + $mark = substr($rmsg,5,1); + $rmsg =~ s/Y//g; + } if ($rmsg !~ /^MN;D=[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty msg: $rmsg]); return ; # Abort here if not successfull @@ -2915,6 +2922,10 @@ sub SIGNALduino_Parse_MN { # Verify if extracted hash has the correct values: my $rawData = _limit_to_hex($msg_parts{rawData}) // $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty rawData D=: $msg_parts{rawData}]) // return ; + + if ($mark) { # WMBus + $rawData = $mark . $rawData; + } my $rssi; my $rssiStr= ''; my $freqafc; From 1cf7ee4f4765ff16f40c52ade67e4955286bcacc Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 18:04:47 +0000 Subject: [PATCH 04/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 8249b843b..6a38ea030 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-03-09_15:50:57 240692 FHEM/00_SIGNALduino.pm +UPD 2024-04-03_20:03:39 240924 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From 80e83022510461491eb59a4a3e5322821dddb21c Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 20:10:02 +0200 Subject: [PATCH 05/34] Update SD_ProtocolData.pm * message for documentation --- FHEM/lib/SD_ProtocolData.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 289ab113e..3ae85ad9c 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3549,6 +3549,12 @@ package lib::SD_ProtocolData; # https://wiki.fhem.de/wiki/WMBUS # note !!! Implementation in the FW still needs to be done, register settings are not sufficient # - definition is in advance in order to dispatch a DMSG + # messages with normal identifier + # RAWMSG: MN;D=3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A;R=10;A=16; + # DMSG: b3E44FA1213871122011633057A1B002025CCC7C1BF453C407A299D8E1F21A3779CC6591EDF5E43BC3B5B0E9175B3DD6ACE29E5DCE00F800C0001090086B41E000726140131414D7D88001B + # messages with Y identifier + # RAWMSG: MN;D=304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB;R=251;A=0; + # DMSG: bY304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB { name => 'WMBus_T', comment => 'WMBus mode C and T', From 8dceb32a1a9fec966b5fa640561ad71913f564ec Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 18:10:41 +0000 Subject: [PATCH 06/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 6a38ea030..5c6a15d8f 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-03_19:57:33 253219 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-03_20:10:02 253945 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 47763c97398788804c4b4dae73ac4d59e22691d0 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 20:19:15 +0200 Subject: [PATCH 07/34] Update SD_ProtocolData.pm --- FHEM/lib/SD_ProtocolData.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 3ae85ad9c..5d6fda39a 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3535,7 +3535,7 @@ package lib::SD_ProtocolData; id => '134', #developId => 'm', knownFreqs => '868.300', - datarate => '', + datarate => '32.720', preamble => 'b', modulation => '2-FSK', rfmode => 'WMBus_S', From c7b524038fd3e54caf5a2cf99517b2c773453ad1 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 18:19:49 +0000 Subject: [PATCH 08/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 5c6a15d8f..06bca94e2 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-03_20:10:02 253945 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-03_20:19:15 253951 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 5f08ef9407d23d2e8e57448269f9d70a05031acd Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 20:22:49 +0200 Subject: [PATCH 09/34] Update SD_ProtocolData.pm https://github.com/RFD-FHEM/RFFHEM/issues/1247 --- FHEM/lib/SD_ProtocolData.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 5d6fda39a..9158cc709 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3528,7 +3528,7 @@ package lib::SD_ProtocolData; "134" => # WMBus_S # https://wiki.fhem.de/wiki/WMBUS # note !!! Implementation in the FW still needs to be done, register settings are not sufficient - # - definition is in advance in order to dispatch a DMSG + # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 { name => 'WMBus_S', comment => 'WMBus mode S', @@ -3548,7 +3548,7 @@ package lib::SD_ProtocolData; "135" => # WMBus_T # https://wiki.fhem.de/wiki/WMBUS # note !!! Implementation in the FW still needs to be done, register settings are not sufficient - # - definition is in advance in order to dispatch a DMSG + # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 # messages with normal identifier # RAWMSG: MN;D=3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A;R=10;A=16; # DMSG: b3E44FA1213871122011633057A1B002025CCC7C1BF453C407A299D8E1F21A3779CC6591EDF5E43BC3B5B0E9175B3DD6ACE29E5DCE00F800C0001090086B41E000726140131414D7D88001B From 01f5b6ad5af04a2e8406d553ea14d9e38758eef5 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 18:24:08 +0000 Subject: [PATCH 10/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 06bca94e2..7da009e44 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-03_20:19:15 253951 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-03_20:22:49 254049 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From f283954b7218de1847fbe20e1fc437a5b40a8f94 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 3 Apr 2024 20:31:43 +0200 Subject: [PATCH 11/34] Update 00_SIGNALduino.pm --- FHEM/00_SIGNALduino.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index a72e171b6..7b6c4dfa6 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -42,7 +42,7 @@ use List::Util qw(first); use constant { - SDUINO_VERSION => '3.5.6+20231214', # Datum wird automatisch bei jedem pull request aktualisiert + SDUINO_VERSION => '3.5.6+20240403', # Datum wird automatisch bei jedem pull request aktualisiert SDUINO_INIT_WAIT_XQ => 1.5, # wait disable device SDUINO_INIT_WAIT => 2, SDUINO_INIT_MAXRETRY => 3, From aa85d524e3edacee5b6885bd3d07097ce9ae7108 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 3 Apr 2024 18:32:13 +0000 Subject: [PATCH 12/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 7da009e44..bc573543d 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-03_20:03:39 240924 FHEM/00_SIGNALduino.pm +UPD 2024-04-03_20:31:43 240924 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From 8e8ba0da0dbb561f1b2b15feab27d86989e09efa Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 17:54:58 +0200 Subject: [PATCH 13/34] Update SD_ProtocolData.pm * revised and clean --- FHEM/lib/SD_ProtocolData.pm | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 9158cc709..0d8c08d2d 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3522,17 +3522,14 @@ package lib::SD_ProtocolData; length_min => '24', length_max => '24', }, - - #"133" => ## reserved elektron-bbs - - "134" => # WMBus_S + "133" => # WMBus_S # https://wiki.fhem.de/wiki/WMBUS # note !!! Implementation in the FW still needs to be done, register settings are not sufficient # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 { name => 'WMBus_S', comment => 'WMBus mode S', - id => '134', + id => '133', #developId => 'm', knownFreqs => '868.300', datarate => '32.720', @@ -3545,7 +3542,7 @@ package lib::SD_ProtocolData; clientmodule => 'WMBUS', #regexMatch => qr/^b/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf }, - "135" => # WMBus_T + "134" => # WMBus_T # https://wiki.fhem.de/wiki/WMBUS # note !!! Implementation in the FW still needs to be done, register settings are not sufficient # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 @@ -3558,7 +3555,7 @@ package lib::SD_ProtocolData; { name => 'WMBus_T', comment => 'WMBus mode C and T', - id => '135', + id => '134', # developId => 'm', knownFreqs => '868.950', datarate => '100.000', @@ -3633,21 +3630,6 @@ package lib::SD_ProtocolData; # rfmode => 'RIO', # register => ['000D','012E','022D','0347','04D3','0591','063D','0704','0832','0900','0A00','0B06','0C00','0D21','0E65','0F6F','1086','1190','1218','1323','14B9','1540','1607','1700','1818','1914','1A6C','1B07','1C00','1D91','1E87','1F6B','20F8','21B6','2211','23EF','240D','253E','261F','2741'], # }, - # "997" => # WMBus_C - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_C', - # comment => '', - # id => '997', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_C', - # register => ['0029','012E','023F','0307','04D3','0591','06FF','0704','0845','0900','0A00','0B0F','0C00','0D1E','0EC4','0FEC','108C','1122','1202','1322','14F8','1547','1607','1730','1804','1976','1A6C','1B03','1C40','1D91','1E87','1F6B','20F8','2156','2210','23A9','240A','2520','260D','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, ######################################################################## #### ### old information from incomplete implemented protocols #### #### From 52223c7650afd094f2b7425898d0e78207a67172 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 4 Apr 2024 15:55:34 +0000 Subject: [PATCH 14/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index bc573543d..dfa79bb6c 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-03_20:22:49 254049 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-04_17:54:58 253161 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From eb53980272e37a343485d396008d5407560c7802 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 19:04:14 +0200 Subject: [PATCH 15/34] Update 01_SIGNALduino_Parse_MN.t * adaptation tests due to WMBUS processing --- t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t index 792a0063f..bcb3b3621 100644 --- a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t +++ b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t @@ -81,7 +81,7 @@ my @mockData = ( plan => 2, testname => q[Good MN data, without RSSI, with set attribute rfmode=PCA301], input => q[MN;D=0405019E8700AAAAAAAA0F13AA16ACC0540AAA49C814473A2774D208AC0B0167;R=6;], - rValue => 1, + rValue => 3, rfmode => 'PCA301' }, { From 42779ae3076d3c2349e2aaad99a442ed21192eb2 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 19:27:40 +0200 Subject: [PATCH 16/34] Update 00_SIGNALduino.pm --- FHEM/00_SIGNALduino.pm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index 7b6c4dfa6..33960c5ee 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -1,4 +1,4 @@ -# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-03 15:50:25Z sidey79 $ +# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-04 15:50:25Z sidey79 $ # v3.5.6 - https://github.com/RFD-FHEM/RFFHEM/tree/master # The module is inspired by the FHEMduino project and modified in serval ways for processing the incoming messages # see http://www.fhemwiki.de/wiki/SIGNALDuino @@ -42,7 +42,7 @@ use List::Util qw(first); use constant { - SDUINO_VERSION => '3.5.6+20240403', # Datum wird automatisch bei jedem pull request aktualisiert + SDUINO_VERSION => '3.5.6+20240404', # Datum wird automatisch bei jedem pull request aktualisiert SDUINO_INIT_WAIT_XQ => 1.5, # wait disable device SDUINO_INIT_WAIT => 2, SDUINO_INIT_MAXRETRY => 3, @@ -4887,6 +4887,12 @@ USB-connected devices (SIGNALduino):
  • SlowRF
    modulation ASK/OOK, loads the standard setting from the uC
  • +
  • WMBus_S
    + modulation FSK, Datarate=32.7301 kbps, Sync Word=7696, frequency 868.300 MHz (processing needs to be integrated into firmware) +
  • +
  • WMBus_T
    + modulation FSK, Datarate=99.9756 kbps, Sync Word=543D, frequency 868.950 MHz (processing needs to be integrated into firmware) +

  • @@ -5494,6 +5500,12 @@ USB-connected devices (SIGNALduino):
  • SlowRF
    Modulation ASK/OOK, läd die Standard Einstellung vom uC
  • +
  • WMBus_S
    + Modulation FSK, Datenrate=32.7301 kbps, Sync Word=7696, Frequenz 868.300 MHz (Verarbeitung muss noch in Firmware integriert werden) +
  • +
  • WMBus_T
    + Modulation FSK, Datenrate=99.9756 kbps, Sync Word=543D, Frequenz 868.950 MHz (Verarbeitung muss noch in Firmware integriert werden) +

  • From 9ab9211aa54bc43c96b8ccf325a382c2615ac6f8 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 4 Apr 2024 17:29:29 +0000 Subject: [PATCH 17/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index dfa79bb6c..889e903c6 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-03_20:31:43 240924 FHEM/00_SIGNALduino.pm +UPD 2024-04-04_19:27:40 241610 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From 8d1ad82326d0956399b2e77c5b219d3452f2b625 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 19:40:56 +0200 Subject: [PATCH 18/34] Update 00_SIGNALduino.pm * added commandref --- FHEM/00_SIGNALduino.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index 33960c5ee..eae050762 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -4889,9 +4889,11 @@ USB-connected devices (SIGNALduino):
  • WMBus_S
    modulation FSK, Datarate=32.7301 kbps, Sync Word=7696, frequency 868.300 MHz (processing needs to be integrated into firmware) +
      example: water, gas, heat, electric meters and the data collecting devices
  • WMBus_T
    modulation FSK, Datarate=99.9756 kbps, Sync Word=543D, frequency 868.950 MHz (processing needs to be integrated into firmware) +
      example: water, gas, heat, electric meters and the data collecting devices

  • @@ -5502,9 +5504,11 @@ USB-connected devices (SIGNALduino):
  • WMBus_S
    Modulation FSK, Datenrate=32.7301 kbps, Sync Word=7696, Frequenz 868.300 MHz (Verarbeitung muss noch in Firmware integriert werden) +
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte
  • WMBus_T
    Modulation FSK, Datenrate=99.9756 kbps, Sync Word=543D, Frequenz 868.950 MHz (Verarbeitung muss noch in Firmware integriert werden) +
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte

  • From 47e71fff72e2d3935966334ea89d8a859b5947bc Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 4 Apr 2024 17:56:16 +0000 Subject: [PATCH 19/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 889e903c6..44cb48bae 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-04_19:27:40 241610 FHEM/00_SIGNALduino.pm +UPD 2024-04-04_19:40:56 242070 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From f1ab73358b5bca49d8dae1dec4cf8b55367ec055 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 20:00:20 +0200 Subject: [PATCH 20/34] Update 01_SIGNALduino_Parse_MN.t --- t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t index bcb3b3621..ffa31835a 100644 --- a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t +++ b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t @@ -140,6 +140,22 @@ my @mockData = ( rValue => 1, rfmode => 'Bresser_6in1' }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, DMSG started with b], + input => q[MN;D=3E44F536892656000108F5D97AA9002025FB7AD4DF8710D69A3867E687B0633B1515F7BA8A6BE0C93649EC5593F476E7DD3E82F0470F800C0001090086B41E0098CE14011E070416C50018;R=24;A=0;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, DMSG started with bY], + input => q[MN;D=304497264202231800087A5E0020A5D9CF9E719E36DB255C06F2AEC0722FC3853A3031BD85EF085BDAD29194136A02DD7E00FD;R=253;A=0;], + rValue => 3, + rfmode => 'WMBus_T' + }, ); From 737ae79f47238c40950401f868a650f060d648f9 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Thu, 4 Apr 2024 23:07:41 +0200 Subject: [PATCH 21/34] revised * revised datarate --- FHEM/00_SIGNALduino.pm | 8 ++++---- FHEM/lib/SD_ProtocolData.pm | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index eae050762..c61994b60 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -4888,11 +4888,11 @@ USB-connected devices (SIGNALduino):
    modulation ASK/OOK, loads the standard setting from the uC
  • WMBus_S
    - modulation FSK, Datarate=32.7301 kbps, Sync Word=7696, frequency 868.300 MHz (processing needs to be integrated into firmware) + modulation FSK, Datarate=32.768 kbps, Sync Word=7696, frequency 868.300 MHz (processing needs to be integrated into firmware)
      example: water, gas, heat, electric meters and the data collecting devices
  • WMBus_T
    - modulation FSK, Datarate=99.9756 kbps, Sync Word=543D, frequency 868.950 MHz (processing needs to be integrated into firmware) + modulation FSK, Datarate=100.0 kbps, Sync Word=543D, frequency 868.950 MHz (processing needs to be integrated into firmware)
      example: water, gas, heat, electric meters and the data collecting devices
  • @@ -5503,11 +5503,11 @@ USB-connected devices (SIGNALduino):
    Modulation ASK/OOK, läd die Standard Einstellung vom uC
  • WMBus_S
    - Modulation FSK, Datenrate=32.7301 kbps, Sync Word=7696, Frequenz 868.300 MHz (Verarbeitung muss noch in Firmware integriert werden) + Modulation FSK, Datenrate=32.768 kbps, Sync Word=7696, Frequenz 868.300 MHz (Verarbeitung muss noch in Firmware integriert werden)
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte
  • WMBus_T
    - Modulation FSK, Datenrate=99.9756 kbps, Sync Word=543D, Frequenz 868.950 MHz (Verarbeitung muss noch in Firmware integriert werden) + Modulation FSK, Datenrate=100.0 kbps, Sync Word=543D, Frequenz 868.950 MHz (Verarbeitung muss noch in Firmware integriert werden)
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte
  • diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 0d8c08d2d..bef32f2e7 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -3532,7 +3532,7 @@ package lib::SD_ProtocolData; id => '133', #developId => 'm', knownFreqs => '868.300', - datarate => '32.720', + datarate => '32.768', preamble => 'b', modulation => '2-FSK', rfmode => 'WMBus_S', From 595bfbdf4b08215fe3dc64cfe590c1bd4b9b2474 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 4 Apr 2024 21:08:12 +0000 Subject: [PATCH 22/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 44cb48bae..3f0fa3328 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-04_19:40:56 242070 FHEM/00_SIGNALduino.pm +UPD 2024-04-04_23:07:41 242064 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-04_17:54:58 253161 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-04_23:07:41 253161 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 0cfba47fdcf19b4dc07a13d93c214f567e9b3443 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Tue, 9 Apr 2024 23:35:02 +0200 Subject: [PATCH 23/34] Update 01_SIGNALduino_Parse_MN.t --- .../00_SIGNALduino/01_SIGNALduino_Parse_MN.t | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t index ffa31835a..5b4a910e6 100644 --- a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t +++ b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t @@ -143,17 +143,33 @@ my @mockData = ( { deviceName => q[dummyDuino], plan => 2, - testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, DMSG started with b], - input => q[MN;D=3E44F536892656000108F5D97AA9002025FB7AD4DF8710D69A3867E687B0633B1515F7BA8A6BE0C93649EC5593F476E7DD3E82F0470F800C0001090086B41E0098CE14011E070416C50018;R=24;A=0;], + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium OMS MUC, DMSG started with b], + input => q[MN;D=2547F536721602000231D27C7A000008000F80130001090086B41E00175914011B0806020400000000001945000E;R=14;A=0;], rValue => 2, rfmode => 'WMBus_T' }, { deviceName => q[dummyDuino], plan => 2, - testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, DMSG started with bY], - input => q[MN;D=304497264202231800087A5E0020A5D9CF9E719E36DB255C06F2AEC0722FC3853A3031BD85EF085BDAD29194136A02DD7E00FD;R=253;A=0;], - rValue => 3, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Heat Cost Allocator, DMSG started with b], + input => q[MN;D=3E44F53611275600010884B57AA9002025D27FDD54048072F9A9D06C2E2E5249A41E363DE1F27AF3DE4DD325507C67A9E33CDDC4A70F800C0001090086B41E0063B414011E070416C500FC;R=252;A=0;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Cold water, DMSG started with bY], + input => q[MN;D=Y25442D2C769390751B168D20955084E7204D4874442AA58272A51FCE1430C0A769C3BEF95A2096D1;R=209;A=-6;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Heat Cost Allocator, DMSG started with bY], + input => q[MN;D=Y304497264202231800087A2A0020A53848C8EA9DD3055EA724A2E2AE04E995205589AADC82F6305A620959E6424F406B3B00F6;R=246;A=0;], + rValue => 2, rfmode => 'WMBus_T' }, ); From 382c06a4556809695714a46d8d15cf20781eebbd Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 10 Apr 2024 20:58:16 +0200 Subject: [PATCH 24/34] Update 00_SIGNALduino.pm * revised Y processing --- FHEM/00_SIGNALduino.pm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index c61994b60..abe932d1a 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -1,4 +1,4 @@ -# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-04 15:50:25Z sidey79 $ +# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-10 15:50:25Z sidey79 $ # v3.5.6 - https://github.com/RFD-FHEM/RFFHEM/tree/master # The module is inspired by the FHEMduino project and modified in serval ways for processing the incoming messages # see http://www.fhemwiki.de/wiki/SIGNALDuino @@ -42,7 +42,7 @@ use List::Util qw(first); use constant { - SDUINO_VERSION => '3.5.6+20240404', # Datum wird automatisch bei jedem pull request aktualisiert + SDUINO_VERSION => '3.5.6+20240410', # Datum wird automatisch bei jedem pull request aktualisiert SDUINO_INIT_WAIT_XQ => 1.5, # wait disable device SDUINO_INIT_WAIT => 2, SDUINO_INIT_MAXRETRY => 3, @@ -2908,9 +2908,11 @@ sub SIGNALduino_Parse_MN { my $rmsg = shift // return; #return if no rmsg is provided my $mark; - if (substr($rmsg,5,1) eq 'Y') { # WMBus - $mark = substr($rmsg,5,1); - $rmsg =~ s/Y//g; + my $rmsg1; + if (substr($rmsg,5,1) eq 'Y') { # WMBus frame type B + $rmsg1 = $rmsg; + $rmsg =~ s/^MN;D=Y/MN;D=/; + $mark = 'Y'; } if ($rmsg !~ /^MN;D=[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty msg: $rmsg]); @@ -2924,7 +2926,8 @@ sub SIGNALduino_Parse_MN { my $rawData = _limit_to_hex($msg_parts{rawData}) // $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty rawData D=: $msg_parts{rawData}]) // return ; if ($mark) { # WMBus - $rawData = $mark . $rawData; + $rawData = 'Y' . $rawData; + $rmsg = $rmsg1; } my $rssi; my $rssiStr= ''; @@ -3430,7 +3433,7 @@ sub SIGNALduino_IdList { push (@skippedWhiteId, $id); next; } - my $clientmodule = $hash->{protocolObject}->getProperty($id,'clientmodule',undef); + my $clientmodule = $hash->{protocolObject}->getProperty($id,'clientmodule',undef); $hash->{Clients} .= qq[$clientmodule:] if (defined $clientmodule && $hash->{Clients} !~ /$clientmodule:/); # add module only if clientModule is known and don't do it more than once } else { # whitelist not active if (exists($BlacklistIDs{$id})) { From ca35d6da4948ff986e5f58f21b081e9c2e119aa6 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 10 Apr 2024 18:59:03 +0000 Subject: [PATCH 25/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 3f0fa3328..71cfd77d0 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-04_23:07:41 242064 FHEM/00_SIGNALduino.pm +UPD 2024-04-10_20:58:16 242124 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From dc82f48e23ca985cb89f83a8a0535034a05bbe65 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 10 Apr 2024 21:35:45 +0200 Subject: [PATCH 26/34] Update SD_ProtocolData.pm * added regexMatch for error prevention --- FHEM/lib/SD_ProtocolData.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index bef32f2e7..063f1765d 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -2940,6 +2940,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_5in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0346','042D','05D4','061A','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W108#', clientmodule => 'SD_WS', @@ -3100,6 +3101,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_6in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0344','042D','05D4','0612','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W115#', clientmodule => 'SD_WS', @@ -3159,6 +3161,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_7in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0345','042D','05D4','0617','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W117#', clientmodule => 'SD_WS', @@ -3485,6 +3488,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_lightning', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0342','042D','05D4','060A','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W131#', clientmodule => 'SD_WS', @@ -3530,9 +3534,8 @@ package lib::SD_ProtocolData; name => 'WMBus_S', comment => 'WMBus mode S', id => '133', - #developId => 'm', knownFreqs => '868.300', - datarate => '32.768', + datarate => '32.720', preamble => 'b', modulation => '2-FSK', rfmode => 'WMBus_S', @@ -3548,15 +3551,14 @@ package lib::SD_ProtocolData; # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 # messages with normal identifier # RAWMSG: MN;D=3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A;R=10;A=16; - # DMSG: b3E44FA1213871122011633057A1B002025CCC7C1BF453C407A299D8E1F21A3779CC6591EDF5E43BC3B5B0E9175B3DD6ACE29E5DCE00F800C0001090086B41E000726140131414D7D88001B + # DMSG: b3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A # messages with Y identifier - # RAWMSG: MN;D=304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB;R=251;A=0; - # DMSG: bY304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB + # RAWMSG: MN;D=Y304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB;R=251;A=0; + # DMSG: bY304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB { name => 'WMBus_T', comment => 'WMBus mode C and T', id => '134', - # developId => 'm', knownFreqs => '868.950', datarate => '100.000', preamble => 'b', From c7eb93d946395b3a34e2f10051e747b2c0056117 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 10 Apr 2024 19:37:21 +0000 Subject: [PATCH 27/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 71cfd77d0..a8ef29c03 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-04_23:07:41 253161 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-10_21:35:45 253287 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 1a981c7a52e56497190df87aa2a26e80fccb3263 Mon Sep 17 00:00:00 2001 From: HomeAutoUser Date: Wed, 17 Apr 2024 19:23:43 +0200 Subject: [PATCH 28/34] duplicate WMBUS proposal * create duplicate from https://github.com/HomeAutoUser/RFFHEM/tree/master_WMBUS for PR https://github.com/RFD-FHEM/RFFHEM/pull/1248/commits --- FHEM/00_SIGNALduino.pm | 38 +++++++- FHEM/lib/SD_ProtocolData.pm | 94 ++++++++++--------- .../00_SIGNALduino/01_SIGNALduino_Parse_MN.t | 34 ++++++- 3 files changed, 116 insertions(+), 50 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index f29671db2..abe932d1a 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -1,4 +1,4 @@ -# $Id: 00_SIGNALduino.pm 3.5.6 2024-03-09 15:50:25Z sidey79 $ +# $Id: 00_SIGNALduino.pm 3.5.6 2024-04-10 15:50:25Z sidey79 $ # v3.5.6 - https://github.com/RFD-FHEM/RFFHEM/tree/master # The module is inspired by the FHEMduino project and modified in serval ways for processing the incoming messages # see http://www.fhemwiki.de/wiki/SIGNALDuino @@ -42,7 +42,7 @@ use List::Util qw(first); use constant { - SDUINO_VERSION => '3.5.6+20231214', # Datum wird automatisch bei jedem pull request aktualisiert + SDUINO_VERSION => '3.5.6+20240410', # Datum wird automatisch bei jedem pull request aktualisiert SDUINO_INIT_WAIT_XQ => 1.5, # wait disable device SDUINO_INIT_WAIT => 2, SDUINO_INIT_MAXRETRY => 3, @@ -232,6 +232,7 @@ my $clientsSIGNALduino = ':CUL_EM:' .'SD_WS:' .'SD_WS_Maverick:' .'SOMFY:' + .'WMBUS:' .' :' # Zeilenumbruch .'Siro:' .'SIGNALduino_un:' @@ -271,6 +272,7 @@ my %matchListSIGNALduino = ( '31:KOPP_FC' => '^kr\w{18,}', '32:PCA301' => '^\\S+\\s+24', '33:SD_Rojaflex' => '^P109#[A-Fa-f0-9]+', + '34:WMBUS' => '^b.*', 'X:SIGNALduino_un' => '^[u]\d+#.*', ); @@ -2904,7 +2906,14 @@ sub SIGNALduino_Parse_MN { my $hash = shift // return; #return if no hash is provided my $rmsg = shift // return; #return if no rmsg is provided - + + my $mark; + my $rmsg1; + if (substr($rmsg,5,1) eq 'Y') { # WMBus frame type B + $rmsg1 = $rmsg; + $rmsg =~ s/^MN;D=Y/MN;D=/; + $mark = 'Y'; + } if ($rmsg !~ /^MN;D=[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty msg: $rmsg]); return ; # Abort here if not successfull @@ -2915,6 +2924,11 @@ sub SIGNALduino_Parse_MN { # Verify if extracted hash has the correct values: my $rawData = _limit_to_hex($msg_parts{rawData}) // $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty rawData D=: $msg_parts{rawData}]) // return ; + + if ($mark) { # WMBus + $rawData = 'Y' . $rawData; + $rmsg = $rmsg1; + } my $rssi; my $rssiStr= ''; my $freqafc; @@ -3419,7 +3433,7 @@ sub SIGNALduino_IdList { push (@skippedWhiteId, $id); next; } - my $clientmodule = $hash->{protocolObject}->getProperty($id,'clientmodule',undef); + my $clientmodule = $hash->{protocolObject}->getProperty($id,'clientmodule',undef); $hash->{Clients} .= qq[$clientmodule:] if (defined $clientmodule && $hash->{Clients} !~ /$clientmodule:/); # add module only if clientModule is known and don't do it more than once } else { # whitelist not active if (exists($BlacklistIDs{$id})) { @@ -4876,6 +4890,14 @@ USB-connected devices (SIGNALduino):
  • SlowRF
    modulation ASK/OOK, loads the standard setting from the uC
  • +
  • WMBus_S
    + modulation FSK, Datarate=32.768 kbps, Sync Word=7696, frequency 868.300 MHz (processing needs to be integrated into firmware) +
      example: water, gas, heat, electric meters and the data collecting devices
    +
  • +
  • WMBus_T
    + modulation FSK, Datarate=100.0 kbps, Sync Word=543D, frequency 868.950 MHz (processing needs to be integrated into firmware) +
      example: water, gas, heat, electric meters and the data collecting devices
    +

  • @@ -5483,6 +5505,14 @@ USB-connected devices (SIGNALduino):
  • SlowRF
    Modulation ASK/OOK, läd die Standard Einstellung vom uC
  • +
  • WMBus_S
    + Modulation FSK, Datenrate=32.768 kbps, Sync Word=7696, Frequenz 868.300 MHz (Verarbeitung muss noch in Firmware integriert werden) +
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte
    +
  • +
  • WMBus_T
    + Modulation FSK, Datenrate=100.0 kbps, Sync Word=543D, Frequenz 868.950 MHz (Verarbeitung muss noch in Firmware integriert werden) +
      Beispiel: diverse Wasser-, Gas-, Wärme- und Stromzähler sowie die Datenerfassungsgeräte
    +

  • diff --git a/FHEM/lib/SD_ProtocolData.pm b/FHEM/lib/SD_ProtocolData.pm index 75971f68e..063f1765d 100644 --- a/FHEM/lib/SD_ProtocolData.pm +++ b/FHEM/lib/SD_ProtocolData.pm @@ -2940,6 +2940,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_5in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0346','042D','05D4','061A','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W108#', clientmodule => 'SD_WS', @@ -3100,6 +3101,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_6in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0344','042D','05D4','0612','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W115#', clientmodule => 'SD_WS', @@ -3159,6 +3161,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_7in1', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0345','042D','05D4','0617','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W117#', clientmodule => 'SD_WS', @@ -3485,6 +3488,7 @@ package lib::SD_ProtocolData; sync => '2DD4', modulation => '2-FSK', rfmode => 'Bresser_lightning', + regexMatch => qr/^[a-fA-F0-9]/, register => ['0001','022E','0342','042D','05D4','060A','07C0','0800','0D21','0E65','0F6A','1088','114C','1202','1322','14F8','1551','1916','1B43','1C68'], preamble => 'W131#', clientmodule => 'SD_WS', @@ -3522,6 +3526,51 @@ package lib::SD_ProtocolData; length_min => '24', length_max => '24', }, + "133" => # WMBus_S + # https://wiki.fhem.de/wiki/WMBUS + # note !!! Implementation in the FW still needs to be done, register settings are not sufficient + # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 + { + name => 'WMBus_S', + comment => 'WMBus mode S', + id => '133', + knownFreqs => '868.300', + datarate => '32.720', + preamble => 'b', + modulation => '2-FSK', + rfmode => 'WMBus_S', + # registers need to be adjusted and can be optimized if necessary + register => ['0006','012E','0200','0300','0476','0596','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E65','0F6A','106A','114A','1206','1322','14F8','1547','1607','1700','1818','192E','1A6D','1B04','1C09','1DB2','1E87','1F6B','20F8','21B6','2210','23EF','242A','2512','261F','2741'], + length_min => '56', # to filter messages | must check + clientmodule => 'WMBUS', + #regexMatch => qr/^b/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf + }, + "134" => # WMBus_T + # https://wiki.fhem.de/wiki/WMBUS + # note !!! Implementation in the FW still needs to be done, register settings are not sufficient + # - definition is in advance in order to dispatch a DMSG | https://github.com/RFD-FHEM/RFFHEM/issues/1247 + # messages with normal identifier + # RAWMSG: MN;D=3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A;R=10;A=16; + # DMSG: b3E44FA1213871122011633057A1C002025417CD28E06770269857D8001EF3B8BBE56BA7E06855CBA0334149F51682F2E6E2960E6900F800C0001090086B41E003A6F140131414D7D88810A + # messages with Y identifier + # RAWMSG: MN;D=Y304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB;R=251;A=0; + # DMSG: bY304497264202231800087A3E0020A5EE5B2074920E46E4B4A26B99C92C8DD3A55F44FAF6AE0256B354F9C48C717BFAD43400FB + { + name => 'WMBus_T', + comment => 'WMBus mode C and T', + id => '134', + knownFreqs => '868.950', + datarate => '100.000', + preamble => 'b', + modulation => '2-FSK', + rfmode => 'WMBus_T', + # registers need to be adjusted and can be optimized if necessary + register => ['0006','012E','0200','0300','0454','053D','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E6B','0FD0','105C','1104','1206','1322','14F8','1544','1607','1700','1818','192E','1ABF','1B43','1C09','1DB5','1E87','1F6B','20F8','21B6','2210','23EF','242A','2513','261F','2741'], + length_min => '56', # to filter messages | must check + clientmodule => 'WMBUS', + #regexMatch => qr/^b/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf + }, + ######################################################################## #### ### register informations from other hardware protocols #### #### @@ -3583,51 +3632,6 @@ package lib::SD_ProtocolData; # rfmode => 'RIO', # register => ['000D','012E','022D','0347','04D3','0591','063D','0704','0832','0900','0A00','0B06','0C00','0D21','0E65','0F6F','1086','1190','1218','1323','14B9','1540','1607','1700','1818','1914','1A6C','1B07','1C00','1D91','1E87','1F6B','20F8','21B6','2211','23EF','240D','253E','261F','2741'], # }, - # "997" => # WMBus_C - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_C', - # comment => '', - # id => '997', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_C', - # register => ['0029','012E','023F','0307','04D3','0591','06FF','0704','0845','0900','0A00','0B0F','0C00','0D1E','0EC4','0FEC','108C','1122','1202','1322','14F8','1547','1607','1730','1804','1976','1A6C','1B03','1C40','1D91','1E87','1F6B','20F8','2156','2210','23A9','240A','2520','260D','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, - # "998" => # WMBus_S - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_S', - # comment => '', - # id => '998', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_S', - # register => ['0006','012E','0200','0300','0476','0596','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E65','0F6A','106A','114A','1206','1322','14F8','1547','1607','1700','1818','192E','1A6D','1B04','1C09','1DB2','1E87','1F6B','20F8','21B6','2210','23EF','242A','2512','261F','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, - # "999" => # WMBus_T - # # https://wiki.fhem.de/wiki/WMBUS - # # settings from CUL - # { - # name => 'WMBus_T', - # comment => '', - # id => '999', - # developId => 'm', - # knownFreqs => '', - # datarate => '', - # modulation => '2-FSK', - # rfmode => 'WMBus_T', - # register => ['0006','012E','0200','0300','0454','053D','06FF','0704','0802','0900','0A00','0B08','0C00','0D21','0E6B','0FD0','105C','1104','1206','1322','14F8','1544','1607','1700','1818','192E','1ABF','1B43','1C09','1DB5','1E87','1F6B','20F8','21B6','2210','23EF','242A','2513','261F','2741'], - # #regexMatch => qr/^9/, # ToDo, check! fuer eine regexp Pruefung am Anfang vor dem method Aufruf - # }, ######################################################################## #### ### old information from incomplete implemented protocols #### #### diff --git a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t index 792a0063f..5b4a910e6 100644 --- a/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t +++ b/t/FHEM/00_SIGNALduino/01_SIGNALduino_Parse_MN.t @@ -81,7 +81,7 @@ my @mockData = ( plan => 2, testname => q[Good MN data, without RSSI, with set attribute rfmode=PCA301], input => q[MN;D=0405019E8700AAAAAAAA0F13AA16ACC0540AAA49C814473A2774D208AC0B0167;R=6;], - rValue => 1, + rValue => 3, rfmode => 'PCA301' }, { @@ -140,6 +140,38 @@ my @mockData = ( rValue => 1, rfmode => 'Bresser_6in1' }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium OMS MUC, DMSG started with b], + input => q[MN;D=2547F536721602000231D27C7A000008000F80130001090086B41E00175914011B0806020400000000001945000E;R=14;A=0;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Heat Cost Allocator, DMSG started with b], + input => q[MN;D=3E44F53611275600010884B57AA9002025D27FDD54048072F9A9D06C2E2E5249A41E363DE1F27AF3DE4DD325507C67A9E33CDDC4A70F800C0001090086B41E0063B414011E070416C500FC;R=252;A=0;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Cold water, DMSG started with bY], + input => q[MN;D=Y25442D2C769390751B168D20955084E7204D4874442AA58272A51FCE1430C0A769C3BEF95A2096D1;R=209;A=-6;], + rValue => 2, + rfmode => 'WMBus_T' + }, + { + deviceName => q[dummyDuino], + plan => 2, + testname => q[Good MN data, with RSSI, with set attribute rfmode=WMBus_T, Medium Heat Cost Allocator, DMSG started with bY], + input => q[MN;D=Y304497264202231800087A2A0020A53848C8EA9DD3055EA724A2E2AE04E995205589AADC82F6305A620959E6424F406B3B00F6;R=246;A=0;], + rValue => 2, + rfmode => 'WMBus_T' + }, ); From a6b1f0fb8bef87ee7cb45ba95585602cc4a3f77e Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 17 Apr 2024 17:24:18 +0000 Subject: [PATCH 29/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 8df000bf7..0f189e011 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-03-09_15:50:57 240692 FHEM/00_SIGNALduino.pm +UPD 2024-04-17_19:23:43 242124 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-01-06_20:21:35 252437 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-17_19:23:43 253287 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm From 098a189fe6571ad7e70eca121cb3d03d9b89b61c Mon Sep 17 00:00:00 2001 From: sidey79 <7968127+sidey79@users.noreply.github.com> Date: Wed, 17 Apr 2024 23:31:30 +0200 Subject: [PATCH 30/34] feat[00_SIGNALduino]: Changed input validation for WMBus --- FHEM/00_SIGNALduino.pm | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index abe932d1a..d42e28796 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -2172,7 +2172,7 @@ sub SIGNALduino_Split_Message { $patternList{$pattern[0]} = $pattern[1]; $hash->{debugMethod}->(qq[$name: extracted pattern @pattern \n]); } - elsif($_ =~ m/D=\d+/ or $_ =~ m/^D=[A-F0-9]+/) #### Message from array + elsif($_ =~ m/D=\d+/ or $_ =~ m/^D=Y?[A-F0-9]+/) #### Message from array { $_ =~ s/D=//; $rawData = $_ ; @@ -2909,26 +2909,28 @@ sub SIGNALduino_Parse_MN { my $mark; my $rmsg1; - if (substr($rmsg,5,1) eq 'Y') { # WMBus frame type B - $rmsg1 = $rmsg; - $rmsg =~ s/^MN;D=Y/MN;D=/; - $mark = 'Y'; - } - if ($rmsg !~ /^MN;D=[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator + + #if (substr($rmsg,5,1) eq 'Y') { # WMBus frame type B + # $rmsg1 = $rmsg; + # $rmsg =~ s/^MN;D=Y/MN;D=/; + # $mark = 'Y'; + #} + + # Verify if rmsg has the correct values: + if ($rmsg !~ /^MN;D=Y?[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty msg: $rmsg]); return ; # Abort here if not successfull } # Extract Data from rmsg: my %msg_parts = SIGNALduino_Split_Message($rmsg, $hash->{NAME}); - - # Verify if extracted hash has the correct values: - my $rawData = _limit_to_hex($msg_parts{rawData}) // $hash->{logMethod}->($hash->{NAME}, 3, qq[$hash->{NAME}: Parse_MN, faulty rawData D=: $msg_parts{rawData}]) // return ; - - if ($mark) { # WMBus - $rawData = 'Y' . $rawData; - $rmsg = $rmsg1; - } + + my $rawData = (substr %msg_parts{rawData},0,1 eq q[Y]) ? substr(%msg_parts{rawData},1) : $msg_parts{rawData}; + print $rawData; + #if ($mark) { # WMBus + # $rawData = 'Y' . $rawData; + # $rmsg = $rmsg1; + #} my $rssi; my $rssiStr= ''; my $freqafc; From 56899afbd673c8ee07b2ae82e92ee92c584f81ea Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 17 Apr 2024 21:32:01 +0000 Subject: [PATCH 31/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 0f189e011..4a1e286d9 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-17_19:23:43 242124 FHEM/00_SIGNALduino.pm +UPD 2024-04-17_23:31:30 242080 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From b16684db729d2dd06c133aab2856175f30ab170b Mon Sep 17 00:00:00 2001 From: sidey79 <7968127+sidey79@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:47:40 +0200 Subject: [PATCH 32/34] fix[00_SIGNALduino]: Removed unneded code --- FHEM/00_SIGNALduino.pm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/FHEM/00_SIGNALduino.pm b/FHEM/00_SIGNALduino.pm index d42e28796..f0bc96f7b 100644 --- a/FHEM/00_SIGNALduino.pm +++ b/FHEM/00_SIGNALduino.pm @@ -2907,14 +2907,6 @@ sub SIGNALduino_Parse_MN { my $hash = shift // return; #return if no hash is provided my $rmsg = shift // return; #return if no rmsg is provided - my $mark; - my $rmsg1; - - #if (substr($rmsg,5,1) eq 'Y') { # WMBus frame type B - # $rmsg1 = $rmsg; - # $rmsg =~ s/^MN;D=Y/MN;D=/; - # $mark = 'Y'; - #} # Verify if rmsg has the correct values: if ($rmsg !~ /^MN;D=Y?[0-9A-F]+;(?:R=[0-9]+;)?(?:A=-?[0-9]{1,3};)?$/) { # AFC cc1101 0x32 (0xF2): FREQEST – Frequency Offset Estimate from Demodulator @@ -2926,11 +2918,6 @@ sub SIGNALduino_Parse_MN { my %msg_parts = SIGNALduino_Split_Message($rmsg, $hash->{NAME}); my $rawData = (substr %msg_parts{rawData},0,1 eq q[Y]) ? substr(%msg_parts{rawData},1) : $msg_parts{rawData}; - print $rawData; - #if ($mark) { # WMBus - # $rawData = 'Y' . $rawData; - # $rmsg = $rmsg1; - #} my $rssi; my $rssiStr= ''; my $freqafc; From dc31cbc661649c8341e14acf40998115d54dd846 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 19 Apr 2024 15:48:24 +0000 Subject: [PATCH 33/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 4a1e286d9..2b9ea187f 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -1,4 +1,4 @@ -UPD 2024-04-17_23:31:30 242080 FHEM/00_SIGNALduino.pm +UPD 2024-04-19_17:47:50 241822 FHEM/00_SIGNALduino.pm UPD 2023-01-06_12:08:43 20082 FHEM/10_FS10.pm UPD 2024-01-03_23:05:39 27250 FHEM/10_SD_GT.pm UPD 2023-01-01_18:10:40 25403 FHEM/10_SD_Rojaflex.pm From 52d0be70519b198acb4bfdf39dfa7fd6cc719a12 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 22 Apr 2024 16:31:03 +0000 Subject: [PATCH 34/34] Automatic updated controls and CHANGED --- controls_signalduino.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controls_signalduino.txt b/controls_signalduino.txt index 2b9ea187f..0832323f4 100644 --- a/controls_signalduino.txt +++ b/controls_signalduino.txt @@ -14,5 +14,5 @@ UPD 2023-01-23_21:06:26 38569 FHEM/14_SD_WS09.pm UPD 2023-01-09_19:54:48 16458 FHEM/14_SD_WS_Maverick.pm UPD 2023-01-28_20:08:00 40378 FHEM/41_OREGON.pm UPD 2020-12-17_23:16:30 15582 FHEM/90_SIGNALduino_un.pm -UPD 2024-04-17_19:23:43 253287 FHEM/lib/SD_ProtocolData.pm +UPD 2024-04-10_21:35:45 253287 FHEM/lib/SD_ProtocolData.pm UPD 2024-01-06_20:21:35 81862 FHEM/lib/SD_Protocols.pm