IR Blaster

Teach a new command

Press Start listening, then point your remote at the receiver from 10–30 cm and press the button once. Air-conditioner remotes send a long burst — that is normal and fully supported.

Ready
Nothing captured yet.

Hardware self-test

Sends a known signal and listens for it coming back. Point the IR LED at the receiver — 10–30 cm apart, facing each other — or bounce both off a nearby wall. Checks the receiver, the transmitter and the wiring in one go, with no remote and no appliance needed.

Send a specific code instead

Transmits whatever you enter and reports what the receiver got back. Leave blank for the default NEC test. State-based air-conditioner protocols cannot be sent from a hex value — learn those from the remote instead.

IR monitor

Enables the receiver and reports whatever it decodes without storing it. Useful for checking the sensor is wired correctly. Leave it off during normal use — it keeps the receive interrupt running.

—

Air conditioner — built in

Pick your brand and the device builds the codes itself, checksums and all. No remote, no capturing, and every temperature and mode is available — not just the buttons you happened to press.

Will send
—

Point the blaster at the unit and press Test send. If it responds, that brand is correct and every other setting will work too.

Save as buttons

Once a brand works, save the settings you actually use. Saved entries behave like any learned command — they appear under Remotes, work with schedules and MQTT, and are included in backups.

Save a whole temperature range at once

This is the part that replaces an afternoon of capturing. Creates one command per degree using the mode and fan selected above.

TV — built in

A television is the opposite of an air conditioner: every button is one fixed code with no state in it, so there is nothing to encode — only the right numbers to remember. Pick your brand and try the power button.

Codes come from a public database of captured remotes. Nothing here is guessed — but a brand ships many remotes, so if a button does nothing, the model is simply a different one. Capture that button on the Learn tab and it will work.

Save as buttons

Saved entries behave like any learned command — they appear under Remotes, work with schedules and MQTT, and are included in backups.

Creates one command per captured button, named after the model — for example TCL Power. Buttons with no code yet are skipped.

Add a schedule

What actually fired

A schedule runs when nobody is watching, so each one records what it did. The blaster keeps its receiver listening through a scheduled send and decodes what it hears itself transmit — real evidence that the LED lit, not just that the firmware tried.

confirmed — the frame came back and matches what was sent. heard — something came back, but this command has nothing to compare against (a generated A/C command stores a state, not timings). mismatch — something came back and it was not ours. not heard — the send succeeded but nothing returned; suspect the LED or the transistor. failed — the send itself was refused.

None of these can tell you the appliance obeyed — an air conditioner sends nothing back. They tell you the signal left the blaster, which is the part that actually breaks. This also needs the receiver to be able to hear the LED: if you aim the emitter away and nothing reflects back, every fire will read not heard even though it worked.

WiFi

MQTT & Home Assistant

Time

Examples: PKT-5 (Pakistan), IST-5:30 (India), CET-1CEST,M3.5.0,M10.5.0/3 (Central Europe), EST5EDT,M3.2.0,M11.1.0 (US Eastern), UTC0.

IR defaults

Leave mark-excess at 0 unless a specific appliance ignores a replayed signal. Receivers report marks slightly long and spaces slightly short; setting 50–100 µs here removes that bias at send time.

Security

Basic authentication is sent in the clear over plain HTTP. It keeps casual users on your LAN out; it is not a substitute for keeping this device off the public internet.

Device

Backup

The backup contains every learned command with its full timing data, as plain JSON. Import posts one command at a time, so a large archive restores without ever exhausting the device's memory.

Firmware update

Do not power the device off during an update. If a firmware image fails to boot, the ESP32 rolls back to the previous slot automatically.

Log

—

Maintenance

Factory reset erases every learned command, all schedules and the WiFi credentials. The same thing happens if you hold the device button for 5–10 seconds and release.