Inspiration
We want to make Smart Home Devices more private and reusable. Of course we try to keep thing as simple as possible. This is why we will provide a graphical user interface to configure your devices easily.
What it does
We have one unified software running on all ESP8266, ESP32 or similar controllers. This software enables you to plug in nearly any kind of sensor or output. They will be controlled and configured locally by a central service running on a Raspberry Pi. With a PWA (Progressive Web App) you can control and configure your devices as easy as possible using your computer, tablet or mobile phone. You can also control your devices with voice using a Google Home or an Amazon Alexa.
Everything (except your recorded speech commands) stays within your own network. No port forwarding is required at all and no other device than your Raspberry PI requires Internet access, which improves your security. Also, other devices like radio-controlled power supplies and light switches are supported.
How we built it
For our user frontend, the PWA, we're using Angular with Angular Material and a NodeJS server for distribution, which also acts as relay between the IOT devices and the PWA. Here, we're developing in TypeScript, HTML and some SCSS. As centralized data storage we're using MySQL/MariaDB, which runs on the Raspberry PI. The client devices (ESPs) are developed using C and the ESP libraries.
Challenges we ran into
- Supporting a wide range of ESP boards which able to run the same software and control any kind of sensor is very difficult to realize.
- Also, we need to keep our ESP image as small possible because we need half of the space for the OTA (over the air) update.
Accomplishments that we're proud of
We are proud of improving the security of our IOT devices and the privacy of our users. Also, we love the possibility to update all your devices over the air at once using your web browser.
What we learned
- Bridging a network connection from Wifi to the LAN port is not as simple as it seems (on Windows).
- There are lots of different protocols for communicating with sensors over GPIO.
- Angular. :D
What's next for Smart Home
- Of course, we're trying to achieve our goals, that we've set ourselves.
- Making it open source and usable to everybody.
- Supporting even more devices, controllers and configurations.
Built With
- angular.js
- c++
- esp8266
- node.js