sebmillet / RF433any

GNU Lesser General Public License v3.0
39 stars 4 forks source link

Trying to decode a remote #10

Closed chrwh closed 10 months ago

chrwh commented 1 year ago

Hi, I'm, trying to decode an remote (EGLO By DIO), but I can't decode it. I have tried to sniff if, and get the following. Can anybody help out on how to proceed with this?

Thanks and best regards, Christian

Here is the output with 01_Main

----CODE START----- // [EGLO By DIO LED lamp Remote] rf.register_Receiver( <unmanaged encoding>, // mod 10244, // initseq 0, // lo_prefix 0, // hi_prefix 0, // first_lo_ign 268, // lo_short 268, // lo_long 340, // hi_short (0 => take lo_short) 1292, // hi_long (0 => take lo_long) 0, // lo_last 0, // sep 0 // nb_bits ); -----CODE END-----

Here is the Sniffer output

Signal duration: 307676 us N LOW, HIGH -----BEGIN RF433 LOW HIGH SEQUENCE----- , 10228 000 280, 2544 001 272, 312 002 264, 1256 003 272, 1260 004 264, 324 005 268, 308 006 264, 1268 007 268, 312 008 268, 1252 009 272, 316 010 264, 1264 011 272, 316 012 276, 1260 013 272, 316 014 272, 1264 015 268, 312 016 268, 1268 017 272, 324 018 272, 1256 019 268, 1264 020 272, 324 021 264, 1264 022 268, 320 023 268, 1260 024 272, 324 025 256, 1268 026 272, 320 027 264, 328 028 264, 1260 029 264, 324 030 272, 1264 031 264, 1264 032 268, 324 033 264, 332 034 264, 1268 035 272, 320 036 264, 1272 037 264, 1268 038 264, 324 039 268, 320 040 260, 1264 041 272, 324 042 264, 1272 043 260, 320 044 264, 1272 045 264, 1268 046 264, 328 047 264, 1272 048 256, 332 049 264, 1272 050 256, 332 051 264, 1272 052 256, 328 053 264, 324 054 256, 1284 055 256, 328 056 264, 1272 057 264, 324 058 264, 1272 059 256, 332 060 264, 1272 061 256, 332 062 264, 1276 063 256, 332 064 260, 1272 065 264, 10220 066 276, 2560 067 268, 316 068 272, 1268 069 264, 1272 070 260, 320 071 276, 316 072 264, 1268 073 272, 324 074 272, 1264 075 272, 316 076 272, 1268 077 264, 324 078 268, 1264 079 272, 316 080 268, 1268 081 264, 324 082 264, 1272 083 264, 320 084 264, 1276 085 256, 1272 086 260, 328 087 260, 1276 088 256, 324 089 272, 1264 090 264, 328 091 256, 1280 092 256, 332 093 256, 332 094 264, 1272 095 256, 328 096 260, 1276 097 264, 1276 098 260, 320 099 264, 328 100 256, 1280 101 256, 332 102 264, 1272 103 252, 1272 104 264, 332 105 256, 332 106 264, 1272 107 260, 328 108 264, 1280 109 248, 332 110 256, 1276 111 256, 1272 112 260, 332 113 264, 1276 114 256, 332 115 256, 1272 116 260, 328 117 260, 1272 118 256, 332 119 264, 332 120 256, 1280 121 252, 332 122 256, 1280 123 264, 324 124 256, 1280 125 256, 328 126 264, 1268 127 264, 324 128 264, 1272 129 260, 336 130 256, 1284 131 248, 10224 132 268, 2568 133 272, 316 134 272, 1260 135 276, 1256 136 272, 324 137 272, 316 138 272, 1268 139 268, 316 140 272, 1272 141 264, 316 142 272, 1268 143 272, 324 144 268, 1268 145 264, 316 146 280, 1260 147 272, 320 148 260, 1272 149 256, 328 150 272, 1260 151 272, 1264 152 264, 328 153 264, 1268 154 264, 324 155 272, 1268 156 264, 320 157 272, 1268 158 264, 332 159 264, 324 160 264, 1272 161 260, 328 162 260, 1276 163 264, 1268 164 264, 328 165 264, 328 166 256, 1272 167 264, 324 168 264, 1276 169 260, 1264 170 272, 324 171 264, 324 172 264, 1272 173 264, 324 174 264, 1272 175 264, 324 176 272, 1268 177 264, 1264 178 260, 332 179 264, 1276 180 256, 332 181 264, 1272 182 256, 328 183 264, 1272 184 256, 332 185 264, 324 186 264, 1280 187 256, 332 188 264, 1280 189 248, 332 190 256, 1280 191 256, 328 192 264, 1276 193 264, 324 194 264, 1272 195 260, 328 196 260, 1284 197 256, 10216 198 268, 2560 199 272, 316 200 272, 1268 201 272, 1256 202 280, 316 203 272, 324 204 272, 1260 205 276, 316 206 268, 1264 207 264, 324 208 272, 1264 209 268, 316 210 268, 1268 211 264, 324 212 272, 1268 213 272, 312 214 268, 1264 215 264, 320 216 272, 1268 217 264, 1272 218 264, 320 219 268, 1260 220 272, 324 221 272, 1268 222 264, 320 223 268, 1256 224 260, 328 225 272, 316 226 272, 1268 227 272, 316 228 268, 1272 229 256, 1276 230 264, 316 231 272, 328 232 264, 1264 233 264, 328 234 264, 1268 235 272, 1264 236 264, 324 237 268, 324 238 264, 1272 239 264, 324 240 264, 1272 241 260, 328 242 260, 1276 243 264, 1268 244 264, 324 245 272, 1264 246 260, 324 247 272, 1272 248 256, 324 249 264, 1272 -----END RF433 LOW HIGH SEQUENCE-----

