HEPRGRYPH STUDIO
hep@heprgryph: ~/blog/signal-lamp-v3 — less ← 回到终端

SIGNAL LAMP 第三版:把状态灯做成不需要解释的东西

2026-10-14 · 工程 / 硬件 / 产品

前两版都失败了——不是因为技术,是因为"没人愿意改状态"。第三版我们把同步这件事从人身上拿走了。


SIGNAL LAMP 是一台放在桌上的小灯:红灯勿扰,黄灯可打断,绿灯在找人聊。工作室内部每人一台,现在迭代到第三版。 前两版都不算成功。这篇写我们错在哪,以及第三版改了什么。

第一版:做一个能手动切状态的灯

硬件很简单,ESP32-C3 加一枚 WS2812,三个物理按键。做完我们都很满意——然后两个月后统计了一下使用情况:基本没人切。 原因说出来很蠢:

  • 切状态是一个额外的动作,而"不切"没有任何即时惩罚
  • 大家不确定别人看不看这盏灯,所以懒得维护一个没人看的信号
  • 红灯亮着自己也会忘,一开就是一下午

问题不在灯,在于我们把同步的责任推给了人。

第二版:加个插件自动同步

写了个浏览器插件,检测到会议软件在前台就自动转红灯。这个思路是对的,但实现上有两个坑:

问题表现
误判太多打开日历看一眼也被当成"在开会"
需要装东西工作室 4 个人里只有 2 个装了,剩下 2 个还是手动

一个只有部分人参与的信号系统,等于没有信号系统。

第三版:换掉的是"谁来判断"

这一版我们做了三个决定:

  1. 默认有状态。 插件没装、电脑没开,灯也是绿灯——因为"联系得上"是默认假设,不是需要宣告的状态。
  2. 只保留一个自动信号。 会议中=红灯。其他全部手动。判据只看有没有在用麦克风,不看前台窗口是谁。
  3. 不经过任何服务器。 插件通过局域网 UDP 直推给灯,状态不上云、不留日志。
插件 --UDP 41234 (局域网)--> 灯
      每 5 秒一次心跳,超时 15 秒自动转绿灯

第三条不只是洁癖。我们不想为了一个桌面小灯去运维一套账号体系,也不想让"今天谁在忙"变成一份可以回看的日志。

一个意外的好处

心跳超时自动转绿灯,意味着人走了灯自己会灭。这个副作用比自动红灯更受欢迎——它解决的是"忘记关"的问题。

一个状态系统能不能好用,取决于它的默认值,而不是它的功能列表。

成本

项目数值
单台物料约 35 元
待机功耗0.4W
固件大小约 780KB
从改代码到刷进灯里约 40 秒(OTA)

现状

工作室内部每人一台,稳定跑了八个月。暂无量产计划——它解决的问题很具体(三个人以上的远程小团队),做成商品反而要背上一堆我们不想做的功能。 别让用户维护状态,让状态自己过期。