Portisch / RF-Bridge-EFM8BB1

Alternative Firmware for the Sonoff RF Bridge EFM8BB1 chip
293 stars 124 forks source link

DG-HOSA PIR and GS-WDS07 door/window sensor #110

Closed tt1pjm closed 5 years ago

tt1pjm commented 5 years ago

Latest firmware used?

Tested using: Tasmota 6.5.0 https://github.com/Portisch/RF-Bridge-EFM8BB1/releases/tag/0x04 and newest binary

Information

I have a DG-HOSA PIR that functions correctly when using RfRaw 0 but doesn't produce anything when using RfRaw 166. I have the same behaviour from a GS-WDS07 door/window sensor. I have been able to sniff data for both on RfRaw 177. Should these be recognised by the default protocol? (this looks similar to #91)

Sniffed data

DG-HOSA PIR 08:10:06 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 03 019A 0488 2F44 28181908190819090908181908181818190818181819090818 55"}} 08:10:07 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 04 01CC 044C 014A 2F26 38181928190819090908181908181818190818181819090818 55"}} 08:10:07 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 03 01CC 044C 2F26 28181908190819090908181908181818190818181819090818 55"}} 08:10:07 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 04 01D6 044C 0154 2F26 38181928192819290908181908181818190818181819090818 55"}} 08:10:07 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 04 01D6 0456 014A 2F30 38181928192819090908181908181818190818181819090818 55"}} 08:10:07 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 03 01CC 044C 2F26 28181908190819090908181908181818190818181819090818 55"}} GS-WDS07 08:15:30 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 03 0212 0514 3700 28181908190819090818190818181819081818181908190818 55"}} 08:15:30 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 04 0226 0500 0190 36B0 38181928190819090818190818181819081818181908190818 55"}} 08:15:30 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 03 0230 0500 36F6 28181908190819090818190818181819081818181908190818 55"}} 08:15:30 MQT: tele/RF_Bridge/RESULT = {"RfRaw":{"Data":"AA B1 04 0230 050A 0190 36F6 38181928190819090818190818181819081818181908190818 55"}}

Portisch commented 5 years ago

The DG-HOSA PIR should be decoded by default. It's PT226X protocol. GS-WDS07 is also "near" PT226X protocol. But I think it should not decode it because the timing is out of tolerance.

Use this protocol for DG-HOSA PIR:

#if EFM8BB1_SUPPORT_PT226X_PROTOCOL == 1
#define PT226X
SI_SEGMENT_VARIABLE(PROTOCOL_BUCKETS(PT226X)[], static uint16_t, SI_SEG_CODE) = { 410, 1160, 12100 };
SI_SEGMENT_VARIABLE(PROTOCOL_START(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(0), LOW(2) };
SI_SEGMENT_VARIABLE(PROTOCOL_BIT0(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(0), LOW(1) };
SI_SEGMENT_VARIABLE(PROTOCOL_BIT1(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(1), LOW(0) };
#endif

Use this protocol for GS-WDS07:

#if EFM8BB1_SUPPORT_PT226X_PROTOCOL == 1
#define PT226X
SI_SEGMENT_VARIABLE(PROTOCOL_BUCKETS(PT226X)[], static uint16_t, SI_SEG_CODE) = { 530, 1300, 14080 };
SI_SEGMENT_VARIABLE(PROTOCOL_START(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(0), LOW(2) };
SI_SEGMENT_VARIABLE(PROTOCOL_BIT0(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(0), LOW(1) };
SI_SEGMENT_VARIABLE(PROTOCOL_BIT1(PT226X)[], static uint8_t, SI_SEG_CODE) = { HIGH(1), LOW(0) };
#endif