I am about to build a house, so m time is limited right now. But as I already wrote some scripts, I’ll give it a shot.
The base for this analysis is my temporary script from FlipperMgmt/convet_test.py at main · LupusE/FlipperMgmt · GitHub …
The objective is to create a SQL Database for further analysis, so the output is based on that. I have not cleaned it here:
CREATE TABLE IF NOT EXISTS rawdata (btnname,splitvalue,cmdpart,cmdsequence,cmdrepeat,md5hash);
CREATE TABLE IF NOT EXISTS rawheader (divisor,maxdivident,md5hash);
CREATE TABLE IF NOT EXISTS rawmeta (btnname,splitvalues,md5hash);
Getting header and buttons for database /home/lupus/git/FlipperMgmt/flipper_irdblite.db
Count of files to process: 1
INSERT INTO rawdata VALUES ('1', '310', '[1, 61, 1, 60, 2, 60, 2, 60, 1, 61, 1, 61, 1, 60, 2, 61, 1, 10, 1, 48, 2, 60, 2, 10, 1, 49, 1, 61, 1, 60, 2, 61, 1, 60, 2, 10, 1, 49, 1, 61, 1, 60, 2, 60, 1, 61, 1, 60, 2, 10, 1, 49, 1, 60, 2, 60, 1, 60, 1, 60, 2, 60, 2, 60, 1, 61, 1, 123, 1, 185, 2, 123, 2, 60, 1, 60, 2, 61, 1]', '0', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawdata VALUES ('1', '310', '[1]', '1', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawheader VALUES ('62', '241.93548387096774', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawmeta VALUES ('1', '[310]', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawdata VALUES ('2', '241', '[1, 59, 1, 58, 2, 119, 1, 58, 1, 58, 1, 120, 1, 10, 1, 47, 1, 119, 1]', '0', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawdata VALUES ('2', '240', '[1, 119, 1, 119, 1, 59, 1, 180, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 58, 2, 10, 1, 47, 2, 59, 1, 59, 1, 59, 1, 10, 1, 47, 1, 59, 1, 58, 2, 58, 1, 10, 1, 47, 1, 59, 1, 58, 2, 58, 1, 59, 1, 58, 2, 58, 1, 10, 1, 47, 1, 59, 2, 70, 2, 47, 1, 118, 2, 58, 1, 59, 1, 10, 1, 59, 1, 47, 1, 59, 1, 59, 1]', '1', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawdata VALUES ('2', '240', '[1, 119, 1, 58, 2, 58, 2, 58, 1, 10, 2, 107, 1, 58, 2, 9, 2, 46, 2, 58, 2, 10, 1, 48, 1, 59, 1, 59, 1, 119, 1, 59, 1, 59, 1, 59, 1, 59, 1, 118, 2, 58, 2, 178, 2, 120, 1]', '2', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawdata VALUES ('2', '240', '[1, 58, 2, 70, 2, 46, 2, 120, 1, 119, 1, 59, 1, 71, 1, 59, 1, 47, 1, 59, 1, 10, 2, 46, 2, 58, 1, 118, 2, 119, 2, 10, 1]', '3', '0', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawheader VALUES ('64', '234.375', '71cd14e50dfa4e5cc518ed58eca8dee3');
INSERT INTO rawmeta VALUES ('2', '[241, 240, 240]', '71cd14e50dfa4e5cc518ed58eca8dee3');
Interesting here are the lines INSERT INTO rawdata
. The first Value is the Button name from your file. The second is the split, if a value is very high, compared to the others. To find gaps that lead to a repeated signal.
My logic is not very mathematical: Take the lowest number from the array, divide all values though that and convert to INT. So 1 is the base and the [n]times value of the rest.
(@jmr already gave a more accurate approach, I have not reviewed, now. I have not forgotten, pal )
Your first sample got only one sequence, the second one seems got 4 repeats. On the button name 3, the script killed itself … Needs further analysis.
First interesting detail: The Button 1 has a sequence [1, 60, …], the button 2 has [1, 59, …]. Very similar, maybe the same signal. At the first sight we can ignore the variance of up to 5.
Are we able to convert the sequence [1, 119, 1, 58, 2, 58, 2, 58, 1, 10, 2, 107, 1, 58, 2, 9, 2, 46, 2, 58, 2, 10, 1, 48, 1, 59, 1, 59, 1, 119, 1, 59, 1, 59, 1, 59, 1, 59, 1, 118, 2, 58, 2, 178, 2, 120, 1]
to a useable format in @jmr s converter link? Is there any number printed on the remote (maybe under the battery), that can be recognized after the conversion?