Show us your gear: Greg Gorman and an IoT command center for work and play
Outfit your office with top-notch audio gear, smart devices, Node-RED and maybe even an AS400
I admit it – I’m a total nerd when it comes to gadgets and toys, it’s pretty obvious looking at my desk! A quick scan of my network shows 39 devices on SmartThings, 92 that Alexa knows about (along with four Echos of various types) and 66 devices on my wi-fi and ethernet network! While some are work-related, many others are more about learning to hack on IoT devices as a side-hobby.
First, for work. Not really any IoT, just nerdy audio gear. My desk is set up and tuned for “good audio” web meetings and recordings. I use an iRig Pro Duo (from an online music store) to connect a Sennheiser MK4 broadcast-quality microphone (from eBay) on a cheapie overhead arm to my Mac via USB. It sits on a docking station that provides wired ethernet, two HDMI outputs and a stack of USB ports.
Along with that is my Amazon Echo (one of five in the house), wireless keyboard and mouse for the Mac, charger cables and a wireless pad for my phone. Of course, you’ll also find sticky notes (thanks, IBM Design Thinking), the obligatory “sugary caffeinated drink”, and a fidget spinner on my desk to make it real!
For video, I picked up a small webcam (on the right) and a flexible arm just to play with different camera angles. It’s a little bit on the wide-angle side and distorts images a bit, but it offers very nice 1080P HD video quality and was less than $40.
On the audio output side of things, I’ve set up a “pro” audio system – yeah I’m old, so I’m hard of hearing… But it’s a system that I use for other things besides work so it’s easy (easier? ok not really…) to justify it. The speaker output side of the iRig Pro goes to an active crossover that sends the mid/high signals to a pair of Bose S1 Pro speakers on stands and the sub-woofer output – bass to a 1,000 watt amplifier and 18” subwoofer. Yes, it’s overkill. I found it all on eBay as used gear.
I’ve got the house somewhat automated as well. I’ve put in about ten or so light switches, LifX smart bulbs, a Philips smart bulb set, a system for my garage door (Liftmaster MyQ ), smart door lock from Schlage, and smart plugs all over the place. Several Wyze cameras inside the house and Blink XT cameras outside provide my security.
Fun with Node-RED
It’s fun now because I can use Node-RED to tie it all together. I use a Raspberry Pi 4 as my “home server” and it generates a set of dashboards for me. Getting all that data collected – and some fun ‘snooping’ stuff was just a little challenging.
I’ll step through a few of the flows that give some neat displays:
1 – SmartThings The House Status page shows, by room, the on/off and brightness of all lights, switches and smart plugs. I also have a few Smartthings sensors scattered around – in my main refrigerator, the wine refrigerator, a water sensor near my A/C unit looking for clogs, one near the washing machine, under the kitchen sink and out by the hot water heater in the garage. There is a package – https://github.com/stjohnjohnson/smartthings-mqtt-bridge that connects SmartThings to MQTT. Then it’s pretty simple to read those messages in Node-RED and display them:
2 – LifX lights are picked up by SmartThings so they can also be dashboarded easily. Philips lights don’t but there is a node that you can use to connect to them and build the same dashboard.
3 – I also read the status of the garage door to see if it’s open or not. I’m notoriously bad at leaving it up, so whenever my garage is open, every smart-light in the house flashes orange! Pretty obvious even to me that I left the door open…. MyQ has changed their API (it’s non-public) so I’m researching how to get into it again. Soon.
Comms via MQTT
I’ve mentioned MQTT several times now. I try to find packages and methods to get everything connected that way because then it’s super easy to dashboard everything. MQTT is a lightweight IoT transport protocol, with plenty of open source support. See http://mosquitto.org/ for details. I set up a Raspberry Pi 3B+ to run it, and then I have a central hub that collects as much of the data as I can get my hands on.
The “kiosk” shows everything for the house
I have an old monitor and a Raspberry Pi 4 on top of my fridge (with a Blink camera, Blink XT hub, and Smart Blinds gateway underneath it ) rotating in kiosk mode through a bunch of displays every 15 seconds. The house status is one: As you can see down the side there are seven other pages, although I only show the lake info, stock ticker, and weather alerts along with other displays.
To make it work like a kiosk is fairly straightforward. Create a file named ‘autostart’ in this location:
~/.config/lxsession/LXDE-pi with this as contents: @lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @point-rpi @xset s off @xset -dpms @xset s noblank @chromium-browser --disable-restore-session-state --disable-infobars --disable-session-crashed-bubble --noerrdialogs --kiosk https://dakboard.com/app?<your dakboard> http::/url1 https://flightaware.com/miserymap/ http://url2:1880/ui/#!/0 http://url2:1880/ui/#!/2 http://url2:1880/ui/#!/3 http://url2:1880/ui/#!/5
The Xset commands disable screen timeout and screen saver. The options on the browser line put it in kiosk mode (no menus, no top bar, take over the whole screen).
The key here is that if you list multiple URLs on the browser start line it will open a tab on each one. Then I use an add-in called “revolver” that jumps tabs every 15 seconds. Bingo, you have a whole-home infocenter!
I also have three Raspberry Pis that run the FlightAware ADS-B tracking system. They pick up aircraft within about 200 miles of me via their transponders and show altitude, location, and other information on a map. Always pretty cool to see all the hardware over your head. You can see what my sites are tracking at flightaware.com. I just have one of the trackers in the kiosk rotation, mostly for the weather radar background.
Other displays the kiosk shows is the Flight Aware Misery Map – I used it a lot when I traveled, and then a custom display from Dakboard that integrates calendars, news and weather. All around pretty useful to get a snapshot of the day. The gray bars are covering my calendar. 🙂
Snoop your neighbors!
Some of the more “fun” projects are a little more esoteric – I have a Pi that is “snooping” the 433Mhz band for “information” using the RFLink receiver/transmitter. They aren’t developing it much, but there are other solutions – I’ve also tried RFXCOM and it gives similar results.
433 MHz is a free-for-all radio band used by the cheapie remote controls, some wireless alarm systems, the wireless thermometers you by at the super store, etc. There’s a bunch of information at domoticz.com, and I’ve managed to grab my outdoor thermometer and several of my neighbors’ as well. It integrates with MQTT so it’s super easy then to display that info on my dashboard:
I also have a Pi running a Pimorini Enviro-HAT and an add-on particulate sensor. That’s a neat little device that reads a lot of environmental data and (of course) can put it on MQTT so then it’s simple to output to the dashboard:
It’s very interesting to see the particulates change when I open the windows in my office and the readings on the gases chart move around – I’m still trying to figure out what are “good” readings and then the best way to display them. The sensor shows the readings in ohms (resistance) of the sensors and they suggest just looking at trends. So when I have time I’ll work up some graphs for it.
Driven by data
Finally my main server also calls out to a few places to get info – creating a stock portfolio display (info by IEX), a “lake status” display (info from US Geological Survey) and a weather display (info from the US National Weather Service ):
I just recently added some automation to my front window blinds too – using Tilt’s “My Smart Blinds” hardware, and they can be controlled by Alexa. Not sure yet if I can hack the open/closed status but I’m working on it.
Everything is controlled by Alexa – so I have several routines set up for morning, going to work, coming home at night and bedtime. Light controls, reports and all kinds of status updates can be had by just asking her vitally important things like “Alexa, what’s the temperature of the wine refrigerator?”
Did you know she can also talk to Node-RED? Check this out https://alexa-node-red.bm.hardill.me.uk/docs This configuration allows Alexa to call Node-RED which reads the device inside my wine refrigerator and returns the temperature. I do the same for the Outside Garage sensor that is snooped by Domoticz. The flows are simple, but the results are fun and informative!
Now I can say “Alexa, time for work!” and she dims or turns off most of downstairs, turns on the stairway lights, my office lights, cabinet and desk lights and finally tweaks the thermostat so it’s more comfortable upstairs in my office than downstairs! Fun!
Just one more thing, that has nothing to do with home automation or work desktop – I’ve also discovered that an old IBM AS/400 makes a great end table! This one still boots up, passes all tests and has working drives and console. Not sure what I can do with it but it sure makes for a good room heater and white noise generator! And when you’re working from home as much as we all are now, making your work space work for you has never been more important.
Yes, I’ve gone a little overboard here at Casa de GG, but it’s fun and it keeps my skills somewhat sharp. Since I’m helping run the IBM Developer website and the Call for Code campaigns, I need to get back to my engineering roots every now and then! It’s fun, impresses visitors and makes my family roll their eyes at me! What could be better than that??