HomeUser Guide › Home Automation
Home Assistant · Hubitat · Webhooks

Your projector, in your smart home.

Projector Pilot publishes your projector's live state and every control to Home Assistant, Hubitat and any webhook you like. Set it up once, and your smart home drives the projector on its own - no phone on the network, no cloud in the middle.

Serverless once set upScenes become scriptsReady-made dashboardPaid add-on
Overview

What Home Automation does

Home Automation turns Projector Pilot from a remote in your hand into a device your whole house can see. It exposes what the projector is doing - power, input, color mode, the picture figures, lamp hours - and hands your smart home a control for everything the app can change.

Home Automation is a paid add-on. It is a one-time purchase, separate from Projector Pilot Pro, and a bundle buys both together at a saving. No subscription, no account, no cloud. See pricing.

Three ways in, one hub

Settings › Home Automation is the hub. Pick the platform you run - Home Assistant, Hubitat or Webhooks - and set it up there. You can wire up more than one at a time; they are independent.

The Home Automation hub in Projector Pilot: Home Assistant, Hubitat and Webhooks
Home Assistant

Set up Home Assistant

Sign in from the app, publish the projector as a sensor, paste one block into your configuration, and sync. From then on Home Assistant drives the projector itself.

  1. Open Settings › Home Automation › Home Assistant.
  2. Type your Home Assistant address (for example http://homeassistant.local:8123 or its IP), then tap Sign in. It is a browser sign-in against your own instance - there is no token to paste. Use your normal Home Assistant login, two-factor and all.
  3. The app publishes the projector as a sensor, with an entity like sensor.projector_pilot_epson_qb1000b_qb1000w, carrying power, input, color mode, the picture figures and lamp hours.
  4. Turn on Send the projector's state so those readings update in Home Assistant whenever they change while the app is open, and turn on Sync Advanced Controls to publish scripts for picture modes, inputs, lens memories and power.
  5. Paste the one shell_command block (below) into your configuration.yaml, restart Home Assistant, then tap Sync With HA.
The Home Assistant screen in Projector Pilot showing the shell_command block, Sign in, Projector Entity ID and the sync toggles

The shell_command block

This is the whole serverless trick. The app writes one command Home Assistant runs to talk to the projector's Web Control, and every script it syncs calls that command with a different verb. Tap Copy block in the app and paste it into configuration.yaml. The example below is illustrative - the app fills in your projector's own address and command name:

shell_command:
  projector_pilot_epson: >-
    curl -s --max-time 5 --digest -u 'EPSONWEB:'
    -H "X-Requested-With: XMLHttpRequest"
    -H "Referer: http://192.168.1.50/cgi-bin/webconf"
    "http://192.168.1.50/cgi-bin/directsend?{{ verb }}={{ value | urlencode }}"

Example only. The app generates yours with the projector's real IP and a name derived from its serial.

Why serverless. That curl runs on the Home Assistant box, not your phone. Home Assistant reaches the projector's IP directly over Web Control, so an automation fires whether or not the app is open and whether or not your phone is even home. The EPSONWEB digest user is the Web Control login; the app uses the Web Control password already saved for the projector.

Test Connection, Sync, and cleanup

Scenes as scripts

Every Scene becomes a Home Assistant script

After a sync, your Scenes are not stuck inside the app. Each one, plus power, each input, each color mode and each lens memory your projector actually has, is written as a Home Assistant script.

Scripts are named so a rename updates the same one. The script names are derived from the projector and the control, so re-syncing after you rename a Scene updates the existing script rather than forking a second copy.
The dashboard

Copy a ready-made dashboard

You do not have to hand-build a Lovelace view. Tap Copy dashboard on the Home Assistant screen and the app hands you a complete dashboard: one card with the projector's state and a button for every Scene and control it synced.

The Projector Pilot dashboard in Home Assistant: power and source, color modes, the full picture menu, HDR and signal, RGB calibration, lens and geometry, a laser-hours graph, maintenance, and Scenes - all as green glass tiles
The live board this setup produces in Home Assistant - every projector reading as a green glass tile, a laser-hours graph, and a button for every control and Scene. Scroll it, or click to enlarge.
  1. In the app, tap Copy dashboard (after you have signed in and synced at least once).
  2. In Home Assistant, go to Settings › Dashboards › Add Dashboard, create a new empty dashboard, and open it.
  3. Open the dashboard's three-dot menu, choose Edit dashboard, then the three-dot menu again and Raw configuration editor.
  4. Paste the copied YAML, save, and the card and buttons appear, already pointed at your projector's scripts.

The copied YAML looks something like this - a state card plus a button for each control (illustrative snippet):

views:
  - title: Projector
    cards:
      - type: entity
        entity: sensor.projector_pilot_epson_qb1000b_qb1000w
        name: Projector
      - type: button
        name: Power On
        tap_action:
          action: perform-action
          perform_action: script.turn_on
          target:
            entity_id: script.projector_pilot_power_on
      - type: button
        name: Movie Night
        tap_action:
          action: perform-action
          perform_action: script.turn_on
          target:
            entity_id: script.projector_pilot_scene_movie_night

Example only. Your dashboard carries your projector's real entity and your own Scenes.

Model-agnostic. Copy dashboard builds the board from your projector's own capabilities - the entity, the picture figures, the inputs, color modes, lens memories and Scenes it actually reported. The screenshots here are a QB1000; your model may show different inputs, controls and readings. For a full green-glass board like the one pictured, follow the step-by-step dashboard guide or download the complete view and change two strings.
Want a richer wall? The same scripts drive whatever cards you like. If you have used AVR Maestro, the approach is identical - build lit source and mode tiles, live headers and history off the one sensor and the synced scripts.
Hubitat

Set up Hubitat

On Hubitat, Projector Pilot mirrors the projector onto a device in your hub through the Maker API, so Rule Machine can read and act on power, mute and input.

  1. In Hubitat, enable the Maker API app and note its access URL and token, and pick which devices it exposes.
  2. In Projector Pilot, open Settings › Home Automation › Hubitat and enter your hub's Maker API details.
  3. Pick the device that stands for the projector. The app suggests the likely one; choose it or select your own.
  4. The app mirrors power, mute and input onto that device, sending only the commands the device accepts.
  5. Build Rule Machine rules against that device the way you would any other - the projector's state drives them.
Only what the device accepts. The app sends a projector value to Hubitat only when the chosen device supports that command, so it never pushes something the device would reject.
Webhooks

Set up Webhooks

Webhooks are the catch-all. The app posts to a URL of yours when the projector powers on, powers off, changes input or recalls a Scene - a Home Assistant webhook, Node-RED, IFTTT, or anything that takes JSON.

  1. Open Settings › Home Automation › Webhooks.
  2. Enter the URL to post to. A Home Assistant webhook looks like http://homeassistant.local:8123/api/webhook/your-id.
  3. Choose which events fire the webhook: power on, power off, input change, Scene recall - and optionally filter to a specific input or Scene.
  4. Optionally set a custom payload if the receiving service wants a particular shape; otherwise the app sends its default JSON.
  5. Save. The app posts on each matching event from then on.

The default payload is plain JSON - an event, the projector, and the value that changed:

{
  "event": "scene_recalled",
  "projector": "Epson QB1000B/QB1000W",
  "scene": "Movie Night",
  "power": "on",
  "input": "HDMI1",
  "color_mode": "Cinema",
  "timestamp": "2026-09-23T20:14:07Z"
}

Example payload. An input-change or power event carries the fields relevant to it.

Re-linking fixes them all. If you re-link Home Assistant at a new address, the app updates every webhook that points at it at once, so a moved instance does not mean editing each one by hand.

Troubleshooting

Sign-in bounces back to the login page

Make sure the address you entered is the one you actually reach Home Assistant on, including the port (usually :8123). The sign-in is a real browser login against your instance, so your username, password and two-factor code all apply. On a phone the sign-in completes whether the in-app browser hands the result back or the local callback returns first; if it still stalls, close the sheet and tap Sign in again.

The projector sensor is not appearing in Home Assistant

The sensor is published while the app is open and Send the projector's state is on, so open the app and confirm that toggle. Then check Developer Tools › States in Home Assistant and filter on projector_pilot. A projector in standby publishes very little; wake it and the readings fill in.

The synced scripts are missing

The scripts are written by Sync With HA, which needs the shell_command block already pasted into configuration.yaml and Home Assistant restarted once. Run Test Connection first - it tells you whether the block is present. Then Sync again. If old, dead scripts are cluttering the list, use Remove orphaned scripts.

A script runs in the app but not from Home Assistant when my phone is away

That is the point of the shell_command block - it is what lets Home Assistant reach the projector's IP on its own. If it only works with the app open, the block is probably not pasted or Home Assistant was not restarted after pasting it. Confirm with Test Connection, restart Home Assistant, and Sync.

Wire your projector into the whole house

Home Automation is a one-time add-on. No subscription, no account, no cloud. One purchase unlocks it on every platform you own.

Google Play - coming soon App Store - coming soon Microsoft Store - coming soon Mac App Store - coming soon

See Free vs Pro vs Home Automation → · Full user guide →