I just rigged up something similar: a DBUS listener for PulseAudio mic activity that publishes MQTT events to Home Assistant via discovery. No device config needed. I use hallway RGB lights to signal status ("purple = I'm in a meeting"). Quick and easy setup, I already had the RGB lights for mood lighting. Runs as a user systemd unit.
pammf 2 hours ago [-]
Would it switch the lights if you’re only listening with headphones while your camera is open?
Most of my awkward moments happened with family members casually cruising on my background while someone else had the word. Usually they can hear when I’m speaking and don’t enter the room.
garyfirestorm 3 hours ago [-]
This sounds like a proper way to do it. Maybe I am biased for MQTT but I like your approach.
Aurornis 3 hours ago [-]
Triggering based on the webcam is very smart.
I can think of at least 5 different companies that have tried to launch similar products, including a couple local startups. Most of them had some sort of manual control which everyone gets tired of after a couple days. The few people I saw try to use the manual lights would forget to turn it off, which turned it into a false alarm system, which quickly taught everyone to ignore it and peek their head in anyway because it was on so frequently that everyone knew it had no actual correlation with the person being in a meeting.
raggi 5 hours ago [-]
I've considered doing something like this a few times, this is seriously ripe for an ON AIR sign :D
lemming 2 hours ago [-]
Mine is even simpler - I just control an off-the-shelf smart bulb via a couple of macOS Shortcuts, which is trivial using Homekit. Those are driven by Hammerspoon which triggers the shortcuts based on the camera events. No custom hardware and like 20 lines of code (not including the shortcuts, I guess). I have the bulb in a normal lamp base outside my door. It's properly event driven rather than polling, too.
zimpenfish 2 hours ago [-]
Similar - Hammerspoon detects whether I have a Teams meeting window open (I never have my camera on) and calls out to Home Assistant to control a WLED strip visible outside the room. Also have a Zigbee button for ad-hoc control if I'm called into a Slack huddle, etc.
(I've also got it parsing my Outlook iCal to do "meeting pending", "meeting maybe pending" but it turns out that Outlook's iCal is nonsense and parsing it is a fool's errand.)
tonyarkles 5 hours ago [-]
Lots of haters today. Love it, great opportunity to build something that solves a problem for you for cheap and gives you an opportunity to play with some tech.
sanex 6 hours ago [-]
If I ever find myself in your town I'm going to get free wifi.
But seriously I've wanted to build something like this for so long just never had the time. Going to definitely do it now. Love the idea of using the camera status to change the light.
franciscop 5 hours ago [-]
Love it, I was expecting for some reason you routed a cable to the Webcam LED, or at least a light sensor (though that would make the lid unable to work if it's a laptop). But this is even more elegant, I guess I've been trying to do more hardware hacking recently and I read ESP32 so my expectations were off.
turtlebits 2 hours ago [-]
What happens if you turn off your video? For large or long meetings, I generally turn my camera off.
jumploops 2 hours ago [-]
This is so awesome.
I thought about doing something similar during Covid, but mounted above the door frame.
Ended up getting a real office instead. WFH was great... until the toddler became tall enough to open doors :)
nine_k 6 hours ago [-]
A great alternative to https://busy.bar/ if all you want is the core functionality, not bells and whistles, for the 10% of the price.
ctxc 45 minutes ago [-]
It says $250 (but of course, pretty cool). Esp module is probably <$10. What am I missing?
ctxc 42 minutes ago [-]
Edit: misread parent, ignore.
OhMeadhbh 4 hours ago [-]
thx for the reference, though i think the bells and whistles may have been the point.
nine_k 3 hours ago [-]
Indeed! Market segmentation ftw ;)
shermantanktop 4 hours ago [-]
I built a similar thing using Bluetooth to a ESP32.
The hard part is reliably detecting camera status. I’m currently using a utility called Oversight, but it is event-based and the dodginess of the Bluetooth connection means the device gets out of sync.
The python script takes a different approach, so I’m going to check that out.
declan_roberts 3 hours ago [-]
Well done! I've been thinking about something like this for a long time. I considered using the Google API to check for calendars but the camera is so much better an idea!!
OhMeadhbh 4 hours ago [-]
as a generic aside, this seems like it's more of a "LAN of Things" project than an IoT device. It seems it would work fine if the upstream IP dialtone cut out for a while (though i'm guessing you wouldn't be doing too much video conferencing if that happened.)
but the core functionality doesn't require a server in the cloud, so by definition it's not IoT. just a nit though. it's still a cool little hack, no matter what you call it.
AStonesThrow 4 hours ago [-]
The definition of "IoT" requires neither Internet access nor cloud server functionality.
The core idea of IoT is that everything is capable of communicating on some network, whether that device is a fridge, a coffee maker, a dishwasher, a speck of dust, or a light bulb. The idea is that networks can connect more types of "things" than just general computing devices. The type of network and the reach of said network is sort of immaterial.
The author has created a specialized widget which communicates over a network. By definition, that is IoT.
jader201 3 hours ago [-]
To be fair, while the definition does not require internet connectivity, the name certainly does imply that it does.
Even the linked Wikipedia article points this out:
> "Internet of things" has been considered a misnomer because devices do not need to be connected to the public internet; they only need to be connected to a network and be individually addressable.
onair4you 5 hours ago [-]
I like the ingenuity, but I didn’t want have to build custom hardware. My solution:
Lutron smart plug
“On Air” sign off of Etsy
Script to watch log file indicating the state of my webcam. On changes, triggers an Apple Home command to turn the Lutron switch off and on.
ctxc 41 minutes ago [-]
You should write about it and add pictures! :)
Liftyee 5 hours ago [-]
Neat little project. For these things, I usually find that simpler is better - use the minimum feature set to finish it and start use.
I recently found a server status bezel and was thinking of making a remote status indicator out of it... maybe I should reduce the features of that project too.
lurk2 5 hours ago [-]
A “Do Not Disturb” door hanger costs $7 on Amazon.
function_seven 5 hours ago [-]
And requires me to remember to get up and hang it before a scheduled meeting. Or not hang it when someone calls me and a meeting erupts. And I need to remember to take it down after each call. (If I don’t, then it’s just up all the time and might be taken as seriously as a Prop 65 Warning.)
Automations are really nice for certain things!
tekla 5 hours ago [-]
And I'm sure you've set up all the systems that make sure the complicated system is actually working and not dead weight or doing something unintended.
Versus, I dunno a door lock
Dylan16807 3 hours ago [-]
> Versus, I dunno a door lock
They just explained why a door lock has absolutely abysmal reliability.
"Making sure" the complicated system works significantly better than a door lock is actually really easy to do, because the door lock is so bad.
varenc 4 hours ago [-]
sir, this is hacker news
OhMeadhbh 4 hours ago [-]
obviously you need a remote motor that spins the sign to "do not disturb" when the meeting starts and then back around when it's over. and a sensor to verify it's in the correct orientation.
so you get the simplicity of the sign with the automation desired by the OP.
lazyasciiart 3 hours ago [-]
A webcam in the corridor that shows your office door from the outside, machine vision reads the image to know which orientation the sign is in. If a meeting begins and the sign is wrong, a little LED on the desk starts flashing red.
rzzzt 3 hours ago [-]
An alternative would be to spin the sign constantly around its center of mass while a meeting is in progress.
qareena 3 hours ago [-]
[dead]
sailfast 4 hours ago [-]
It's not about the price. It's because it's COOL - and because somebody did a fun thing with hardware and software, which is great!
matsimitsu 5 hours ago [-]
Which is more expensive than an esp32 and a led panel, and less convenient.
tekla 5 hours ago [-]
A "Do not disturb" sign costs roughly zero with a pen and a piece of paper.
Also, I have no idea how out of touch you have to be to claim that a simple sign that costs a few bucks is less convenient than something that requires power, another peripheral that requires power, and network access.
dathery 5 hours ago [-]
Fortunately my home office has an abundance of both power and network access (especially compared to the scarce resource of human attention!)
Why insist on being so negative? It's a cool little project. Just keep scrolling if it's not for you.
ctxc 48 minutes ago [-]
Exactly! Do these things not bring people joy in the drudgery of routine solutions?!
Dylan16807 3 hours ago [-]
> Also, I have no idea how out of touch you have to be to claim that a simple sign that costs a few bucks is less convenient than something that requires power, another peripheral that requires power, and network access.
If you go ask random people whether they'd rather update a sign several times a day, or plug it in and be done for a year, what do you think they'd answer?
There was a time I worked from the corner of our living room.My partner would often walk in during meetings, sometimes asking loudly where the charger was.
One day, I left a sticky note on the table:“In a meeting – please check back in 30 minutes.”Surprisingly, it worked.
What really changed things wasn’t the note itself, but the quiet agreement it created.
LurkandComment 6 hours ago [-]
I put a sign on my office door.
forgingahead 3 hours ago [-]
In college, people would just put a sock on the door....
ThrowawayTestr 4 hours ago [-]
mDNS is really convenient. Unfortunately the only way to install it on Windows is through old iTunes installers.
shadowgovt 5 hours ago [-]
I have a similar system at home: there's a door on my office, and I close it.
Most of my awkward moments happened with family members casually cruising on my background while someone else had the word. Usually they can hear when I’m speaking and don’t enter the room.
I can think of at least 5 different companies that have tried to launch similar products, including a couple local startups. Most of them had some sort of manual control which everyone gets tired of after a couple days. The few people I saw try to use the manual lights would forget to turn it off, which turned it into a false alarm system, which quickly taught everyone to ignore it and peek their head in anyway because it was on so frequently that everyone knew it had no actual correlation with the person being in a meeting.
(I've also got it parsing my Outlook iCal to do "meeting pending", "meeting maybe pending" but it turns out that Outlook's iCal is nonsense and parsing it is a fool's errand.)
But seriously I've wanted to build something like this for so long just never had the time. Going to definitely do it now. Love the idea of using the camera status to change the light.
I thought about doing something similar during Covid, but mounted above the door frame.
Ended up getting a real office instead. WFH was great... until the toddler became tall enough to open doors :)
The hard part is reliably detecting camera status. I’m currently using a utility called Oversight, but it is event-based and the dodginess of the Bluetooth connection means the device gets out of sync.
The python script takes a different approach, so I’m going to check that out.
but the core functionality doesn't require a server in the cloud, so by definition it's not IoT. just a nit though. it's still a cool little hack, no matter what you call it.
https://en.wikipedia.org/wiki/Internet_of_things
The core idea of IoT is that everything is capable of communicating on some network, whether that device is a fridge, a coffee maker, a dishwasher, a speck of dust, or a light bulb. The idea is that networks can connect more types of "things" than just general computing devices. The type of network and the reach of said network is sort of immaterial.
The author has created a specialized widget which communicates over a network. By definition, that is IoT.
Even the linked Wikipedia article points this out:
> "Internet of things" has been considered a misnomer because devices do not need to be connected to the public internet; they only need to be connected to a network and be individually addressable.
Lutron smart plug
“On Air” sign off of Etsy
Script to watch log file indicating the state of my webcam. On changes, triggers an Apple Home command to turn the Lutron switch off and on.
I recently found a server status bezel and was thinking of making a remote status indicator out of it... maybe I should reduce the features of that project too.
Automations are really nice for certain things!
Versus, I dunno a door lock
They just explained why a door lock has absolutely abysmal reliability.
"Making sure" the complicated system works significantly better than a door lock is actually really easy to do, because the door lock is so bad.
so you get the simplicity of the sign with the automation desired by the OP.
Also, I have no idea how out of touch you have to be to claim that a simple sign that costs a few bucks is less convenient than something that requires power, another peripheral that requires power, and network access.
Why insist on being so negative? It's a cool little project. Just keep scrolling if it's not for you.
If you go ask random people whether they'd rather update a sign several times a day, or plug it in and be done for a year, what do you think they'd answer?
> This endpoint receives a JSON payload with a status of “on” or “off”, and turns the LED panel red or blue accordingly
See also: https://github.com/JnyJny/busylight