DIY Open Source Smart Home with a Raspberry Pi

Hi and thanks for your interest!
I have summarized the current status of my smart home in a video:

Video overview of the DIY open source smart home with a Raspberry Pi


Automated installation with the script

The script was made because of the need to offer more flexibility and customization options than a Hass.io installation.
A Hass.io image makes it easy for you, which is great, but simplicity usually comes with restrictions.
If you want to expand your system yourself without running another Raspberry Pi in parallel, this script will help.
First, necessary and useful programs and frameworks such as Docker, Python etc. are installed on the raw Raspbian OS.
Then NodeRED is installed natively (not as a Docker container). This brings some additional features and a simpler configuration without annoying workarounds.
In addition, Log2Ram (less SD card writing – longer life for SD cards), RTL_SDR software for e.g. 433Mhz sensors and rpiClone for simple backups can be installed directly.
Currently the script offers automated installation for the following programs – They come preconfigured and with some addons (your own extension is of course possible):

Default Installation

Native:

  • NodeRED the following Nodes
    • node-red-contrib-boolean-logic
    • node-red-contrib-config
    • node-red-contrib-counter
    • node-red-contrib-dwd-local-weather
    • node-red-contrib-eztimer
    • node-red-contrib-file-function
    • node-red-contrib-fritz
    • node-red-contrib-ftp
    • node-red-contrib-home-assistant-websocket
    • node-red-contrib-ical-events
    • node-red-contrib-influxdb
    • node-red-contrib-looptimer2
    • node-red-contrib-modbus
    • node-red-contrib-smartmeter
    • node-red-contrib-speedtest
    • node-red-contrib-sunpos
    • node-red-contrib-telegrambot
    • node-red-contrib-time-range-switch
    • node-red-contrib-timerswitch
    • node-red-contrib-ui-level
    • node-red-contrib-vcgencmd
    • node-red-dashboard
    • node-red-node-email
    • node-red-node-pi-gpio
    • node-red-node-ping
    • node-red-node-random
    • node-red-node-serialport
    • node-red-node-smooth
  • Essential programs, frameworks and libraries:
    • arp-scan
    • autoconf
    • build-essential
    • cmake
    • curl
    • expect
    • ffmpeg
    • gcc
    • git
    • htop
    • imagemagick
    • imagemagick-doc
    • jq
    • libcurl4-openssl-dev
    • libfftw3-dev
    • libimage-exiftool-perl
    • libtool
    • libusb-1.0-0-dev
    • libusb-dev
    • libxml2-dev
    • mkdocs
    • mosquitto-clients
    • mpg123
    • ncdu
    • ncftp
    • netdiscover
    • nmap
    • parted
    • pkg-config
    • pv
    • python-dev
    • python-serial
    • python-smbus
    • python3
    • python3-pip
    • raspberrypi-kernel-headers
    • screen
    • ssh
    • sysfsutils
    • tcpdump
    • telnet
    • unzip
    • usbutils
    • virtualenv
    • wget
    • zsh

Docker:

  • InfluxDB
  • Mosquitto MQTT
  • ei23 App-Dashboard (nginx)

Selectable at initial installation

Native:

  • RPI-clone
  • SDR DVB-T Stick (433Mhz Receiver)
  • Log2RAM

Docker:

  • EspHOME
  • Grafana
  • HomeAssistant
  • Motioneye
  • Nextcloud (official)
  • PiHole
  • Portainer
  • Rhasspy
  • Tasmoadmin
  • Traefik
  • Vscode

As docker-compose templates included

  • Awtrix
  • Deconz
  • Domoticz
  • Duplicati
  • FHEM
  • FireflyIII
  • Gotify
  • Grocy
  • Homebridge
  • IObroker
  • NextcloudPi
  • NginxSSL
  • Octoprint
  • OpenHAB
  • PaperlessNG
  • Teamspeak
  • TimescaleDB
  • Wireguard
  • Zigbee2mqtt
  • HomeAssistant-Supervised (Installation possible with ei23 ha-supervised) -> not recommended / maintained

