mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-10 06:54:19 +00:00
Beninca / Allmatic support
This commit is contained in:
parent
f0d94e2757
commit
7b1d7904c1
5 changed files with 55 additions and 6 deletions
|
@ -1,4 +1,6 @@
|
||||||
### New changes
|
### New changes
|
||||||
|
* SubGHz: Support for Allmatic(reads as Beninca), also fix Beninca protocol
|
||||||
|
* SubGHz: Allmatic -> Add Manually
|
||||||
* Plugins: Show External CC1101 module status in Weather Station and in POCSAG Pager plugins
|
* Plugins: Show External CC1101 module status in Weather Station and in POCSAG Pager plugins
|
||||||
* Plugins: Update **TOTP (Authenticator)** [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator) (Fixes BT issues)
|
* Plugins: Update **TOTP (Authenticator)** [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator) (Fixes BT issues)
|
||||||
* SubGHz: Fix false detections of StarLine 72bit, flipper can decode only 64bit
|
* SubGHz: Fix false detections of StarLine 72bit, flipper can decode only 64bit
|
||||||
|
|
10
ReadMe.md
10
ReadMe.md
|
@ -69,9 +69,9 @@ Also check the changelog in releases for latest updates!
|
||||||
### Current modified and new Sub-GHz protocols list:
|
### Current modified and new Sub-GHz protocols list:
|
||||||
Thanks to Official team (to their SubGHz Developer, Skorp) for implementing decoders for these protocols.
|
Thanks to Official team (to their SubGHz Developer, Skorp) for implementing decoders for these protocols.
|
||||||
|
|
||||||
Encoders/sending made by Eng1n33r & @xMasterX:
|
Keeloq [Not ALL systems supported for decode or emulation yet!] - [Supported manufacturers list](https://0bin.net/paste/VwR2lNJY#WH9vnPgvcp7w6zVKucFCuNREKAcOij8KsJ6vqLfMn3b)
|
||||||
|
|
||||||
- Keeloq [Not ALL systems supported for decode or emulation yet!] - [Supported manufacturers list](https://0bin.net/paste/VwR2lNJY#WH9vnPgvcp7w6zVKucFCuNREKAcOij8KsJ6vqLfMn3b)
|
Encoders or sending made by @xMasterX:
|
||||||
- Keeloq: HCS101
|
- Keeloq: HCS101
|
||||||
- Keeloq: AN-Motors
|
- Keeloq: AN-Motors
|
||||||
- Keeloq: JCM Tech
|
- Keeloq: JCM Tech
|
||||||
|
@ -81,16 +81,18 @@ Encoders/sending made by Eng1n33r & @xMasterX:
|
||||||
- Keeloq: FAAC RC,XT
|
- Keeloq: FAAC RC,XT
|
||||||
- Keeloq: Mutancode
|
- Keeloq: Mutancode
|
||||||
- Keeloq: Normstahl
|
- Keeloq: Normstahl
|
||||||
- Keeloq: Beninca
|
- Keeloq: Beninca + Allmatic
|
||||||
- Keeloq: Stilmatic / Schellenberg
|
- Keeloq: Stilmatic / Schellenberg
|
||||||
- Keeloq: CAME Space
|
- Keeloq: CAME Space
|
||||||
- Keeloq: Aprimatic (model TR and similar)
|
- Keeloq: Aprimatic (model TR and similar)
|
||||||
|
|
||||||
|
Encoders/sending made by @Eng1n33r & @xMasterX:
|
||||||
- CAME Atomo
|
- CAME Atomo
|
||||||
- Nice Flor S
|
- Nice Flor S
|
||||||
- FAAC SLH (Spa) [External seed calculation required (For info contact me in Discord: Nano#8998)]
|
- FAAC SLH (Spa) [External seed calculation required (For info contact me in Discord: Nano#8998)]
|
||||||
- Keeloq: BFT Mitto [External seed calculation required (For info contact me in Discord: Nano#8998)] -> Update! check out new [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
- Keeloq: BFT Mitto [External seed calculation required (For info contact me in Discord: Nano#8998)] -> Update! check out new [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||||
- Security+ v1 & v2
|
|
||||||
- Star Line
|
- Star Line
|
||||||
|
- Security+ v1 & v2
|
||||||
|
|
||||||
Encoders made by @assasinfil & @xMasterX:
|
Encoders made by @assasinfil & @xMasterX:
|
||||||
- Somfy Telis
|
- Somfy Telis
|
||||||
|
|
|
@ -13,6 +13,8 @@ typedef enum {
|
||||||
SubmenuIndexSomfyTelis,
|
SubmenuIndexSomfyTelis,
|
||||||
SubmenuIndexBeninca433,
|
SubmenuIndexBeninca433,
|
||||||
SubmenuIndexBeninca868,
|
SubmenuIndexBeninca868,
|
||||||
|
SubmenuIndexAllmatic433,
|
||||||
|
SubmenuIndexAllmatic868,
|
||||||
SubmenuIndexIronLogic,
|
SubmenuIndexIronLogic,
|
||||||
SubmenuIndexElmesElectronic,
|
SubmenuIndexElmesElectronic,
|
||||||
SubmenuIndexSommer_FM_434,
|
SubmenuIndexSommer_FM_434,
|
||||||
|
|
|
@ -171,6 +171,18 @@ void subghz_scene_set_type_on_enter(void* context) {
|
||||||
SubmenuIndexBeninca868,
|
SubmenuIndexBeninca868,
|
||||||
subghz_scene_set_type_submenu_callback,
|
subghz_scene_set_type_submenu_callback,
|
||||||
subghz);
|
subghz);
|
||||||
|
submenu_add_item(
|
||||||
|
subghz->submenu,
|
||||||
|
"KL: Allmatic 433MHz",
|
||||||
|
SubmenuIndexAllmatic433,
|
||||||
|
subghz_scene_set_type_submenu_callback,
|
||||||
|
subghz);
|
||||||
|
submenu_add_item(
|
||||||
|
subghz->submenu,
|
||||||
|
"KL: Allmatic 868MHz",
|
||||||
|
SubmenuIndexAllmatic868,
|
||||||
|
subghz_scene_set_type_submenu_callback,
|
||||||
|
subghz);
|
||||||
submenu_add_item(
|
submenu_add_item(
|
||||||
subghz->submenu,
|
subghz->submenu,
|
||||||
"KL: Sommer 434MHz",
|
"KL: Sommer 434MHz",
|
||||||
|
@ -505,6 +517,30 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
|
||||||
generated_protocol = true;
|
generated_protocol = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SubmenuIndexAllmatic433:
|
||||||
|
if(subghz_scene_set_type_submenu_gen_data_keeloq(
|
||||||
|
subghz,
|
||||||
|
"AM650",
|
||||||
|
433920000,
|
||||||
|
(key & 0x00FFFF00) | 0x01000011,
|
||||||
|
0xC,
|
||||||
|
0x0005,
|
||||||
|
"Beninca")) {
|
||||||
|
generated_protocol = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SubmenuIndexAllmatic868:
|
||||||
|
if(subghz_scene_set_type_submenu_gen_data_keeloq(
|
||||||
|
subghz,
|
||||||
|
"AM650",
|
||||||
|
868350000,
|
||||||
|
(key & 0x00FFFF00) | 0x01000011,
|
||||||
|
0xC,
|
||||||
|
0x0005,
|
||||||
|
"Beninca")) {
|
||||||
|
generated_protocol = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SubmenuIndexElmesElectronic:
|
case SubmenuIndexElmesElectronic:
|
||||||
if(subghz_scene_set_type_submenu_gen_data_keeloq(
|
if(subghz_scene_set_type_submenu_gen_data_keeloq(
|
||||||
subghz,
|
subghz,
|
||||||
|
|
|
@ -243,9 +243,9 @@ static bool subghz_protocol_keeloq_gen_data(
|
||||||
decrypt = btn << 28 | (instance->generic.serial & 0xFF) << 16 | instance->generic.cnt;
|
decrypt = btn << 28 | (instance->generic.serial & 0xFF) << 16 | instance->generic.cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Beninca -> 4bit serial - simple XOR
|
// Beninca / Allmatic -> no serial - simple XOR
|
||||||
if(strcmp(instance->manufacture_name, "Beninca") == 0) {
|
if(strcmp(instance->manufacture_name, "Beninca") == 0) {
|
||||||
decrypt = btn << 28 | (instance->generic.serial & 0xF) << 16 | instance->generic.cnt;
|
decrypt = btn << 28 | (0x000) << 16 | instance->generic.cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strcmp(instance->manufacture_name, "Unknown") == 0) {
|
if(strcmp(instance->manufacture_name, "Unknown") == 0) {
|
||||||
|
@ -812,6 +812,13 @@ static inline bool subghz_protocol_keeloq_check_decrypt(
|
||||||
if((decrypt >> 28 == btn) && (((((uint16_t)(decrypt >> 16)) & 0xFF) == end_serial) ||
|
if((decrypt >> 28 == btn) && (((((uint16_t)(decrypt >> 16)) & 0xFF) == end_serial) ||
|
||||||
((((uint16_t)(decrypt >> 16)) & 0xFF) == 0))) {
|
((((uint16_t)(decrypt >> 16)) & 0xFF) == 0))) {
|
||||||
instance->cnt = decrypt & 0x0000FFFF;
|
instance->cnt = decrypt & 0x0000FFFF;
|
||||||
|
FURI_LOG_I(
|
||||||
|
"DED",
|
||||||
|
"btn: %d, decrypt: %lx, end_serial: %lx, serial: %lx",
|
||||||
|
btn,
|
||||||
|
decrypt,
|
||||||
|
end_serial,
|
||||||
|
instance->serial);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue