The project was initiated because I had a significant problem with the accessibility of the internet module (ecoNET 300) for the VITECO furnace (EG PELLET MINI COMPACT 16 HYBRID) with the PELLAS HYBRID burner. The project is planned to be expanded to automate other household devices (e.g., blinds, lighting, etc.).
- Reading data from the furnace
- Reading room temperature
- Reading water temperature in the furnace
- Reading domestic hot water (DHW) temperature
- Reading the furnace operating mode
- Reading the flame status
- Reading the temperature change schedule
- Reading the fan speed
- Modifying furnace settings
- Changing the room temperature
- Changing the maximum DHW temperature
- Changing the maximum water temperature in the furnace
- Changing the furnace operating mode
- Reading data from the air conditioning
- Reading indoor temperature
- Reading outdoor temperature
- Displaying data on a website
- Automatic furnace control
- "Placeholder"/demo mode - running the application without communication with the furnace
- Automatic application testing
We communicate with the furnace controller using the RS485 protocol. For this purpose, we use a USB to RS485 converter connected to a Raspberry Pi Zero. We assume two variants of communication with the application:
- Communication with the application via USB, in which case the application code resides on the Raspberry Pi Zero.
- Communication with the application via the network, in which case the application code resides on another server.
Additionally, we assume a variant where the application runs with a "placeholder," meaning without communication with the furnace.
- Placeholder variant
- Thread on Elektroda
- Furnace manual
- Raspberry Pi Zero pinout
- Econet analyzer
- PyPlumIO - native library for communication with the ecoMAX controller
- PyPlumIO documentation
- ecoNet300 manual
- UART configuration on Raspberry Pi
- S.Control 892 manual
- Raspberry Pi Zero
- USB to RS485 Converter (e.g., Waveshare USB to RS485)
- Python 3.11
- Redis 7.2.4
- Poetry 1.8.1
- Node.js v20.11.0
- PNPM 8.14.3
- Update the system
sudo apt-get update
- Install dependencies
sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev
- Download Python 3.11
wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz
- Install Python 3.11
tar -xvf Python-3.11.9.tar.xz
cd Python-3.11.9
./configure --enable-optimizations
make -j 2
sudo make altinstall
- Verify the installation
python3.11 --version
- Download Redis 7.2.4
wget https://download.redis.io/redis-stable.tar.gz
- Compile and install
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
sudo make install
- Start Redis
redis-server
- Install Poetry
curl -sSL https://install.python-poetry.org | python3.11 -
- Add to PATH
export PATH="/home/maurycy/.local/bin:$PATH"