I myself do not use some of the programs. For example IOBroker, FHEM, HomeBridge or Openhab. So please don’t expect any answers from me on that..
Status November 2021


You want to set up your own Cloud at home?
Nextcloud Blogpost

You want to build your own smart home?

Subscribe to the ei23-newsletter to get exclusive content like the installation script and stay up to date.

Statistics

There a you are wrong here installations worldwide – The last successful installation on a new device was you are wrong here hours ago


But even if you just want to set up a data storage cloud (Nextcloud) for your home, it is possible with it.



Shopping List

Amazon Partner Links


AliExpress Affiliate Links
[I get a small commission on your purchase, so you can support the project without it costing you more.]



FAQ – Answers to frequently asked questions

>> Program XY does not work, how do I reset it without reinstalling?
Portainer is reset, for example, with the following command (this also works with all other programs except with the ei23 dashboard, Home Assistant, Mosquitto and NodeRED):
cd ei23-docker/; docker-compose stop portainer; docker-compose rm -f portainer; sudo rm -r volumes/portainer/; docker-compose up -d
For example, if NodeRED does not work, there is probably another problem. See “Which devices and operating systems are supported?”

>> Which devices and operating systems are supported?
Officially, I only test and develop for the Raspberry Pi 4 (2GB or more) with a fresh installed Raspberry Pi OS. It may also work on other systems, but I cannot offer any help for that. If the ei23 script has been installed on an existing installation on which you or an installation program has already installed other services and programs, problems can also arise that I cannot narrow down due to the almost infinite possibilities.
I do not offer any help or solutions for this either, because it is and will remain a DIY project and not a service with warranty claims.

>> I installed a program myself, now another one no longer works!
Maybe a double usage of network ports? Have a close look at the docker-compose.yml (in home/pi/ei23-docker).
Basically anything that is not installed via the script or a ei23 tutorial can cause problems (also there surely can be problems). DIY applies here!

>> I can’t find NodeRED and the software for the RTL-SDR DVB-T stick in Docker-Compose.yml or in the templates!
That’s right. NodeRED and the software for the RTL-SDR DVB-T stick are installed natively during the initial installation, it is not a Docker container. Not installing NodeRED is not an option with the ei23 script, as NodeRED should usually be used anyway. It’s just must have.

>> Can you also include program XY in the script?
Possibly, if there are no conflicts with other programs and I find the time, yes.
However, it is recommended not to have all programs running at the same time, although the script offers it. There will be almost no one who needs OpenHAB, IOBroker, FHEM and HomeAssistant at the same time and then the Pi won’t have such a hard time 😉

>> How do I change the passwords and usernames?
You can do that with the script. Just run bash ei23.sh.

>> Which weather stations and 433Mhz can I integrate with the RTL-SDR DVB stick?
You can find a list on the project page .
Most unencrypted 433Mhz devices should work.

>> Is the transmission over unencrypted 433Mhz secure? What is the range?
No, unencrypted 433Mhz should be used for temperature sensors, weather stations, or for contact sensors in uncritical areas and you should be aware that the neighbor can theoretically log or clone / falsify signals.
So: know your neighbor 😉
The big advantage are prices and the wide range of products.
The connection quality of 433Mhz devices, most of the time, is only slightly better than WiFi with 2.4Ghz.
Wifi, on the other hand, is usually encrypted, but requires more power (when operated on batteries) and its more expensive.

>> Where can I find the Home Assistant configuration files?
The folder with the configuration files and the Home Assistant database has the path:
/home/pi/ei23-docker/volumes/homeassistant/config
If Home Assistant does not start correctly, for example because “automations.yml” is missing, you can create the file with the following command line command and restart Home Assistant.
sudo echo ""> /home/pi/ei23-docker/volumes/homeassistant/config/automations.yml; cd ei23-docker/; docker-compose restart homeassistant; cd ~

