READYWARE READYWARE — Electronic Personification
Documentation

How To Use
READYWARE

Everything you need to get the most out of your setup — live wallpapers, overlays, IR learning, and the full canvas experience.

$9.98 one-time · Pay once, use on every device · Free updates for life · No ads · No subscription · No data collection · Hardware agnostic
New here? Start with this 30-second tour ▼ Open

Three things in order, then dive into the sections below:

  1. See it working first. Open the Web Viewer Demo in another tab. That's a real layout running live in your browser — click into Living Room → IPTV to see the live wallpaper feature, or Master folder to see macros at work. No install, no signup.
  2. Get a transmitter. The simplest path is a BroadLink RM4 Mini (IR, around $25) or RM4 Pro (IR + RF, around $50) on the same WiFi as your phone. USB-C IR dongles, the phone's built-in IR blaster, and Global Caché iTach all work too. (Details in Emitting & Learning below.)
  3. Install and build. The app is $9.98 one-time — pay once, use it on every device you own, free updates for life. No subscription, no ads, no data collection, no hardware lock-in. Scan for your transmitter, then use the Canvas section below as your build guide. Most people set up their first room (3–5 remotes) in under 30 minutes — and the 700,000+ Smart IR database programs your buttons automatically if you don't have the original remotes.

Stuck? The FAQ covers permission dialogs, hardware quirks, network issues, and more. The left sidebar links to every page on the site — IRC Standard, Web Viewer, Style Guide for sharing layouts, and the IR/RF Signal Editor (free, no account).


🔒
01

Run Mode vs Edit Mode

READYWARE has two modes. Understanding the difference unlocks everything.

Run Mode

🔒 Locked

Tap buttons to fire IR/RF commands. Live wallpapers play. The overlay works. Everything responds instantly. This is the everyday experience.

Edit Mode

🔓 Unlocked

Drag buttons, change colors, program IR signals, set wallpapers, add folders. The canvas is fully editable. Live wallpapers pause to let you work.

The key insight: Live wallpapers, video streams, and the overlay all perform at full power in RUN MODE. Switch to EDIT MODE to make changes, then lock it when you're done.
How to switch modes

Go to Settings → Preferences → Edit Mode and toggle it on to unlock. Toggle it off to lock. You can also tap the lock icon in the top toolbar of any remote screen.

🎨
02

The Canvas — Building Your Remotes

Before getting into wallpapers and overlays, here's the foundation: how you build a remote in the first place.

Three levels, one canvas system

READYWARE has three layers, all running on the same canvas:

  • The Desktop — your home base. One per profile, always there. Pin your most-used buttons here for one-tap access from anywhere.
  • Folders — usually rooms (Living Room, Bedroom, Garage, Office). Group related remotes inside.
  • Remotes — the individual devices (TV, AC, fireplace, gate, lights). Each one a fully-designed surface.

All three are canvases. They look the same in Edit Mode and follow the same rules — drag-and-drop, custom wallpapers, custom buttons, custom everything. Learn one, you know all three.

Picture it: your Desktop has folders for Living Room, Bedroom, and Garage. Living Room contains a TV remote, an A/V receiver, a Lights remote, and a Fireplace remote. Tap any of them to use it. Or pin commonly-used buttons (Volume, Power, All Off) directly to your Desktop or to the Living Room folder so they're available without opening any specific remote.

Creating a remote

In Edit Mode, tap the + button or long-press on any canvas. Pick one of the starter layouts (TV, A/V receiver, cable box, streaming stick, light switch, gate, blinds, etc.) for a quick head start, or pick Blank if you want full creative control. Either way, the remote exists in seconds.

Same flow for adding a Folder. Tap +, give it a name, drop in your remotes. Most people organize by room, but you can use folders however you like — by activity (Movie Night, Bedtime, Workout), by zone (Upstairs, Downstairs, Outside), or anything else that fits your home.

Customizing anything

Every visual element is editable. There's no template you're locked into.

  • Wallpaper — solid color, photo, animated GIF, or live video stream (covered in the next section). If video isn't your thing, a clean color background works just as well.
  • Buttons — drag anywhere on the canvas. Resize each one independently.
  • Shape — rectangle, rounded corner, circle, oval, custom shapes.
  • Color & icon — set icon color, text color, background color, border on/off. Pick from the built-in icon library or upload your own.
  • Text — label size, weight, color, position above or below the icon.

Make a remote that looks like your actual A/V rack, not a generic grid of buttons.

🔍 Adjust icon & button size to your device

Here's a hidden trick most users don't discover on their own: your wallpaper size controls how big the buttons and icons appear on screen — without changing the remote's layout at all.

  • Smaller wallpaper image → bigger icons on screen
  • Larger wallpaper image → smaller icons on screen

If you're using the default demo profile on a smaller tablet (like an 8") and the icons feel a bit small, resize the wallpaper down a step — same image, lower resolution — and the buttons get proportionally bigger. Going the other way works too: huge TV with chunky icons? Use a larger wallpaper.

Keep the same aspect ratio (16:10 stays 16:10, 16:9 stays 16:9) so you don't get black bars on the sides. Photopea, Paint.NET, GIMP, or any photo editor handles the resize in seconds.

While you're in there — compress it before you import it. Running a wallpaper through a free compressor takes about ten seconds and typically cuts 50–75% off the file with no change to its pixel dimensions: transparency stays transparent and animated GIFs keep every frame. Wallpapers are stored inside your remote and profile files, so this is what keeps saving, loading, and sharing quick. See the Style Guide for which tool to use for PNG, GIF, and JPG ↗

→ Full size reference chart with ready-made sizes for tablets, TVs, and phones

Accessibility built in

Big buttons. High-contrast colors. Whatever-size-feels-right text. The "let me find my glasses" moment doesn't have to be a moment — you can size Power and Volume to be easy to hit without looking, and shrink the rarely-used ones to keep the layout clean. The canvas adapts to you, not the other way around.

Buttons aren't only on remotes

This is the part most people miss: the Desktop and Folders can have buttons too. Pin All Lights Off, Doorbell Mute, or Goodnight to your top-level Desktop and those actions are always one tap away — no matter which remote you're using or which folder you're in.

Auto-program with the Smart IR Wizard

