Intuitive user interfaces: One look at a group of sensors/switches should be sufficient for anyone to understand the current states and how to operate an interface. 💡
Redundant controls: Multiple interfaces should be able to control devices without interference. State changes from manual interventions or dedicated manufacturer apps should be tracked whenever possible.
No information overload: Provide just enough insights to get an idea of what's going on. And no need for data that's best consumed on more interactive devices (like stock prices, Steam community status…)
Not everything should be networked: Bathroom fan, pantry and laundry room lights have their independent motion sensors and that's a good thing. Same independence goes for the smoke detector: I sure don't want to require extensive skin grafts because I forgot an extra space in a YAML file. 😱
No Alexa/Cortana/Google Voice: I don't want to have advertising agencies, online stores, or other AI-feeding Big Brother tech-monsters listening in to everything we say and do just for the dubious convenience of toggling lights by voice command. Privacy-centered, offline voice-control solutions like Mycroft, Rhasspy look far more appealing.
Easy to read status and forecasts using Dark Sky data and only showcasing parameters that actually matter, shown in obvious ways.
Outdoor air quality monitoring with numeric levels and human-friendly categorization for ozone, carbon monoxide, nitrogen dioxide, sulphur dioxide, 2.5μm particulate matter and UV light, averaged from multiple surrounding public local stations.
Automatically rotate through device-based themes based on time of day (unless manually selected above).
LIFX Z bed underglow lights and ceiling wash lights control:
Manual theme selection.
Automatically rotate through cloud-based themes based on time of day (unless manually selected above).
Automatically correlated colour temperature (CCT) for f.lux-like white temperature shift to gradually remove blue light based on a custom colour and brightness curve, not simply based on the sun …otherwise Canadian winters would be quite yellow!
Motion-based nightlights where strategic lights fade in, dimmed very low, when movement is detected at night, say when someone wakes up to go the bathroom …again.
Cellphone device sensing to check who is currently home or away.
Tamper monitoring in case a perimeter device has been played with.
Water leak monitoring to be able to react quickly when a pipe breaks.
Outdoor camera preview to see who is at the door.
Opened door alert to know if someone left an exteral door open.
Opened door indicators where a chime is played and a few lights change colour briefly and subtly when the front door opens/closes, say to indicate an oblivious showering partner that their better half has left or just came in.
Aeotec Minimote to quickly control global scenes and modes.
Flic buttons on a nightstand and in the kitchen for triggering modes and controlling localized lights, depending on current states and click types.
HADashboard for wall-mounted tablet, featuring indoor sensors reports, transit schedules, weather forecast and radar/sattelite maps, wrapped in an obvious navigation scheme for much UX goodness. Have a look at /appdaemon/dashboards/, you'll like! 😍
Raspberry Pi 3B+ for it's compatibility, low-power, good-enough performance, and affordable price.
SSD via Sabrent USB adapter to increase IO performance while reducing chances of disk corruption versus microSD cards.
Ubiquiti UniFi networking gear because forking over some dough for reliable, rock-solid prosumer equipment makes everything run smoothly. And because hearing one less complaint (dropped WiFi signal) from the girlfriend is priceless. 🤕
Uninterruptible power supply to ride over transient power failures.
WiFi for its cheapness, omnipresence and non requirement of vendor-specific hubs.
Z-Wave for reliability and guaranteed interoperability between vendors (unlike Zigbee…)
Dedicated, firewalled VLAN (Virtual LAN) to segregate all IoT devices from other equipment …because I cannot trust that my vacuum cleaner won't go on a killing spree. Ever seen Runaway (1984) with Tom Selleck? Eek! 😱
Local static IPs for all devices to minimize random drops.
Local development on a local virtual machine using Python Virtual Env and Docker, then pulled with GIT on a Raspberry Pi.
Plentiful documentation for my later self and to help out others.
Shareable code with all identifiers kept in a non-committed, secrets.yaml file.