sebmillet commented 1 year ago

Hello

the encoding used by your device cannot be decoded by RF433any, because it uses a scheme it cannot recognize. Fortunately RF433recv can decode it (at least I could test it successfully in a simulated environment).

1) Reason for RF433any NOT to recognize it

RF433any can recognize tribit or tribit-inverted where "short" is always followed by "long" and vice-versa. In your signal, the low signal has one duration, only the high signal has a short or long duration. RF433any cannot infer such a coding scheme (I might update it in the future... different story).

2) RF433recv usage

Because RF433recv uses predefined timings (as opposed to RF433any), it has more flexibility to decode "unusual" signals that are variations of tribit/tribit-inverted. Using the below code, the timings you posted could be decoded:

// CODE START rf.register_Receiver( RFMOD_TRIBIT_INVERTED, // mod 10000, // initseq 268, // lo_prefix 2500, // hi_prefix 268, // first_lo_ign 268, // lo_short 268, // lo_long 320, // hi_short 1250, // hi_long 0, // lo_last 10000, // sep 64, // nb_bits callback, 1000); // CODE END

And if using the below callback...

// CODE START void callback(const BitVector recorded) { Serial.print(F("code received: ")); char printed_code = recorded->to_str(); if (printed_code) { Serial.print(recorded->get_nb_bits()); Serial.print(F(" bits: [")); Serial.print(printed_code); Serial.print(F("]\n")); } if (printed_code) free(printed_code); } // CODE END

... then the output was: code received: 64 bits: [65 55 6a 96 59 5a a5 55]

3) Comment

You noticed that the decoder uses, among other timing options, these two below: 268, // lo_prefix 2500, // hi_prefix These options are necessary because in your signal snif timings, the "000" line is: 000 280, 2544 and while the low signal is fine (it is close enough to the low signal typical duration of 268), the high signal is TWICE AS LONG as the high long duration (1250). It therefore cannot fit to a long signal duration and must be ignored.

Best Regards, Sébastien Millet

chrwh commented 1 year ago

Hi, Thank you so much for the answer. I have managed to get it receiving On/Off, but still nothing on the rest (will investigate further) Do you have any recommendation for sending this ? Best regards, Christian

chrwh commented 1 year ago

