Here is the ugly piece of bash script I call a munin plugin:

#!/bin/sh

case $1 in
   config)
        cat <<'EOM'

graph_category helios
graph_title Air Temperatures
graph_vlabel Celsius
temperature1.label outside air temperature
temperature2.label supply air temperature
temperature4.label used air temperature
temperature3.label exhaust air temperature
graph_args --base 1000 -l -20 --upper-limit 40
graph_scale no
graph_info temperatures measured at Helios KWL

EOM
        exit 0;;
esac

/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -0 -1 -o 2.0 helios 0x7630 0x3031 0x3034 0x0000

printf "temperature1.value "
/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -c 8 -0 -1 -o 2.0 helios |grep ]: |awk '{print $2}' |cut -c 3- |sed 's/\(..\)/\1 /g' |sed ':a;N;$!ba;s/\n/ /g'| sed 's/  */\ /g'| awk '{printf "%s\n", $_}'| xxd -r -p| awk -F= '{print $2}'

/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -0 -1 -o 2.0 helios 0x7630 0x3031 0x3035 0x0000

printf "temperature2.value "
/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -c 8 -0 -1 -o 2.0 helios |grep ]: |awk '{print $2}' |cut -c 3- |sed 's/\(..\)/\1 /g' |sed ':a;N;$!ba;s/\n/ /g'| sed 's/  */\ /g'| awk '{printf "%s\n", $_}'| xxd -r -p| awk -F= '{print $2}'

/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -0 -1 -o 2.0 helios 0x7630 0x3031 0x3036 0x0000

printf "temperature3.value "
/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -c 8 -0 -1 -o 2.0 helios |grep ]: |awk '{print $2}' |cut -c 3- |sed 's/\(..\)/\1 /g' |sed ':a;N;$!ba;s/\n/ /g'| sed 's/  */\ /g'| awk '{printf "%s\n", $_}'| xxd -r -p| awk -F= '{print $2}'

/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -0 -1 -o 2.0 helios 0x7630 0x3031 0x3037 0x0000

printf "temperature4.value "
/home/robin/modpoll/modpoll -m tcp -a 180 -t4:hex -r 1 -c 8 -0 -1 -o 2.0 helios |grep ]: |awk '{print $2}' |cut -c 3- |sed 's/\(..\)/\1 /g' |sed ':a;N;$!ba;s/\n/ /g'| sed 's/  */\ /g'| awk '{printf "%s\n", $_}'| xxd -r -p| awk -F= '{print $2}'
What it does:
It calls modpoll to write the right register to tell the controller that the respective value shall be loaded, then calls modpoll to read that very value. The response string is then cropped with the help of some grep, sed and awk to separate the value from unnecessary characters.

"helios" is the placeholder for the systems IP.

This goes on for the four available temperatures.
Munin calls this every five minutes, so I get a pretty detailed picture of how the air temperatures change over the day/week/month/year

By having a close look, I can even tell when somebody showered (slight rise of used air temperature), for example.