From 96b1ca97dc80e9269bcff52f7278710a9f3ed885 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Mon, 8 Jul 2024 08:10:00 +0300 Subject: [PATCH] subghz add novoferm support --- .../main/subghz/helpers/subghz_custom_event.h | 1 + .../resources/subghz/assets/keeloq_mfcodes | 113 +++++++++--------- .../subghz/scenes/subghz_scene_set_type.c | 11 ++ lib/subghz/protocols/keeloq.c | 3 + 4 files changed, 72 insertions(+), 56 deletions(-) diff --git a/applications/main/subghz/helpers/subghz_custom_event.h b/applications/main/subghz/helpers/subghz_custom_event.h index 2bf308e28..be943bbde 100644 --- a/applications/main/subghz/helpers/subghz_custom_event.h +++ b/applications/main/subghz/helpers/subghz_custom_event.h @@ -93,6 +93,7 @@ typedef enum { SetTypeElmesElectronic, SetTypeNormstahl_433_92, SetTypeJCM_433_92, + SetTypeNovoferm_433_92, SetTypeFAACRCXT_433_92, SetTypeFAACRCXT_868, SetTypeGeniusBravo433, diff --git a/applications/main/subghz/resources/subghz/assets/keeloq_mfcodes b/applications/main/subghz/resources/subghz/assets/keeloq_mfcodes index 27ab5aaaf..0db72444e 100644 --- a/applications/main/subghz/resources/subghz/assets/keeloq_mfcodes +++ b/applications/main/subghz/resources/subghz/assets/keeloq_mfcodes @@ -1,59 +1,60 @@ Filetype: Flipper SubGhz Keystore File Version: 0 Encryption: 1 -IV: AD 0B A4 A1 51 C0 C0 41 36 78 26 82 17 24 9D 62 -0D18FF475E57A67CC5C0B430664E8EF6E07CB6AF72454995F17DE84E2E876D87 -C9BC55E1E3A9B312E341D7E2663C66C2479D5C51AE2EB83BAE47D8C6C79DB8A0 -776E01A7B4FCB929FA59CFE1F16D2D600F6FD9FD8BE1E9E41667144E61E023E4 -C354F854F14AAC08C6A51606582CD73EECEED54779927DC1E04A0D72C4E6A58E -09BA4DC551CDB0141F4A053133DBF9B7B99CBAA402C7B6B2AC8ADB516CA2FCB29FF9744DD95FB009BED6A09AE3303317 -675777F65042358100A9A2BE142C42E10CC5CF98CA6BFF82284FFD9BF7E7FB11 -4739972DCC08EFF0E8547694A67E116F3EC8638F286E333E7D89F2D61218F65D -FE8D5A0A9ED36545004CEE70D3C1FE477F34212364CF7C9EBA0FDD4F6B8F1D3E -453D5C6FE0EA7FD779B54696E66DE6BD6AEF3B1EE347142A3DB7505609077219 -A52339EE40D046E7DF6C130CEC7F9F686753A73A5F72EF344E01B00C3A3CF5F2 -94029CE386CC0403984F7C9D80B40FF12BE6E50412891FD45B347742340D1E6E679102DEC6F7D36C36863701A2BBDA7B -793633A3D97D704779E2E841A5F616ED0BB0BD50740C0B196D72C6C6453124183CA93ADCAC1A5042EBD579AC238B9DBC -B1C6EBB7320CAE97E28A244228B288BEEA44C9FD262E2C448219DAC6E194CB14 -A6C374B3FB7E8BB6F3052ED9DB67E5BCFA6CCC42F5A0D7F20BEDB7C0B58592A5 -DF4FCBDCA3414B7551797A856048625186B2EC7B836EB35B4B080CEE4A72C39F -4127F58BDEB18D79EA8317B1858F7575CF4B648E3C53338975B4A093FA9730C0 -294659EBD39D7CC01DC4E0E3B0B90A3555704E736D3BE4485BAAACBC58A84652CF3A7DA3C271E3198C72561332F2A141 -9E2CC77756BE7AB3D500C0B4A91271C0A4DED5BCB78484217EA922B7878AA8F5 -BF13D9949C783CF6B2F0E489A6912E56DDD9183D651D7F36FD0342981596A85C -8441C62006E1334FC31F53DAFF5281260C463AF3E92B1E797CB67882C49566846825606804C14C49FFD440F4E05CE692 -BE7E62E9CFA1C703CCB971F2B0C6C0F339C78A951CA8DB287B40C3BA76EA7179E8B62C29EAC8293FD218CF981BB84BEF -DA53C52101FAC8FD8F9545768CF1DB59F3B31C9249A2FC64B66DB259C721ABE1 -C9842AD0A8A8E94FCE94F46BDE89DAA8D11C41F9C83A7F6394D595028829AB92 -904A94542BCD85F72D470640A220FD28EBC337C0673C189C96BFB8CE373B4F84 -EEEE187B03FE77B955F22214707017DB8A60B2E3979D5C2F6BED61D0623D4D50 -CEF91BE6EBD8F331E2422B6B948053E8DA143F3DD907C922E0328D49B0ADA8A6 -A6F0F8A4F03B45062CEA86B291E80EE15906C0B226ABDB77E222EB95B026952D -62280870E48A2E8B8A18AD5DFF0089E927BEACE1F81A8BB1A8A2BE8EB0E92BFD -C9A3DE8165D47D1D41715F00192313755226C1B0A3D04BCD7A121B1CB4999FBD -3CAEEB62FCF601F34D3320E3EACE9EFC5D627BF69FEE965F8B84A258A765B6FE -8D83CC36514CE5CC46B181AE28089BE5BC99CE3096C569751B4E07A7D956AFA3 -0F81DDB18F60E238C7FF751E70431AA5328EFDBBDFF03D5F360A524AA968CEE9 -1F1E498A279E9BA15CB6BB836E90FEE522F2BE16572A4D057DF9C2B104487458 -68C60FF95056BE4D814CE9B8A4175625DB3E365712C2D3E42CEEBA2E0977CDB9 -D95FB21943FCAD5A21F157E629314986D92F568FD3067B65911135E6335FB7E8 -17908EF142C4B6740CBE7DCA43DA3C23C7912739299786473A994E5752E7E9459B23653EE0D7775FCECB7B7608CB0495 -6D17B6BA17DBFFAA4E90953CE6A73AB967076B8FBC14A9361D93A01C0850CC38 -8723740BCC0A5CCEE52B6EF73DD441672FB6728965CC588044C78D495AB0675F -CA548FA44A444C8F45490A11DBC8FB24E6DB38F910EC60520A3890C8B45664FE -591356440344AAFEC21FAA0C85B6A8F354D45074932E37E0972F851E08937469 -DE3A54CAAC8014625EE502F547A93754AFAD0A7EB6028599D03CCB0473BC8D5C -B2C2F6F971034E1591AD374793D6D17A595D6544DF5A9585780C6B2E3505BCFF -54447BE6C626D1CA37FD799B76B35ED266D12757B5DA1AB9277F671BBF7F07B461D0CE26593F1372354979E836972F85 -45FBD88AA7C26B967BC3638F6083A6B83AA82D5B974B37DF1C3F52839DDA020C -33B9890FBE46FDB7AEE404B71C893DC20059F96224CF48F284A66D3A8D91918E -CCEA5BC148BC84DB4825320A2B8D39A30BAB4641FFEE33BD4B8700339F15892D -4BC4E0D1263E9B02DA401C884923778D1A6FACACFFE7F660381ECD64CCA5CCD2 -0284EA911FB1B37F623F92B1662E10D79AEBD0009C107A9C554D417F7553B28E -FE48F26C44FA4C3EB3B2F3497FE99AC30A0A7BF9FF261740E177D7A2A5BD7880 -1EA96FEBB62543A8731D19BBDD1C7FE323CADBAB7242E5A8F4B1D706964B4C32 -4AB7EEF02FD59EA5D16837A50282A6254B93A34F31FE9335DA9FABEF76EA714591029C64967506B99860358E5CBF4EDA -A0F25C5387FE9B871E246F33FE64396A5DC0A9BC9AD9DF9E219F3482ADD6497E -0130F99FA395F4364491E6718B53E9D6983B68E29A70035B158CA7629C31C33E -3CDAEDA88534C2E31D1235C99DEC466221C89F63E1F8F59C9CE224573E39E2D4 -F5ED2863D8B51DA620484CDE23D590F4A208DA6D155E645FCD6BCF5FEB39EE551EAE9C0366F7FFD4CBF1DCA063D154E1 +IV: 41 72 65 20 79 6F 75 20 61 20 46 75 72 72 79 3F +8B441920A9F30EA40001F37E0F3C0D72161467678511928D219A7DBC42F8D9B7 +1ADE5B8541491C46674EECC05A1C4297CB28259954FD7C6DA0EAADE8D57773FC +0497A50135FA4468B49694974DAADEF2A9CC2B7BAFC8465E0AA58E940C085850 +4BC77520AE09B4F6A5A5365B6B9C16CA53566E096159A98EF0AB6E7FE5C2DD1C +B674AC1674312E74471E44917F6FC049DAB48BBB65B84F14A4CD64223A49E93DC0C507B8E17BFFDCBB67B55F1B4091C6 +FBBE4E4F703A9C1F17268F73EC00A3F76517A4470783363102D2B7647F0F2E7F +21BE8A51F32CE62DA6B5E207E627D224639877860C71933C4F54AC7BD742B265 +74E3EA89CC7AA99855C1BC87734506413B882CF36D68C3329022415EB29D1360 +567937E84052F230610B3A2FC26CA1BE32B9617F7554EF5E6E7CB35A76718ADA +4C34F7FE5D6EAE40B0EB6BAB7DE4F0D059C32E4F312F9C62F2C50C54C5486276 +74C8656F8EA033C60F3183FA0923C9AF1EB6689FAACC39E6548ECE16E3312D39DCF45AC6EC70A70421FBFFA43D91E19E +275903678A81B6E62CD2BB4C50E93CB3E4B092E2894EBAA04AC4E0244E4D5BA9FCDFC6BCF845EA41DF0691BF2AEDF300 +BFE52324D666ADEB3D33D94331376B33A3D31566331DE0F372548FE7255F8085 +8E1B2E82B4C78360B3174741FB8031EE0DFEB479859BE8708F8AF40C5228BFDF +6014A4A9D9703DAC11DA6B93FB7A0E0E0856E9379148F3CC125D77BA4C3D4931 +B8C22EA72B35E60A7A3DD02956D2375EE7C07E243F17F413CA4AC3A1445AA250 +B545037B8798370A8638B7ADCBE9EEF748F73C89EB5E04B460057BAFA52B1D7DF29B009FBB3FA07CE87247D185BE4926 +09AEA3223E4FFB06333425BA977403E7C2F9B5F121FDA8313E73FE98D0041425 +E7A97F65883E4D3CDA02483738219E219EED0681C2BB140EF3E5D02230433D42 +4AE67B9EA288183047A9498F58978E7C41BB8905533F42FF5B94E41AFEFF0EB4907A8C472B9E32F6D659CFA6C391179B +1F9752FBA7A7A00D518D91BA8A8C1ADEF2EDF6282A5AFB2E4332B4351CF67F18317D2BCFF2DA6B5216EA138A4CCBDB81 +EDC508FE0D0E894B529C5E4AB82A7188072592BE9D4D9A3D2485822A9F4C5A67 +780582645A71D3A9841B0E8F5E84A2285F783872102AA1A98A956B98AEA19421 +37E2858B90868BCAA6B3198C3B205DC1413A9D378AF1671BEA3B8F47FCE1C5CE +229719C5AFE1E567B8BD5F07EFF89C30B11CB79C9C841FFE7B53404CA5422EDB +CDA16E59B8C24DBE95ABF978CAD4D04A4F124DED1965124F92AACA4C5AEB8721 +5C61D5C655DD9EB78C4F8E965101F98D7899155D2379EF6553FA9DEA0302A232 +7D3DCFDE942398244624C7ABFE08363404BA688EDA39D45A05BB6FB982BB9042 +ECCB10BCB2A8CF2093C61634E9AFEE9B69EB4A7C8B7139061730B5FA869F65BF +7AE6C19ED3C97F45D1167FC9EF52CCE321EA002D31D8AEA94106A2F711626551 +793A984F6EBD35253C319FAB671348A4C6843AEA7CCCD5A52ACA9BBE96484B5E +BB3ADBB5FD60F0FB01E5A8B1610D30A24975DC67ED1B70472E509218E213393E +BB971C6304723B9928F50FA2E5C30A48ED5527556EE1BA5A7EA75AB7A4ED4137 +489579673025F7A351072EB8D5C7FC1DBF651AA6233FB01D99DAC4BDC0A60F2F +ACA000B78B091A9B2621A9FA1A50FA6A3B63DDDF7D966224837028F93D570C08 +C1EB4EA179EC0437D5B0E72C47AAD06803F7619C53D3D2FEF38DD3C068118766B73202B75C534C6249312245218C9285 +639C6F53600C0F01410361164FEF715DB8E08C68D68B8AE76CF2D09A0C6C4CA1 +F5F2D77DD3AF60489312055EBA3B511F7D9E312F02465639FFF3E71A862BB9EB +3EC1F7B2C43646249C4D14B4B1B85B3416B8D3B0B8DA9E87BD6199DC27BD45C2 +AA24DB7345317FE980C917909F364EAA13591A664E0893271E9DBCC250782EA5 +32C18DBA479AD57BFF9FE7B7BD1022D4969D8E2EC99BC0799148809796E227D5 +494B44697DACDFDBBFEB0FDBEF6E9B5D7291B6CB43B4C93088F3ED8632AF23B5 +B79CC1A90C7AC36DA2F318BF69E6BB1FAC32C178453663069C0CF2C4AE77B211 +A059D006EF98446BDF9E1F5E09641A641CA88348E79499D79BCFDE6646C716A0BE2253421858D327E796EB5237B6E2C4 +9E90AE6138A3676E3E5058FF277331032CD6BBF114768104A33D684B0825C5A5 +7477B55332666FC6B1279F5FDF84DCA01176498984809B74E17AB726F888000F +6A0300B90BC11127A031E62537468A1CA7A0775BE85ED12069074E26181FBA50 +4DAF986F9A850EB18F0FE3B88B9796D80EEC3984C92F4F8B32D513A176CCAA9A +EB84517DCAA7D10A6E7C4D0A7995AE278AAF3FDE52DAE30C7FD3FB853C799369 +0941FB8965604ABC852B94F29396783783632E4C80AEE665E42C233B6E7AA7D0 +71FEF69734589BE3C0893A1584FC1C0A75A5D4BF88CFF323C8C68E0EEC06993C +790A26B77912EE07BABCDF478D8E492422B73465DC209E5DBC8E31F43AA2DA7448EAB6312AC1DC4FE3F20D7A2EC93968 +CE0AA966F33B7AC9E9982D2241524F2FC7613DAAC6C5C768AAAE29A630B414CE +93FA632D945E18DE6358D4F443CB6F023C640407B7FAD6E8AF6EF15139B044E3 +059ABA7A866A865159D4E0B3E30FA1900BAB2BAB82A1D1F9D74CAEC11FA95393 +9C5A4CF1D49E0F741577BAB868575739AEBBDC15D7178C87A46EA3B3E7E856EFD815AD5F998778E8FBAA2832F387B967 diff --git a/applications/main/subghz/scenes/subghz_scene_set_type.c b/applications/main/subghz/scenes/subghz_scene_set_type.c index b88e449b1..7a99607ac 100644 --- a/applications/main/subghz/scenes/subghz_scene_set_type.c +++ b/applications/main/subghz/scenes/subghz_scene_set_type.c @@ -40,6 +40,7 @@ static const char* submenu_names[SetTypeMAX] = { [SetTypeElmesElectronic] = "KL: Elmes (PL) 433MHz", [SetTypeNormstahl_433_92] = "KL: Normstahl 433MHz", [SetTypeJCM_433_92] = "KL: JCM Tech 433MHz", + [SetTypeNovoferm_433_92] = "KL: Novoferm 433MHz", [SetTypeFAACRCXT_433_92] = "KL: FAAC RC,XT 433MHz", [SetTypeFAACRCXT_868] = "KL: FAAC RC,XT 868MHz", [SetTypeGeniusBravo433] = "KL: Genius Bravo 433MHz", @@ -615,6 +616,16 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) { .keeloq.cnt = 0x03, .keeloq.manuf = "JCM_Tech"}; break; + case SetTypeNovoferm_433_92: + gen_info = (GenInfo){ + .type = GenKeeloq, + .mod = "AM650", + .freq = 433920000, + .keeloq.serial = (key & 0x0000FFFF) | 0x018F0000, + .keeloq.btn = 0x01, + .keeloq.cnt = 0x03, + .keeloq.manuf = "Novoferm"}; + break; case SetTypeFAACRCXT_433_92: gen_info = (GenInfo){ .type = GenKeeloq, diff --git a/lib/subghz/protocols/keeloq.c b/lib/subghz/protocols/keeloq.c index 0da58a78c..fed56cbf6 100644 --- a/lib/subghz/protocols/keeloq.c +++ b/lib/subghz/protocols/keeloq.c @@ -431,6 +431,9 @@ static bool if((strcmp(instance->manufacture_name, "FAAC_RC,XT") == 0)) { klq_last_custom_btn = 0xB; } + if((strcmp(instance->manufacture_name, "Novoferm") == 0)) { + klq_last_custom_btn = 0x9; + } btn = subghz_protocol_keeloq_get_btn_code(klq_last_custom_btn);