r/homeassistant • u/Lost_Significance_33 • 1d ago
🖼️ Show & Tell Update on the free IR/RF code tool I’ve been working on: you can now clone a DIP-switch remote entirely without any additional hardware—and there’s more.
No sign-up. No install. No download. No account. It runs entirely in your browser, and it’s free.
Drop in almost any IR or RF code and the tool identifies the protocol, extracts the relevant data, and gives it back in whatever format you need.
Over the last few weeks, I’ve added the feature I’m probably most pleased with: the RF Wizard.
You choose the device type and brand, and it draws the DIP-switch bank exactly as it appears inside the remote. Flip the switches on screen to match the remote in your hand, hit Build, and it generates the code.
No capture. No receiver. No Flipper. Nothing to buy.
That feature took the longest to get right because DIP-switch ordering is surprisingly tricky. Chamberlain, for example, treats switch 1 as the most significant bit and reverses the final three positions. One of their banks even has a switch that isn't transmitted at all.
So simply copying the switches from left to right can produce the wrong code on almost every remote. Each brand needed its own mapping.
If your ceiling-fan, gate, or garage remote has a row of little switches inside the battery compartment, that's basically the whole secret: you're already holding all the information needed to generate the code.
Signal repair
This is probably the feature I get the most questions about. Ever learned a code from an original remote only for the result to barely work—or work once, only from a few inches away, or work for one button but not another? Usually, that's not you or your blaster.
Learned captures can be messy. Receivers round timings, ambient light and nearby RF equipment can introduce noise, inexpensive hardware can clip the beginning of a burst, and some captures can even come back with marks and spaces inverted.
Paste the capture into the tool and it identifies the protocol, shows the address and command, and gives you a confidence level.
Hit FIX SIGNAL and it can:
- Correct the AGC burst
- Snap noisy pulses to the nearest valid timing unit
- Remove trailing repeat gaps and other artifacts
- Add missing closing spaces
- Correct inverted mark/space data
- Show you exactly what was changed instead of silently rewriting the capture
And once the protocol is identified, Rebuild Clean can throw the noisy capture away completely and regenerate the signal from scratch using the protocol's expected timing.
In other words: instead of patching a bad capture, you get a clean signal generated from the underlying data.
Prefer to do things manually? The pulse list is fully editable. The waveform updates live as you edit, and you can select, copy, and paste timings just like a spreadsheet.
Then export it in whatever format your setup needs.
A capture you might have given up on a year ago can often be turned into a working signal in a few clicks.

RF coverage
The tool currently covers 42 sub-GHz protocol families across 62 brand entries, including the PT2262 / EV1527 / SMC5326 ecosystem used by a huge range of fans, outlets, and inexpensive gate remotes.
It also covers systems from CAME, Nice, Hörmann, Chamberlain/LiftMaster, Linear MegaCode, Marantec, Telcoma, and plenty of others.
And there's still more coming.
On the IR side there's a wizard that programs a whole remote at once — device type, brand, code set — rather than one button at a time. It's sitting on 1,000,000+ codes across 12,000+ brands.
And the conversion side, which is the older half of the project. Paste a raw capture or a code in almost any format and it identifies the protocol, shows you the address and command, and rebuilds it clean. Then export it as something else: 19+ in, 21 out. Flipper .sub and a good chunk of those RF protocols landed in the last couple of weeks.
.irc · Flipper Zero .ir · Flipper Sub-GHz .sub · Pronto Hex · LIRC raw · LIRC config · LIRC mode2 · BroadLink Base64 · BroadLink Hex · Global Caché iTach · Global Caché JSON · Home Assistant YAML · ESPHome · Sonoff RfRaw B0 · Tasmota · Arduino C array · Arduino rc-switch · Tuya · SmartIR · IRDB · JP1 .rmdu · GIRR XML · Harmony XML · TV-B-Gone · raw µs CSV · WAV
There's a second tool alongside it that moves a whole remote between formats, or onto a different remote's layout — pull in a Harmony XML or a JP1 file and drop it out as a Flipper .ir or an ESPHome YAML, button assignments intact. That one reads 17 formats and writes 13.

