Skip to content
This repository has been archived by the owner on Nov 19, 2024. It is now read-only.

SubGhz: Count signal repeats, new option to remove duplicates #373

Closed
Stepzor11 opened this issue Aug 30, 2023 · 14 comments · Fixed by #540
Closed

SubGhz: Count signal repeats, new option to remove duplicates #373

Stepzor11 opened this issue Aug 30, 2023 · 14 comments · Fixed by #540
Assignees
Labels
enhancement New feature or request release-pending This has been implemented and is waiting to be released publicly

Comments

@Stepzor11
Copy link

Description of the feature you're suggesting.

If you keep running the Sub-GHz read for a while, you might get a good number of records.

The idea is to add the ability to gather them and show only the different ones, so you wont miss a different signal in the middle of a bunch of repeated ones.

Anything else?

Please let me know if this sounds like an interesting idea

@htotoo
Copy link
Contributor

htotoo commented Sep 1, 2023

Should be a setting in the subghz app, so if I want to see the repeated signal, I would, but while gathering, could filter the repeating ones.
+1

@Willy-JL Willy-JL changed the title Gather Sub-GHz signals SubGhz: Toggle to skip already received signals Dec 10, 2023
@Willy-JL Willy-JL added the enhancement New feature or request label Dec 10, 2023
@Willy-JL Willy-JL moved this to 🏗 In progress in Xtreme-Firmware Dec 10, 2023
@Willy-JL Willy-JL self-assigned this Dec 10, 2023
@Willy-JL Willy-JL moved this from 🏗 In progress to 👀 Done (In next release) in Xtreme-Firmware Dec 10, 2023
@Willy-JL Willy-JL added the release-pending This has been implemented and is waiting to be released publicly label Dec 10, 2023
@Willy-JL
Copy link
Contributor

now implemented via 4eaa959

it uses a hash of the signal, so there is a tiny chance that it might ignore non-duplicates.
also rolling code signals will repeat due to having different encrypted data and therefore hash.
this could be improved later on by making the hash function ignore dynamic/encrypted data.

@Stepzor11
Copy link
Author

now implemented via 4eaa959

it uses a hash of the signal, so there is a tiny chance that it might ignore non-duplicates.
also rolling code signals will repeat due to having different encrypted data and therefore hash.
this could be improved later on by making the hash function ignore dynamic/encrypted data.

Sounds pretty interesting, thanks!

If I can give you a suggestion, instead of ignoring, it would be better to just identity it as a duplicate; whether it is an icon, an incremental counter next to the first signal (x2, x3, ..., xN) or with a specific button that postprocess all the read signals filtering the duplicates or toggling the counter mentioned before (this way you can hit "back" and see the full list and chronological order) (my favorite).

Pros of this approach:

  • no signals are ignored
  • you have a full view of what's happening in the sub-GHz world (it is useful to see new signals transmited, even if they are duplicates)

@Willy-JL
Copy link
Contributor

one of my incentives implementing this ignore option is that ram is limited, so ignoring duplicates saves space for other signals to be recorded. but youre right that a counter could be interesting too. will probably make something basic like a counter on each signal, after receiving a new one it searches in the history for others with same hash, when found it will remove it if you have ignore enabled, otherwise it will add 1 to the latest counter for that hash and mark it on this signal. also means that while ignoring, you will see a number of how many times that signal was repeated

@Stepzor11
Copy link
Author

one of my incentives implementing this ignore option is that ram is limited, so ignoring duplicates saves space for other signals to be recorded. but youre right that a counter could be interesting too. will probably make something basic like a counter on each signal, after receiving a new one it searches in the history for others with same hash, when found it will remove it if you have ignore enabled, otherwise it will add 1 to the latest counter for that hash and mark it on this signal. also means that while ignoring, you will see a number of how many times that signal was repeated

That'd be close to perfection 😁

@Willy-JL
Copy link
Contributor

now fully implemented via f96a6bd...9fbb9eb

also works when decoding a raw file, will respect the setting you choose

preview with remove duplicates
image

preview without remove duplicates
image

@Willy-JL
Copy link
Contributor

once again dynamic protocols dont work with this system yet but might eventually, just need a better hash implementation that ignores encrypted data and gives a meaningful hash

@Willy-JL Willy-JL changed the title SubGhz: Toggle to skip already received signals SubGhz: Count signal repeats, new option to remove duplicates Dec 10, 2023
@Stepzor11
Copy link
Author

now fully implemented via f96a6bd...9fbb9eb

also works when decoding a raw file, will respect the setting you choose

preview with remove duplicates
image

preview without remove duplicates
image

Love it ❤️

@Stepzor11
Copy link
Author

once again dynamic protocols dont work with this system yet but might eventually, just need a better hash implementation that ignores encrypted data and gives a meaningful hash

Of course 😁

@Stepzor11
Copy link
Author

Bonus idea: being able to switch on and off the duplicates counter after recording signals would be pretty interesting

@Willy-JL
Copy link
Contributor

it will go back through when a new signal is received if you toggle it on, will remove its previous duplicates. manually triggering it however not currently. we'll see

@Stepzor11
Copy link
Author

it will go back through when a new signal is received if you toggle it on, will remove its previous duplicates. manually triggering it however not currently. we'll see

I know 😁

But it would be quite sharp this way

@Willy-JL
Copy link
Contributor

all done!

@Stepzor11
Copy link
Author

Love ya❤️

@Willy-JL Willy-JL moved this from 👀 Done (In next release) to 🏗 In progress in Xtreme-Firmware Dec 14, 2023
@Willy-JL Willy-JL moved this from 🏗 In progress to 👀 Done (In next release) in Xtreme-Firmware Dec 14, 2023
@Willy-JL Willy-JL linked a pull request Feb 2, 2024 that will close this issue
@Willy-JL Willy-JL closed this as completed Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request release-pending This has been implemented and is waiting to be released publicly
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants