[HN Gopher] Show HN: I built a "Do not disturb" Device for my ho...
       ___________________________________________________________________
        
       Show HN: I built a "Do not disturb" Device for my home office
        
       Author : quacky_batak
       Score  : 66 points
       Date   : 2026-01-03 15:46 UTC (4 days ago)
        
 (HTM) web link (apoorv.page)
 (TXT) w3m dump (apoorv.page)
        
       | Terretta wrote:
       | The way most of these devices get status seems check the
       | conferencing apps directly:
       | 
       | https://www.amazon.com/stores/Kuando/page/1128C3FD-9BE9-4AA2...
       | 
       | There are some nice neon sign options here as well:
       | 
       | https://www.amazon.com/s?k=busy+light
        
       | pavel_lishin wrote:
       | I have an old, broken crosswalk sign that I keep meaning to set
       | up as a "meeting indicator" - red hand meaning that I'm in a
       | meeting, and the seconds countdown as an indicator of how many
       | minutes are left until I'm out of meetings.
       | 
       | But as it turns out, since my spouse & I both work from home,
       | separated by an entire floor of a house, there ain't that much
       | need for it, so it sits on my shelf.
        
       | dripton wrote:
       | I needed something like this for my basement home office. But I
       | was lazy, so rather than actually building anything, I just
       | bought some color-changing light bulbs ($7 on Amazon including
       | remote) and installed them on the basement stairs. If I have a
       | do-not-disturb meeting, I make the light red.
        
       | CPLX wrote:
       | I had a similar thought, so I bought this:
       | 
       | https://onairwarning.com/pages/products
       | 
       | It completely sucks and doesn't really work. So don't make my
       | mistake.
        
         | Liftyee wrote:
         | I don't know why they decided to put the "warning!" text box on
         | the actual thing - it would look much cleaner if it just said
         | "ON AIR" . Inane copyright/trademark reasons?
        
       | nimbius wrote:
       | "a lot of times my mother asks me if she can come in the room for
       | reasons I won't get into"
       | 
       | You've appeared to engineer your way around an interpersonal
       | relationship that you lack the emotional, social intelligence and
       | maturity to deal with.
       | 
       | Welcome to the front page of HN i guess. you're well on the way
       | to becoming a founder.
        
         | mhurron wrote:
         | The only one showing any lack of social intelligence is you.
         | The author is choosing not to go into unnecessary personal
         | details while giving a short back story as to why they did a
         | thing.
         | 
         | I've thought of doing basically something similar so my wife
         | knows I'm in a position not to be disturbed. I can, and do,
         | tell her when I have a scheduled call, but unscheduled calls do
         | just happen. Something like this would let her know I can't be
         | disturbed without her coming in, asking and then going 'oh
         | shit, sorry.'
         | 
         | In no way is it engineering a way out of dealing with my wife.
        
         | deathanatos wrote:
         | ... or there's just a lot of awkwardness for both parties in
         | trying to communicate "are you on camera?" without the person
         | who is potentially on camera revealing that communication to
         | the stream.
         | 
         | The person entering has to make sure they're not on camera --
         | if the room's architecture even allows for that -- the person
         | answering has to somehow communicate to that person without
         | people looking at their video feed noticing. I've gestured
         | things to my fiancee while on air, and while they were pretty
         | clearly intended for "someone off camera", still managed to
         | confuse the meeting participants.
         | 
         | Radio booths and other broadcasts have done this for ages with
         | the "On Air" sign, which basically what TFA has made.
        
         | pwg wrote:
         | Spoken like someone who does not have a "second person" around
         | while they are working from home.
         | 
         | Unless the "other people" (spouses/partners/parents/etc.)
         | _also_ work a from home job, they simply do not internalize
         | that the work from home individual is  "at work" in the same
         | manner as if that individual were away in an office. And for
         | some of them, no amount of explanation ever sinks in to fully
         | internalize the fact that "when I'm working from home, I am not
         | available to also solve all the problems you create for
         | yourself throughout the day".
         | 
         | Most all of them, however, do actually pay attention to and
         | understand the meaning of a "do not disturb" sign on the door.
        
       | rlue wrote:
       | Like all the other commenters here, I also devised my own
       | solution--but AFAICT, it's the only other solution that's
       | automated!
       | 
       | Requirements:                 * macOS       * Zoom       * Home
       | Assistant       * A signal light/sign on a smart switch (like
       | [0])
       | 
       | The Procedure:
       | 
       | First, create a script that checks whether you're currently on a
       | Zoom call, and then turns your signal light on or off
       | accordingly. Remember to chmod +x!                 #!/bin/sh
       | if [ $(lsof -i 4UDP | grep zoom 2>/dev/null | wc -l) -gt 1 ];
       | then         curl \           -H "Authorization: Bearer
       | ${HOME_ASSISTANT_ACCESS_TOKEN}" \           -H "Content-Type:
       | application/json" \           -d '{"entity_id": "${ENTITY_ID}"}'
       | \
       | https://${HOME_ASSISTANT_DOMAIN}/api/services/switch/turn_on
       | else         curl \           -H "Authorization: Bearer
       | ${HOME_ASSISTANT_ACCESS_TOKEN}" \           -H "Content-Type:
       | application/json" \           -d '{"entity_id": "${ENTITY_ID}"}'
       | \
       | https://${HOME_ASSISTANT_DOMAIN}/api/services/switch/turn_off
       | fi
       | 
       | Then, create a LaunchAgent that monitors your Zoom Application
       | Support directory for filesystem changes at
       | ~/Library/LaunchAgents/local.${USER}.on-air.plist:
       | <?xml version="1.0" encoding="UTF-8"?>       <!DOCTYPE plist
       | PUBLIC "-//Apple//DTD PLIST 1.0//EN"
       | "http://www.apple.com/DTDs/PropertyList-1.0.dtd">       <plist
       | version="1.0">       <dict>           <key>Label</key>
       | <string>local.${USER}.on-air</string>
       | <key>ProgramArguments</key>           <array>
       | <string>${PATH_TO_SCRIPT}</string>           </array>
       | <key>WatchPaths</key>           <array>
       | <string>/Users/${USER}/Library/Application
       | Support/zoom.us/data</string>           </array>       </dict>
       | </plist>
       | 
       | Finally, load 'er up:                 $ launchctl load
       | ../Library/LaunchAgents/local.${USER}.on-air.plist
       | 
       | [0]: https://www.amazon.com/dp/B09NJ8ZCHF
        
       | kjkjadksj wrote:
       | Would love a way to disable the Do Not Disturb button on my
       | macbook without flipping the f keys. Any ideas? Tap it
       | accidentally and you miss all calls and texts for the day on your
       | iphone...
        
         | dhosek wrote:
         | There is (was?) a utility that would flip individual F keys on
         | the Mac, although it's been years since I used it and who knows
         | if it still works post Apple Silicon transition.
         | 
         | TBH, I kind of miss the touch bar. Once they restored the esc
         | key, it was often kind of useful while I tend not to use any of
         | the keys in the F row (even those mapped by IntelliJ since the
         | whole fn+F key thing is a kind of a pain and I seldom have call
         | for the media buttons--actually I just realized I do
         | occcasionally use the mute/unmute feature but that's about it).
         | 
         | Of course my preferences are normative and anyone who does
         | otherwise is clearly abnormal ;-)
        
           | Terretta wrote:
           | The Touch Bar was so useless* it's now selling like hotcakes
           | as an accessory:
           | 
           |  _"Trigger actions, launch apps, and control your entire
           | setup--all from a hyper-customizable deck of vibrant LCD
           | keys."_
           | 
           | https://www.elgato.com/us/en/p/stream-deck
           | 
           | * Narrator: Not actually useless. Mine is setup for multi-
           | screen chat/video/notes windows placement and app window
           | sharing for video conferencing.
        
         | Terretta wrote:
         | Wait -- what button is this?
         | 
         | Oh: [moon|F6]
         | 
         |  _"If you are smugly thinking to yourself, "I knew that!",
         | Then, my question to you is, why didn't you tell ME???"_ --
         | https://www.podfeet.com/blog/2023/09/do-not-disturb-key/
         | 
         | It goes on to answer the next question:
         | 
         |  _"But that got me to wondering how long the F6 has had a
         | dedicated Do Not Disturb function. I did some research and it
         | looks like it was introduced when Apple came out with the first
         | Apple Silicon MacBook Air in 2020. The previous keyboard
         | shortcuts had F4 key dedicated to Launchpad, and if you had a
         | backlit keyboard, F5 and F6 were dedicated to up /down keyboard
         | brightness keys."_
        
       | JoeBOFH wrote:
       | We historically have used Blynclights for this exact thing. Used
       | them in office then we all migrated to working from home a lot of
       | us brought them with and use them. I have a wireless one that
       | sits on a table just outside my office.
        
       | teach wrote:
       | > My router assigns dynamic IP addresses, meaning my server
       | location kept changing.
       | 
       | I've had a similar problem in the past. It turns out that most
       | routers have a way to assign an IP address statically based on
       | the MAC address of the requesting device without affecting the
       | other DHCP devices on the network.
       | 
       | I do this for my pi-hole, my NAS and my gaming PC.
        
         | bartvk wrote:
         | What's bizarre is that my previous TP-Link routers alawys had
         | this ability, but when I upgraded two years ago, it was gone.
        
           | galleywest200 wrote:
           | My current TP-Link router hides this behind the "Advanced"
           | settings toggle.
        
         | hunter2_ wrote:
         | The wording can vary quite a bit: I've seen names like static,
         | fixed, DHCP reservation, etc. -- I tend to like DHCP
         | reservation, because from the client's perspective, "static"
         | means _not_ using DHCP, but this does use DHCP (just not the
         | pool).
        
         | lostlogin wrote:
         | > Dynamic IPs
         | 
         | I thought that step one of geekdom was assigning a few static
         | IPs.
         | 
         | Ruining the home network while 'optimising' has happened a few
         | too many times.
        
         | tzs wrote:
         | Most home routers also have some addresses that are outside the
         | range managed by DHCP, or if DHCP is set to manage the entire
         | range of LAN address have a setting where you can reduce that
         | range. This gives you a third way to manage static assignments.
         | 
         | Let's assume the LAN is 10.0.0/24, so addresses of devices on
         | the LAN are 10.0.0.1-10.0.0.254. In the following I'll omit the
         | 10.0.0. part of an address, so will just refer to addresses
         | 1-254.
         | 
         | Find the range DHCP manages, which should be somewhere in the
         | router settings. If it is 1-254 reduce it. Let's say it is
         | 1-200 (either by default or after you have reduced it).
         | 
         | Then you can simply go the settings on your server or other
         | device that you want to have a static address and configure it
         | to use a hard coded address outside that range, such as 201.
         | 
         | A possible downside of that is that on some devices if you want
         | to give it a hard coded address you also have to hard code the
         | gateway address and the name servers.
         | 
         | Some devices though have an option to use a hard coded address
         | but still get the gateway and name servers from DHCP.
         | 
         | In summary, there are three ways to manage address for a given
         | device on most home routers.
         | 
         | 1. DHCP assigns the address. It can choose any address in its
         | pool. Each time the device needs an IP address, such as after a
         | boot or when its lease expires, it could get a different IP
         | address.
         | 
         | 2. DHCP assigns the address, but you can tell it to give a
         | specific address from the pool to a given device identified by
         | the device's MAC address.
         | 
         | 3. Tell the device to use an address outside the router's DHCP
         | pool. It's up to you to decide how to assign these address and
         | how to make sure no conflicts arise.
         | 
         | For #2 if you want some device to have a fixed IP address but
         | you don't actually care what that address is, many routers have
         | an easy way to do that. Connect the device under #1, so DHCP
         | picks the address.
         | 
         | Then go find the table in the router's web interface that shows
         | all currently connected devices and find your device. Many
         | routers will have a toggle in there to tell it to switch to #2
         | for that device. From then on the device's current address will
         | be reserved for it.
         | 
         | That's a little easier than going through their "assign an IP"
         | dialog, because that usually makes you enter the MAC address.
         | If you go through the connection table details it doesn't have
         | to ask you for the MAC address.
        
       | lam0x86 wrote:
       | Nice. I built something similar using a Rust-based daemon running
       | on my Mac. It listens to the microphone state (not the camera)
       | via a Core Audio property listener
       | (AudioObjectPropertyListenerProc), rather than log monitoring or
       | polling, so it works even when the camera is turned off. When the
       | mic status changes, the daemon toggles a light by sending a
       | simple message via zigbee2mqtt. I also installed a fire alarm
       | plate above my door, powered by a cheap Zigbee socket, similar to
       | this one: https://ampac.net/wp-
       | content/uploads/2017/05/4210-0131-Warni...
        
       | apparent wrote:
       | > One does not simply get the camera status on a MacBook.
       | 
       | What you need is a sensor right near the green dot that detects
       | whether it's turned on or not. Could use a full-blown camera, but
       | probably a simpler sensor would work too.
       | 
       | Only half-kidding.
        
         | NitpickLawyer wrote:
         | > One does not simply get the camera status on a MacBook.
         | 
         | ? OverSight [1] seems to work just fine. It pops up whenever
         | something uses the mic or camera (the usage for this tool is to
         | "monitor" for unwanted access from rogue apps). Since it's open
         | source it should be possible to check how they get the status?
         | 
         | - https://github.com/objective-see/OverSight
        
           | dhosek wrote:
           | Skimming the code, I think it also monitors log events.
        
           | shermantanktop wrote:
           | That's what I use. Oversight runs scripts on events, which is
           | great. However! now you have the problem of rapid events with
           | overlapping scripts ending up with inconsistent state. I
           | solved that with a lock file, but still get stuck states
           | sometimes.
        
       | telesilla wrote:
       | Next trick - hook up a Recording sign when your DAW is in
       | playback or you are live on the air.
        
       | jcynix wrote:
       | A simple, almost analog, solution is some nightlight which can be
       | manually turned on or off, e.g.
       | https://www.amazon.com/dp/B0FSL3Q7PW
        
       | rnoorda wrote:
       | I made a simple ON AIR sign with LEDs inside that I change to
       | reflect what I was doing. Red means I am in a meeting or totally
       | focused, blue means I'm working, but someone can interrupt me if
       | needed. Green means I'm not working, come on in!
       | 
       | The only issue with my setup- I work from home. My wife does not.
       | No one is there to care if they can come in or not. It was
       | building something fun to solve a problem I never had.
       | 
       | Would do again.
        
       | Uptrenda wrote:
       | why does the site keep upvoting trivial projects especially
       | derivative projects of what people seem to reinvent every few
       | months. No offence to OP. I don't really get the site. Like, you
       | have posts where someone runs doom or an OS in a PDF file that
       | get 1000 upvotes which I think is valid. Then we get something
       | like "I made an echo server" which is like someone copypasted
       | code from an asyncio documentation page and put it on Github and
       | that will make it to the front page. Again, just feels like it
       | doesn't belong on the front page. It's not news worthy or
       | interesting in any way.
        
       | patatino wrote:
       | My solution is simple: noise canceling headphones, which I only
       | have on for meetings. If the wife sees them, she knows
        
       | cuu508 wrote:
       | Here's my low tech do-not-disturb device ;-)
       | 
       | https://i.imgur.com/rnwEGIZ.jpeg
        
       | poolnoodle wrote:
       | Door locks exist
        
         | ThrowawayTestr wrote:
         | Where's the fun in that?
        
       ___________________________________________________________________
       (page generated 2026-01-07 23:01 UTC)