>> How do I integrate cameras into MotionEYE and which cameras work
At ispyconnect there is a list of cameras with the corresponding URL for the video stream. This URL must be inserted in MotionEYE.
If there is a URL to the video stream, the probability is very high that the camera can also be integrated into MotionEYE.
There are good instructions on how to do this on the net, but I’ll also make a video about it soon.

>> Why don’t you create an image, wouldn’t that be easier?
Easier yes, but the script has many advantages:

  • An image download creates a much higher traffic on my server
  • The script automatically installs the latest updates and you can set your own passwords directly (higher security)
  • You can individually choose what should be installed.
  • If I change something, I can make it available to everyone directly without having everyone to reinstall everything.

>> I cannot configure Nextcloud or it does not start!
See above (program XY does not work) and Nextcloud Pi Docs . If that’s not helpful, video is coming soon.

>> When is a video about voice control / Axel coming!
In short: I’m working on it.
The voice control runs locally without internet, but it has its limits compared to Alexa / Siri / Google
For example all commands have to be predefined. That means sentences like: “Turn on the living room light” must be entered in Rhasspy and then “Turn on the light in the living room” would still not be understood. This requires NLP (Natural Language Processing).
Another problem is that connecting a Bluetooth speaker to the Raspberry Pi means a lot of manual configuration in Linux and Rhasspy and that for most probably means a big “STOP, NO TRESPASSING” sign.
I’m definitely making a video, but I’d like to improve it and it takes time.



About the used software

Software on the Raspberry Pi:

Heating control software (Viessmann Heaters):

Software for DVB-T Stick and 433Mhz:

Developer Tools:

  • VSCodium – text editor and IDE (VSCodium)
  • Arduino IDE – IDE for firmware for ESP8266, ESP32 and Arduino
  • PlatformIO – alternative IDE for firmware for ESP8266, ESP32 and Arduino, runs in VSCodium
  • Firefox – Yes! Node-RED and Grafana are running in the browser and please use Firefox, not Chrome.

Software for Sockets:

 


11 responses to “DIY Open Source Smart Home with a Raspberry Pi”

  1. Kevin w Cornelia says:

    i can’t install nextcloud and also my pi cant connect to internet once i install ei23 docker

  2. Kevin w Cornelia says:

    Thanks for the quick response! I’m a total newbie to all of this so i have no idea how to navigate to most of these things. What file would the errors get logged in? Also it seems that my IP address on my Pi changes, i set it to static in my router but when i do hostname -i in the command line, it shows me a totally different IP which seems to mess up my ability to log into the docker from anywhere.

  3. Andrew says:

    Hello!
    I entered the two commands in order to run the script but it appears to be empty and nothing happens? I copied and pasted it from the e-mail but it doesn’t start. Any ideas?

    Thanks

    • Felix says:

      Must be some encoding error. Some Mail-Programs replace some symbols. Use the raw text instead.
      Try to open the link directly in your browser, you should see the scripts code.

  4. Kevin says:

    How do i get the supervisor on homeassistant so i can get HACS?

    • Felix says:

      It is hidden because supervised Home Assistant can cause problems if you not know what you are doing.
      The script acts like a supervisor, in my opinion supervisor is not needed.
      You can install HACS without it, see hacx.xyz
      But if you really need it – the command is “ei23 ha-supervised”

  5. Kevin w Cornelia says:

    THANK YOU SOOOOO MUCH! i spent countless hours trying to figure this out so i could get HACS. Greatly appreciated sir!

  6. Daniel says:

    I am trying to install a personal development app MediaWiki with MariaDB on RPi4 8GB. I am not yet successful. There are two symptoms: 1) MediaWiki message notes that I am running PHP 32bit, says “might” be OK. 2) Container log dates from MediaWiki are far in the past or far in the future.

    I am thinking of installing 64bit RPi then ei23.
    Q: does ei23 (you) support RPi 64bit OS?
    Thanks, D

Leave a Reply

Your email address will not be published. Required fields are marked *