This project is inspired by Peter Holzleitner.
This stuff allows you to monitor your Buderus boiler with Logamatic 4xxx from your smartphone or laptop. Server side runs on a Raspberry Pi, client side runs on any web browser on in a Telegram app.
Unfortunately, Logamatic 4xxx does not have IO port compatible to Raspberry Pi, so you have to assemble a simple connector.
The schematic.png
shows how it is supposed to be implemented.
The pins are used on Raspberry Pi:
- +3.3V (pins 1 or 17)
- RXD0 (GPIO15, pin 10)
- Ground (pins 6, 9, 14, 20, 25, 30, 34, or 39)
The BF
pins are used on Logamatic 4xxx. Check out your Logamatic 4xxx docs for it's location.
I mean that Nodejs has been installed and configured already.
First, download release zip archive and extract it's files anywhere on your Raspberry Pi. Then install needed Nodejs modules
npm install
Rename and edit config file
mv sample-config.json config.json
nano config.json
Done!
The config.json
provides all required settings as a JSON object:
portName
is a device name of Raspberry Pi's serial port- The
web
field describes web server configurationallowedIP
is an array of allowed IP addresses/masks. Remove it if your do not require IP filtering. More infoport
number to listen at. Run code withsudo
ifport 80
specified.
- The
telegram
field provides config for Telegram botapikey
is obviously your Telergam bot's API key. More infoproxy
is an address or HTTP/HTTPS proxy server. Use it only if Telegram bots are blocked in your country. This overridesbaseApiUrl
bot option.phones
is an array or allowed Telegram IDs (not phone numbers).
- The
db
field describes how to save history to SQLite databasefilename
is database file name. Find more info on SQLite's websitefields
is an array containing fields (i.e. columns) whose will be stored in DB in exactly same order. Acceptable values are:outdoor
,water
andzone{1..N}
.interval
is a millisecond period for DB writes. Default is600000 (10 minutes)
i.e. a new row will be written to DB every 10 minutes.
The only required field is portName
. Every other field is optional.
The are at least two reasons to configure Telegram bot here:
- World-wide safe remote access to your boiler without VPNs, static IPs, tunnels, port switches, etc.
- Bot will send you a notification immediately if any error occurs.
nodejs index.js
or in case of port 80 (or any other system port)
sudo nodejs index.js
The best idea is to run this code as a Systemd service. Check out the buderus-monitor.service
file for a sample configuration.
http://<raspberry_ip>[:<port>]/
or
http://<raspberry_hostname>[:<port>]/
You also can turn this UI to a standalone app on any iOS or Android device. Just use 'Add to main screen' option (or smth like that).
Here is how it should look like on a smartphone
Checkout from Github repository to your PC/Mac and run
npm install
npm run prod
By default, output directory is ./target
. You can change it in webpackfile.js