Web DevelopmentApril 12, 20251 min read

Alternative Wiz Lamp Control

A keyboard-first, zero-login dashboard that talks to Wiz smart lamps directly over the local network — built because the official app was too many menus deep for daily use.

#JavaScript#WebSockets#UDP#Smart Home#Dashboard
Screenshot of the Alternative Wiz Lamp Control web dashboard showing smart lamp controls on a dark code-themed interface
Web Development · Alternative Wiz Lamp Control

The Problem

The official Wiz mobile app handles basic lighting well, but I kept running into the same friction points every day: deep menus just to toggle a single lamp, no quick scene switching from desktop, and zero keyboard shortcuts for someone who lives in front of a screen.

I wanted a control surface that felt instant — something closer to a terminal command than a settings page.

The Approach

Instead of fighting the official app, I built an alternative web interface that talks to the lamps directly over the local network using the Wiz UDP protocol.

  • Zero-login dashboard — auto-discovers every Wiz bulb on the LAN
  • One-click scenes — preset brightness and temperature combinations
  • Keyboard-first — toggle, dim, and switch scenes without touching the mouse
  • Dark code-themed UI — designed to live permanently on a secondary monitor

Tech Stack

Built as a lightweight single-page application with vanilla JavaScript and WebSockets for real-time state sync across browser tabs. The lamp communication layer is a small abstraction over the JSON-RPC messages Wiz devices accept on port 38899.

Here’s the core send-payload helper that gets reused everywhere in the dashboard:

export async function sendPilot(ip, params) {
  const msg = {
    method: 'setPilot',
    params: { state: true, ...params },
  };
  // Wiz devices listen on UDP 38899; we use a thin WebSocket bridge
  return fetch(`/api/bridge/${ip}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(msg),
  }).then(r => r.json());
}

Tip — The biggest UX win was putting toggle on spacebar. Once you can hit the lights from anywhere with one key, you stop reaching for the phone entirely.

Result

The result is a dashboard that loads in under a second on my home network and lets me control any room’s lighting in one keystroke. It became my daily driver for lighting — and a great conversation piece during screen shares.