Web Development2025年4月12日読了目安 1 分

Wizスマート照明 コントロールダッシュボード (v2)

キーボードショートカット対応・ログイン不要で、ローカルネットワーク上のスマート照明を瞬時に制御するWebインターフェース。

#JavaScript#WebSockets#UDP#スマートホーム#ダッシュボード
Screenshot of the Alternative Wiz Lamp Control web dashboard showing smart lamp controls on a dark code-themed interface
Web Development · Wizスマート照明 コントロールダッシュボード (v2)

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.

このプロジェクトについて相談する