Smart Home 2.0
Tracking our attempts to setup our new home
After deciding to move from Germany to Switzerland, in 2023 we moved into a new home and started renting out our old house. Between building our old house, and building this new one, a lot had changed in terms of my priorities for home networking:
- Houses in Germany/Switzerland tend to have solid concrete walls, so ethernet wired liberally was a requirement
- Fast internet is cheap in Switzerland and I wanted to make use of this; our street in Ennetbaden gets 25 gb/s fibre, for only 777 CHF (~840USD) per year
- In our first build, we took the budget smart home route (Shelly/Hue), and wanted something more reliable and better integrated into the home
The following is a WIP, mainly to document for myself and Tina how the home is configured.
Table of Contents
The network map
First, starting with the lay of the land.
To KNX or not to KNX
KNX is a wired approach to smart homes. If you are talking about the kind of automation a stadium or hospital needs, KNX is likely an approach that is appropriate. If money and foresight is unbounded, it’s the way to do automation. It’s also rigid as focusses on physical wires. Our electrician said it would have cost more than 30k CHF extra on top of the costs of a normal wiring. And while KNX can integrate with other open source platforms via an IP module, the primary logic for KNX is trapped within ETS, which was far less open and accessible than I liked. Ultimately I decided against KNX as I’d rather spend the money incrementally, and focus on products that have nice APIs or integrate easily into Home Assistant.
The user stories
- I want to be able to control lights, shutters, marquees, and scenes via voice control
- I want to know power consumption and solar generation for our home
- I want to be able to define a time/motion-based automation, like the kids bedtime audiobooks stopping and lights changing at a certain time
- I want to modify an automation based on context, e.g. corridor lights respond to motion depending on ambient light and/or time
- I want key events in the home to notify me (e.g. James and Tina have left the home but door it unlocked)
- I want to know who approached my property (video/video doorbell with person detection)
- I want presence detection in transitory spaces (e.g. turning on hallway and bathroom lights should always be automatic)
- I want both iphone, iwatch and tablet interfaces to pull in home and external information (external example being live public transport information)
Right now I have the following features:
- Motion and light based lights were it’s useful (e.g. hallways)
- A smart door I can unlock from my watch/phone
- Set the oven to pre-heat (or stop it)
- Receive and view the doorbell activity remotely
- Understand light and energy usage across the home
- Be warned about humidity or temperature fluctuations in the house
- Have shutters open and close, but reactive to the current scenario (e.g. if already open slightly, don’t open fully)
- Understand who is home via which mobile phones are present on the wifi
The smart home components
Home Assistant is an open source python library for home automation. I have it installed on a small intel NUC server, using the dedicated Home Assistant OS (HOAS). This machine is the central brain of the house, listening, translating and tracking what all the smart home components are up to.
Currently I run Plex as an app on a WD PR2100 NAS, with the drives configured in RAID 1, meaning I have data duplicated across two 2TB disks. The NAS is also doing incremental updating to an external cloud provider.
Lights, shutters and marquees
I wanted to move away from smart bulbs to smart switches, as
it really annoyed me with Phillips Hue when a bulb is turned off at the wall. There are alternatives like putting a Shelly or Sonoff module behind the wall, but then I came across a Swiss company called Iolo that makes some great looking smart wifi switches called Dingz. There is a price difference between the Shelly’s (15 CHF per switch) vs the Dingz (265 CHF per switch), but as my upper limit was KNX the price seems very reasonable. The Dingz also come with a motion sensor, temperature prob, 4 buttons, and can take 2 shutters/marquees or 4 lights per Dingz.
Another consideration was a general fear of the cloud for my home’s brain.
I wanted to make sure the core function of lights and shutters would work when
the network was down. I also have a
roborock vacuum, so have always been
intrigued by how much data is shifts outside my home network. So the idea was to
wire up each light to a single button on a Dingz (and each shutter or marquee
to two buttons), and then use remaining buttons for scenes (e.g. a scene used
every day in our old house is ‘morning’, which opens the shutters and turns
on the dining and kitchen lights). This meant if the home automation server
crashed, the scenes would stop working - but the core functionality of
turning a light on or
off, or moving a shutter up or down, would be working fine.
- Grid traffic To track energy use I Shelly 3EM CT clamp, that is installed over the three input phases to the house. Being attached to the 3-phases entering the house, this measures power use and also if generated solar energy is greater than consumed, returned electricity to the grid from our solar panels.
- Solar generation [WIP - Solar]
Fridge. Steam oven. Oven.
The main page of the dashboard has the core info we need day to day. As the dashboard screen turns on as you walk past, this makes the weather and calendar super useful.
Walking through the screen in a clockwise fashion, we have the local weather forecast, our 2-year olds baby cam, the family google calendar, and where the presence sensors in the house currently detect someone.
Moving to the first column, we have the current humidity and temperature ranges across the house, number of lights on, and some actions (e.g. the chicken icon calls the family to come and eat using all the speakers across the house). Then there is a a button to either open the front door or to lock the deadbolts. Followed by the accent lighting control for the lounge. There is also a guest devices card - it prints how many devices are active, and if you click it then you get a QR code to join the guest network. Then there is the server stats.
The last section has a card that shows the next two buses from our house to the main train station, pulled via the SBB API, and then a card showing where James and Tina are. If we are home for awhile, it switches to ‘paused’ to not tax the battery, but usually if out of the home it shows how many km from home we are via waze directions.
Page 2 has the controls for the lounge, which is where we use this dashboard most of the time.
I am not showing page 3 as it shows a floor map of our home defined by the robot vacuums, and page 4 as it shows the cameras outside the house. But as a general guide - we can see a map of the house and send one of the robot vacuums to any location. And we have a live feed to 4+ cameras.
Page 5 has the sensor graphs. We have temp in every room thanks to the Dingz light switches, but in the dashboard only show key locations. We also track humidity, total number of lights on, and power use for my home assistant/plex server and my desk.
Lastly, as it’s a dashboard I can display anything. The
Freezer pages just display iframes for
our family recipe website and a page that shows the contents
of the freezer via a published gsheet.