Don't have the original remote? Tap any button, run the Smart IR Wizard, pick the brand and model from the 700,000+ signal database, and the codes are programmed. Covered in detail in Smart IR — Auto-Program Buttons below.

Hardware agnostic, future-proof

Layouts and signals save to the open .irc file format. Back up your entire home setup to a single file. Restore everything on a new phone or tablet in seconds. Switch from a BroadLink to a USB blaster — same buttons, same layouts, same database. You don't lose your work because you switched hardware or upgraded your phone.

📺
03

Live Wallpaper Setup

Your desktop, folders, and remotes each support their own live wallpaper — a camera feed, website, video stream, or custom image playing behind your buttons.

1
Enable Edit Mode

Settings → Preferences → Edit Mode → ON. The Appearance section will appear in Settings.

2
Open the wallpaper section

In Settings, scroll to Appearance → Live Video / Stream Wallpaper. Tap to expand it. For per-remote or per-folder wallpapers, open that remote or folder in edit mode and tap the wallpaper section there.

3
Enter your URL or pick a file

Paste any camera URL, HLS stream, or website address. Or tap Browse Local Video File to pick a video from your device. Use the quick-example chips to try YouTube, Google Maps, NASA Live, and more instantly.

4
Tap "Set Video Wallpaper"

This is the step that makes it stick. The wallpaper won't activate until you tap the button. After setting it, restart the app or navigate away and back to see it playing.

5
Lock edit mode and enjoy

Switch back to Run Mode. Your live wallpaper plays full screen with your buttons floating on top.

Supported sources: IP cameras (HLS/HTTP), MP4 files, YouTube, any website, Google Home, Ring dashboards, Home Assistant, NASA Live, Windy cams, and more. RTSP cameras work via a go2rtc proxy. See the FAQ for the full format list (HLS, DASH, MP4, H.264/H.265, WebM, MJPEG, RTSP→HLS, web dashboards, auth tokens, and more).
📐 Designing for big screens? READYWARE shines on TVs — full-screen wallpaper edge-to-edge, mouse/keyboard navigation, scales from a phone to an 85"+ 8K TV with the same layout. For wallpaper sizes, the safe-zone trick that keeps your buttons visible on every device, and the big-screen "Hidden Gem" tip, see the Style Guide ↗.
📡 Remotely control what's playing on a TV (Virtual HDMI) ▼ Open

Two existing READYWARE features combine into something powerful: Live Video Stream Wallpaper (your desktop background is a URL) plus the Web Remote (control your device from any browser). Put them together and you can change what's playing on a TV from your couch, your laptop, or anywhere with internet. It's like having a virtual HDMI cable that runs over WiFi.

Same approach restaurants use for digital menus and billboards use for ad rotation, but with no signage software, no monthly fee, no proprietary hardware. A cheap Android tablet ($60–$100) mounted on a wall, running READYWARE, becomes a fully programmable display you can update from anywhere.

Setup — 4 steps

  1. Set a video wallpaper on the display device. On the device hooked to the TV, open Settings → Appearance → Live Video / Stream Wallpaper. Tap to expand. Paste a starting URL (any video stream, web page, image, or live cam). Tap Set Video Wallpaper to activate it. (More details in Live Wallpaper Setup above.)
  2. Enable the Web Remote. Settings → Remote Web Viewer → toggle ON. Wait for the green ● ON badge. Note the URL and PIN.
  3. Open the Web Remote on a controlling device. Phone, laptop, work PC, any browser. Enter the PIN.
  4. Change content from the browser. Tap the ⚙ gear icon at the top of the desktop view in the Web Remote. Paste a new URL — image, web page, live video, security cam, weather radar. Tap Apply. The TV updates instantly.

⏱️ Timeout setting — keep the wallpaper visible

By default the canvas may dim or fade after inactivity to save power on the display device. For a kiosk / wall-mount / always-on display, you'll want to disable this so the content stays visible 24/7. Settings → Appearance → Button Timeout → set to 0 (Never). Now the display holds whatever URL you push to it until you change it. Combined with Android's "screen always on" power setting, the display behaves like a dedicated signage screen.

Real use cases

  • 🍽️ Digital menus — wall-mount a tablet, change the menu URL from your phone when prices or specials change.
  • 📺 Living room TV — change source from your couch. Streaming feed, weather, art gallery, security cam — swap on the fly.
  • 🏢 Office & reception displays — different content by time of day, after hours, or for events. No signage system needed.
  • 🌍 Remote from anywhere — at work, change what's playing at home. On vacation, swap the TV to a black screen.
💡 Pro tip: The Web Remote can push any URL the display device can reach. Local network cameras (RTSP via web wrapper), internal dashboards, even private grafana boards — they all work, because rendering happens on the display device, not in the cloud.


🪟
04

System Overlay

The overlay floats READYWARE on top of every other app on your device. Netflix plays in Netflix. YouTube plays in YouTube. Your buttons are always there.

1
Enable Edit Mode

Settings → Preferences → Edit Mode → ON. The System Overlay section appears in Settings.

2
Grant permission

Tap Grant Permission. Your device opens a system settings screen. Find READYWARE in the list and enable "Allow display over other apps." This is a one-time setup.

3
Enable the overlay

Back in READYWARE Settings, tap Enable Overlay. You'll see a green ● LIVE badge confirming it's active.

4
Save and exit

Tap Save in the top right. Now press your device's home button. READYWARE floats over whatever app you open next.

Pro tip: Set your desktop wallpaper to Transparent before enabling the overlay — your other apps will show through the READYWARE canvas beautifully. This happens automatically when you enable the overlay.
Overlay Timeout

Settings → Preferences → Overlay Timeout controls how long before buttons fade out automatically — just like a TV volume bar. Set it to Always On to keep buttons visible permanently, or choose a timer from 3 seconds to 60 seconds. Tap anywhere on the canvas to wake buttons back up instantly.

On iPad — use Slide Over (no setup needed)

The system overlay above is Android-only — Apple doesn't allow apps to draw over other apps. But iPad does it for you. With Slide Over (iPadOS 26.1 or later), READYWARE floats in a small window on top of every other app — your real canvas, buttons, and wallpaper over Netflix, Ring, Nest, SmartThings, or any dashboard.

How to use it:

① Settings → Multitasking & Gestures → choose Windowed Apps.
② Open READYWARE, swipe down to reveal the window controls, tap and hold them → Enter Slide Over.
③ Open whatever you're watching. READYWARE stays floating on top.
Flick it off the side to tuck it away — a small handle stays at the edge. Swipe in from that edge to bring it right back.
⑤ Drag a corner to resize it.

One app can be in Slide Over at a time. Everything works normally in there — IR, RF, macros, speed buttons, live state.

On iPhone & Apple TV

Apple TV: turn on AirPlay screen mirroring and your whole READYWARE canvas appears on the TV — tap buttons on your device, signals fire as normal. Works today, nothing to set up in the app.

iPhone: there's no Slide Over on iPhone, so use READYWARE full-screen and switch apps, or mirror to an Apple TV. (Quick-access controls that work from anywhere are on our roadmap.)

📡
05

Emitting & Learning IR & RF Signals

READYWARE learns IR and RF signals directly from your existing remotes using a BroadLink RM4 device on your WiFi network.

What you need

An IR or RF transmitter — that's it. READYWARE works with WiFi blasters (BroadLink RM4 Mini for IR, RM4 Pro for IR + RF), USB-C IR dongles (Tiqiaa, ElkSmart, Ocrustar, ZaZaRemote, etc.), the built-in IR blaster on phones that have one, the iTach WiFi for Global Caché users, or Bluetooth IR bridges (experimental — see note below). One app, every transmitter.

For most people, the easiest path is a BroadLink RM4 Mini (IR only) or RM4 Pro (IR + RF) on the same WiFi as your phone — they're cheap, reliable, and learn new signals from any remote. Set up once in Settings → Device Setup. BroadLink makes the hardware, READYWARE makes it tick.

Note on USB IR blasters: The inexpensive USB-C IR dongles (Tiqiaa Tview, ZaZaRemote, Ocrustar EKX4S-T, ElkSmart units, and similar — starting around $7) work great for transmitting IR — point your phone at the TV and fire any signal. But they don't learn signals from your existing remotes. Use a BroadLink RM4 to learn, then play those learned codes through any blaster you like. Or skip learning entirely and use Smart IR with the 700,000+ code database.

Note on Bluetooth IR blasters: READYWARE includes a Bluetooth LE scanner that pairs cleanly with BLE IR dongles like the Tiqiaa IR2023 series (the same family that ships with ZaZa Remote on Android and Uni TV Remote on iOS). However, some manufacturers encrypt the IR transmission so only their official app can fire signals. We've documented the protocol layer fully — pairing works — but IR send through a third-party app like READYWARE is currently not supported on encrypted dongles. For reliable IR control, a WiFi blaster (BroadLink RM4) or a direct USB-C IR dongle is the proven path. If a future BLE blaster ships with an open protocol, READYWARE is ready for it.

🛠️ Build your own: Tired of locked-down dongles? You can build your own WiFi IR blaster for about $8 using an ESP32-C3 SuperMini, an IR LED, and a 3D-printed case. The firmware emulates the BroadLink protocol so READYWARE finds it automatically — zero app changes. Smaller than a BroadLink RM Mini, fully open source, no DRM, no vendor lock-in. Full build guide →

📡 Tasmota WiFi IR (emit + learn): Open WiFi IR blasters running Tasmota — the Athom Tasmota IR Controller (~$15) or any ESP8266/ESP32 flashed with Tasmota — work as a native transmitter. Settings → Device Setup → Tasmota → enter the IP → Test → Save. Local HTTP, no cloud or DRM. Unlike iTach, Tasmota learns as well as emits. IR only (no RF). ESPHome units can be reflashed to Tasmota for the same one-tap control.

Tip when shopping: a few cheaper IR adapters use the phone's headphone jack rather than the USB-C port — those older audio-driven designs follow a different protocol and work best with whatever app the manufacturer ships. For READYWARE, look for a dongle that plugs into the USB-C port and you're set.

🍎 iPhone / iPad note: The first time you add a WiFi device (BroadLink, iTach, etc.), iOS pops up asking "Allow READYWARE to find devices on your local network?" — tap Allow. Most users see this dialog once, tap Allow, and never think about it again — discovery is instant and you're firing IR/RF in seconds. If you accidentally tapped Don't Allow, turn it back on in Settings → Privacy & Security → Local Network → READYWARE. Rare iOS edge case: if discovery still doesn't work after granting permission, see iPhone troubleshooting in the FAQ.

1
Open a remote in Edit Mode

Tap any remote, make sure Edit Mode is on. Tap a button, then tap Edit Button → Signal tab.

2
Tap Learn IR

The device enters learning mode. Point your original remote directly at the hardware — not at the phone. Press the button you want to learn. The signal is captured in seconds.

3
For RF signals — two steps

Tap Learn RF. Step 1: hold your RF remote button near the device until it detects the frequency. Step 2: release, then press the button once more to capture the signal. The app guides you through each step.

4
Tap Save

The signal is saved to that button. Tap it to test — your device responds instantly.

Learn All Wizard: In a remote's Edit Mode, tap the gear icon → Learn All Buttons to walk through every unassigned button one by one — fast way to program an entire remote in one session.
🧠
06

Smart IR — Auto-Program Buttons

Don't have the original remote? No problem. READYWARE's 700,000+ signal database programs your buttons automatically — no learning needed.

1
Open a remote in Edit Mode

Tap the gear icon → Add Button → Easy Setup Wizard.

2
Select your device type and brand

Choose TV, AC, cable box, satellite, etc. Then search for your brand. READYWARE finds every signal for that device.

3
Apply to your buttons

READYWARE matches signals to your existing buttons by label — Power matches Power, Vol+ matches Vol+, etc. Unmatched signals are added as new buttons. Tap Apply and it's done.

07

Speed Buttons — one set of controls, every device

Put a few buttons on your room photo — power, volume, a d-pad — and let them switch which device they run. Tap TV and they're your TV. Tap Satellite and the same buttons are your satellite box. Tap the same selector again and the full remote opens. Nothing moves, nothing is duplicated per room, and it works with IR, RF, macros, and web commands.

Three kinds of buttons — this is the whole idea

1 · The real remote's buttons (the source). Where the codes actually live. You tag them so speed buttons can find them. They keep working normally.

2 · The speed button (on your room). Has no code of its own — it asks the armed remote for a role, e.g. "give me volume up."

3 · The selector (the switch). Tap it to arm a remote. Tap it again to open that remote.

Heads up: the Other tab has two speed entries and they are not the same — Speed Button (the one that asks for a role) and Speed Selector (the switch that arms a remote). Easy to miss.

1
Tag your real remotes

Open each remote (TV, Satellite, IPTV…). For each button you want available, edit it → Style tab → Speed Button Role → pick power, vol_up, ok, etc. Do this on every remote you want to switch between, using the same role names.

This only labels the button. It does not change how it fires — your remotes keep working exactly as they do now.

2
Add your speed buttons to the room

On your room (folder), place the buttons you want — vol +, vol −, power, d-pad. Edit each → Other tab → Speed Button → pick the matching role.

A speed button doesn't need a code of its own. If it had one, it's no longer used.

3
Add a selector for each device

Make a button per device (name them "TV", "Satellite", "IPTV"). Edit each → Other tab → Speed Selector → choose that remote. Make sure the remote shows a check.

4
Make the active one light up

Edit a selector → Style tab → turn on 2-State Toggle → design the ON look (your color, icon, shape, label). It shows that look only while it's the armed device — and only one can be lit at a time.

5
Use it

Tap TV → your speed buttons now run the TV, and TV lights up. Tap Satellite → the same buttons instantly run the satellite box. Tap the lit selector again → the full remote opens.

Where each setting lives

Real remote's button → Style tab → Speed Button Role  (the tag)

Room's speed button → Other tab → Speed Button → role  (the ask)

Selector button → Other tab → Speed Selector → remote  (the switch)

Selector's color → Style tab → 2-State Toggle → ON look

Simple rule: Style = what a button IS. Other = what a button DOES.

Good to know

Dim buttons are normal. Before you tap a selector, nothing is armed — speed buttons are dim and do nothing. A dim button after arming means that remote has no button tagged with that role: tag it, and it lights up. Only that one button dims; the rest keep working.

Use as many as you like. 5 buttons or 20, different in every room — there's no limit. Roles are just names you type, not a fixed list: the common ones are one-tap picks, but hdmi_1hdmi_5, fan_speed, or subwoofer work exactly the same. Give the matching button on each remote the same name and you're done.

Everything comes along. IR, RF (fans, ACs), macros, and web commands all work, fired from whichever blaster that remote uses.

Add a second selector. With only one, you can arm it but never switch away. Two or more trade off cleanly.

All your tablets. Tags and selectors live in your remotes and folders — build it once, export your profile, load it everywhere.

Don't need switching? Just borrow the code

If a device never changes — your A/V receiver's HDMI 1-5, say — you don't need Speed Buttons at all. Give the room button a Macro with one IR / RF step, choose Browse from another remote, pick the A/V remote, and select HDMI 1. READYWARE copies that code over for you — no re-learning, no exporting, nothing to move. Repeat for the rest.

