The single source of truth for IR/RF device codes.
Aggregates and converts IR codes from multiple sources (SmartIR, IRDB, Flipper) into a unified SmartIR-compatible database.
This repository serves as the definitive IR/RF code database for Broadlink Manager and Home Assistant. It aggregates codes from multiple open-source databases, converts them to SmartIR JSON format, and provides a unified index for fast lookups.
| Source | Devices | Format | License | Status |
|---|---|---|---|---|
| SmartIR | 435 | SmartIR JSON | MIT | ✅ Supported |
| Flipper IRDB | 252 | Raw IR | CC0 | ✅ Supported |
| Total | 687 | Mixed | Open Source | ✅ Working |
| IRDB | 10,000+ | Protocol Defs | Public Domain | ⏸️ Future (requires protocol encoder) |
| LIRC | 2,500+ | LIRC | GPL | 🔜 Planned |
git clone https://github.com/tonyperkins/smartir-code-aggregator.git
cd smartir-code-aggregator
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Build complete database (all sources)
python scripts/build_database.pyThat's it! This single command will:
- ✅ Fetch SmartIR codes (435 devices)
- ✅ Convert Flipper codes (252 devices)
- ✅ Organize into unified structure
- ✅ Generate device index
- ✅ Total: 687 devices ready to use!
git clone https://github.com/tonyperkins/smartir-code-aggregator.git
cd smartir-code-aggregator
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtpython scripts/aggregate_all.py --source smartirpython scripts/aggregate_all.py --source flipper --category TVspython scripts/aggregate_all.py --allpython scripts/generate_index.py# Clean build (remove previous output)
python scripts/build_database.py --clean
# Skip specific sources
python scripts/build_database.py --skip-flipper
python scripts/build_database.py --skip-smartir
# Combine options
python scripts/build_database.py --clean --skip-flipper# SmartIR only
python scripts/aggregate_all.py --source smartir
# Flipper only (specific category)
python scripts/aggregate_all.py --source flipper --category TVsAll codes are converted to SmartIR JSON format:
{
"manufacturer": "Samsung",
"supportedModels": ["UE40F6500"],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"commands": {
"power": "JgBQAAA...",
"volumeUp": "JgBQAAA...",
"volumeDown": "JgBQAAA..."
}
}IRDB is not currently supported because it uses protocol definitions (NEC, RC5, Sony, etc.) rather than raw IR codes. Supporting IRDB would require:
- Protocol encoder (like IrpTransmogrifier)
- Understanding 100+ IR protocols
- Complex encoding logic
This is planned for future development. For now, we have 687 working devices from SmartIR + Flipper!
- Flipper Converter - Flipper .ir file processing
- SmartIR Format - Output format specification
Contributions welcome! See CONTRIBUTING.md
MIT License - See LICENSE file
This project aggregates codes from:
- SmartIR: MIT License (original 435 devices)
- Flipper IRDB: CC0 (Public Domain) (252 converted devices), Copyright (c) 2019 Vassilis Panos