9be14af160
Added pattern-based decoding system specifically designed for short captures
from Flipper Zero and LilyGo T-Embed devices that don't have enough repetitions
for RTL_433.
## New Components:
1. **Protocol Database** (protocol_database.py)
- 18 known RF protocol signatures
- Categories: Weather Sensors, Garage Doors, TPMS, Doorbells, etc.
- Timing patterns for Acurite, Oregon Scientific, LaCrosse, Nexus, etc.
2. **Pattern Decoder** (pattern_decoder.py)
- Multi-strategy decoder using 3 approaches:
- Timing pattern analysis (K-means clustering for SHORT/LONG pulses)
- Statistical fingerprinting (signal characteristics)
- Protocol library matching
- Works with single-transmission captures (100-500 pulses)
3. **Matcher Integration** (strategies.py)
- Added PatternBasedStrategy to matcher pipeline
- Integrates with existing MatchResult system
- Confidence scoring: 0.5-0.9 based on match quality
## Test Results:
**Pattern Decoder vs RTL_433 Performance:**
- RTL_433: 0% decode rate (0/8 files) - requires multiple repetitions
- Pattern Decoder: 44.4% decode rate (4/9 files) - works with single captures
**Successful Decodes:**
- Oregon Scientific weather sensors (76% confidence)
- Acurite weather stations (52% confidence)
- 24 total device matches across 4 files
## Implementation Details:
- K-means clustering for pulse width identification
- Statistical fingerprinting with mean, std, duty cycle
- Protocol database with 7 weather sensors + 11 other device types
- Confidence thresholds optimized for single-tx captures
- Fallback to sklearn K-means or percentile-based clustering
## Documentation:
- PATTERN_BASED_DECODING_PLAN.md: Complete implementation plan
- test_pattern_decoder.py: Comprehensive test suite
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>