//####################################################################################################### //## This Plugin is only for use with the RFLink software package ## //## Plugin-01: Long Packet Translation and debugging ## //####################################################################################################### /*********************************************************************************************\ * This plugin takes care of long packets that actually contain multiple RF packets * Usually caused by a very short delay between RF packets * * Author : StuntTeam * Support : http://sourceforge.net/projects/rflink/ * License : This code is free for use in any open source project when this header is included. * Usage of any parts of this code in a commercial application is prohibited! *********************************************************************************************** * Technical information: * * The first part of this plugin outputs all the received pulses from RF packets, use this plugin to * find signals from new devices. Even if you do not know what to do with the data yourself you might * want to share your data so others can analyse it and add support for missong protocols. * * The second part of this plugin takes care of oversized RF packets that might need to be cut into * smaller RF packets. Usually the oversized packets are due to a very short delay between re-transmits * so that multiple packets are seen as one long packet * * ELRO HOMEEASY HE842 * The HE842 remote control sends 3 different protocols. * 8 x Protocol method 1 - 28 bit code (58 pulses) * 20 x Protocol method 2 - 24 bit code (50 pulses) * 6 x Protocol method 3 - HE compatible (116 pulses) See Plugin 15 * Method 1 is detected as a 460+ pulse RF packet which we reject. * 20;19;DEBUG;Pulses=464;Pulses(uSec)=275,950,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,950,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,950,225,950,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,925,200,4975,200,925,200,925,850,275,200,925,200,925,850,275,200,925,850,275,200,925,200,925,850,275,200,925,200,925,850,275,850,275,200,925,200,925,850,275,200,925,200,925,200,925,850,275,200,925,850,275,850,275,200,925,850,275,200,975,200; * ------------------- * ELRO FLAMINGO FA500 * The FA500R remote control sends 4 different protocols. * 4 x Protocol method 1 - 28 bit code (58 pulses) - Same as HE842 Method 1 * 3 x Protocol method 2 - AC compatible (132 pulses) * 3 x Protocol method 3 - HE compatible (116 pulses) * 5 x Protocol method 4 - 24/12 bit code (24 pulses) * It appears that the FA500S power switch is only capable to react to the first method! * RFLink can only distinguish the 3rd method properly. Method 1 and 2 have to be pulled apart first. * This plugin will split the received signal so that method 1 or 2 can be used. * In this case we force method 1 so that the remote control can be used with the FA500 switches. * Method 3: 20;60;DEBUG;Pulses=24;Pulses(uSec)=325,800,275,800,825,225,275,800,275,825,275,800,825,225,275,800,825,225,275,800,275,800,275; * Method 1&2: 20;1F;DEBUG;Pulses=364;Pulses(uSec)=225,4650,200,875,200,875,800,250,200,875,200,875,800,250,200,875,200,875,825,250,825,250,200,875,825,250,200,875,200,875,825,250,800,250,200,875,200,875,200,875,800,250,800,225,200,875,200,875,825,250,825,250,200,875,800,250,200,875,200,4650,200,875,200,875,825,250,200,875,200,875,800,250,200,875,200,875,825,250,800,250,200,875,800,250,200,875,200,875,825,225,825,250,200,875,200,875,200,875,825,250,800,250,200,875,200,875,825,250,800,225,200,875,800,250,200,875,200,4650,200,875,200,875,800,250,200,875,200,875,825,250,200,875,200,875,800,250,825,250,200,875,800,250,200,875,200,875,800,225,825,250,200,875,200,875,200,875,800,250,800,250,200,875,200,875,800,250,825,225,200,875,800,250,200,875,200,4650,200,875,200,875,800,250,200,875,200,875,800,250,200,875,200,875,825,250,800,250,200,875,825,250,200,875,200,875,800,225,800,250,200,875,200,875,200,875,800,250,825,250,200,875,200,875,800,250,800,250,200,875,825,250,200,875,150,2550,150,175,150,1200,125,175,150,1200,125,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1200,150,1175,150,200,150,175,150,1200,150,175,150,1175,150,175,150,1200,150,1175,150,200,150,1175,150,200,150,175,150,1175,150,1175,150,200,150,1175,150,200,125,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,150,1175,150,175,125,1200,150,175,125,1200,150,175,150,1200,150,175,150,1200,150,175,150,1200,150,175,150,1200,150,175,150,1200,150,1175,150,175,150; * 20;55;DEBUG;Pulses=58;Pulses(uSec)=275,900,200,900,850,250,200,925,200,925,850,275,875,250,225,950,875,275,875,275,225,950,875,275,225,950,875,275,225,950,225,950,875,275,200,950,875,275,875,275,875,250,875,275,875,275,875,275,875,250,225,950,875,275,200,950,225; * 20;57;DEBUG;Pulses=130;Pulses(uSec)=225,200,150,1250,150,200,150,1250,150,200,150,1250,150,200,150,1250,150,200,150,1275,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1275,150,225,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1275,150,225,150,1300,150,225,150,200,150,1300,150,1300,150,200,150,1300,150,200,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1275,150,200,150; * 20;59;DEBUG;Pulses=124;Pulses(uSec)=225,1250,150,175,150,1250,150,200,150,1250,150,200,150,1250,150,200,150,1250,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1300,150,200,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1275,150,225,150,1275,150,225,150,200,150,1300,150,1275,150,200,150,1275,150,200,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,200,150,1300,150,1275,150,200,150; * ------------------- * Auriol * 20;03;DEBUG;Pulses=511;Pulses(uSec)=425,750,425,775,425,1700,450,1700,450,1675,450,1700,450,750,425,1725,425,1725,425,775,425,800,400,800,400,800,425,800,400,800,425,800,400,1725,400,1750,425,800,400,1750,400,800,400,1750,400,825,400,1750,400,1750,400,1750,400,1750,400,1750,400,800,400,825,400,800,400,825,400,825,400,825,375,825,400,825,400,3725,300,825,400,825,400,1750,400,1750,400,1750,400,1750,400,825,400,1750,400,1750,375,825,400,825,400,825,400,825,400,825,375,825,400,825,375,1750,400,1775,400,825,375,1775,400,825,375,1750,400,825,400,1750,375,1775,400,1750,375,1775,400,1750,400,825,400,825,400,825,400,825,400,825,400,825,400,825,400,825,400,3725,300,825,400,825,400,1750,400,1750,400,1775,400,1750,400,825,400,1750,400,1750,375,825,400,825,400,825,400,825,400,825,400,825,400,825,400,1750,400,1750,400,825,400,1775,400,825,375,1775,400,825,375,1750,375,1750,400,1775,400,1750,400,1775,400,825,375,825,400,825,375,825,400,825,375,825,375,825,400,825,400,3725,275,825,375,825,400,1775,400,1775,375,1750,400,1775,375,825,375,1750,400,1775,400,825,400,825,375,825,400,825,400,825,375,825,400,825,375,1750,400,1775,400,825,375,1775,400,825,375,1750,400,825,375,1775,375,1775,400,1750,375,1775,400,1750,400,825,375,825,400,825,375,825,400,825,375,825,375,825,400,825,375,3750,300,825,375,825,400,1750,400,1775,375,1775,400,1750,375,825,375,1775,400,1775,375,825,400,825,375,825,400,825,400,825,375,825,400,825,375,1775,400,1750,375,825,400,1750,400,825,375,1775,400,825,375,1775,375,1750,400,1775,375,1750,400,1775,400,825,375,825,400,825,375,825,400,825,375,825,400,850,400,825,375,3750,275,825,375,825,400,1775,375,1775,375,1750,400,1775,375,825,400,1775,400,1750,400,825,375,825,375,825,375,850,400,825,375,825,400,825,375,1750,375,1775,375,825,375,1775,375,825,400,1750,400,825,375,1750,375,1775,375,1750,375,1775,400,1775,400,825,375,825,375,825,375,825,400,825,375,825,400,825,400,825,375,3750,275,825,375,825,400,1775,400,1750,375,1775,400,1775,375,825,400,1750,400,1775,400,825,400,825,375,825,400,825,400,825,375,825,400,825,375,1750,400,1775,375,825,375,1775,400,825,375,1750,400,825,375,1775,375,1775,400,1750,375,1775,375,1750,400,825,375,850,375,825,375,825,375,825; * ------------------- * Xiron * 20;03;DEBUG;Pulses=511;Pulses(uSec)=600,3425,575,625,550,1600,525,1625,525,700,500,1650,500,1650,475,1675,475,725,475,1650,475,750,475,725,475,750,450,750,475,750,450,750,450,750,450,1700,450,1700,450,750,450,1700,450,750,450,1700,450,1700,450,1700,450,1700,450,1700,450,1700,450,1700,450,775,450,775,450,1700,425,1725,425,775,450,1700,425,775,450,800,425,3575,425,775,450,1700,425,1725,425,775,425,1700,450,1725,450,1700,425,775,425,1725,450,775,425,775,425,775,425,775,425,775,425,775,450,775,425,1700,425,1725,425,775,425,1725,425,775,425,1725,425,1700,450,1700,425,1725,450,1700,450,1725,425,1700,425,775,450,775,425,1725,425,1700,425,775,425,1725,450,775,425,775,425,3600,425,775,450,1725,425,1700,425,775,450,1725,425,1700,425,1725,450,775,450,1700,450,775,425,775,425,775,450,775,425,775,425,775,425,775,425,1725,425,1700,425,775,425,1725,425,775,425,1725,425,1700,425,1725,425,1700,425,1725,450,1700,425,1725,425,775,450,775,425,1700,425,1725,425,775,425,1725,450,775,425,775,425,3575,450,775,425,1700,425,1725,425,775,425,1700,425,1725,425,1700,450,775,450,1700,450,775,450,775,425,775,425,775,450,775,425,775,425,775,425,1700,425,1725,425,775,425,1700,450,775,425,1700,450,1700,425,1700,450,1700,425,1700,425,1700,450,1700,425,775,450,775,450,1700,425,1700,450,775,425,1700,450,775,425,775,425,3600,450,775,425,1725,450,1700,450,775,450,1700,450,1700,450,1700,450,775,450,1725,450,750,450,775,425,775,450,775,425,775,425,775,450,775,425,1725,450,1700,425,800,450,1700,425,775,425,1725,425,1700,425,1725,425,1700,450,1725,425,1700,450,1725,425,775,425,775,425,1700,450,1700,450,775,425,1725,425,775,450,775,425,3575,450,775,425,1700,425,1700,450,775,425,1700,450,1700,450,1700,450,775,450,1700,425,775,450,775,425,775,450,775,425,775,425,775,425,775,425,1700,450,1950,425,800,425,1700,425,775,425,1725,450,1700,425,1725,450,1700,450,1725,425,1700,450,1725,425,775,450,775,425,1700,450,1700,450,775,425,1725,450,775,425,775,425,3575,450,775,425,1700,425,1700,450,775,425,1700,450,1700,425,1700,450,775,450,1700,425,775,450,775,425,775,450,775,425,775,425,800,425,775,425,1700,450,1725,425,775,425,1725,425,775,425,1700,425,1725,425,1700,425,1725,450,1700,425,1725,450,1700,450,775,425,775,450,1700,425,1700; * 20;06;DEBUG;Pulses=511;Pulses(uSec)=525,3475,525,700,475,1650,475,1675,475,750,450,1700,475,1675,450,1700,450,750,450,1700,425,775,425,775,400,825,400,800,425,800,425,800,400,1750,400,800,400,800,400,825,400,800,400,800,375,1750,400,825,375,825,400,1775,375,1750,400,1750,400,1750,400,825,400,825,400,1750,400,825,400,1750,400,1750,400,1775,375,1775,400,3625,400,825,400,1775,375,1775,400,825,375,1775,400,1750,400,1750,400,825,400,1750,375,825,400,825,400,825,375,825,400,825,375,825,375,1775,375,825,375,850,375,825,375,825,400,825,375,1775,375,825,375,850,350,1775,375,1775,375,1750,400,1775,350,825,375,825,375,1750,375,825,400,1750,375,1775,375,1775,375,1775,375,3650,375,850,375,1775,375,1775,400,825,375,1775,375,1750,400,1775,375,825,375,1775,375,825,375,825,400,850,375,825,400,825,375,825,400,1750,375,825,375,825,375,825,375,825,375,825,350,1775,375,825,375,850,350,1775,375,1775,375,1775,375,1775,375,825,375,825,375,1775,375,825,375,1775,375,1775,375,1775,375,1775,375,3625,400,825,375,1775,375,1750,400,825,375,1775,375,1750,400,1775,375,825,375,1775,375,825,375,825,375,825,375,850,375,825,375,825,375,1750,375,825,375,825,375,850,375,825,375,825,375,1775,375,850,375,825,350,1775,375,1750,375,1800,350,1775,375,825,375,825,375,1775,375,825,375,1775,375,1775,350,1775,375,1750,375,3650,375,825,375,1775,375,1750,400,825,400,1750,375,1775,375,1775,375,850,375,1775,375,825,375,825,400,825,375,825,375,825,375,825,375,1750,375,825,375,825,375,825,350,825,375,825,375,1775,375,825,375,825,350,1775,375,1775,375,1775,375,1775,375,850,350,825,375,1775,375,825,375,1775,375,1775,350,1775,375,1775,375,3650,375,825,375,1775,375,1775,375,825,375,1750,375,1775,375,1775,375,825,375,1775,375,850,350,825,375,825,375,825,375,850,375,850,375,1775,375,825,375,825,375,850,350,825,375,825,375,1775,375,825,375,1075,375,1775,375,1775,375,1775,375,1750,375,825,375,825,375,1775,375,825,375,1775,375,1775,375,1750,400,1775,375,3650,375,825,400,1775,375,1775,375,825,375,1775,375,1775,400,1750,375,825,400,1750,375,825,375,825,375,825,375,825,400,825,375,825,375,1775,375,825,350,825,375,825,375,825,375,850,350,1775,375,850,375,825,375,1775,375,1800,350,1775,375,1750,375,825,375,825,375,1775,375,825; * 20;0F;DEBUG;Pulses=511;Pulses(uSec)=475,3525,450,775,450,1700,425,1725,425,775,425,1725,425,1725,400,1775,400,825,400,1750,400,825,400,825,375,825,375,825,375,825,375,825,375,1775,375,850,375,850,350,850,350,850,375,1775,375,1775,375,850,375,850,350,1800,375,1775,375,1775,375,1775,350,850,375,850,350,1800,375,1775,375,1775,350,850,350,875,350,1800,350,3675,350,850,350,1775,375,1775,350,850,375,1775,350,1800,350,1775,375,850,350,1800,350,850,350,875,350,850,350,850,325,875,350,875,350,1800,350,875,350,875,325,875,350,850,350,1800,350,1800,350,875,350,875,350,1825,325,1800,350,1800,350,1800,350,875,350,875,325,1800,350,1800,350,1800,350,875,350,875,350,1800,350,3675,350,875,350,1800,350,1800,350,875,325,1800,350,1800,350,1800,350,875,350,1800,350,850,350,850,350,875,350,875,325,875,350,875,350,1800,350,875,350,875,325,875,350,875,350,1800,350,1800,350,875,350,850,350,1800,325,1825,350,1800,350,1800,350,850,350,875,325,1825,325,1800,350,1800,350,875,350,875,350,1825,325,3675,350,875,350,1800,350,1800,350,850,325,1800,350,1800,350,1800,350,875,350,1800,350,850,350,875,350,850,350,850,350,875,350,875,350,1800,350,875,350,875,325,875,350,875,350,1800,350,1800,350,875,325,875,350,1825,325,1825,325,1825,350,1800,350,875,350,875,350,1800,350,1800,350,1800,325,875,350,875,350,1800,350,3675,350,875,325,1800,350,1800,375,850,325,1800,350,1800,350,1800,350,850,350,1800,325,875,350,875,350,875,350,875,350,875,350,850,350,1800,350,875,350,875,350,875,350,875,350,1800,325,1825,350,875,325,875,350,1800,350,1800,325,1800,350,1800,350,875,350,875,350,1800,350,1800,350,1800,325,875,350,875,350,1800,350,3675,350,875,325,1800,350,1800,350,875,350,1800,350,1800,350,1800,350,850,350,1800,350,850,350,875,350,875,350,875,350,875,350,875,350,1825,350,875,350,875,350,875,350,875,350,1825,325,1800,350,1325,350,875,350,1800,350,1800,350,1800,350,1800,350,875,350,875,350,1800,350,1800,325,1800,350,875,350,875,350,1800,350,3675,350,850,350,1800,350,1800,350,875,350,1800,350,1800,350,1800,350,875,325,1800,350,850,350,850,350,875,350,850,350,850,350,875,325,1800,350,875,350,875,350,875,350,875,325,1800,350,1800,350,875,350,875,350,1800,350,1800,350,1800,350,1800,325,875,350,875,350,1800,350,1800; * ------------------- * 20;0B;DEBUG;Pulses=511;Pulses(uSec)=75,125,625,3375,525,675,525,1625,475,725,475,750,475,750,450,775,450,1700,450,1700,450,1700,450,750,450,775,450,1725,425,800,425,800,425,800,425,1725,400,825,400,800,400,1725,425,800,425,775,425,800,400,800,400,800,400,1750,400,1750,400,1750,400,1750,400,825,400,1750,400,800,400,800,400,800,400,1750,400,1750,400,825,400,3625,400,800,400,1750,400,800,400,825,400,825,400,825,375,1775,375,1750,400,1750,375,800,400,800,400,1750,400,825,400,800,400,825,375,1775,375,825,375,825,375,1775,375,825,375,825,375,825,400,825,400,825,400,1750,400,1750,400,1750,375,1775,375,850,375,1775,375,825,375,825,375,825,375,1750,400,1750,400,825,400,3625,400,825,375,1775,375,825,400,825,400,825,400,825,400,1750,375,1775,375,1775,375,825,375,825,375,1775,375,825,375,825,375,825,400,1750,400,825,400,825,400,1750,375,825,375,825,375,825,375,825,375,825,375,1775,375,1775,375,1750,400,1750,400,825,400,1750,400,825,375,850,375,825,375,1775,375,1775,375,825,375,3650,375,825,375,1775,375,825,375,825,375,825,375,825,375,1750,400,1750,400,1750,375,825,400,825,375,1775,375,825,375,825,375,825,375,1775,375,825,375,825,375,1775,400,825,400,825,400,825,400,825,375,850,375,1775,375,1775,375,1775,375,1775,375,825,375,1775,375,825,400,825,400,825,400,1750,400,1750,375,850,375,3650,400,825,400,1750,400,825,400,825,375,825,375,825,375,1775,375,1775,375,1775,375,825,375,850,375,1750,400,825,400,825,400,825,400,1750,375,825,375,825,375,1775,375,825,375,825,375,825,375,825,375,825,400,1750,400,1775,400,1750,400,1750,375,825,375,1775,375,850,375,825,375,825,375,1775,375,1775,375,825,400,3625,400,825,375,1775,400,825,375,825,375,825,400,825,400,1750,400,1750,400,1750,375,825,375,825,375,1775,375,825,375,825,375,825,375,1775,375,825,400,825,400,1750,400,825,400,825,375,850,375,825,375,825,375,1775,375,1775,375,1775,375,1775,375,800,400,1750,400,1300,375,825,400,825,400,1750,400,1750,400,825,375,3650,375,825,400,1750,400,825,400,825,400,825,375,825,375,1775,375,1775,375,1775,375,850,375,850,375,1775,375,825,400,825,375,825,400,1750,400,825,400,825,375,1775,375,825,375,825,375,850,375,825,375,825,375,1775,375,1750,400,1750,400,1750,400,825,400,1750,375,825; * 20;17;DEBUG;Pulses=511;Pulses(uSec)=550,675,475,1650,525,700,500,700,450,750,450,750,450,1700,450,1700,450,1725,400,775,425,775,425,1725,400,800,425,800,400,775,425,1725,400,800,400,825,400,1750,400,800,425,800,400,825,400,1775,400,825,400,1750,400,1750,400,1750,400,1750,400,800,400,825,400,1775,375,825,400,1750,375,825,375,825,400,825,375,3625,400,825,400,1750,375,825,400,825,375,825,375,825,375,1775,350,1775,375,1775,375,825,400,825,375,1775,375,850,375,825,400,825,400,1775,375,850,375,850,375,1775,375,825,375,850,375,850,375,1775,375,825,375,1775,375,1775,375,1750,400,1775,400,825,375,850,375,1775,375,825,400,1775,375,850,375,850,375,825,375,3650,375,825,375,1775,375,850,375,850,375,825,400,825,375,1750,375,1775,375,1775,375,825,400,825,375,1775,375,850,375,825,375,825,375,1775,375,850,375,850,375,1775,375,825,375,850,375,850,375,1775,375,825,375,1775,375,1800,375,1775,400,1775,375,850,375,850,375,1775,375,825,375,1775,375,850,375,850,375,825,375,3650,375,825,375,1775,375,850,375,850,375,825,400,825,375,1775,375,1775,375,1775,375,825,400,825,350,1775,375,850,375,825,375,825,375,1775,350,850,375,850,350,1775,375,825,375,850,375,850,375,1775,375,825,375,1775,375,1775,375,1775,375,1775,375,825,375,850,375,1775,375,825,375,1775,375,850,375,850,375,850,375,3650,375,825,375,1775,375,825,375,850,375,850,375,825,375,1775,375,1775,375,1800,375,825,375,825,375,1775,375,850,375,825,375,825,375,1775,350,850,375,850,350,1775,375,825,375,850,350,850,375,1800,375,825,375,1775,350,1800,350,1800,375,1775,375,825,375,850,350,1800,375,825,375,1775,350,850,375,850,375,850,375,3650,375,825,375,1775,375,850,375,850,350,850,375,850,375,1775,375,1775,350,1800,375,825,375,825,375,1775,375,850,375,850,375,825,375,1775,350,850,375,850,375,1775,375,825,375,825,375,850,375,1800,375,825,375,1775,375,1800,350,1775,375,1775,375,825,375,850,375,2025,375,850,375,1775,400,825,375,850,375,850,375,3650,375,850,375,1775,400,825,350,850,375,850,375,850,375,1775,375,1775,375,1775,375,850,350,825,375,1775,375,850,375,850,375,825,375,1775,375,825,375,850,375,1800,375,825,375,825,375,825,350,1800,375,850,375,1775,375,1775,375,1775,375,1775,375,825,375,825,375,1775,375,850,375,1775; auriol.. * BYRON & LIDL doorbells * The doorbells send the same packet a number of times shortly after each other. * We just grab one packet out of the lot and kill the remaining ones. * ------------------- * Home Confort Smart Home - TEL-010 * The Home Confort remote sends the same RF packet at least 6 times over the air. The delay in between the re-transmits is too short to detect individual packets * So we break, filter and convert the Home Confort RF packets in this plugin \*********************************************************************************************/ #define OVERSIZED_LIMIT 291 // longest packet is handled by plugin 48 #define PULSE500 500/RAWSIGNAL_SAMPLE_RATE #define PULSE1100 1100/RAWSIGNAL_SAMPLE_RATE #define PULSE1600 1600/RAWSIGNAL_SAMPLE_RATE #define PULSE2000 2000/RAWSIGNAL_SAMPLE_RATE #define PULSE4000 4000/RAWSIGNAL_SAMPLE_RATE #define PULSE4200 4200/RAWSIGNAL_SAMPLE_RATE #define PULSE3300 3300/RAWSIGNAL_SAMPLE_RATE #define PULSE2500 2500/RAWSIGNAL_SAMPLE_RATE #define PULSE3000 3000/RAWSIGNAL_SAMPLE_RATE #define PULSE5000 5000/RAWSIGNAL_SAMPLE_RATE #define PULSE6000 6000/RAWSIGNAL_SAMPLE_RATE #define PULSE6500 6500/RAWSIGNAL_SAMPLE_RATE #ifdef PLUGIN_001 boolean Plugin_001(byte function, char *string) { //Serial.println("P001"); byte HEconversiontype=1; // 0=No conversion, 1=conversion to Elro 58 pulse protocol (same as FA500R Method 1) int i,j; // ========================================================================== // TEST // ========================================================================== //PROGMEM int temp[]={4200,625,150,625,150,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,125,625,150,625,125,625,125,650,125,175,600,175,600,175,600,175,600,175,600,175,575,175,575,175,600,175,600,175,600,175,575,175,575,175,600,175,600,175,600,175,600,175,600,175,600,175,575,175,575,175,575,650,100,175,575,175,575,175,575,175,575,175,575,175,575,650,100,175,100,4625,2375,650,100,650,100,675,100,650,100,675,100,650,100,675,100,675,100,675,100,675,100,650,100,650,100,650,100,650,125,650,100,650,125,650,100,650,100,650,100,175,575,175,575,175,575,175,575,175,575,175,575,175,575,200,575,175,575,175,575,175,575,175,575,200,575,200,575,200,575,200,575,200,575,175,575,200,575,200,575,200,575,675,100,200,575,200,575,200,575,200,575,200,575,175,575,675,100,175,100,4625,2375,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,650,100,175,575,200,575,175,575,200,575,200,575,200,575,175,575,175,575,200,575,200,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,200,575,675,100,200,575,200,575,200,575,200,575,200,575,200,575,650,100,200,100,4625,2375,650,100,650,100,650,100,675,100,650,100,675,100,650,100,650,100,650,100,650,100,650,100,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,175,600,175,600,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,600,175,575,175,575,175,575,175,575,175,575,175,575,175,575,175,600,650,125,175,575,175,575,175,575,175,575,175,575,175,575,650,125,175,125}; //PROGMEM int temp[]={725,150,600,150,600,150,600,150,600,650,125,150,600,175,600,175,600,175,600,175,600,175,600,650,125,175,125,4650,2375,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,650,125,175,600,175,600,650,125,175,600,175,600,175,600,175,600,175,600,175,600,175,600,175,600,175,600,175,600,175,600,175,575,175,575,175,575,175,575,175,600,650,125,175,575,175,575,175,575,175,575,175,575,175,600,650,125,175,100,4625,2375,300,325}; //PROGMEM int temp[]={550,300,475,300,475,325,950,800,450,325,925,825,925,325,450,350,425,350,425,350,425,825,425,350,900,850,900,850,900,850,875,850,425,375,400,375,400,375,400,375,400,375,400,375,400,375,875,375,400,350,1325,875,400,375,400,375,400,375,875,875,400,400,875,875,875,400,400,400,400,400,400,400,375,875,400,375,875,875,875,875,875,875,875,875,400,375,400,375,400,375,400,375,400,375,400,375,400,375,875,375,400,350,1325,875,400,375,400,375,400,375,875,875,400,375,875,875,875,400,400,400,400,400,400,400,400,875,400,375,875,875,875,875,875,875,875,875,400,375,400,375,400,375,400,375,400,375,400,375,400,375,875,375,400,0,0,0,0,0,0,0,0,0,0,0,0,0}; //PROGMEM int temp[]={625,300,575,275,550,300,1025,875,500,350,1000,925,1000,400,475,400,450,400,450,375,450,900,475,375,1000,925,975,925,975,925,950,925,450,400,450,400,450,400,450,400,450,400,450,400,450,400,950,425,425,375,1450,950,425,425,425,425,425,425,950,950,425,425,950,975,950,425,425,425,425,425,425,425,425,950,425,425,950,950,950,950,950,950,950,950,425,425,425,425,425,425,425,425,425,425,425,425,425,425,950,425,425,375,1450,950,425,425,425,425,425,425,950,950,425,425,950,975,950,425,425,425,425,425,425,425,425,950,425,425,950,950,950,950,950,950,950,950,450,425,425,425,425,425,425,425,425,425,425,425,425,425,950,425,425}; //PROGMEM int temp[]={325,825,875,225,225,875,850,225,225,875,225,875,225,875,225,850,225,875,225,875,225,850,225,850,225,875,825,250,225,875,850,225,225,875,825,250,200,900,825,275,200,900,200,900,200,900,825,250,200}; //pir PROGMEM int temp[]={475,925,400,950,1150,175,400,950,375,950,1125,200,1100,225,1100,250,1075,250,1075,275,1050,275,1050,275,1050,275,1050,275,275,1050,1050,275,300,1050,1050,275,300,1050,300,1050,1050,275,300,1050,275,1050,1050,275,275}; //homeconfort PROGMEM int temp[]={2675,200,600,200,600,700,100,700,100,200,600,700,100,700,100,200,600,700,100,225,600,725,75,225,600,225,575,725,75,225,575,225,575,225,575,725,75,725,75,725,75,725,75,225,575,725,75,225,575,225,575,225,575,225,575,225,575,250,575,250,575,250,575,250,575,250,550,250,550,250,550,250,550,250,550,250,550,250,550,250,575,725,75,250,550,250,550,250,550,250,550,250,550,250,550,750,50,250,50}; //eurodomest //20;03;DEBUG;Pulses=50;Pulses(uSec)= PROGMEM int temp[]={275,800,200,800,200,800,175,800,775,225,175,800,200,800,200,800,200,800,775,225,175,800,175,800,775,225,775,225,200,800,775,225,200,800,775,225,200,800,200,800,775,225,775,225,775,225,775,225,175}; //lacrosse hum PROGMEM int temp[]={1400,1300,1325,1300,1325,1275,1350,1150,225,1300,1325,1275,1325,1275,225,1300,1325,1275,225,1275,1350,1275,225,1300,1325,1275,225,1300,225,1275,1350,1275,1350,1275,250,1275,225,1275,1350,1275,1350,1300,225,1300,1350,1275,225,1275,225,1275,225,1275,225,1275,1325,1275,225,1300,1325,1275,1325,1275,1325,1275,250,1275,1350,1275,1325,1300,1325,1275,250,1275,1350,1275,1325,1275,250,1275,1325,1275,250,1275,225,1275,225,1275,1350,1275,225,1275,250,1275,225,1275,1325,1275,250,1275,1350,1300,1325}; //lacrosse temp //PROGMEM int temp[]={1400,1275,1350,1275,1350,1275,1325,1150,225,1275,1350,1275,1325,1275,225,1300,1325,1275,225,1300,1325,1275,1325,1275,1350,1275,225,1300,225,1275,1350,1275,1350,1300,225,1300,225,1275,1350,1275,1325,1275,250,1275,1350,1275,250,1275,225,1275,225,1275,225,1275,1325,1275,1350,1275,250,1275,1325,1275,1350,1275,1350,1275,225,1275,225,1275,1350,1275,225,1300,1325,1275,1325,1275,1350,1275,250,1275,1325,1275,250,1275,250,1275,225,1275,1350,1275,1350,1275,225,1275,1350,1275,1350,1275,225,1275,1325}; //lacrosse wind //PROGMEM int temp[]={1400,1275,1350,1275,1350,1275,1325,1150,250,1275,1350,1275,1325,1275,250,1275,1325,1275,1350,1275,225,1275,225,1275,1350,1300,225,1275,225,1275,1350,1275,1325,1275,225,1275,225,1275,1325,1275,1325,1275,250,1275,1350,1300,225,1275,225,1275,225,1275,225,1275,1350,1275,1325,1275,1350,1275,1325,1275,1350,1275,1325,1275,1350,1275,1325,1300,1325,1275,225,1275,225,1275,1350,1275,225,1275,225,1300,225,1275,250,1275,225,1275,225,1275,250,1275,225,1275,225,1275,1350,1275,250,1275,225,1275,1325}; //powerfix 2 off //PROGMEM int temp[]={600,600,1250,625,1225,625,1225,625,1250,1300,550,625,1225,625,1225,625,1250,625,1225,625,1225,625,1225,625,1250,1300,575,625,1225,625,1225,625,1250,625,1225,650,1225,1300,550,625,1175}; //PROGMEM int temp[]={600,600,1250,600,1250,625,1225,625,1225,1275,575,625,1225,625,1225,625,1250,625,1225,650,1200,625,1225,625,1225,1300,550,1300,575,1300,550,1300,575,650,1225,625,1225,625,1225,625,1175}; //PROGMEM int temp[]={3675,950,250,950,250,950,950,250,250,950,250,950,250,950,950,275,250,950,950,275,250,950,950,250,250,950,950,250,250,950,250,950,250,950,950,250,250,950,950,250,250,950,950,275,250,950,950,275,250}; // mising bit 102 pulses //PROGMEM int temp[]={1400,1275,1325,1275,1325,1275,1325,1175,225,1300,1350,1275,1350,1275,225,1300,1325,1300,1325,1275,1325,1300,225,1300,1325,1275,225,1275,225,1300,1325,1275,1325,1275,250,1275,225,1275,1325,1275,1350,1275,225,1275,1325,1275,225,1225,300,1275,250,1275,225,1275,1325,1275,1325,1300,225,1275,225,1275,1325,1300,1325,1275,225,1275,225,1275,225,1275,225,1275,1325,1275,1325,1275,250,1275,250,1275,1325,1275,1350,1275,225,1275,225,1300,1325,1275,1350,1275,1325,1300,1325,1275,1350,1275,1325}; //lacrosse v3 //PROGMEM int temp[]={825,275,750,275,750,300,750,300,750,300,750,275,750,275,750,300,750,300,750,300,250,800,725,300,750,300,250,800,725,300,225,800,225,800,250,800,250,800,725,300,250,800,725,300,750,300,725,300,250,800,250,800,225,800,750,300,250,800,725,300,250,800,725,300,250,800,725,300,725,300,250,800,725,300,725,300,250,800,725,300,250,800,725,300,725,300,725,300,725,300,250,800,225,800,225,800,725,300,725,300,225,800,225,800,725,300,725,300,725,300,250,800,250,800,725,300,725,300,725,300,250,800,725,300,725,300,725,300,225,800,225,800,225,800,725,300,225,800,225,800,250,800,725,300,225,800,225,800,225,800,250,800,250,800,225,800,725,300,225,800,225,600}; // oregon v1 //PROGMEM int temp[]={1525,1025,1475,1050,1450,2350,1475,1025,2800,1025,1450,2375,1450,1050,2800,2375,1450,1050,1450,1050,1450,1050,1450,1050,2800,1050,1450,2350,1475,1025,1475,1050,1450,1050,1450,1050,1425,1050,1450,1050,1450,1050,2800,2375,2800,2375,2800,1050,1450,1075,1425}; //PROGMEM int temp[]={1725,1100,1650,1100,1650,1100,1650,1100,1650,1100,1650,1100,1625,1125,1625,1125,1625,1125,1625,1100,1625,1100,1625,4150,5675,225,3100,1125,1625,1125,1625,2600,3100,2600,1625,1125,3100,2600,1625,1125,3075,1125,1625,2600,3100,2600,1625,1125,3075,2600,1625,1125,1625,1125,1625,1125,1625,1125,1600,1125,3075,2600,1600,1125,3075,2600,1625,1125,1600,1150,3075,600}; //20;38;DEBUG;Pulses=66;Pulses(uSec)= v1 //PROGMEM int temp[]={1725,1075,1675,1075,1675,1075,1675,1075,1675,1050,1700,1050,1675,4125,5725,5075,1650,2575,3125,1100,1625,2575,1600,1150,3175,2500,1700,1050,1625,1150,3125,2550,3150,1075,1650,2550,1650,1100,1575,1175,3100,2575,1625,1125,1650,1075,1675,1075,1650,1125,1575,1175,3100,1100,1600,2600,1625,1125,1650,1100,1625,1125,1575,1175,3100,600}; //20;04;DEBUG;Pulses=50;Pulses(uSec)= //PROGMEM int temp[]={300,1020,240,1020,240,1020,240,1020,240,1020,240,1020,240,1020,990,300,240,1020,240,1020,240,1020,240,1020,240,1020,990,270,240,1020,990,300,240,1020,240,1020,240,1020,990,300,240,1020,990,300,240,1020,990,300,240,6990}; // chuango //PROGMEM int temp[]={1625,425,1550,450,1575,400,525,1450,1575,425,1550,425,475,1550,1450,525,1450,550,375,1525,475,1475,500,1475,1575,400,525,1450,1550,425,1525,500,1475,575,350,1600,400,1550,475,1500,500,1475,1550,425,1550,425,1550,425,450}; //PROGMEM int temp[]={1975,275,900,250,225,975,250,975,250,975,225,975,900,250,900,250,900,250,250,950,225,975,900,250,225,950,225,975,250,950,225,975,900,250,900,250,900,250,250,950,900,250,250,950,225,950,925,250,250}; //Imagintronix: //PROGMEM int temp[]={390,870,420,870,420,870,420,870,420,870,420,870,420,870,420,870,1260,870,420,870,1260,870,420,870,1230,870,420,870,1260,870,420,870,1260,870,1260,870,1260,870,1230,870,1260,870,420,870,1260,870,420,870,1260,870,420,870,1260,870,1260,870,1260,870,420,870,1260,870,420,870,420,870,420,870,420,870,420,870,420,870,420,870,420,870,420,870,420,870,1230,870,1260,870,420,870,420,870,420,840,420,840,1260,6990}; //20;10;DEBUG;Pulses=42;Pulses(uSec)=Chacon: //PROGMEM int temp[]={630,570,1230,540,1230,540,1230,540,1230,570,1230,540,1230,540,1230,540,1230,570,1230,540,1230,540,1230,540,1230,570,1200,540,1200,570,1170,1230,540,570,1200,540,1200,540,1170,1230,540,6990}; //PROGMEM int temp[]={660,510,1260,510,1260,510,1260,510,1260,540,1260,510,1260,540,1260,540,1230,540,1230,540,1230,540,1230,540,1230,570,1230,540,1230,540,1230,540,1230,570,1230,540,1230,540,1230,540,1230,6990}; //PROGMEM int temp[]={120,510,90,510,510,90,510,90,120,510,90,510,510,90,510,90,510,90,90,510,120,510,120,510,510,90,510,90,90,510,510,90,510,90,90,510,90,510,120,510,120,510,120,510,510,90,510,90,120,6240,120}; //PROGMEM int temp[]={90,510,510,90,510,90,120,510,510,90,90,510,90,510,510,90,510,90,510,90,120,510,510,90,120,510,510,90,510,90,90,510,90,510,510,90,510,90,510,90,90,510,90,510,510,90,510,90,90,6300,90}; //PROGMEM int temp[]={330,360,270,360,270,330,270,360,270,360,270,360,270,330,270,360,270,360,270,360,270,360,270,3960,660,360,270,780,690,360,690,360,660,360,270,780,270,780,270,780,690,360,270,780,270,780,690,360,270,780,660,360,270,780,270,780,690,360,270,780,660,360,270,780,660,360,270,780,660,360,270,780,270,780,690,360,690,360,660,360,270,780,660,360,690,360,660,360,660,360,660,360,270,780,690,360,660,360,660,360,270,780,660,360,270,780,270,780,270,780,690,360,270,780,690,360,690,360,270,780,660,360,690,360,690,360,270,780,660,360,660,360,690,360,690,360,270,780,270,780,660,360,660,360,660,360,270,780,690,360,660,390,660,360,270,6990}; // bofu //PROGMEM int temp[]={1200,2370,1560,180,600,210,600,210,600,210,210,600,210,600,600,210,600,210,210,600,600,210,210,600,600,210,600,210,600,180,600,180,600,180,210,600,600,180,600,180,210,600,210,600,180,600,180,600,600,180,600,210,180,600,180,600,180,600,180,600,210,600,210,600,600,180,600,210,210,600,600,210,210,600,600,210,600,210,210,600,210,600,600,180,600}; //PROGMEM int temp[]={270,600,210,600,210,600,180,600,180,600,180,630,180,600,180,630,180,600,180,600,180,600,180,600,180,6990}; //Alecto //PROGMEM int temp[]={1800,2010,1710,2010,3690,3960,1710,2010,1710,2010,1710,2010,1710,3960,1710,3960,1710,3960,1710,2010,1710,3960,1740,2010,1710,2010,1710,3960,1710,2010,1710,2010,1710,3960,1710,2010,1710,2010,1710,3960,1740,3960,1710,2010,1710,2010,1710,2010,1710,2010,1710,3960,1710,2010,1710,3960,1710,2010,1710,2010,1710,2010,1710,1980,1710,3960,1710,2010,1710,3960,1710,3960,1710,3960,1710,3960,1710,2010,1710,2010,1710,2010,1710,3960,1710,2010,1710,3960,1710,3960,1710,2010,1710,3960,1710,3960,1710,2010,1710,3960,1710,3960,1710,2010,1710,2010,1710,3960,1710,3960,1710,3960,1710,3960,1740,2010,1710,3960,1740,2010,1710,3960,1710,3960,1710,3960,1710,3960,1710,1980,1740,3960,1710,3960,1740,1980,1740,1980,1710,3960,1710,2010,1710,2010,1740,2010,1710,3960,1710,6990}; //PROGMEM int temp[]={360,150,600,180,600,510,300,510,300,510,300,510,300,510,300,210,600,210,630,510,300,210,600,540,300,510,300,210,600,210,600,510,300,180,600,510,300,510,300,210,600,540,300,210,600,510,300,210,600,210,600,540,300,510,270,210,600,6990}; //PROGMEM int temp[]={1200,2370,1530,180,600,210,600,210,600,210,210,600,210,600,600,210,600,210,210,600,600,210,210,600,600,210,600,180,600,180,600,180,600,180,210,600,600,180,600,180,210,600,180,600,180,600,180,600,600,210,600,210,180,600,180,600,180,600,210,600,210,600,210,600,600,210,600,210,210,600,600,210,210,600,600,210,600,210,210,600,210,600,600,180,600,6990}; // perel //PROGMEM int temp[]={420,900,1080,180,360,900,360,900,360,900,1080,180,360,900,1080,210,330,930,1080,210,330,930,330,930,360,930,330,930,330,930,330,930,330,930,330,930,330,930,1080,210,330,930,1080,210,330,930,1080,210,330,6990}; // Europe //PROGMEM int temp[]={1290,3240,450,3240,450,3240,1230,3240,1230,3240,450,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,450,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,1230,3240,1200,3240,1230,3240,1200,3240,1230,3240,450,6990}; //kaku doorbell //PROGMEM int temp[]={300,950,250,950,250,950,950,275,250,950,250,950,250,950,950,275,250,950,950,275,250,950,950,250,250,950,950,275,250,950,250,950,250,950,950,275,250,950,950,250,250,950,950,275,250,950,950,250,250}; //rev tristate //PROGMEM int temp[]={330,960,930,270,240,960,930,270,930,270,930,270,240,960,930,270,930,270,930,270,240,960,930,270,240,960,930,270,240,960,240,960,240,930,240,960,240,960,240,960,240,960,240,960,930,270,930,270,240,6990}; //PROGMEM int temp[]={270,990,930,270,210,960,930,270,930,270,930,270,210,960,900,270,210,960,900,270,900,270,900,270,210,960,900,270,210,960,210,960,210,960,210,960,210,960,210,960,900,270,900,270,210,960,210,960,210,6990}; // lidl 3state //PROGMEM int temp[]={180,930,900,270,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,210,930,870,270,210,930,870,270,210,930,210,930,870,270,900,270,210,6990}; // impuls //PROGMEM int temp[]={60,330,360,30,60,330,360,30,60,330,360,30,60,330,360,30,360,30,360,30,60,330,60,330,60,330,60,330,60,330,60,330,60,330,60,330,60,330,60,330,60,330,360,30,60,330,60,330,60,6990;}; //biowin //PROGMEM int temp[]={1200,1860,480,1860,480,3780,480,3780,480,3780,480,3780,480,3780,480,3780,480,3810,480,1890,480,3780,480,1860,450,1860,480,3750,480,3780,480,3780,480,1890,480,1860,480,1860,480,1860,480,1860,480,1860,480,3750,480,1890,480,3780,480,1860,480,1860,480,3750,480,1860,480,1860,480,1860,480,3750,480,1890,450,1860,480,1860,480,3750,480,1860,480,3780,480,3780,480,1860,480,1890,480,6990}; //somfy up 88 //PROGMEM int temp[]={1200,2490,2400,2490,4710,1200,1170,1200,1170,1200,1170,1200,540,570,510,570,1170,570,510,570,510,540,540,1200,1170,1200,540,570,1170,570,540,570,510,540,540,570,510,570,540,1200,1170,1200,1170,570,510,1200,1170,570,540,1200,540,570,1170,1200,1170,1200,510,540,540,570,1170,570,540,570,510,1200,540,540,540,570,1170,570,540,1200,1170,540,540,570,540,1200,1170,570,510,570,540,1200,510,6990}; //somfy down? 84 //PROGMEM int temp[]={3540,1140,1110,1140,1110,1140,1140,1200,1170,1200,1170,570,540,570,540,1200,1170,1200,1170,1200,1170,570,510,570,540,1200,510,570,540,570,1170,570,540,1200,1170,570,510,1200,1170,570,540,1200,510,570,1170,1200,1170,1200,510,540,540,540,1170,570,540,570,540,1200,540,540,510,570,1170,570,510,1200,1170,540,540,570,540,1200,1170,540,540,570,540,1200,510,6990}; // somfy my 80 //PROGMEM int temp[]={1200,2490,2400,2490,4710,1200,1170,1200,1170,1200,510,540,1170,1200,540,540,1170,1200,540,540,1170,1200,1170,540,540,1200,1170,1200,510,540,1170,540,540,570,540,540,540,570,540,1200,510,570,510,540,540,540,1170,1200,1170,1200,1170,540,540,1200,510,570,510,570,1170,1200,1170,570,510,570,540,540,540,1200,1170,1200,1170,570,540,570,540,1200,1170,570,540,570,540,1200,1170,6990}; //PROGMEM int temp[]={270,930,210,930,210,930,870,270,180,930,870,270,180,930,870,270,180,930,840,270,180,930,210,930,210,930,870,270,180,930,870,270,180,930,870,270,180,930,870,270,210,930,180,930,180,930,840,270,180,6990}; //Xiron //PROGMEM int temp[]={990,870,900,870,870,390,390,390,390,870,390,390,870,390,390,900,390,390,390,390,870,390,390,390,390,870,390,390,870,390,390,870,390,390,390,390,900,870,390,390,870,870,870,870,870,390,390,870,870,870,390,390,870,870,390,390,870,390,390,390,390,870,390,390,870,390,390,390,390,390,390,390,390,390,390,870,870,870,870,870,870,390,390,390,390,870,870,390,390,870,390,390,870,870,390,390,870,900,390,390,390,390,390,390,30,6990}; //if (RawSignal.Number==66){ // for (i=0;i<160;i++) { // //RawSignal.Pulses[1+i]=temp[i]/25; // RawSignal.Pulses[1+i]=temp[i]/RawSignal.Multiply; // } // RawSignal.Number=106; //} // - //if (RawSignal.Number==66){ //Serial.print("20;01;LaCrosseV2;ID=0606;"); // Label // ---------------------------------- //int sensordata=0x0e; // 9=203 10=225 //sprintf(pbuffer, "WINDIR=%04d;", sensordata); //Serial.print( pbuffer ); //sensordata=6; //sensordata=sensordata*36; //sprintf(pbuffer, "WINGS=%04x;", sensordata); //Serial.print( pbuffer ); //sprintf(pbuffer, "WINSP=%04x;", sensordata); //Serial.println( pbuffer ); //} // ========================================================================== // Kill ALL Short RF packets // ========================================================================== if (RawSignal.Number < 24) { // Less than 24 pulses? RawSignal.Number=0; // Kill packet return true; // abort processing } // ========================================================================== // DEBUG // ========================================================================== if (RFDebug==true) { // ---------------------------------- // Output // ---------------------------------- sprintf(pbuffer, "20;%02X;", PKSequenceNumber++); // Node and packet number Serial.print( pbuffer ); // ---------------------------------- Serial.print(F("DEBUG;Pulses=")); // debug data Serial.print(RawSignal.Number); Serial.print(F(";Pulses(uSec)=")); //for(i=1;i PULSE4200) { if (RawSignal.Pulses[100] > PULSE4200) { if (RawSignal.Pulses[150] > PULSE4200) { RawSignal.Number=50; // New packet length RawSignal.Pulses[0]=33; // signal the plugin number that should process this packet return false; // packet detected, conversion done } } } } // ========================================================================== // End of Signal translation // ========================================================================== // ========================================================================== // Beginning of Signal translation for Home Confort Switches/Remotes // ========================================================================== if (RawSignal.Number == 200) { if (RawSignal.Pulses[1] > PULSE2000) { if (RawSignal.Pulses[100] > PULSE4000) { if (RawSignal.Pulses[101] > PULSE2000) { RawSignal.Number=100; // New packet length RawSignal.Pulses[0]=11; // signal the plugin number that should process this packet return false; // packet detected, conversion done } } } } // ========================================================================== // End of Signal translation // ========================================================================== // ========================================================================== // Beginning of Signal translation for Intertek Unitec Switches/Remotes // ========================================================================== if (RawSignal.Number == 202) { if (RawSignal.Pulses[2] > PULSE2000) { if (RawSignal.Pulses[52] > PULSE2000) { if (RawSignal.Pulses[102] > PULSE2000) { if (RawSignal.Pulses[1] < PULSE500) { RawSignal.Number=50; // New packet length RawSignal.Pulses[0]=19; // signal the plugin number that should process this packet return false; // packet detected, conversion done } } } } } // ========================================================================== // End of Signal translation // ========================================================================== // ========================================================================== // Beginning of Signal translation for HomeEasy HE844 mode 4 - compatibility mode // ========================================================================== //if (RawSignal.Number == 234) { // if (HEconversiontype==0) { // Reject the entire packet // if ((RawSignal.Pulses[2] > PULSE4000) && (RawSignal.Pulses[2+58] > PULSE4000) && (RawSignal.Pulses[2+58+58] > PULSE4000) ){ // RawSignal.Pulses[0]=15; // Instruct plugin 3 to skip any packets it might see after this // RawSignal.Number=0; // Kill packet // return true; // abort processing // } // } //} // ========================================================================== // End of Signal translation HomeEasy HE842 // ========================================================================== // ========================================================================== // END plugin 001 if the incoming packet is not oversized and resume normal processing of plugins // there is no need to do all the checks if there never will be a match if (RawSignal.Number < OVERSIZED_LIMIT) return false; // ========================================================================== // ########################################################################## // ========================================================================== // Beginning of Signal translation for oversized packets (more pulses than handled by any plugin) // ========================================================================== // ========================================================================== // Beginning of Signal translation for Flamingo FA500R // ========================================================================== if (RawSignal.Number > 330 && RawSignal.Number < 378) { int pos1=RawSignal.Number - 130; int pos2=RawSignal.Number - 130 - 58; if (RawSignal.Pulses[pos1] > PULSE2000 && RawSignal.Pulses[pos2] > PULSE4000) { for (i=0;i<58;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[pos2+1+i]; } RawSignal.Pulses[0]=12; // Data will be processed by plugin 12 RawSignal.Number=58; // New packet length return false; // Conversion done, stop plugin 1 and continue with regular plugins } } // ========================================================================== // End of Signal Translation // ========================================================================== // ========================================================================== // Beginning of Signal translation for Conrad RSL // ========================================================================== //Conrad RSL //20;87;DEBUG;Pulses=462;Pulses(uSec)=1260,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6930,1230,420,510,1140,1230,420,1230,420,510,1140,1230,420,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,510,1140,1230,420,1230,420,1230,420,1230,420,1230,420,510,1140,1230,420,510,1140,510,1140,510,1140,510,1140,510,1140,510,6990; if (RawSignal.Number == 462) { if ( (RawSignal.Pulses[66] > PULSE6500) && (RawSignal.Pulses[66+66] > PULSE6500) && (RawSignal.Pulses[66+66+66] > PULSE6500) ) { RawSignal.Number=66; // New packet length return false; // Conversion done, terminate plugin 1 and continue with regular plugins } } // ========================================================================== // End of Signal Translation // ========================================================================== // ========================================================================== // Beginning of Signal translation for HomeEasy HE842/HE852/HE863 // ========================================================================== if (RawSignal.Number > 460) { // && RawSignal.Number < 470) { if (HEconversiontype==0) { // Reject the entire packet if ((RawSignal.Pulses[2] > PULSE4000) && (RawSignal.Pulses[2+58] > PULSE4000) && (RawSignal.Pulses[2+58+58] > PULSE4000) ){ RawSignal.Pulses[0]=15; // Instruct plugin 3 to skip any packets it might see after this RawSignal.Number=0; // Kill packet return true; // abort processing } } else { // Convert to Elro Method 1 (same as FA500 Method 1) int pos1=RawSignal.Number - 58; //if (RawSignal.Pulses[pos1]*RawSignal.Multiply > 4000) { if (RawSignal.Pulses[pos1] > PULSE4000) { for (i=0;i<58;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[pos1+1+i]; } RawSignal.Number=58; // New packet length return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } // ========================================================================== // End of Signal translation HomeEasy HE842 // ========================================================================== // ************************************************************************** // Full buffer size checks, >>>>>> STATIC checks <<<<< // ************************************************************************** // ========================================================================== // Beginning of Signal translation for Forrinx // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { if ((RawSignal.Pulses[2] > PULSE6000) && (RawSignal.Pulses[2+50] > PULSE6000) && (RawSignal.Pulses[2+50+50] > PULSE6000)) { for (i=0;i<50;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[3+i]; // reorder pulse array } RawSignal.Number=51; // New packet length (report 51 and not 50 to avoid handling by other plugins RawSignal.Pulses[0]=76; // signal the plugin number that should process this packet return false; // packet detected, conversion done } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for bofu // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { if ( (RawSignal.Pulses[1] > PULSE4200) && (RawSignal.Pulses[2] > PULSE2000) && (RawSignal.Pulses[3] > PULSE1100) ) { if ( (RawSignal.Pulses[1+86] > PULSE4200) && (RawSignal.Pulses[2+86] > PULSE2000) && (RawSignal.Pulses[3+86] > PULSE1100) ) { RawSignal.Number=85; // New packet length return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } // ========================================================================== // ************************************************************************** // Full buffer size checks, >>>> SCANNING checks <<<<< sorted by packet size // ************************************************************************** // ========================================================================== // Beginning of Signal translation for Silvercrest Doorbell // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { for (j=2;j<114;j++) { // Only check twice the total RF packet length we are looking for if (RawSignal.Pulses[j] > PULSE1100) { // input is going to fast skip to where new part is going to start if (j+114 > RAW_BUFFER_SIZE-1) break; // cant be the packet we look for if ( (RawSignal.Pulses[j+114] > PULSE1100) && (RawSignal.Pulses[j+114+114] > PULSE1100) && (RawSignal.Pulses[j+114+114+114] > PULSE1100) ) { // first long delay found, make sure we have another at the right position for (i=0;i<114;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[j+1+i]; // reorder pulse array } RawSignal.Number=114; // New packet length RawSignal.Pulses[0]=75; // signal the plugin number that should process this packet return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for Home Confort Switches/Remotes // ========================================================================== if (RawSignal.Number > 299) { // Scan for corrupted/chained Home Confort RF packets if (RawSignal.Pulses[1] > PULSE2000) { if (RawSignal.Pulses[100] > PULSE4000) { if (RawSignal.Pulses[101] > PULSE2000) { RawSignal.Number=100; // New packet length RawSignal.Pulses[0]=11; // signal the plugin number that should process this packet return false; // packet detected, conversion done } } } for (j=1;j<104;j++) { //if (RawSignal.Pulses[j]*RawSignal.Multiply > 4000) { if (RawSignal.Pulses[j] > PULSE4000) { //if (RawSignal.Pulses[j+1]*RawSignal.Multiply > 2000) { if (RawSignal.Pulses[j+1] > PULSE2000) { if ( (j+98) > RawSignal.Number) break; // cant be the packet we are looking for //if ( (RawSignal.Pulses[j+100]*RawSignal.Multiply > 4000) && (RawSignal.Pulses[j+101]*RawSignal.Multiply > 2000) ) { // This could be a Home Confort packet if ( (RawSignal.Pulses[j+100] > PULSE4000) && (RawSignal.Pulses[j+101] > PULSE2000) ) { // This could be a Home Confort packet for (i=0;i<100;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[j+i]; // relocate/reorder pulse array } RawSignal.Number=100; // New packet length RawSignal.Pulses[0]=11; // signal the plugin number that should process this packet } return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for Auriol & Xiron // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { for (int offset=0; offset < 74; offset++) { //if (RawSignal.Pulses[offset]*RawSignal.Multiply > 3300) { if (RawSignal.Pulses[offset+74] > PULSE3300 && RawSignal.Pulses[offset+74*2] > PULSE3300 && ((offset > 0 && RawSignal.Pulses[offset] > PULSE3300) || RawSignal.Pulses[offset+74*3] > PULSE3300)) { for (i=0;i<74;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[offset+i+1]; // reorder pulse array } RawSignal.Number=74; // New packet length RawSignal.Pulses[0]=46; // signal the plugin number that should process this packet return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for Oregon // ========================================================================== //Serial.println("P001"); if (RawSignal.Number == RAW_BUFFER_SIZE-1) { for (j=50;j<104;j++) { // Only check the total RF packet length we are looking for //if (RawSignal.Pulses[j]*RawSignal.Multiply > 2500) { // input is going to fast skip to where new part is going to start if (RawSignal.Pulses[j] > PULSE1600) { // input is going to fast skip to where new part is going to start if (j+52 > RAW_BUFFER_SIZE-1) break; // check for overflow, cant be the packet we look for byte x=0; if ( (RawSignal.Pulses[j+52] > PULSE1600) && (RawSignal.Pulses[j+52+52] > PULSE1600) && (RawSignal.Pulses[j+52+52+52] > PULSE1600) ) x=2; if ( (RawSignal.Pulses[j+50] > PULSE1600) && (RawSignal.Pulses[j+50+50] > PULSE1600) && (RawSignal.Pulses[j+50+50+50] > PULSE1600) ) x=1; if (x !=0) { for (i=0;i<52;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[j+1+i]; // reorder pulse array } RawSignal.Number=52; // New packet length RawSignal.Pulses[0]=63; // signal the plugin number that should process this packet //Serial.println("P002"); return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for SelectPlus // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { for (j=2;j<37;j++) { // Only check the total RF packet length we are looking for //if (RawSignal.Pulses[j]*RawSignal.Multiply > 2500) { // input is going to fast skip to where new part is going to start if (RawSignal.Pulses[j] > PULSE5000) { // input is going to fast skip to where new part is going to start if (j+36 > RAW_BUFFER_SIZE-1) break; // cant be the packet we look for //if ( (RawSignal.Pulses[j+26]*RawSignal.Multiply > 2500) && (RawSignal.Pulses[j+26]*RawSignal.Multiply < 3000) && (RawSignal.Pulses[j+26+26]*RawSignal.Multiply > 2500) ) { // first long delay found, make sure we have another at the right position if ( (RawSignal.Pulses[j+36] > PULSE5000) && (RawSignal.Pulses[j+36+36] > PULSE5000) ) { // first long delay found, make sure we have another at the right position if (j != 36) { for (i=0;i<36;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[j+1+i]; // reorder pulse array } } RawSignal.Number=36; // New packet length RawSignal.Pulses[0]=70; // signal the plugin number that should process this packet return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } } // ========================================================================== // ========================================================================== // Beginning of Signal translation for Byron Doorbell // ========================================================================== if (RawSignal.Number == RAW_BUFFER_SIZE-1) { for (j=2;j<90 /*RawSignal.Number*/;j++) { // Only check twice the total RF packet length we are looking for // Byron SX //if (RawSignal.Pulses[j]*RawSignal.Multiply > 2500) { // input is going to fast skip to where new part is going to start if (RawSignal.Pulses[j] > PULSE2500) { // input is going to fast skip to where new part is going to start if (j+26 > RAW_BUFFER_SIZE-1) break; // cant be the packet we look for //if ( (RawSignal.Pulses[j+26]*RawSignal.Multiply > 2500) && (RawSignal.Pulses[j+26]*RawSignal.Multiply < 3000) && (RawSignal.Pulses[j+26+26]*RawSignal.Multiply > 2500) ) { // first long delay found, make sure we have another at the right position if ( (RawSignal.Pulses[j+26] > PULSE2500) && (RawSignal.Pulses[j+26] < PULSE3000) && (RawSignal.Pulses[j+26+26] > PULSE2500) ) { // first long delay found, make sure we have another at the right position for (i=0;i<26;i++){ RawSignal.Pulses[1+i]=RawSignal.Pulses[j+1+i]; // reorder pulse array } RawSignal.Number=26; // New packet length RawSignal.Pulses[0]=72; // signal the plugin number that should process this packet return false; // Conversion done, stop plugin 1 and continue with regular plugins } } } } // ========================================================================== // ========================================================================== // End of Signal translation // ========================================================================== if (RawSignal.Number > OVERSIZED_LIMIT) { // unknown and unsupported long packet (290 is the max. pulse length used at the Oregon plugin) RawSignal.Number=0; // no need to show this to any of the other plugins for processing return true; // abort processing completely } // as there is no support for it anyway return false; } #endif //PLUGIN_001 /*********************************************************************************************\ 167 5010 77 2310 52 1560 161 77 52 0137 77 52 161 77 52 169 78 52 161 77 52 0137 77 52 161 77 52 20;08;DEBUG;Pulses=511;Pulses(uSec)= 5010,2340,1560,210,270,510,270,510,270,540, 9 270,510,270,510,270,510,270,510,270,510, 20 270,510,270,510,270,510,270,510,270,510, 30 270,510,270,510,270,510,600,210,270,510, 4 270,510,270,510,270,540,270,540,600,210, 5 600,210,600,210,270,510,270,540,270,540, 6 270,510,270,510,270,510,270,510,600,210, 69 600,210,600,210,600,210,600,210,600,210, 79 270,510,270,510,600,210,4830,2310,1560,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,540,270,540,270,510,270,510,270,510,270,540,270,540,270,510,270,510,600,210,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,600,210,600,210,600,210,270,510,270,540,600,210,4830,2310,1560,210,270,510,270,510,270,510,270,540,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,600,210,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,270,540,270,540,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,600,210,600,210,600,210,270,510,270,510,600,210,4830,2310,1560,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,540,270,540,270,540,270,510,270,510,270,510,270,510,270,540,270,540,600,210,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,600,210,600,210,600,210,270,510,270,510,600,210,4830,2310,1560,210,270,540,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,600,210,270,510,270,510,270,510,270,510,270,540,600,210,600,210,600,210,270,510,270,510,270,510,270,540,270,540,270,510,270,510,600,210,600,210,600,210,600,210,600,210,600,210,270,510,270,510,600,210,4830,2310,1560,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,510,270,540,270,540,270,510,270,510,270,510,270,540,270,540,270,510,600,210,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,270,510,270,510,270,510,270,510,270,510,270,510,270,510,600,210,600,210,600,210,600,210,600,210,600,210,270; Plugin Pulselength ------ ----------- 002 102-104 003 50 004 132 148 005 50 006 106 007 66 008 96 009 66 68 010 134-164 011 100 012 (26) 58 013 42 014 36-52 015 116 030 74 031 94 & 126 032 74-78 034 124-284 035 96 040 58 041 92/162/122/132 042 48-56 043 88 044 82 045 66 046 74 048 126-290 060 26 061 50 070 36 071 66 072 26 073 26 074 50 080 52 081 46 082 26 090 194 100 160 & 164-176 \*********************************************************************************************/