Rule of thumb: fixed device → borrow the code (always live). Switching devices → Speed Buttons (follow whatever's armed). Mix both on one room: inputs always hot, speed buttons following the armed device.

🏠
08

Smart Home Integrations

READYWARE controls IR/RF devices and smart home devices from the same canvas. Six integrations are built in — pick whichever matches your gear. Mix freely in a single macro: one button can fire a BroadLink IR signal, dim Hue lights, change AC temperature on a SwitchBot, and publish an MQTT message all at once.

How smart home buttons work in READYWARE

There are two parts:

  1. Add the device once — Settings → Device Setup → Smart Home tab → Add. Paste the URL + token (or whatever each integration needs), tap Test, Save. You're done with setup.
  2. Assign to a button — long-press any button → Other tab → pick the action type that matches (HTTP GET/POST/PUT for Hue/Home Assistant/Generic, MQTT for brokers, SwitchBot for SwitchBot). Fill in endpoint or command, save.

Credentials are stored locally on your phone or tablet only — never sent anywhere except directly to the device or API you configured.

💡 Philips Hue

What it does

Direct control of Hue lights, scenes, and rooms over your local network. No Hue cloud account needed once paired — fires instantly, works offline. Bulbs, light strips, Hue Play bars, motion sensors as triggers, dynamic scenes, color and brightness — all controllable from READYWARE buttons.

Step 1 — Get your Hue Bridge IP and app key

The easiest path is the official Hue developer page: developers.meethue.com/develop/get-started-2. Follow the "Get Started" guide — press the link button on your physical Hue Bridge, then make the API call to receive your application key. Save both the Bridge IP (e.g. 192.168.1.45) and the app key (a long random string).

Step 2 — Add to READYWARE

Settings → Device Setup → Smart Home → Add → pick Philips Hue. Name it (e.g. "Living Room Hue"), paste http://192.168.1.45 as Base URL, paste the app key as the auth field. Tap Test — you should see a 200 response. Save.

Step 3 — Use it on a button

Long-press a button → Other tab → HTTP PUT. URL: http://192.168.1.45/api/<app-key>/lights/1/state (replace 1 with your light ID). Body: {"on":true,"bri":100} for full brightness, or {"on":false} for off. The Hue API documentation lists every available endpoint for groups, scenes, and individual lights.

🏡 Home Assistant

What it does

Full Home Assistant integration. If a device works in HA, it works in READYWARE — every domain HA supports (light, switch, climate, cover, media_player, fan, scene, automation, script, input_boolean, all of it). Bridge Zigbee, Z-Wave, Matter, and a hundred custom integrations through HA into READYWARE.

Step 1 — Generate a long-lived access token

In Home Assistant: click your username (bottom-left) → scroll to Long-Lived Access Tokens at the bottom → Create Token. Name it "READYWARE", copy the token immediately (HA only shows it once). If you lose it, just create a new one.

Step 2 — Add to READYWARE

Settings → Device Setup → Smart Home → Add → pick Home Assistant. Name it, paste your HA URL (e.g. http://homeassistant.local:8123 or http://192.168.1.50:8123), paste the long-lived token. Tap Test — should connect. Save.

Step 3 — Use it on a button

Long-press a button → Other tab → HTTP POST. URL: http://homeassistant.local:8123/api/services/<domain>/<service>. Body: {"entity_id":"light.living_room"}. Example to turn on a light: URL .../api/services/light/turn_on, body {"entity_id":"light.kitchen","brightness":200}. For scenes: .../api/services/scene/turn_on, body {"entity_id":"scene.movie_time"}.

The auth token is added automatically as a Bearer header — you don't have to enter it again in the button.

Have Shelly devices? You can run them through Home Assistant, but Shelly also works directly over local HTTP with no hub at all — often simpler. See the Shelly command reference below.

🔌 TP-Link Kasa / Tapo

What it does

Control your Kasa and Tapo smart plugs, switches, and bulbs from any button — on, off, dim, and scenes. Kasa speaks TP-Link's own local protocol rather than plain HTTP, so READYWARE reaches it through Home Assistant, which talks to every Kasa and Tapo generation natively — old hardware and new.

Setup

Add your Kasa/Tapo devices in the Kasa app first (to get them on WiFi), then add them to Home Assistant — HA auto-discovers most TP-Link devices. In READYWARE: Settings → Device Setup → Smart Home → Add → Home Assistant, paste your HA URL (e.g. http://homeassistant.local:8123) and a Long-Lived Access Token from your HA profile.

Use it on a button

Long-press a button → Other tab → HTTP POST, then call the Home Assistant service for your device. For a plug: URL http://<ha>:8123/api/services/switch/turn_on (or turn_off), body {"entity_id":"switch.living_room_plug"}, with your token as the auth. Lights, dimmers, and scenes work the same way through their HA services. Once it's in Home Assistant, every Kasa and Tapo generation controls identically — and the same button can sit in a macro alongside your IR.

🌐 Generic HTTP / REST API

What it does

The flexible catch-all. Anything with an HTTP API — Shelly relays, WLED LED strips, Nanoleaf panels, Bond Bridge (ceiling fans, fireplaces, shades), Tasmota and ESP32 / ESPHome devices, Hubitat (Maker API), Sonos via node-sonos-http-api, Pi-hole controls, routers, NAS systems, custom microservices, webhooks, IFTTT triggers, Zapier hooks — all work. If you can hit it with curl, READYWARE can hit it from a button.

WiFi light switches & dimmers: Shelly works directly over local HTTP — no hub, no cloud account. On/off relays use relay / Switch, while dimmers use light / Light (a dimmer is not a switch — that mismatch is the #1 cause of a 404). See the full Shelly command reference just below for every generation. Tuya / Smart Life switches work once flashed with Tasmota or ESPHome; and Kasa / Tapo switches connect through Home Assistant (see the Kasa section above).

And just about everything else, via Home Assistant: if a device isn't directly HTTP — Kasa/Tapo, Z-Wave, Zigbee (incl. Zigbee2MQTT), Sonos, Nest / Ecobee thermostats, smart locks, garage doors, blinds — Home Assistant bridges it, so virtually any of the thousands of devices HA supports can drive a READYWARE button. LIFX and Govee also work through their cloud HTTP APIs, and hubs like Homey, Hubitat, Node-RED, openHAB, and Domoticz work via webhook or REST.

Setup

Settings → Device Setup → Smart Home → Add → pick Generic HTTP. Name it, paste the base URL of the service, optionally add an API key / bearer token. Saved devices appear in the Smart Home list for easy reuse across many buttons.

Use it on a button

Long-press a button → Other tab → pick HTTP GET, HTTP POST, or HTTP PUT depending on what the API expects. Paste the full URL, the body (for POST/PUT), and the auth token if needed. For webhooks like IFTTT or Zapier, HTTP GET with the webhook URL is usually all you need.

Custom headers: the auth field defaults to sending as Authorization: Bearer <token>. If your API needs a different header (like X-Api-Key or hass-token), you can set the Custom Header Key field.

🔦 All Shelly commands — Gen1 & Gen2+ · relays · dimmers · RGBW ▼ Open
✅ Shelly Dimmer 2 (and any Gen1 dimmer) — this is the whole thing
On   → http://192.168.1.XXX/light/0?turn=on
Off   → http://192.168.1.XXX/light/0?turn=off
Toggle → http://192.168.1.XXX/light/0?turn=toggle  (one button for both)
Brightness → http://192.168.1.XXX/light/0?turn=on&brightness=50  (0–100)
Brightness only → http://192.168.1.XXX/light/0?brightness=20  (no on/off change)
No /rpc/, no Switch.Set. Just /light/0?turn=on or off. Swap 192.168.1.XXX for your dimmer's IP.
The one rule that saves you: Gen1 (like the Dimmer 2) uses the legacy paths /relay/ /light/ /color/never /rpc/. Gen2+ / Plus / Pro uses /rpc/ with a component name (Switch, Light, Cover). And a dimmer is always "Light," never "Switch" — using Switch.Set on a dimmer returns a 404.

Not sure which generation you have? Type the device's IP into a browser (http://192.168.1.XXX). If the URL bar / web UI shows the newer Shelly interface it's Gen2+; the older, plainer page is Gen1. Or just try both formats below — the wrong one errors harmlessly.

Gen1 — legacy HTTP (Shelly 1, 1PM, 2.5, Dimmer 1/2, Duo, Vintage, RGBW2)

  • Relay/switch (Shelly 1 / 1PM / 2.5): http://192.168.1.XXX/relay/0?turn=on · turn=off · turn=toggle · turn=on&timer=30
  • Dimmer (Dimmer 1/2, Duo): http://192.168.1.XXX/light/0?turn=on · turn=off · turn=toggle · turn=on&brightness=50 · brightness=50 (set level without changing on/off)
  • Dimmer — step dimming: http://192.168.1.XXX/light/0?dim=up&step=10 · dim=down&step=10 · dim=stop
  • RGBW color (RGBW2): http://192.168.1.XXX/color/0?turn=on&red=255&green=0&blue=0&gain=100

Gen2+ / Plus / Pro — RPC (Plus 1, 1PM, 2PM, Pro series, Plus/Pro Dimmer, Dimmer Gen3)

  • Relay/switch (Plus 1 / 1PM / 2PM, Pro): http://192.168.1.XXX/rpc/Switch.Set?id=0&on=true · on=false · http://192.168.1.XXX/rpc/Switch.Toggle?id=0
  • Dimmer (Plus Wall Dimmer, Pro Dimmer, Dimmer Gen3): http://192.168.1.XXX/rpc/Light.Set?id=0&on=true · on=false · on=true&brightness=50 · http://192.168.1.XXX/rpc/Light.Toggle?id=0

The 0 (or id=0) is the channel — the first output. On a 2-channel device the second output is 1. Brightness is 0–100. toggle is handy for a single on/off button.

You don't have to add Shelly in Device Setup. For Generic HTTP, registering the device in Settings → Device Setup → Smart Home is optional — it only saves a base URL for reuse across many buttons. You can skip it entirely and paste the full URL straight onto a button (long-press → Other → HTTP GET). That's why your Shelly works even though you never "set it up" in READYWARE.
No Shelly app required either. A brand-new Shelly broadcasts its own WiFi hotspot (e.g. shellydimmer2-XXXXXX). Connect to it, open http://192.168.33.1 in any browser, and set your WiFi + a static IP right there in the device's built-in web UI — no app, no cloud account. The Shelly app is just a convenience for onboarding and finding IPs.
Give each Shelly a static IP (in the device web UI, or a DHCP reservation in your router) so the address never changes and your buttons never break.

📡 MQTT

What it does

Publish to an MQTT broker on your local network. Used widely with Home Assistant + Mosquitto, ESPHome devices, Zigbee2MQTT, Tasmota firmware on Sonoff devices, and many custom DIY automation setups. Lets one button trigger anything subscribed to a topic — multiple devices and automations can react to the same message.

Setup

You'll need an MQTT broker on your local network. The most common combo is Mosquitto (open-source broker) running on a Raspberry Pi or alongside Home Assistant. Once your broker is running, MQTT in READYWARE has no separate "device" entry to add — just use it directly on a button.

Use it on a button

Long-press a button → Other tab → MQTT Publish. Three fields:

  • Broker: mqtt://192.168.1.100:1883
  • Topic: home/living_room/tv/power (anything you've configured a device or HA automation to listen on)
  • Payload: {"state": "ON"} or just ON — whatever the listener expects

Best paired with Home Assistant — you can publish from READYWARE and have HA's MQTT integration trigger any automation in response.

Using Shelly? Gen2+ Shelly devices can be driven over MQTT, but the simplest path is plain local HTTP — no broker needed. See the Shelly command reference above.

☁️ SwitchBot Cloud

READYWARE works with the entire SwitchBot Hub family — Hub Mini, Hub 2, Hub 3, and Hub Plus. Any virtual remote or scene you've set up in the SwitchBot app can be fired from any READYWARE button.

⚠️ Important — order of operations

SwitchBot's API can only fire commands that already exist in your SwitchBot app. It cannot learn new IR codes. So you must set up your remotes in the SwitchBot app first, then assign them to READYWARE buttons.

Use SwitchBot's "Smart Matching" or "Select Manually" mode whenever possible — these give you a full virtual remote with preset commands (Power On, Volume +, Channel +, etc.) that READYWARE can pick from a dropdown. The "Others" / DIY mode works too, but you'll have to type the exact button names manually.

Step 1 — Set up your devices in the SwitchBot app

Open the SwitchBot app, pair your Hub, and add one or more IR remotes (TVs, ACs, fans, lights, etc.). Test that each remote works from inside the SwitchBot app first. If a button doesn't work in SwitchBot, it won't work in READYWARE either — fix it in the SwitchBot app first.

Step 2 — Get your SwitchBot API token + secret

In the SwitchBot app: Profile → Preferences → tap "App Version" 10 times → Developer Options → Get Token. Copy both the Open Token and the Secret.

Step 3 — Add SwitchBot to READYWARE

In READYWARE: Settings → Device Setup → Smart Home tab → Add → SwitchBot. Paste the Open Token and Secret, give the account a name (e.g. "My SwitchBot"), tap Test. If it connects, tap Save Device.

Once saved, tap the refresh icon next to your SwitchBot account in the device list. READYWARE pulls in all your virtual remotes and scenes and caches them locally — no further API hits until you refresh again.

Step 4 — Assign SwitchBot commands to buttons

In Edit Mode, long-press any button → Other tab → pick SwitchBot from the action list. Choose:

  • Account — which SwitchBot account this button uses
  • Target — Virtual Remote or Scene
  • Remote / Scene — which one from your SwitchBot setup
  • Command — pick from the preset list (Power, Volume +, etc.) OR tap "+ Custom Name" and type a button name from your SwitchBot app exactly as it appears (case-sensitive)

Tap Test Now before saving — it fires the command immediately so you can verify before committing.

DIY remotes — naming gotcha

If you used SwitchBot's "Others" / DIY mode to learn IR codes, the API requires the button name exactly as labeled in the SwitchBot app, case-sensitive. SwitchBot does not expose these names through their API, so you must type them yourself. Common defaults are Power, Volume Up, On, Off. If unsure, switch to Smart Matching or Select Manually mode — those give clean preset commands.

What it can't do

SwitchBot integration is for firing commands SwitchBot already knows. READYWARE cannot teach the SwitchBot hub new IR codes through the API — that has to be done in the SwitchBot app. For free-form IR learning, use READYWARE's own learning workflow with BroadLink, USB IR, onboard IR, or iTach.

🏠 Homey (Homey Pro)

What it does

Fire any Homey Flow from a READYWARE button. Homey has webhooks built in, so there's no extra app to install — you point a Generic HTTP button at a Homey webhook and your Flow runs. Use the local URL and nothing touches the cloud: button tap → local request on your WiFi → Homey runs the Flow. Sub-second.

Step 1 — Build the Flow in Homey

In the Homey app, create a Flow. For the When card choose Logic → "Webhook event […] has been received." Type a unique event name, e.g. movie_night. Add your action cards (lights, AC, a scene, whatever) and save. Tip: hover the ⓘ on the webhook card to copy the ready-made URL.

Step 2 — Get your webhook URL

Local — lowest latency, no cloud (phone on the same WiFi as Homey): http://<homey-ip>/webhook?event=movie_night. Older 2016–2019 Homey models use http://<homey-ip>/api/manager/logic/webhook/movie_night; self-hosted Homey listens on port 4859.

Cloud — works from anywhere: https://webhook.homey.app/<homey-id>/movie_night. Find your Homey ID in More ⋯ → Settings → General.

Step 3 — Use it on a button

Long-press a button → Other tab → HTTP GET → paste the URL → Save. No token needed — the event name is the key. Tap to test; your Flow fires.

Tip — keep it fully local

Use the local IP URL so the whole chain stays on your LAN — no cloud round-trip anywhere. Set a DHCP reservation for Homey so its IP never changes.

🏠 Hubitat Elevation

What it does

Trigger Hubitat over your local network using its Maker API — control any device or run any rule/scene from a READYWARE button, fully local.

Setup

In Hubitat: Apps → Add Built-In App → Maker API. Select the devices to expose and enable local access. Maker API then lists a local URL for every command, e.g. http://<hubitat-ip>/apps/api/<appID>/devices/<deviceID>/on?access_token=<token>.

Use it on a button

Long-press a button → Other tab → HTTP GET → paste the Maker API URL (including its access_token) → Save → test. Swap /on for /off, /setLevel/50, etc., per the endpoint list Maker API shows you.

Assign your Hubitat a static IP — the Maker API URLs contain its address.

🏠 Node-RED

What it does

Make a READYWARE button hit a Node-RED flow. Drop an http in node and any flow becomes a webhook endpoint — orchestrate IR, lights, notifications, other services, anything Node-RED can reach.

Setup

In Node-RED, add an http in node, set method GET and a path like /readyware/movienight. Wire it to your logic and to an http response node (so it returns 200). Deploy. Your endpoint is http://<node-red-ip>:1880/readyware/movienight (1880 is the default port; if you run Node-RED as a Home Assistant add-on the port/path may differ).

Use it on a button

Long-press a button → Other tab → HTTP GET → paste the endpoint → Save → test.

🔗 Any Other Hub — Webhook or MQTT

If it takes a webhook or MQTT, it works

Because READYWARE's Generic HTTP and MQTT Publish actions are open-ended, a button can trigger almost any hub or device that accepts an HTTP request or an MQTT message. A few popular ones and how they're reached:

  • openHAB — REST API. HTTP POST a command to http://<ip>:8080/rest/items/<item>.
  • Domoticz — JSON API. HTTP GET http://<ip>:8080/json.htm?type=command&param=switchlight&idx=<id>&switchcmd=On.
  • Bond Bridge — local REST API for RF ceiling fans, fireplaces, and shades. HTTP PUT to http://<bond-ip>/v2/devices/<id>/actions/<action> with the BOND-Token header.
  • Tasmota (Sonoff/ESP) — HTTP GET http://<ip>/cm?cmnd=Power%20On.
  • WLED — JSON API. HTTP POST {"on":true} to http://<ip>/json/state.
  • n8n — add a Webhook trigger node; paste its URL into an HTTP GET/POST button.
  • IFTTT / Zapier / Make — paste the webhook/trigger URL.

If you can hit it with curl, READYWARE can fire it from a button. And if it speaks MQTT, use the MQTT Publish action instead of HTTP.

🎬 Mix everything in one macro

One button, multiple platforms

The real power of READYWARE smart home isn't any single integration — it's combining them. A single "Movie Night" macro button can:

  1. Turn the TV on (BroadLink IR)
  2. Switch HDMI input (also IR)
  3. Dim Hue lights to 15% (Hue HTTP PUT)
  4. Turn off the bedroom AC (SwitchBot)
  5. Trigger a "movie mode" automation (Home Assistant POST or MQTT publish)
  6. Switch the live wallpaper to your theater photo
  7. Launch Netflix

All in one tap. That's the point — Electronic Personification. Build macros in Edit Mode → long-press a button → Macro tab → add steps in any order, with any delay between them.

📡
09

Live Device State (Feedback)

A button can read a device's real state and show it — a lamp button switches to your "on" look when the light is actually on, or a button displays the live temperature, watts, or humidity. It's opt-in per button and only reads when you open a screen, so there's no constant polling and no slowdown.

1
Turn on Live State

Edit a button → Style tab → Live State → toggle Show live device state on. A button with this off is a completely normal button.

2
Point it at the device

Enter the device's Status URL (e.g. a Shelly /rpc/Switch.GetStatus?id=0) and the Value Path — the field in the response to read (e.g. output for on/off, apower for watts, or your thermostat's temperature field).

3
Choose how it shows

Pick a type: On/Off (uses your button's on/off look — see below), Number, or Text. For numbers/text, set a Label format like {val}°F — the button's label becomes the live value. Your button's background and label colors stay exactly as you set them.

4
Log in if needed

If the device has a password, set the login mode — Token, Basic, Digest, or Tasmota — and enter the credentials. Most Shelly/Tasmota devices ship with no password, so you can leave this on "None."

When does it read?

Only when you open a remote, folder, or desktop — one quick check per device, then it's quiet. No background polling. To re-check on demand, add a Refresh Live State (↻) button (Button Editor → Other → Refresh Live State), or add a Refresh step to a macro so a control button updates its reading right after it acts.

Build a readout

Make the readout a big transparent button showing the value, and place normal control buttons beside or under it. Buttons can overlap freely, so you can layer the reading over your own image. Everything is opt-in — old buttons, remotes, folders, and profiles are unchanged.

Cloud thermostats (Nest, ecobee): these don't have a local status URL yet — for now, read them through Home Assistant (point Live State at your HA URL with your HA token).

On/Off uses your own look

For an On/Off feedback button, the appearance is the button's own ON look and OFF look — the colors, icon, shape, and label you choose (no fixed green/gray). Turn on 2-State Toggle in the same Style tab, design the "on" look and the "off" look once, and the real device flips between them. It's the same two-look system as a manual toggle button — but driven by the device instead of a press. (No toggle looks set = the button reads state without changing appearance.)

What goes in each field — ready-made settings

Status URL = your device's address + status page (put your device's IP here). Value Path = the field name in the reply to read. Type = On/Off, Number, or Text.

Shelly Gen1 — URL http://YOUR-IP/light/0 or /relay/0 · Value ison · On/Off

Shelly Gen2/Gen3 — URL http://YOUR-IP/rpc/Switch.GetStatus?id=0 · Value output (On/Off) or apower (watts, Number) · Login Digest (admin) if a password is set

Tasmota — URL http://YOUR-IP/cm?cmnd=Power · Value POWER · On/Off · "On" value ON

Home Assistant — URL http://YOUR-IP:8123/api/states/ENTITY_ID · Login Token · Value state or attributes.current_temperature (Number)

Finding the value name: open the Status URL in a browser. You'll see something like {"ison":true,"brightness":100} — the words before each : are the value names. Use the one you want.

📁
10

Organizing With Folders

Group your remotes by room, activity, or device type. Each folder has its own wallpaper and icon on the desktop.

Create a folder

In Edit Mode, tap the + button on the desktop → Folder. Name it, pick an icon and color. Drag remotes into it by long-pressing them and selecting Move to Folder.

Per-folder wallpaper

Each folder supports its own live wallpaper, independent of the desktop wallpaper. Open the folder in Edit Mode and set a video stream or image. When you open that folder, its wallpaper loads automatically.

Macro buttons on folders

Folders support buttons too — not just remotes. Add a macro button to a folder that sets the room's lights, fires IR commands, and changes the wallpaper all in one tap.

11

Pro Tips

On the big screen

READYWARE is built to feel right on every screen size, including the largest one in the room. There are three ways to get it on your TV, and you can use any of them — or all of them — depending on your setup.

📺 Install the app directly. READYWARE runs natively on Android TV and Google TV (Chromecast with Google TV, Sony Bravia, Hisense, Sharp, Philips), Amazon Fire TV / Fire Stick (via the Amazon Appstore), and NVIDIA Shield. Same app, same layouts, same Smart IR database — sized for the screen.

🌐 Use any browser. If your TV runs Samsung Tizen, LG webOS, Roku, or you have an Apple TV with a Mac mini routed in, just open the Web Viewer in any browser. Same experience, no install. Pair the device's keyboard, mouse, or pointer for full point-and-click.

📱 Cast from your phone. Chromecast or screen-mirror your phone's READYWARE canvas to the TV. The fastest path if you'd rather not install anything new.

However it gets there, the experience is the same. Add a pointer device — an air mouse, a gyroscopic clicker, or your phone or tablet acting as a wireless pointer — and you're navigating graphical buttons floating over your live wallpaper from across the room. One pointer, one screen, every device in the room — instead of a pile of remotes on the coffee table.

A favorite setup: stream the video source itself as the wallpaper. Your security camera feed, the YouTube video you're watching, your Plex library, your Home Assistant dashboard — whatever's on screen is also what you're controlling. Watch the show, control the show, on the same screen, with the same pointer. No looking down. No second remote.

Many paths, one outcome. The TV experience never replaces your phone or tablet — it joins them. Use the phone in your hand. Use the tablet on the coffee table. Use the TV from across the room. Use all three at the same time, all controlling the same gear. There's always more than one way to do anything in READYWARE — pick whichever feels right at the moment, switch to another whenever you want.

Design at 4K. Build your remote at 3840×2160 in the editor and it renders edge-to-edge crisp on any modern Smart TV (HD/4K/8K) and downscales cleanly to phones and tablets. One profile, every device. Set Overlay Timeout to 5–10 seconds — buttons appear when you point, fade after the action.
Web Remote — control from anywhere in the world

The Remote Web Viewer gives anyone a browser-based version of your remote — real wallpapers, real icons, real buttons — accessible from any phone, tablet, or computer anywhere on the planet. Here's the full setup:

1
Enable Remote Web Viewer

Settings → Remote Web Viewer → toggle ON. The first time you enable it, READYWARE registers your device with the server. This takes a few seconds — wait for the green ● ON badge to appear.

2
Copy your link

Your unique URL appears in the settings panel. Tap Copy Link to copy it to your clipboard, or tap QR to generate a QR code you can screenshot and share.

3
Share the link and PIN

Send the link to anyone — family, friends, anyone you want to have access. Tap PIN to see your 4-digit PIN. Anyone opening the link will be asked to enter it first. Share both the link and PIN together.

4
Sync your wallpapers and icons

By default the web remote shows your button layout. To also send your real wallpapers and custom icons to the web remote, tap ⬆ Sync Web Remote. This pushes your current desktop, wallpapers, and icons to the server. Anyone opening the link after a sync sees your exact visual setup — not just the buttons.

5
Someone opens the link

They visit the URL in any browser. They enter the PIN. Your full remote appears — tap any button and the IR fires on your device at home in under a second. No app required on their end.

Re-sync after changes: If you add new buttons, change wallpapers, or rearrange your layout, tap Sync again to push the updates to the web remote. The link and PIN never change.
💻 Any Device With a Browser Is Now a Remote Control

This is bigger than it sounds. The Web Remote doesn't just work on phones. It works on everything with a browser — and it fires real IR and RF signals through the hardware on your home network in real time.

  • 💻
    Windows PC or laptop — open the link in any browser. Click a button. IR fires across the room. No Android emulator. No driver. No install. Your Windows machine just became an IR and RF blaster.
  • 🍎
    Mac — same. Safari, Chrome, Firefox, any of them.
  • 📺
    Smart TV with a browser — open the link on your TV's built-in browser. Use the TV remote's pointer to click buttons. Your TV is now controlling your other devices.
  • 🖥️
    Wall-mounted touchscreen — any screen with a browser becomes a dedicated room control panel. No app, no setup beyond the link.
  • 🌍
    Anyone, anywhere — share the link with family. They open it on whatever device they have and control your home from across the house or across the world.

The IR and RF signals still fire through the hardware on your home network. READYWARE on your phone or tablet bridges the browser command to the blaster in real time. Sub-second response.

Multiple IR devices — different blasters in different rooms

Add each device in Settings → Device Setup and give them clear names. Then assign any button to any device: long-press a button → Edit → IR/RF Code tab → IR Device. Pick the one you want. That button fires through that blaster. Everything else stays on the default device.

Single device? You never see any of this — it's invisible unless you add a second one.
Macros — chain everything together

One button can fire multiple IR commands in sequence, change wallpapers, launch apps, and more. Edit any button → Macro tab. Add steps. Set delays between them. Perfect for "watch TV" sequences that turn on the TV, switch input, and dim the lights in one tap.

Save and share your setup

Settings → Advanced → Save Profile saves your entire setup as a .ircprofile file — every remote, every button, every signal, every wallpaper. Restore it on any device, share it with anyone. Your setup is yours forever.

The timeout is your friend. Most users love the Overlay Timeout — set it to 5–10 seconds and your buttons appear when you need them, then fade away so your content always takes center stage. Tap anywhere to wake them back up. Adjust anytime in Settings → Preferences → Overlay Timeout.
Next
FAQ — Common Questions Answered