After running for 10 years the pinball machine finally broke. Rather than scrapping it, we determine what was wrong and pulled out the driver board and the connection to the Linux machine. We replaced both of these with a board we designed and built consisting of an Arduino Mega, a set of solid state relays, and other assorted parts. We also replaced the 5 front panel gas-discharge displays with solid state displays we built. We wront a complete pinball program for this configuration and, after some experimentation, had a working pinball machine again. Unfortunately, there is a bad connection between the board and the front displays that arose which we haven't been able to fix due to Covid restrictions. Once things are back to normal, we hope to fix that and upgrade the program.
In addition to playing pinball (when we can) we actually have done some research in the IoT area.
I have a sign outside my office. Not really a sign, but actually a chrome tablet running a kiosk app displaying a synamically updated image. The image tells mu current status, if I'm available, when I'll be back, how to reach me, etc. The convenient thing is that it is automatically updated so I don't have to worry about it. It uses bluetooth to see if I'm in my office, a motion sensor to see if I have visitors, an off-the-hook circuit to see if I'm on the phone, and has access to my Google calendar. For Covid, it checks if I'm active on my home machine, if I'm currently using Zoom, and if I'm in my "office" Zoom meeting where people can just join me. Based on this and a set of 25-30 rules it decides what to display and updates the display accordingly.
We wee this as a specific instance of a more general problem, that of "programming" a set of IoT devices based on a complex set of conditions. IFTTT is insufficient even for something as simple as our sign. We needed something more complex. We build UPOD as a prototype for experimenting with this. It uses a prioritized set of rules and a synamic set of sensors, conditions, and actions. we have interfaces for our sign as well as smarthab and smarthings. Most of our research here has been on developing user interfaces that are understandable, programmable and debuggable by the non-programmer.