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:
The following is a WIP, mainly to document for myself and Tina how the home is configured.
Table of Contents
The network map
Before moving into the house I planned out the following internal network diagram.
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.
Example of the features I want
- Can control lights, shutters, marquees, and scenes via voice control
- Know power consumption and solar generation for our home
- Define a time/motion-based automation, like the kids bedtime audiobooks stopping and lights changing at a certain time
- I want the house to react to the environment, for instance closing awnings if raining or having shutters closed based on the suns azimuth and intensity
- Modify an automation based on context, e.g. corridor lights respond to motion depending on ambient light and/or time
- Key events in the home to notify me (e.g. James and Tina have left the home but door it unlocked)
- 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)
- iphone, iwatch and tablet interfaces to pull in home and external information (external example being live public transport information)
- Motion and light based lights were it’s useful (e.g. hallways)
- Can open the door remotely
- Set the oven to pre-heat (or stop it)
- Receive and view the doorbell activity remotely
- Be warned about humidity or temperature fluctuations in the house
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 good 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 two
roborock vacuums, 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.
One pain point though after going with Dingz is that the Iolo company are terrible at documentation, and maintaining backwards compatibility. Initially I used the REST API for Dingz, and struggled with this poorly written documentation, but recently I’ve been able to leverage the fantastic work done by a group maintaining a homeassistant plugin that abstracts away needing to write your own code against the API.
- 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 Another 3-phase CT clamp is used to monitor the amount of energy being generated by our solar panel.
We have wifi enabled appliances, like the dishwasher, dryer, oven and steam oven - but in practice we don’t really use this. The only relevant integration I could think of would be starting the dishwasher when it’s sunny, but it’s already easy to do that via the switches on the machine.
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.
Below is the dashboard as it looked when we first moved into our new house.
Home assistant is essentially just pushing up an HTML/js/css website as a dashboard, which means it can be modified freely. Here is the same dashboard, with some tweaks from ~3 months later.
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.