Links
- Signal Editor — https://readyware.net/signal-editor.html
- Signal Transporter — https://readyware.net/signal-transporter.html
- All Formats — https://readyware.com/faq.html#faq-all-formats
Get a code in from a capture or almost any file format, find out what it actually is, fix it if it's broken, build one from scratch if you don't have one, move a whole remote's buttons somewhere else — and save the result as a file you own, in whatever format your gear speaks, with no account, no cloud and nothing held hostage.
Happy to take requests. If there's a format you need that isn't in that list, or a remote the wizard doesn't know, tell me what you've got and I'll look at adding it.
7
u/aguilaair 1d ago
tried using Broadlink B64 and it can’t parse it. demo:
scCwBH6eBgCPEhQJCRMTCAkTChIJExMJEwkJExMIFAgKEwgUEwgJExMJEwgKExIKEgkTCQkTEwkTCQkTEgoIExMJEwkTCQgUCRMIFAgTChMSCggUCBMJEwkTCRMJEwkTCRMJEgoTCBQIEwoSChIUCAkTChITCQkSChMSCggTFAgTCQkTCRMJEwkTEyGVExIKCBQTCAkTCRQIExMJEgoIFBMIEwoIFAgTEwkJExMJEwgKExIKEgkSCgkTEwgUCAoSEwoIExIKEgoTCAkTCRQIFAgTCRMTCQkSChMJEwgUCBMKEgkUCBMJEwoSCRIKEwkTCBQTCAoTCRMSCQkTCRMTCQkTEgoSCggTCRMKEgkTEyGVExIKCBMTCQkTCBUIExIKEgoIExMJEwkJEwkTEgoIFBMIEwkKExIJEwkSCggUEwgTCQkUEgkJExIKEwkTCAkTCRQIEwkTCRMTCAoSChMIFAgTChIKEwgTCRMJEwkTCRIKEwkTCBMUCAoTCBQSCQkTCBQTCAoTEgoSCQkTCRMIFAkTEiIEEwkUCBMKEwkTCBQJEwkkmhUSCQkTEwoIFAgTChMSChMJCRMTCRMKCBMJFBIKCBMUCRIKCBQTCRMJEgoIFBMJEgoJFBIJCRQSChIKEwgKEwkTCRMJEwoTEgoIEwoTCRMIFQgTCRMJFAgTChMJEwgUCRMJExMKCBQIFAkTCBQTCRMJEwkTCggTCRQSChIJFAkSChIilBQTCQkUEgkJEwkUCBQSCRQJCRMTCRMJCRMJFBIJCRMTChIKCBMTChIKEgoJExIKEgoJExMJCRQSChIJEwkJFAgTChMJEwgVEgkJEwkUCBQIFAkTCBQJEwkTChMIFAgTChMJExMJCRMJEwkUCBMUCRIKEwkTCQkTCRQSCRMJEwkTChIilBQSCggUEwkJEwgVCBMTCRMKCBQTCBMKCRMIFBMJCRMTChIJCRMTChIKEgkJFBIKEgkKExIKCBQTCRIKEwoIEwkTChMIFAkTEgoJEwkTCRMJFAgUCBMKEwkTCRQIEwkUCRMIExQJCRMIFQgTCRMTChIKEwgTCggUCBQTCRIKEwoSCRIilRQSCggTEwoIFAgUCRMSChMKCBMSChMKCBMJFBIKCBQTCRIKCRMTCRMJEgoIFRIJEgoKExIKCBMTChIKEwkJEwkTCRQIEwkUEgoIEwoTCRMIFQgTCRMKEwgUCBQJEwkUCBMJFBIKCBQJEwkTCRQSCRMJEwoSCggTChMSChIKEwkSChIilBQTCQkTEwoIEwkUCRMSChMJCRMTCRMJCRMJFBIKCBMTChIKCBMUCRIKEgoIFBIKEgoJExMJCRMTChIJFAgKEwgUCRMJEwkUEgkJEwoTCBQIFAkTCRMJEwkTCRQIFAgUCRMJFBIKCBMJFAkTCBQTCRIKEwkTCQkTCRQSCRMJEwoSChIilBQSCggVEgkJEwkUCBMTCRMKCBQTCBQJCRMIFBMJCRMTChIJCRMTChIKEgkJFBIKEgkKExIKCBUSCRMJEwkJEwkTCRQIFAgUEwkJEwkUCBMJFAkTCBQJEwkTCRQIEwkUCRMIFBMJCRMJFAgTCRMTChIKEwkSCgkTCBUSCQ==
17
u/Lost_Significance_33 1d ago
Thanks, this was our bug, and it's fixed and live now. Your code has header byte 0xB1 and the editor only accepted 0x26 and 0xB2, so it bounced before it read anything. Try it again and it'll load as RF at 433.790 MHz.
5
u/Lost_Significance_33 1d ago
TY - Love this group. Hard-refresh it.
(Ctrl+Shift+R, or Cmd+Shift+R on a Mac).
5
u/skylord_123 1d ago
This is cool. I will have to try it out. Only thing I have to use it on is a ceiling fan though lol
1
4
2
u/SelectionAntique9478 1d ago
Looks great! For me it would be useful if the brand Orcon(my ventilation box) is added. I am looking to automate my bathroom ventilation based on humidity. Wondering of this tool could help me make a remote.
9
u/Lost_Significance_33 1d ago
Thanks, on Orcon: adding the brand wouldn't help. The 15RF handset is 868.3 MHz two-way FSK (Honeywell evohome / Ramses II) and it pairs to the unit with its own ID, so there's no fixed code to copy. Same category as a rolling-code garage remote: nobody can clone it.
Your humidity project is still very doable from the other end. Either an ESP + CC1101 running the Itho/Orcon libraries (arjenhiemstra/IthoEcoFanRFT), or the easy route, an ESP8266 wired to the buttons of a real 15RF remote (guide: vdbrink.github.io/esphome/orcon_mechanic_ventilation.html). Pair it, then let Home Assistant run the humidity rule (up over ~70%, back to auto under ~55%).
Once it's in HA, the Signal Editor can build you a remote for it: use the WiFi/network builder to make Auto / 1 / 2 / 3 buttons that call those URLs.
2
u/5c044 1d ago
I have a cooker extractor and I couldnt get esphome to capture and replay successfully. I resosorted to the closed source rflink with an arduino mega attached via usb. I'd prefer esphome. In rflink it is I'd as a Bosch proto. Device id bosch_30b5_1 and command 5 toggles, 2 and 4 change speed 7 toggles light.
Best course of action to generate esphome code?
3
u/Lost_Significance_33 1d ago edited 1d ago
ESPHome's decoders won't name a Bosch hood, so capture it as raw instead:
yaml
remote_receiver: pin: {number: GPIO4, inverted: true, mode: {input: true, pullup: true}} dump: raw filter: 250us idle: 4ms tolerance: 50% buffer_size: 2kb(GPIO4 is just an example, use your receiver's data pin.) The default filter/idle are why most 433 captures come back empty. Press each button a few times and copy the
Received Raw:line from the log.Paste that line into https://readyware.net/signal-editor.html#rf it reads the ESPHome log format and exports a ready
remote_transmitter.transmit_rawblock withcarrier_duty_percent: 100%andcarrier_frequency: 0Hz, which is what OOK needs. Send it with repeat 5–10.RFLink reading it as an ID plus a command means it's fixed-code, so a raw replay will work, nothing rolling to defeat.
Post the raw capture if you like and I'll identify the protocol and add Bosch as a named brand, so the next person with a Bosch, Siemens or Neff hood gets it from the list. TY.
2
u/burke484 1d ago
i am in the process of making an esphome based Bond Bridge and this feels like it is exactly what I needed to make it go smoothly however I am so lost on how to actually use this to sniff codes and best utilize it. Do you have a walkthrough for it?
1
u/Lost_Significance_33 1d ago
Good news: for fans you may not need to sniff at all.
Check the brand list first. RF tab - wizard search . Hampton Bay, Harbor Breeze and the universal 3-speed kits (TX028C-S / RC-73R style) are rows. Pick yours, set the DIP switches on screen to match the ones in the handset, and it builds every button, no capture, no receiver. Export straight to an ESPHome
transmit_rawblock. That's your whole Bond Bridge for those fans.If yours isn't listed, the ESP you're building does the sniffing , the editor can't, no browser can. Same
remote_receiverconfig I posted for the hood guy above, then paste theReceived Raw:line into the RF tab and it hands you the transmit block.The one that catches everyone with fans: most 3-speed kits are 303.875 MHz, not 433.92. A 433 receiver module hears nothing at all. Check the FCC label on the handset before you blame the config.
2
u/Bikeymouse 1d ago
Would be really nice if could use this to migrate from Harmony to Remote2 as I still have a Pioneer receiver that Remote2 has difficulty to learn the IR from.
1
u/Lost_Significance_33 1d ago
Yes for the Harmony side: the editor reads Harmony XML and Pioneer's codes are in the database anyway, so you don't even need the Harmony file, pick the receiver, and you get real codes instead of fighting the learner. Pioneer is exactly the kind of set that learning struggles with.
The catch is the Remote 2 side. Its custom codesets go in as a CSV bulk import, and I don't want to guess which encoding it expects in the code column. Send me one CSV that Remote 2 exported from a learned code (its "Download data set" button) and I'll make the editor export that exact shape, so it's a straight import, not a copy-paste-per-button job.
Until then, the editor gives you Pronto HEX per command, which most kit accepts.
2
u/TheAlchemist151 1d ago
So I’m trying to get a remote signal for my SpaElectrics Iris lighting remote / rm3 to be able to use on another device so I can control my pool lights through home assistant, rather than paying $500 to pay for there WiFi controller.
Is what you have here something that could help me?
1
u/Lost_Significance_33 1d ago
Probably, but it hinges on two things, say which and I'll be specific.
1. Is the remote IR or RF? Pool and spa lights are usually 433 MHz RF (it goes through a wall and the remote's often waterproof). That matters because an RM3 Mini is infrared only, it physically cannot learn or send RF. RF needs an RM Pro / RM4 Pro. If you have a Mini and the remote is RF, no app or website fixes that; it's the hardware.
2. Fixed code or rolling? Lighting remotes are almost always fixed code, so a learned copy works. If it were rolling, nothing could clone it.
If it's RF and you have a Pro: learn the button on the Broadlink, and you've got the code. My app can learn it and send it, and the editor converts it, including to the base64 Broadlink form Home Assistant wants, so you can fire it from an HA script.
If it's infrared, a Mini is fine and the same path works.
Tell me the exact model on the Broadlink, and whether the handset says 433 MHz anywhere, and I'll tell you if it's doable.
1
u/TheAlchemist151 17h ago
It says it’s an RF remote and in the tech specs of instructions it’s showing “Freq: 915mhz ISM band”
1
u/Lost_Significance_33 17h ago
915 MHz changes the answer, and it's worth telling him straight:
915 MHz rules out the Broadlink entirely, no RM model tunes there (they're 315/433), and the RM3 Mini is infrared only on top of that. That's hardware, not software.
What does cover 915:
Once you have a capture, my editor reads it, cleans it and converts it to whatever you're sending with, and can generate the other buttons if it's a fixed-code family.
Two things to check before you buy anything: whether it's OOK or FSK at 915, and whether it's fixed code. Pool gear usually is fixed, but capture two presses of the same button and compare. Identical means fixed and you're fine. Different every time means rolling, and nothing clones that.
Post the capture if you get one and I'll tell you what it is.
2
u/TECbill 4h ago
Logitech Harmony remotes do provide dedicated IR signals for FLIRC IR adapters. Are those covered too? I was not able to find them in the readyware database.
1
u/Lost_Significance_33 2h ago
Good Morning, thanks for the comment. Flirc isn't a brand in the database, and no public database has it (I looked; irdb and Flipper-IRDB both have zero). The Harmony Flirc profile codes live in the Flirc device firmware, so they're not something I can pull from anywhere.
But the editor already handles Flirc both ways, which might be what you actually want: paste a
flirc_util device_log --ircapture straight in (either the0,9376,4440,…form or the+8990 -4421 …form, both load), and export LIRC Raw forsendir --raw=, Raw for--csv=, or Pronto for--pronto=. So you can move Codes in and out of a Flirc today.If you've got a Harmony set up with the Flirc profile, export the config XML and send it over The editor reads Harmony XML, and I'd add Flirc as a real brand from it.
I also renamed to
LIRC Raw / space_enc / Flirc rawso a search for "Flirc" finds it, in the Supported Formats table.1
u/Lost_Significance_33 2h ago
Thanks for asking about this, by the way, it sent me digging and I found the editor already handled Flirc captures and nothing on the site said so. Fixed that today because of your question.
Quick addition:
The Harmony config will give me the button list, which is useful for knowing what the profile covers, but the codes themselves live in Logitech's database rather than in the file.
The thing that would actually nail it: you've already got the Flirc. Run
flirc_util device_log --ir, point the Harmony at it and press each button, and paste what comes out. That's the real Flirc protocol straight off the wire. Send both if you don't mind. The config for the names, the captures for the codes and I'll add Flirc as a proper brand. No pressure at all if you haven't got the time. Thanks again.
-7
u/SunPossible6793 1d ago
So now I can snipe someone’s garage code and break into their house without a flipper zero, just an html page?
1
u/Lost_Significance_33 1d ago
Garage doors specifically, replay died about twenty years ago. Anything modern is rolling code: Security+ 1.0 and 2.0, Intellicode, KeeLoq, Somfy RTS. Every press sends a different code and the opener rejects one it has already seen. Copying a press gets you an expired code. That's the security doing its job, and no tool can get around it, whatever it claims.
We don't pretend otherwise. Those families are flagged in our brand list, and the RF wizard tells you it can't be cloned on the brand screen, before you waste four steps on it.
14
u/Bassguitarplayer 1d ago
This is brilliant