I found your `RF433send' nad I got it working for the On and Off button on the remote. But I can't make the last 10 buttons work. I can't receive data from the with the same scheme as the On/Off buttons. I can sniff them, but that is all. Can you guide me on how to use the testplan from the FR433recv ?? Best regards, Christian

chrwh commented 1 year ago

Here is another couple of sniffs: Up , 10220 000 264, 2564 001 256, 320 002 256, 1268 003 256, 1268 004 260, 324 005 256, 324 006 256, 1264 007 256, 320 008 256, 1276 009 256, 320 010 256, 1272 011 256, 332 012 264, 1268 013 264, 324 014 264, 1276 015 252, 328 016 264, 1264 017 264, 332 018 256, 1272 019 256, 1276 020 256, 336 021 260, 1272 022 256, 332 023 264, 1268 024 256, 332 025 256, 1272 026 256, 328 027 256, 328 028 256, 1280 029 256, 332 030 256, 1276 031 264, 1264 032 256, 336 033 256, 332 034 256, 1272 035 256, 332 036 256, 1280 037 256, 1272 038 256, 332 039 256, 340 040 256, 1276 041 256, 328 042 256, 1272 043 260, 336 044 256, 1276 045 256, 1272 046 256, 332 047 252, 1272 048 256, 336 049 256, 1276 050 256, 328 051 256, 1272 052 256, 336 053 256, 332 054 256, 340 055 248, 340 056 256, 340 057 248, 336 058 256, 1272 059 256, 340 060 248, 1280 061 248, 340 062 256, 1272 063 260, 328 064 256, 1280 065 256, 340 066 248, 1280 067 256, 1272 068 252, 328 069 256, 328 070 248, 1284 071 248, 340 072 256, 1272 073 256, 336 074 252, 1280 075 256, 332 076 256, 1284 077 256, 1272 078 252, 336 079 248, 1276 080 256, 340 081 248, 10216 082 260, 2564 083 256, 332 084 256, 1284 085 256, 1268 086 260, 328 087 256, 328 088 256, 1276 089 256, 332 090 256, 1276 091 256, 336 092 256, 1272 093 256, 332 094 256, 1276 095 264, 328 096 256, 1272 097 248, 328 098 260, 1280 099 256, 332 100 256, 1272 101 256, 1272 102 252, 340 103 256, 1276 104 256, 332 105 256, 1276 106 252, 336 107 260, 1272 108 256, 332 109 256, 340 110 256, 1276 111 252, 328 112 260, 1280 113 256, 1276 114 256, 328 115 256, 336 116 256, 1272 117 256, 332 118 256, 1284 119 248, 1284 120 252, 328 121 256, 336 122 256, 1276 123 256, 332 124 256, 1280 125 248, 336 126 260, 1272 127 256, 1284 128 248, 340 129 256, 1272 130 252, 344 131 248, 1280 132 248, 340 133 256, 1276 134 256, 336 135 252, 336 136 252, 328 137 256, 336 138 248, 340 139 256, 340 140 248, 1284 141 256, 328 142 256, 1280 143 248, 336 144 248, 1280 145 256, 332 146 256, 1280 147 248, 336 148 252, 1280 149 248, 1280 150 248, 340 151 248, 344 152 248, 1280 153 252, 336 154 248, 1280 155 248, 336 156 256, 1284 157 248, 336 158 252, 1280 159 256, 1284 160 248, 336 161 248, 1280 162 248, 344 163 248, 10208 164 256, 2572 165 256, 332 166 256, 1272 167 256, 1280 168 256, 332 169 256, 332 170 248, 1280 171 248, 336 172 256, 1272 173 256, 332 174 256, 1284 175 256, 328 176 256, 1272 177 256, 340 178 248, 1280 179 248, 332 180 256, 1272 181 256, 336 182 252, 1280 183 256, 1276 184 256, 336 185 248, 1272 186 260, 332 187 256, 1272 188 248, 340 189 248, 1280 190 248, 336 191 256, 328 192 256, 1280 193 248, 340 194 248, 1284 195 256, 1272 196 256, 336 197 256, 332 198 256, 1272 199 256, 340 200 248, 1280 201 260, 1272 202 256, 340 203 248, 340 204 256, 1276 205 256, 332 206 256, 1280 207 252, 336 208 248, 1280 209 256, 1276 210 256, 340 211 248, 1280 212 252, 336 213 256, 1276 214 256, 336 215 248, 1280 216 248, 336 217 256, 336 218 248, 340 219 248, 336 220 256, 340 221 248, 336 222 256, 1280 223 248, 336 224 248, 1280 225 256, 340 226 248, 1280 227 252, 336 228 248, 1288 229 248, 340 230 248, 1284 231 248, 1280 232 252, 336 233 252, 336 234 240, 1284 235 256, 336 236 248, 1280 237 248, 336 238 252, 1280 239 256, 340 240 248, 1284 241 256, 1272 242 256, 328 243 256, 1276 244 248, 344 245 248, 10216 246 256, 2564 247 264, 332 248 256, 1276 249 256, 1276

Down: , 10212 000 296, 2536 001 272, 308 002 272, 1256 003 272, 1252 004 272, 308 005 276, 308 006 272, 1252 007 264, 332 008 248, 1272 009 256, 324 010 256, 1276 011 264, 316 012 268, 1256 013 276, 308 014 276, 1260 015 272, 308 016 272, 1272 017 248, 344 018 244, 1288 019 248, 1272 020 264, 324 021 264, 1264 022 268, 316 023 268, 1276 024 240, 352 025 240, 1284 026 256, 336 027 252, 336 028 248, 1272 029 256, 332 030 256, 1284 031 248, 1276 032 256, 336 033 252, 344 034 228, 1304 035 248, 340 036 248, 1288 037 240, 1288 038 244, 344 039 240, 352 040 232, 1304 041 216, 368 042 216, 1308 043 220, 368 044 228, 1312 045 220, 1312 046 216, 364 047 220, 1312 048 220, 368 049 228, 1304 050 224, 368 051 224, 1300 052 228, 352 053 240, 352 054 244, 344 055 248, 340 056 248, 344 057 240, 348 058 248, 1280 059 244, 352 060 240, 1288 061 240, 352 062 232, 1296 063 232, 352 064 224, 1312 065 220, 376 066 220, 1296 067 248, 1288 068 240, 348 069 240, 344 070 240, 1288 071 252, 324 072 264, 1264 073 272, 324 074 264, 1272 075 260, 324 076 260, 1276 077 264, 1276 078 248, 340 079 264, 316 080 264, 1256 081 268, 10208 082 256, 2568 083 256, 336 084 256, 1260 085 300, 128 086 100, 12 087 24, 56 088 452, 40 089 64, 84 090 484, 36 091 544, 116 092 56, 88 093 292, 704 094 84, 428 095 292, 292 096 296, 1240 097 276, 312 098 272, 1272 099 248, 344 100 248, 1284 101 240, 348 102 240, 2076 103 56, 1304 104 256, 328 105 264, 1260 106 280, 636 107 12, 72 108 112, 8 109 676, 32 110 1312, 20 111 68, 28 112 160, 48 113 32, 16 114 308, 68 115 508, 156 116 24, 308 117 24, 40 118 132, 48 119 724, 168 120 20, 40 121 340, 172 122 92, 48 123 184, 64 124 4, 32 125 116, 72 126 108, 76 127 56, 52 128 308, 136 129 56, 64 130 300, 148 131 16, 100 132 292, 368 133 4, 92 134 4, 436 135 4, 248 136 296, 300 137 288, 1244 138 288, 1244 139 284, 308 140 276, 308 141 288, 1244 142 280, 316 143 272, 1260 144 280, 1244 145 280, 308 146 284, 308 147 280, 1252 148 280, 308 149 280, 1256 150 268, 312 151 268, 1264 152 264, 1268 153 264, 332 154 256, 1272 155 252, 336 156 252, 1280 157 248, 348 158 240, 1284 159 248, 340 160 248, 336 161 260, 336 162 248, 336 163 256, 328 164 264, 324 165 264, 1268 166 272, 316 167 268, 1256 168 268, 320 169 260, 1268 170 272, 316 171 272, 1268 172 264, 320 173 268, 1256 174 268, 1256 175 272, 324 176 264, 324 177 264, 1268 178 268, 316 179 272, 1264 180 264, 324 181 272, 1260 182 272, 316 183 272, 1264 184 268, 1256 185 264, 332 186 264, 324 187 256, 1268 188 264, 10208 189 264, 2560 190 272, 316 191 272, 1268 192 264, 1264 193 264, 320 194 268, 324 195 264, 1276 196 264, 316 197 264, 1272 198 264, 332 199 256, 1272 200 256, 332 201 256, 1280 202 260, 328 203 252, 1276 204 256, 332 205 256, 1284 206 256, 328 207 260, 1272 208 256, 1272 209 256, 340 210 256, 1272 211 256, 328 212 252, 1280 213 248, 336 214 240, 1284 215 248, 344 216 252, 336 217 248, 1280 218 248, 336 219 248, 1292 220 248, 1280 221 248, 336 222 252, 336 223 256, 1272 224 256, 340 225 248, 1284 226 256, 1272 227 256, 328 228 252, 336 229 248, 1280 230 256, 340 231 248, 1280 232 252, 336 233 248, 1288 234 240, 1288 235 232, 348 236 240, 1296 237 236, 352 238 236, 1296 239 240, 348 240 240, 1288 241 240, 352 242 240, 344 243 244, 344 244 248, 344 245 240, 344 246 248, 348 247 240, 1288 248 252, 336 249 244, 1280

sebmillet commented 1 year ago

Hello

the timings look the same, but the separator shows up on line 81 (your last post) instead of line 65 (your initial post). The line 65 corresponded to 64 bits, so obviously here line 81 should correspond to 80 bits. -> I suggest in the receiver you replace 64 with 80 and it should work.

Of course you can register multiple receivers so that one will work for 64 bits and the other one for 80.

Regards, Sébastien Millet

chrwh commented 1 year ago

Hi,

Thank you so much for all of your help :-D. I have now all 12 button decoded and working, there are 4 different bit sizes 64, 80, 84 and 92 bits.

Best regards, Christian

DarkShadowNight commented 1 year ago

Please document the arguments, so I can decode following signal. Following Arduino library works perfectly (but is not universal) unfortunately.

https://github.com/1technophile/NewRemoteSwitch/blob/master/docs/new%20kaku%20protocol.txt

f.register_Receiver(
RFMOD_TRIBIT_INVERTED, // mod
10000, // initseq
268, // lo_prefix
2500, // hi_prefix
268, // first_lo_ign
268, // lo_short
268, // lo_long
320, // hi_short
1250, // hi_long
0, // lo_last
10000, // sep
64, // nb_bits
callback,
1000);
-----BEGIN RF433 LOW HIGH SEQUENCE-----
           , 10516
000     272,  2492
001     272,   232
002     272,  1212
003     268,  1216
004     272,   232
005     272,   232
006     272,  1216
007     272,   232
008     272,  1212
009     272,  1212
010     272,   244
011     272,   232
012     272,  1232
013     272,  1212
014     280,   236
015     276,   228
016     272,  1220
017     268,  1216
018     272,   240
019     272,  1216
020     272,   240
021     280,   232
022     272,  1224
023     276,  1212
024     272,   244
025     276,   236
026     272,  1220
027     268,   244
028     264,  1228
029     272,   236
030     272,  1228
031     272,  1220
032     268,   240
033     272,   240
034     264,  1220
035     280,   232
036     272,  1224
037     268,   240
038     264,  1232
039     268,   236
040     272,  1228
041     268,   236
042     272,  1220
043     276,   236
044     272,  1220
045     272,   240
046     264,  1228
047     272,   240
048     264,  1228
049     272,   232
050     272,  1232
051     268,   240
052     264,  1224
053     276,   236
054     272,  1220
055     268,  1224
056     272,   240
057     272,   240
058     268,  1220
059     272,  1220
060     268,   240
061     272,   240
062     264,  1232
063     268,   232
064     272,  1224
065     268, 10504
066     272,  2500
067     272,   244
068     264,  1228
069     272,  1224
070     268,   240
071     272,   232
072     268,  1228
073     268,   232
074     272,  1220
075     268,  1220
076     272,   240
077     272,   244
078     272,  1220
079     272,  1224
080     272,   240
081     272,   240
082     264,  1228
083     272,  1220
084     268,   240
085     272,  1220
086     264,   244
087     268,   232
088     272,  1220
089     264,  1220
090     272,   240
091     268,   240
092     272,  1220
093     272,   236
094     268,  1228
095     272,   236
096     268,  1224
097     272,  1224
098     272,   240
099     272,   240
100     268,  1224
101     272,   240
102     264,  1228
103     268,   232
104     272,  1228
105     272,   236
106     272,  1220
107     272,   244
108     268,  1220
109     272,   244
110     268,  1224
111     272,   236
112     268,  1232
113     264,   240
114     268,  1224
115     272,   240
116     272,  1224
117     272,   232
118     272,  1228
119     264,   240
120     272,  1220
121     268,  1220
122     272,   240
123     272,   244
124     264,  1228
125     272,  1224
126     264,   248
127     272,   244
128     260,  1220
129     272,   244
130     268,  1224
131     272, 10500
132     272,  2508
133     272,   232
134     272,  1224
135     272,  1220
136     272,   240
137     268,   240
138     272,  1220
139     272,   240
140     264,  1228
141     272,  1220
142     260,   248
143     264,   240
144     272,  1224
145     272,  1220
146     272,   244
147     272,   240
148     272,  1220
149     268,  1220
150     272,   240
151     272,  1224
152     272,   240
153     272,   240
154     264,  1228
155     272,  1220
156     272,   244
157     272,   240
158     264,  1228
159     264,   240
160     272,  1220
161     268,   240
162     272,  1220
163     272,  1224
164     272,   240
165     272,   240
166     272,  1224
167     272,   240
168     264,  1232
169     264,   240
170     272,  1224
171     272,   240
172     272,  1224
173     272,   240
174     264,  1232
175     264,   240
176     272,  1220
177     268,   236
178     272,  1220
179     268,   236
180     264,  1228
181     264,   232
182     268,  1220
183     264,   240
184     272,  1224
185     272,   240
186     264,  1232
187     268,  1220
188     264,   252
189     268,   236
190     272,  1224
191     268,  1224
192     272,   240
193     268,   244
194     264,  1228
195     264,   244
196     272,  1220
197     272, 10500
198     272,  2504
199     264,   240
200     272,  1224
201     268,  1220
202     272,   240
203     268,   240
204     264,  1228
205     272,   236
206     272,  1228
207     272,  1216
208     272,   248
209     264,   244
210     272,  1220
211     272,  1224
212     272,   240
213     272,   240
214     260,  1228
215     272,  1220
216     272,   244
217     272,  1220
218     272,   240
219     268,   240
220     264,  1228
221     272,  1224
222     264,   248
223     264,   244
224     272,  1220
225     272,   244
226     264,  1228
227     272,   236
228     272,  1228
229     272,  1216
230     272,   248
231     272,   232
232     268,  1220
233     272,   240
234     264,  1228
235     272,   240
236     264,  1228
237     268,   232
238     272,  1228
239     264,   240
240     272,  1220
241     272,   244
242     264,  1228
243     272,   244
244     264,  1228
245     272,   236
246     272,  1220
247     272,   244
248     272,  1220
249     272,   240
-----END RF433 LOW HIGH SEQUENCE-----
sebmillet commented 1 year ago

Hello

not sure what you need, but will explain what the arguments are: 10000, // initseq = initialization sequense, very long in general, meant to prepare receiver to receive signal.

268, // lo_prefix = first low signal that is not part of encoding (= to ignore in the decoding). Rarely used, but your posted signal makes use of it!

2500, // hi_prefix = first high signal that is not part of encoding (= to ignore in the decoding). Same as lo_prefix, is rarely used, but your posted signal makes use of it!

Both lo_prefix and hi_prefix are 0 most often.

268, // first_lo_ign In the particular case of tribit-inverted, because coding is made of "high signal then low signal" tied together, the first low signal is not used.

268, // lo_short 268, // lo_long Your signal is using different timings only in the "high" signal. The low signal has only one duration therefore here, lo_short = lo_long.

320, // hi_short 1250, // hi_long Self-explanatory.

0, // lo_last Used only with tribit (not tribit inverted). In tribit, the last low signal (just before separator) is not used. lo_last with "tribit" is the analogous of first_lo_ign with "tribit inverted".

10000, // sep The separator. As opposed to initseq, this one is (most often) shorter than initseq and aims to separate two consecutive signals. Indeed in most systems signals are emitted more than once, to increase chances of being successfully received. These signals sent in a row are separated by "sep".

64, // nb_bits Self-explanatory.

callback, Function called when signal received, see example codes.

1000 Duration (in ms) between two consecutive calls to callback. Because signals are (most often) sent multiple times, your callback could be called multiple times for the same "button push". This parameter will ensure that number of milliseconds between two consecutive calls to callback. See it as a "de-duplicate" parameter (set it to 0 if you want your callback to be called no matter how recent the last call is).

);

Hope this helps,

Regards, S. Millet

sebmillet commented 10 months ago

Hello

did it help you understand the timings involved?

Regards