Heater
IP: | 192.168.88.11 |
---|---|
MAC: | DA:62:17:83:4E:8F |
Domain: | heater.flowerhouse.at |
OS: | Debian Bullseye |
---|---|
RAM: | 512MB |
Cores: | 1 |
Privileged: | No |
The Heater-LXC is reachable under 192.168.88.11
which is located in the ServerVLAN.
The subdomain is heater.flowerhouse.at which is handled by the ReverseProxy.
The Serial-IP-Konverter is reachable under 192.168.88.12
which is located in the ServerVLAN.
Basic Setup
Change locales to de_DE.UTF-8
:
dpkg-reconfigure locales
libwebsockets
Install required packages:
apt install pkg-config cmake git build-essential libssl-dev
Clone libwebsockets repo:
cd /usr/src
git clone https://libwebsockets.org/repo/libwebsockets
Create build directory:
cd libwebsockets
mkdir build
cd build
Run make to build libwebsockets:
cmake ..
make
make install
Create the necessary links and cache:
ldconfig
Delete unnecessary files:
cd /usr/src
rm -r libwebsockets
p4d daemon
Install required packages:
apt install libssl-dev libjansson-dev libxml2-dev libcurl4-openssl-dev libssl-dev libmariadb-dev-compat uuid-dev python3-dev libcap-dev
Download latest version:
wget https://github.com/horchi/linux-p4d/archive/refs/tags/0.8.8.tar.gz
tar -xvf 0.8.8.tar.gz
rm 0.8.8.tar.gz
mv linux-p4d-0.8.8 linux-p4d
cd linux-p4d
Build it:
make clean all NO_RASPBERRY_PI=1
make install NO_RASPBERRY_PI=1
Delete build files:
cd /usr/src
rm -r linux-p4d
Create database at DataBase and add credentials to daemon.conf:
nano /etc/p4d/daemon.conf
Start p4d:
systemctl start p4d
Serial-IP-Converter
Access the Serial-IP-Converter-UI under 192.168.88.12
with user: admin
and pw: admin
and set the UART-settings:
Install socat:
apt install socat
Connect to Serial-IP-Converter with:
socat pty,link=/dev/ttyUSB0,raw tcp:192.168.88.12:8899&
For it to connect at boot we have create an service:
nano /etc/systemd/system/socat.service
Add to file:
[Unit]
Description=SOCAT Listen Service
After=network.target redis.service
Wants=redis.service
[Service]
Type=simple
StandardOutput=journal
StandardError=journal
SyslogIdentifier=socat-serial-log
User=root
ExecStart=/bin/bash -c '/usr/bin/socat pty,link=/dev/ttyUSB0,raw tcp:192.168.88.12:8899'
Restart=on-failure
[Install]
WantedBy=multi-user.target
Start and check if service is running:
systemctl start socat
systemctl status socat
Enable service to start at boot:
systemctl enable socat
Web Interface Setup
The default port of the web interface is 1111, the default username is p4
and the password is p4
.
Fist steps to enable data logging:
- Log in to the web interface
- Click Init Messwerte
- Go to Aufzeichnung and select the values you like to record and store your selection and save
- Go to Setup and click 'Init Service Menü'
Update Script
Bash script to update p4d:
#!/bin/bash
# Variables
name="P4D"
repo="horchi/linux-p4d"
binary_path="/usr/local/bin"
binary_name="p4d"
# ===== VERSION CHECKING, CUSTOMIZE VARIBLES FOR IT =====
# Get current version
current=$($binary_path/$binary_name -v)
# Retain everything after last space
current=${current//[!0-9.]/}
# Get latest release tag
latest=$(curl -sL https://api.github.com/repos/$repo/tags | jq -r '.[0].name')
# Check if new version available
if (("$(expr ${current//[!0-9]/} + 0)" == "$(expr ${latest//[!0-9]/} + 0)")); then
echo -e "-------------------------------------------------------------------------------------------"
echo -e "- Installed ${current} is up to date"
echo -e "-------------------------------------------------------------------------------------------"
exit 0
fi
# Check if repo is deprecated
if (("$(expr ${current//[!0-9]/} + 0)" > "$(expr ${latest//[!0-9]/} + 0)")); then
echo -e "-------------------------------------------------------------------------------------------"
echo -e "- Installed ${current} is newer than available version, repository deprecated?"
echo -e "-------------------------------------------------------------------------------------------"
exit 0
fi
# Write information
echo -e "-------------------------------------------------------------------------------------------"
echo -e "- Update ${name} ${current} to ${latest}?"
echo -e "-------------------------------------------------------------------------------------------"
echo -e -n "Continue? [y/N]"
echo ""
read -n 1 c
if [ "${c}" != "y" ]; then
exit 0
fi
# ===== INSTALLATION PART, CUSTOMIZE FOR EACH SOFTWARE =====
# Go to folder
cd /usr/src
# Download files
wget https://github.com/horchi/linux-p4d/archive/refs/tags/${latest}.tar.gz || exit 1
# Untar files
tar -xvf ${latest}.tar.gz || exit 1
# Enter folder
cd linux-p4d-${latest} || exit 1
# Start compiling
make clean all NO_RASPBERRY_PI=1 || exit 1
make install NO_RASPBERRY_PI=1 || exit 1
# Exit folder
cd .. || exit 1
# Restart p4d
systemctl restart p4d || exit 1
# Remove old files
rm ${latest}.tar.gz || exit 1
rm -r linux-p4d-${latest} || exit 1
# ===== FINISH INSTALLATION SCRIPT ====
echo -e "-------------------------------------------------------------------------------------------"
echo -e "- Update to ${latest} completed!"
echo -e "-------------------------------------------------------------------------------------------"
Additional Configuration
Mail Notification
Install required packages:
apt install msmtp-mta bsd-mailx
Create the msmspt configuration file:
nano /etc/msmtprc
And paste following entry:
# Set default values for all following accounts.
defaults
port 587
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account flowerhouse
host smtp.world4you.com
from heater@flowerhouse.at
auth on
user heater@flowerhouse.at
password XXXXXXX
# Set a default account
account default : flowerhouse
The setup can be tested with:
mail -s "test" address@email.com < /dev/null
If the setup is working, go to the webinterface and configure the mail notifications in the setup page.