Smart home servers are perhaps one of the most important aspects of any given smart home. Despite that, they are often ignored or disguised using other terms such as "smart hub" or "controller". Understandably, this can cause quite a bit of confusion leading to many users simply purchasing whatever the most convenient option is. Depending on what you are doing, this can be a bad thing as there are many options to choose from, and it is easy to pick something underpowered or too expensive.
Home Assistant is a popular DIY platform for building a smart home. It allows the use of almost any smart device in the world via the integrations that are either part of the core software or released by the community. Unlike many of the other smart home controllers, there is no cloud-based solution allowing remote access provided out of the box. That's why we are going to be walking through the process of setting up remote access in Home Assistant, step by step.
HomeKit is great. It allows anyone to effortlessly set up a smart home entirely offline without the usual hassle of finding a hub that uses an offline protocol and operates without connecting to the cloud. These benefits are typically reserved for those with a HomeKit hub such as a HomePod or an Apple TV. However, there is a way to use a Raspberry Pi as a hub allowing the use of compatible devices without needing an official HomeKit hub.
The idea behind smart buttons is pretty cool, you have a button that you can place anywhere, and pushing it will communicate with a controller that can make anything happen within your home. The problem is that many of these smart buttons also cost an absolute fortune. So today we're going to build a smart internet button ourselves that will cost less than 10$ to build per unit, and possibly even less if you buy all the required materials in bulk to build a few of them!
In a previous post, we demonstrated building a voice assistant out of open source components. One of the issues that we didn't address at the time is that there are still dependencies on the cloud for some of the critical functions, such as the Speech to Text engine. Here we will see how we can modify that system to operate (almost) completely offline.