Portisch / RF-Bridge-EFM8BB1

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

Advanced learning not working as expected #129

Closed miguelangel-nubla closed 5 years ago

miguelangel-nubla commented 5 years ago

Latest firmware used?

Compiled from latest master on af1bddb

Information

DIO Chacon motion detector https://www.chacon.be/en/lighting/163-wireless-motion-detector-wall-switch-5411478545035.html

Sniffed data

03:11:54 MQT: sonoff_F81779/tele/STATE = {"Time":"2019-07-12T03:11:54","Uptime":"0T00:15:14","SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"Wifi":{"AP":1,"SSId":"...........","BSSId":".............","Channel":6,"RSSI":100,"LinkCount":1,"Downtime":"0T00:00:04"}}
03:14:12 CMD: Rfraw AA A6 55
03:14:34 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB89955"}}
03:14:35 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB89955"}}
03:14:35 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508787EB89955"}}
03:14:35 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB89955"}}
Device sent on
03:14:39 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB88955"}}
03:14:40 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB88955"}}
03:14:40 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA605087FFEB88955"}}
03:14:40 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA60508687EB88955"}}
Device sent off. It is clear that last bit 99 is on, and 89 is off.
According to that, protocol is 08? Is that a bug? the device has a DIO CHACON protocol
Lets turn off sniffing
03:16:42 MQT: sonoff_F81779/tele/HASS_STATE = {"Version":"6.5.0.13(sonoff)","BuildDateTime":"2019-05-28T16:56:35","Core":"2_5_2","SDK":"2.2.2-dev(c0eb301)","Module":"Sonoff Bridge","RestartReason":"Power on","Uptime":"0T00:20:02","WiFi LinkCount":1,"WiFi Downtime":"0T00:00:04","MqttCount":1,"BootCount":63,"SaveCount":160,"IPAddress":"192.168.1.94","RSSI":"100","LoadAvg":19}
03:16:54 MQT: sonoff_F81779/tele/STATE = {"Time":"2019-07-12T03:16:54","Uptime":"0T00:20:14","SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"Wifi":{"AP":1,"SSId":"...........","BSSId":".............","Channel":6,"RSSI":100,"LinkCount":1,"Downtime":"0T00:00:04"}}
03:17:27 CMD: Rfraw AA A7 55
03:17:27 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:17:27 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
And ON advanced learning
03:17:56 CMD: Rfraw AA A9 55
03:17:56 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:17:59 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAAB0400687EB855"}}
Sent on from device.
Now the protocol is 00? another bug? the device has a DIO CHACON protocol. And why are last bits captured before missing now?
Lets try sending the code
03:20:05 CMD: Rfraw AA A8 04 00 687EB8 55
03:20:05 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:20:06 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:20:06 CMD: Rfraw AA A8 04 00 687EB8 55
03:20:06 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:20:07 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:20:07 CMD: Rfraw AA A8 04 00 687EB8 55
03:20:07 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:20:08 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:20:08 CMD: Rfraw AA A8 04 00 687EB8 55
03:20:08 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:20:09 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:20:10 CMD: Rfraw AA A8 04 00 687EB8 55
03:20:10 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:20:10 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
No luck, lets try with the other protocol ID 08.
03:21:00 CMD: Rfraw AA A8 04 08 687EB8 55
03:21:00 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:21:01 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:21:04 CMD: Rfraw AA A8 04 00 687EB8 55
03:21:04 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:21:05 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:21:05 CMD: Rfraw AA A8 04 00 687EB8 55
03:21:05 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:21:05 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:21:06 CMD: Rfraw AA A8 04 00 687EB8 55
03:21:06 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:21:06 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:21:06 CMD: Rfraw AA A8 04 00 687EB8 55
03:21:07 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:21:07 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
No luck either, no response

Lets try raw sniffing
03:31:53 CMD: Rfraw AA B1 55
03:31:53 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:31:53 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:31:54 MQT: sonoff_F81779/tele/STATE = {"Time":"2019-07-12T03:31:54","Uptime":"0T00:35:14","SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"Wifi":{"AP":1,"SSId":"...........","BSSId":"...........","Channel":6,"RSSI":100,"LinkCount":1,"Downtime":"0T00:00:04"}}
03:31:58 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 0136 09F6 00DC 0424 2544 481828382838380828383808283808382838283838083808380838083808380808383808083838083808380808380838083838080838083838083808083808383808 55"}}
03:31:58 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0406 2558 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55"}}
03:31:58 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0406 2544 481828382838382828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55"}}
03:31:59 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 0154 09E2 00C8 0406 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55"}}
03:31:59 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0410 2544 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55"}}
03:31:59 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 0154 09E2 00C8 0410 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55"}}
03:32:03 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 03 0122 042E 0406 2808180818 55"}}
Device sent on
03:32:03 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 0136 09F6 00DC 041A 254E 481828382838380828383808283808382838283838083808380838083808380808383808083838083808380808380838083838080838083808383808083808383808 55"}}
03:32:03 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0410 254E 481828382838382828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55"}}
03:32:04 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0406 2544 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55"}}
03:32:04 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0406 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55"}}
03:32:04 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00C8 0406 254E 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55"}}
03:32:04 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 05 014A 09E2 00BE 0410 2544 481828382838380828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55"}}
03:32:49 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AA B1 03 021C 0398 0780 28181818 55"}}
Device sent off
Now resend using bitbuckedconverter.py
03:35:27 CMD: RfRaw AA B0 4E 05 04 0136 09F6 00DC 0424 2544 481828382838380828383808283808382838283838083808380838083808380808383808083838083808380808380838083838080838083838083808083808383808 55
03:35:27 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:35:27 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:36:32 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0406 2558 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55
03:36:32 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:36:32 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:36:42 MQT: sonoff_F81779/tele/HASS_STATE = {"Version":"6.5.0.13(sonoff)","BuildDateTime":"2019-05-28T16:56:35","Core":"2_5_2","SDK":"2.2.2-dev(c0eb301)","Module":"Sonoff Bridge","RestartReason":"Power on","Uptime":"0T00:40:02","WiFi LinkCount":1,"WiFi Downtime":"0T00:00:04","MqttCount":1,"BootCount":63,"SaveCount":160,"IPAddress":"192.168.1.94","RSSI":"100","LoadAvg":19}
03:36:54 MQT: sonoff_F81779/tele/STATE = {"Time":"2019-07-12T03:36:54","Uptime":"0T00:40:14","SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"Wifi":{"AP":1,"SSId":"...........","BSSId":"...........","Channel":6,"RSSI":100,"LinkCount":1,"Downtime":"0T00:00:04"}}
03:36:55 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0406 2544 481828382838382828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55
03:36:55 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:36:55 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:08 CMD: RfRaw AA B0 4E 05 04 0154 09E2 00C8 0406 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55
03:37:08 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:09 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:13 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0410 2544 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55
03:37:13 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:13 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:14 CMD: RfRaw AA B0 4E 05 04 0154 09E2 00C8 0410 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283838083808283828383828 55
03:37:14 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:14 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
All these work individually for ON
03:37:15 CMD: RfRaw AA B0 0D 03 04 0122 042E 0406 2808180818 55
03:37:15 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:15 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
This does nothing
03:37:16 CMD: RfRaw AA B0 4E 05 04 0136 09F6 00DC 041A 254E 481828382838380828383808283808382838283838083808380838083808380808383808083838083808380808380838083838080838083808383808083808383808 55
03:37:16 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:17 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:22 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0410 254E 481828382838382828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55
03:37:22 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:22 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:23 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0406 2544 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55
03:37:23 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:23 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:29 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0406 2544 481828382838382828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55
03:37:29 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:29 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:34 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00C8 0406 254E 481828382838380828383808283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55
03:37:34 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:34 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
03:37:35 CMD: RfRaw AA B0 4E 05 04 014A 09E2 00BE 0410 2544 481828382838380828383828283828382838283838083808380838083808380828383808283838083808380828382838283838082838283828383808283828383828 55
03:37:35 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:36 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
All these work individually for OFF
03:37:41 CMD: RfRaw AA B0 0C 03 04 021C 0398 0780 28181818 55
03:37:41 MQT: sonoff_F81779/stat/RESULT = {"RfRaw":"ON"}
03:37:41 MQT: sonoff_F81779/tele/RESULT = {"RfRaw":{"Data":"AAA055"}}
This does nothing

Is the mismatch with the protocol number for advanced learning expected? And the last bits missing? (tried again multiple times, exactly same response)

Portisch commented 5 years ago

The protocol number do change if one or more protocols are disabled in config. Also this no issue for this firmware, you need to go to tasmota support.