From 160494d593364acf924d5ca7fc8d429d4b71d47a Mon Sep 17 00:00:00 2001 From: Egbert Broerse Date: Thu, 7 Nov 2024 22:20:45 +0100 Subject: [PATCH 1/5] REM bindings minibox and vasco fans --- src/ramses_tx/parsers.py | 4 ++-- src/ramses_tx/ramses.py | 3 --- tests/tests/parsers/code_1fc9.log | 14 +++++++++++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/ramses_tx/parsers.py b/src/ramses_tx/parsers.py index ce78cae50..f0aebb6e5 100644 --- a/src/ramses_tx/parsers.py +++ b/src/ramses_tx/parsers.py @@ -1288,12 +1288,12 @@ def parser_1fc9(payload: str, msg: Message) -> PayDictT._1FC9: def _parser(seqx: str) -> list[str]: if seqx[:2] not in ("90",): assert ( - seqx[6:] == payload[6:12] + seqx[6:] == payload[6:12] # [6:12] is repeated ), f"{seqx[6:]} != {payload[6:12]}" # all with same controller if seqx[:2] not in ( "21", # HVAC, Nuaire "63", # HVAC - "66", # HVAC, Vasco? + "66", # HVAC, Vasco "67", # HVAC "6C", # HVAC "90", # HEAT diff --git a/src/ramses_tx/ramses.py b/src/ramses_tx/ramses.py index 5909b511e..afa951ab2 100644 --- a/src/ramses_tx/ramses.py +++ b/src/ramses_tx/ramses.py @@ -344,9 +344,6 @@ W_: r"^00[0-9A-F]{30}$", }, Code._1FC9: { # rf_bind - # RP --- 13:035462 18:013393 --:------ 1FC9 018 00-3EF0-348A86 00-11F0-348A86 90-3FF1-956ABD # noqa: E501 - # RP --- 13:035462 18:013393 --:------ 1FC9 018 00-3EF0-348A86 00-11F0-348A86 90-7FE1-DD6ABD # noqa: E501 - # RP --- 01:145038 18:013393 --:------ 1FC9 012 FF-10E0-06368E FF-1FC9-06368E SZ_NAME: "rf_bind", # idx-code-dev_id RQ: r"^00$", RP: r"^((0[0-9A-F]|F[69ABCF]|[0-9A-F]{2})([0-9A-F]{10}))+$", diff --git a/tests/tests/parsers/code_1fc9.log b/tests/tests/parsers/code_1fc9.log index 5a0500c02..bd92ca50b 100644 --- a/tests/tests/parsers/code_1fc9.log +++ b/tests/tests/parsers/code_1fc9.log @@ -1,5 +1,8 @@ ######################################################################################## ### Heat domain ### +# RP --- 13:035462 18:013393 --:------ 1FC9 018 00-3EF0-348A86 00-11F0-348A86 90-3FF1-956ABD # noqa: E501 +# RP --- 13:035462 18:013393 --:------ 1FC9 018 00-3EF0-348A86 00-11F0-348A86 90-7FE1-DD6ABD # noqa: E501 +# RP --- 01:145038 18:013393 --:------ 1FC9 012 FF-10E0-06368E FF-1FC9-06368E # CTL binding to an OTB (FC|0008, FC|3150, FB|3150, FC|1FC9): : Domain id FB|3150 (+FC) 2020-11-23T14:35:23.043166 045 I --- 01:078710 --:------ 01:078710 1FC9 024 FC0008053376FC3150053376FB3150053376FC1FC9053376 # {'phase': 'offer', 'bindings': [['FC', '0008', '01:078710'], ['FC', '3150', '01:078710'], ['FB', '3150', '01:078710'], ['FC', '1FC9', '01:078710']]} @@ -70,7 +73,6 @@ 2022-01-07T14:48:48.604387 ... W --- 30:248208 01:054173 --:------ 1FC9 012 0010E07BC9900012907BC990 # {'phase': 'accept', 'bindings': [['00', '10E0', '30:248208'], ['00', '1290', '30:248208']]} 2022-01-07T14:48:48.769229 ... I --- 01:054173 30:248208 --:------ 1FC9 006 00FFFF04D39D # {'phase': 'confirm', 'bindings': [['00', 'FFFF', '01:054173']]} - # The first BDR91 (which has a 3B00 in the payload) is the TPI relay (it turns the boiler on/off), the 2nd is not. 2020-01-01T20:32:58.273000 ... RQ --- 18:013393 13:237335 --:------ 1FC9 001 00 2020-01-01T20:32:58.297000 ... RP --- 13:237335 18:013393 --:------ 1FC9 012 003EF0379F17003B00379F17 @@ -99,3 +101,13 @@ 2022-08-17T19:32:32.785062 ... I --- 37:155617 --:------ 37:155617 1FC9 024 0022F1965FE10022F3965FE16710E0965FE1001FC9965FE1 # {'phase': 'offer', 'bindings': [['00', '22F1', '37:155617'], ['00', '22F3', '37:155617'], ['67', '10E0', '37:155617'], ['00', '1FC9', '37:155617']]} 2022-08-17T19:32:34.825700 ... W --- 32:155617 37:155617 --:------ 1FC9 012 0031D9825FE10031DA825FE1 # {'phase': 'accept', 'bindings': [['00', '31D9', '32:155617'], ['00', '31DA', '32:155617']]} 2022-08-17T19:32:35.418914 ... I --- 37:155617 32:155617 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# Vasco remote binding to a D60 HRU FAN (31D9/A) +2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} +2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} +2024-11-07T14:39:29.693284 071 I --- 29:091138 32:022222 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# ClimaRad remote binding to a ClimaRad MiniBox FAN (0001/) +2024-11-07T19:32:38.578052 ... I --- 29:123160 --:------ 29:123160 1FC9 012 0031D975E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '31D9', '29:123160'], ['00', '1FC9', '29:123160']]} +2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} +2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} From 474ccfb423c8a79de1f890535f830f54595c0280 Mon Sep 17 00:00:00 2001 From: Egbert Broerse Date: Sun, 10 Nov 2024 17:25:56 +0100 Subject: [PATCH 2/5] add 1fc9 oem value 65 --- src/ramses_tx/parsers.py | 3 ++- tests/tests/parsers/code_1fc9.log | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/ramses_tx/parsers.py b/src/ramses_tx/parsers.py index f0aebb6e5..04054c7fd 100644 --- a/src/ramses_tx/parsers.py +++ b/src/ramses_tx/parsers.py @@ -1293,10 +1293,11 @@ def _parser(seqx: str) -> list[str]: if seqx[:2] not in ( "21", # HVAC, Nuaire "63", # HVAC + "65", # HVAC, ClimaRad "66", # HVAC, Vasco "67", # HVAC "6C", # HVAC - "90", # HEAT + "90", # HEAT 1FC9 018 0022F175E10E 6510E075E10E 001FC975E10E F6, F9, FA, diff --git a/tests/tests/parsers/code_1fc9.log b/tests/tests/parsers/code_1fc9.log index bd92ca50b..51f9664e5 100644 --- a/tests/tests/parsers/code_1fc9.log +++ b/tests/tests/parsers/code_1fc9.log @@ -102,12 +102,23 @@ 2022-08-17T19:32:34.825700 ... W --- 32:155617 37:155617 --:------ 1FC9 012 0031D9825FE10031DA825FE1 # {'phase': 'accept', 'bindings': [['00', '31D9', '32:155617'], ['00', '31DA', '32:155617']]} 2022-08-17T19:32:35.418914 ... I --- 37:155617 32:155617 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# Vasco remote binding to a D60 HRU FAN (31D9/A) +# Vasco remote binding to a D60 HRU FAN (31D9/A) - oem_code 66 (orcon) 2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} 2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} 2024-11-07T14:39:29.693284 071 I --- 29:091138 32:022222 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# ClimaRad remote binding to a ClimaRad MiniBox FAN (0001/) -2024-11-07T19:32:38.578052 ... I --- 29:123160 --:------ 29:123160 1FC9 012 0031D975E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '31D9', '29:123160'], ['00', '1FC9', '29:123160']]} +# ClimaRad remote binding to a ClimaRad MiniBox FAN (31D9) - oem_code 65 (orcon) +2024-11-09T09:56:31.417079 064 I --- 29:123150 63:262142 --:------ 1FC9 018 0022F175E10E6510E075E10E001FC975E10E # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123150'], ['65', '10E0', '29:123150'], ['00', '1FC9', '29:123150']]} +# also seen in log, same remote +# 2024-11-07T19:32:38.578052 ... I --- 29:123150 --:------ 29:123150 1FC9 012 0031D975E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '31D9', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} 2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# faked remote binding to Ventura V1X (unsuccessful, copied from MiniBox binding, added 1298 and 22F4) +2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '1298', '29:123160'], ['00', '22F1', '29:123160'], ['00', '22F4', '29:123160'], ['00', '1FC9', '29:123160']]} +2024-11-09T18:32:42.036189 079 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? +2024-11-09T18:32:42.045171 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} +# copied ClimaRad REM packet, gets accepted too, but still can't control via 22F1 +2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} +2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? +2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} From 74c8d60192b9708634d1322f126447cfc7076895 Mon Sep 17 00:00:00 2001 From: Egbert Broerse Date: Sun, 10 Nov 2024 22:25:35 +0100 Subject: [PATCH 3/5] add separate fan logs as req --- .../tests/bindings/hvac/rem_fan_climarad.log | 32 +++++++++++++++++++ tests/tests/bindings/hvac/rem_fan_vasco.log | 32 +++++++++++++++++++ tests/tests/bindings/hvac/rem_fan_ventura.log | 29 +++++++++++++++++ tests/tests/parsers/code_1fc9.log | 8 ++--- 4 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 tests/tests/bindings/hvac/rem_fan_climarad.log create mode 100644 tests/tests/bindings/hvac/rem_fan_vasco.log create mode 100644 tests/tests/bindings/hvac/rem_fan_ventura.log diff --git a/tests/tests/bindings/hvac/rem_fan_climarad.log b/tests/tests/bindings/hvac/rem_fan_climarad.log new file mode 100644 index 000000000..be7128d8a --- /dev/null +++ b/tests/tests/bindings/hvac/rem_fan_climarad.log @@ -0,0 +1,32 @@ +#################################################################################################### +# Climarad Remote binding to a PIV +# - Supplicant, REM: Climarad 4-button remote (VMN-07LM01) +# - Respondent, FAN: Climarad MiniBox FAN (VMC-07RP01) + + + +#################################################################################################### +# 1. For reference, 10E0s (if any), oem_code='66' (Note: REM/FAN won't RP|10E0): +2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote +2024-10-16T18:43:52.761437 087 I --- 29:099029 63:262142 --:------ 10E0 029 000001C81D150765FFFFFFFFFFFFFFFFFFFF564D432D30375250303100 # {'description': 'VMC-07RP01', 'manufacturer_sub_id': 'C8', 'product_id': '1D', 'date_1': '0000-00-00', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad MiniBox Fan + + + +#################################################################################################### +# 2. The handshake (NB: FAN|W|1FC9|00): +2024-11-09T09:56:31.417079 064 I --- 29:123150 63:262142 --:------ 1FC9 018 0022F175E10E6510E075E10E001FC975E10E # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123150'], ['65', '10E0', '29:123150'], ['00', '1FC9', '29:123150']]} +2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} +2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# It appears the subsequent/spontaneous REM|I|10E0 *is required* for a successful bind (otherwise the FAN will RQ|10E0, see below): +2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote + + + +#################################################################################################### +# 3. Other notes: +# - domain IS appears to be 00: +# 31DA not seen + +# 3. Other notes: +# - it is unclear if these spontaneous I|1060s are needed too (unlikely): diff --git a/tests/tests/bindings/hvac/rem_fan_vasco.log b/tests/tests/bindings/hvac/rem_fan_vasco.log new file mode 100644 index 000000000..fd0c9fc4e --- /dev/null +++ b/tests/tests/bindings/hvac/rem_fan_vasco.log @@ -0,0 +1,32 @@ +#################################################################################################### +# Vasco Remote binding to a PIV +# - Supplicant, REM: Vasco 4-button remote (VMN-17LMP01) +# - Respondent, FAN: Vasco D60 HRU (VMD-17RPS01) + + + +#################################################################################################### +# 1. For reference, 10E0s (if any), oem_code='66' (Note: REM/FAN won't RP|10E0): +2024-10-04 22:24:58.581000 ... I --- 29:091138 63:262142 --:------ 10E0 038 000001C8400F0166FFFFFFFFFFFF0E0207E3564D4E2D31374C4D503031000000000000000000 # {'description': 'VMN-17LMP01', 'manufacturer_sub_id': 'C8', 'product_id': '40', 'date_1': '2019-02-14', 'date_2': '0000-00-00', 'oem_code': '66'} # Vasco 4-button remote +2024-10-15T21:01:19.293000 083 I --- 32:022222 63:262142 --:------ 10E0 030 000001C83A190F66FFFFFFFFFFFFFFFFFFFF564D442D3137525053303100 # {'description': 'VMD-17RPS01', 'manufacturer_sub_id': 'C8', 'product_id': '3A', 'date_1': '0000-00-00', 'date_2': '0000-00-00', 'oem_code': '66'} # Vasco D60 HRU + + + +#################################################################################################### +# 2. The handshake (NB: FAN|W|1FC9|00): +2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} +2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} +2024-11-07T14:39:29.693284 071 I --- 29:091138 32:022222 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# It appears the subsequent/spontaneous REM|I|10E0 *is required* for a successful bind (otherwise the FAN will RQ|10E0, see below): +2024-10-04 22:24:58.581000 ... I --- 29:091138 63:262142 --:------ 10E0 038 000001C8400F0166FFFFFFFFFFFF0E0207E3564D4E2D31374C4D503031000000000000000000 # {'description': 'VMN-17LMP01', 'manufacturer_sub_id': 'C8', 'product_id': '40', 'date_1': '2019-02-14', 'date_2': '0000-00-00', 'oem_code': '66'} # Vasco 4-button remote + + + +#################################################################################################### +# 3. Other notes: +# - domain IS appears to be 00: +# 2024-10-15T12:46:03.623447 082 I --- 32:022222 --:------ 32:022222 31DA 030 00EF007FFFEFEF058506EE0773051FA800EF0232320000EF00051902EE00 + +# 3. Other notes: +# - it is unclear if these spontaneous I|1060s are needed too (unlikely): diff --git a/tests/tests/bindings/hvac/rem_fan_ventura.log b/tests/tests/bindings/hvac/rem_fan_ventura.log new file mode 100644 index 000000000..dc262452d --- /dev/null +++ b/tests/tests/bindings/hvac/rem_fan_ventura.log @@ -0,0 +1,29 @@ +#################################################################################################### +# ClimaRad Remote binding to a PIV +# - Supplicant, REM: ClimaRad 4-button remote (VMN-07LM01) +# - Respondent, FAN: ClimaRad VenturaV1x HRU (VMD-07RPS13) + + + +#################################################################################################### +# 1. For reference, 10E0s (if any), oem_code='66' (Note: REM/FAN won't RP|10E0): +2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote +2024-10-09T11:50:24.287879 123 I --- 37:153226 63:262142 --:------ 10E0 038 000001C8830C0A65FEFFFFFFFFFF110C07E4564D442D30375250533133000000000000000000 # {'description': 'VMD-07RPS13', 'manufacturer_sub_id': 'C8', 'product_id': '83', 'date_1': '2020-12-17', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad VenturaV1x + + + +#################################################################################################### +# 2. The handshake - faked in ramses_rf (NB: FAN|W|1FC9|00): +2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} +2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? +2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +# It appears the subsequent/spontaneous REM|I|10E0 *is required* for a successful bind (otherwise the FAN will RQ|10E0, see below): +2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote + + + +#################################################################################################### +# 3. Other notes: +# - domain IS appears to be EF: +066 I --- 37:153226 --:------ 37:153226 31DA 030 00 EF0001F600EF064C7FFF07F5073EBE09001F0000000000008500850000 diff --git a/tests/tests/parsers/code_1fc9.log b/tests/tests/parsers/code_1fc9.log index 51f9664e5..8c48d3ca0 100644 --- a/tests/tests/parsers/code_1fc9.log +++ b/tests/tests/parsers/code_1fc9.log @@ -102,23 +102,23 @@ 2022-08-17T19:32:34.825700 ... W --- 32:155617 37:155617 --:------ 1FC9 012 0031D9825FE10031DA825FE1 # {'phase': 'accept', 'bindings': [['00', '31D9', '32:155617'], ['00', '31DA', '32:155617']]} 2022-08-17T19:32:35.418914 ... I --- 37:155617 32:155617 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# Vasco remote binding to a D60 HRU FAN (31D9/A) - oem_code 66 (orcon) +# Vasco remote binding to a D60 HRU FAN (31D9/A) - oem_code 66 (vasco) 2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} 2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} 2024-11-07T14:39:29.693284 071 I --- 29:091138 32:022222 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# ClimaRad remote binding to a ClimaRad MiniBox FAN (31D9) - oem_code 65 (orcon) +# ClimaRad remote binding to a ClimaRad MiniBox FAN (31D9) - oem_code 65 (climarad) 2024-11-09T09:56:31.417079 064 I --- 29:123150 63:262142 --:------ 1FC9 018 0022F175E10E6510E075E10E001FC975E10E # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123150'], ['65', '10E0', '29:123150'], ['00', '1FC9', '29:123150']]} # also seen in log, same remote # 2024-11-07T19:32:38.578052 ... I --- 29:123150 --:------ 29:123150 1FC9 012 0031D975E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '31D9', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} 2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# faked remote binding to Ventura V1X (unsuccessful, copied from MiniBox binding, added 1298 and 22F4) +# faked remote binding to Ventura V1X (adapted from MiniBox binding, added 1298 and 22F4) 2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '1298', '29:123160'], ['00', '22F1', '29:123160'], ['00', '22F4', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:32:42.036189 079 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:32:42.045171 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# copied ClimaRad REM packet, gets accepted too, but still can't control via 22F1 +# copied ClimaRad REM packet, gets accepted reply, but still can't control via 22F1 2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} From 0b8843fbf8da5a50198c61564e8bd67d65a962d6 Mon Sep 17 00:00:00 2001 From: Egbert Broerse Date: Sun, 10 Nov 2024 22:33:39 +0100 Subject: [PATCH 4/5] fix pull merge duplicates --- tests/tests/parsers/code_1fc9.log | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/tests/tests/parsers/code_1fc9.log b/tests/tests/parsers/code_1fc9.log index 62247f8a0..61ac8aecf 100644 --- a/tests/tests/parsers/code_1fc9.log +++ b/tests/tests/parsers/code_1fc9.log @@ -102,16 +102,6 @@ 2022-08-17T19:32:34.825700 ... W --- 32:155617 37:155617 --:------ 1FC9 012 0031D9825FE10031DA825FE1 # {'phase': 'accept', 'bindings': [['00', '31D9', '32:155617'], ['00', '31DA', '32:155617']]} 2022-08-17T19:32:35.418914 ... I --- 37:155617 32:155617 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# Vasco remote (22F1/3) binding to a D60 HRU FAN (31D9/A) -2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} -2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} -2024-11-07T14:39:29.693284 071 I --- 29:091138 32:022222 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} - -# ClimaRad remote (31D9) binding to a ClimaRad MiniBox FAN (31D9) -2024-11-07T19:32:38.578052 ... I --- 29:123160 --:------ 29:123160 1FC9 012 0031D975E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '31D9', '29:123160'], ['00', '1FC9', '29:123160']]} -2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} -2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} - # Vasco remote binding to a D60 HRU FAN (31D9/A) - oem_code 66 (vasco) 2024-11-07T14:39:29.639500 072 I --- 29:091138 --:------ 29:091138 1FC9 024 0022F17564020022F37564026610E0756402001FC9756402 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:091138'], ['00', '22F3', '29:091138'], ['66', '10E0', '29:091138'], ['00', '1FC9', '29:091138']]} 2024-11-07T14:39:29.687203 083 W --- 32:022222 29:091138 --:------ 1FC9 012 0031D98056CE0031DA8056CE # {'phase': 'accept', 'bindings': [['00', '31D9', '32:022222'], ['00', '31DA', '32:022222']]} @@ -124,11 +114,11 @@ 2024-11-07T13:01:37.338144 090 W --- 29:099029 29:123150 --:------ 1FC9 006 0031D97582D5 # {'phase': 'accept', 'bindings': [['00', '31D9', '29:099029']]} 2024-11-07T13:01:37.355235 092 I --- 29:123150 29:099029 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# faked remote binding to Ventura V1X (adapted from MiniBox binding, added 1298 and 22F4) +# ClimaRad faked remote binding to Ventura V1X (adapted from MiniBox binding, added 1298 and 22F4) 2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '1298', '29:123160'], ['00', '22F1', '29:123160'], ['00', '22F4', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:32:42.036189 079 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:32:42.045171 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# copied ClimaRad REM packet, gets accepted reply, but still can't control via 22F1 +# copied ClimaRad REM packet, gets accepted reply, but still can't control via 22F1, should follow 10E0? 2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} From 92bdc3b24bfe30ad65e558003ba0d543a4c5e06a Mon Sep 17 00:00:00 2001 From: Egbert Broerse Date: Mon, 11 Nov 2024 21:07:53 +0100 Subject: [PATCH 5/5] correct oem, add binding try --- .../tests/bindings/hvac/rem_fan_climarad.log | 2 +- tests/tests/bindings/hvac/rem_fan_ventura.log | 35 +++++++++++++++---- tests/tests/parsers/code_1fc9.log | 3 +- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/tests/tests/bindings/hvac/rem_fan_climarad.log b/tests/tests/bindings/hvac/rem_fan_climarad.log index be7128d8a..06221f47e 100644 --- a/tests/tests/bindings/hvac/rem_fan_climarad.log +++ b/tests/tests/bindings/hvac/rem_fan_climarad.log @@ -6,7 +6,7 @@ #################################################################################################### -# 1. For reference, 10E0s (if any), oem_code='66' (Note: REM/FAN won't RP|10E0): +# 1. For reference, 10E0s (if any), oem_code='65' (Note: REM/FAN won't RP|10E0): 2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote 2024-10-16T18:43:52.761437 087 I --- 29:099029 63:262142 --:------ 10E0 029 000001C81D150765FFFFFFFFFFFFFFFFFFFF564D432D30375250303100 # {'description': 'VMC-07RP01', 'manufacturer_sub_id': 'C8', 'product_id': '1D', 'date_1': '0000-00-00', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad MiniBox Fan diff --git a/tests/tests/bindings/hvac/rem_fan_ventura.log b/tests/tests/bindings/hvac/rem_fan_ventura.log index dc262452d..c2e1d80f3 100644 --- a/tests/tests/bindings/hvac/rem_fan_ventura.log +++ b/tests/tests/bindings/hvac/rem_fan_ventura.log @@ -1,12 +1,12 @@ #################################################################################################### # ClimaRad Remote binding to a PIV -# - Supplicant, REM: ClimaRad 4-button remote (VMN-07LM01) -# - Respondent, FAN: ClimaRad VenturaV1x HRU (VMD-07RPS13) +# - Supplicant, REM: ClimaRad 4-button remote faked (VMN-07LM01) +# - Respondent, FAN: ClimaRad VenturaV1x HRU (VMD-07RPS13) #################################################################################################### -# 1. For reference, 10E0s (if any), oem_code='66' (Note: REM/FAN won't RP|10E0): +# 1. For reference, 10E0s (if any), oem_code='65' (Note: REM/FAN won't RP|10E0): 2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote 2024-10-09T11:50:24.287879 123 I --- 37:153226 63:262142 --:------ 10E0 038 000001C8830C0A65FEFFFFFFFFFF110C07E4564D442D30375250533133000000000000000000 # {'description': 'VMD-07RPS13', 'manufacturer_sub_id': 'C8', 'product_id': '83', 'date_1': '2020-12-17', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad VenturaV1x @@ -14,12 +14,24 @@ #################################################################################################### # 2. The handshake - faked in ramses_rf (NB: FAN|W|1FC9|00): -2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} +# actual remote 1FC9 packet gets no response. Ventura is known to only bind to a CO2 sensor +2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 +# extended 1FC9. Added 1298 and 22F4, got response from HRU +2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {} +2024-11-09T18:32:43.058046 075 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? +2024-11-09T18:32:47.032998 000 I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} + +2024-11-09T18:33:29.744238 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# It appears the subsequent/spontaneous REM|I|10E0 *is required* for a successful bind (otherwise the FAN will RQ|10E0, see below): -2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote +# no errors in ramses_cc +2024-11-11T14:36:41.725043 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} +2024-11-11T14:36:41.741511 075 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? +2024-11-11T14:36:41.745628 ... I --- 29:123160 37:153226 --:------ 1FC9 006 001FC975E118 # {'phase': 'confirm', 'bindings': [['00', '1FC9', '29:123160']]} # made up by ramses_rf, config was "21" + +# A subsequent/spontaneous REM|I|10E0 *is required* for a successful bind???: +2024-10-16T21:32:07.084793 073 I --- 29:123150 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100 # {'description': 'VMN-07LM01', 'manufacturer_sub_id': 'C8', 'product_id': '41', 'date_1': '2015-04-13', 'date_2': '0000-00-00', 'oem_code': '65'} # ClimaRad 4-button remote @@ -27,3 +39,14 @@ # 3. Other notes: # - domain IS appears to be EF: 066 I --- 37:153226 --:------ 37:153226 31DA 030 00 EF0001F600EF064C7FFF07F5073EBE09001F0000000000008500850000 +# 4. ramses_cc.bind_device action +data: + device_id: "29:123160" + offer: + "10E0": "65" + 1FC9: "00" # or "21" as in orcon? + 22F1: "00" + # confirm: reports an error in ramses_cc + # 1FC9: "00" + device_info: + " I --- 29:123160 63:262142 --:------ 10E0 029 000001C8410D0165FFFFFFFFFFFF0D0407DF564D4E2D30374C4D303100" diff --git a/tests/tests/parsers/code_1fc9.log b/tests/tests/parsers/code_1fc9.log index 61ac8aecf..e26481be7 100644 --- a/tests/tests/parsers/code_1fc9.log +++ b/tests/tests/parsers/code_1fc9.log @@ -118,7 +118,8 @@ 2024-11-09T18:32:41.837359 000 I --- 29:123160 --:------ 29:123160 1FC9 024 00129875E1180022F175E1180022F475E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '1298', '29:123160'], ['00', '22F1', '29:123160'], ['00', '22F4', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:32:42.036189 079 W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:32:42.045171 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} -# copied ClimaRad REM packet, gets accepted reply, but still can't control via 22F1, should follow 10E0? +# copied ClimaRad REM packet, gets 'accept' reply, but still can't control via 22F1/22F4, should follow up with 10E0? 2024-11-09T18:33:29.744238 ... I --- 29:123160 --:------ 29:123160 1FC9 018 0022F175E1180010E075E118001FC975E118 # {'phase': 'offer', 'bindings': [['00', '22F1', '29:123160'], ['00', '10E0', '29:123160'], ['00', '1FC9', '29:123160']]} 2024-11-09T18:33:29.759645 ... W --- 37:153226 29:123160 --:------ 1FC9 012 0031D996568A00230996568A # {'phase': 'accept', 'bindings': [['00', '31D9', '37:153226'], ['00', '2309', '37:153226']]} # 2309 reports a constant , set? 2024-11-09T18:33:29.763814 ... I --- 29:123160 37:153226 --:------ 1FC9 001 00 # {'phase': 'confirm', 'bindings': [['00']]} +2024-11-11T14:36:41.745628 ... I --- 29:123160 37:153226 --:------ 1FC9 006 001FC975E118 # {'phase': 'confirm', 'bindings': [['00', '1FC9', '29:123160']]} # made up by ramses_rf, config was "21"