Bayrol Poolmanager 5

Bayrol Poolmanager 5

Beim Poolmanager 5 von Bayrol können via E-Mail Nachrichten im Fall von Unregelmässigkeiten (Werte von z.B. pH oder Redox) verschickt werden, falls das Gerät im lokalen LAN angeschlossen ist.

Es ist allerdings auch möglich, diese Werte innerhalb des lokalen LANs direkt via HTTP-Requests abzufragen.

Links:
- Bayrol Download-Center
- Bayrol Modbus-TCP Protocol Specification
- http://IP_poolmanager/cgi-bin/webgui.fcgi?infoframe=0
- Bayrol Download-Center
- Modbus-XML Protocol Specification Version 1.0

Ein kleines Script namens checkpooldata.sh veranschaulicht dies: Es werden die Werte von pH, Redox und Temperatur ausgelesen, die jeweils definierten unteren und oberen Alarmwerte sowie der Status/Füllstand der Kanister mit dem pH-Minus und des Chlors. Ebenfalls abgefragt wird der Durchflussstatus (Flow) in der Messeinheit.


#!/bin/bash # checkpooldata.sh 05Apr2024/uk # IPpoolmanager="192.168.XXX.YYY" # IP-Adresse des Poolmanagers # # 34.4026 Restmenge 2.0 l 34.4027 2.0 l # 34.4035 Dosierleistung pH 0 % # 34.4036 Dosierleistung Chlor 0 % # 34.4037 Dosierleistung mV 0 % # 34.4054 Cl x1 1.00 0.13 mg/l # 34.4057 Cl x10 1.00 0.15 mg/l # 34.3001 Sollwert pH 7.30 # 34.3002 Untere Alarmgrenze pH 7.00 # 34.3003 Obere Alarmgrenze pH 7.60 # 34.3017 Sollwert Chlor 0.60 mg/l # 34.3049 Sollwert Redox 730 mV # 34.3051 Untere Alarmgrenze Redox 680 mV # 34.3053 Obere Alarmgrenze Redox 780 mV # 34.3058 p-Bereich Redox 20 % (=200mV) # 34.3059 p-Bereich Redox 8 % (=80mV) # 34.3069 Untere Alarmgrneze T1 5.0 Grad # 34.3070 Obere Alarmgrenze T1 31.0 Grad # # 44.2003 Kein Flow-Signal (Eingang Flow) # 44.2021 Niveau Alarm Redox # 44.2037 Niveau Alarm pH- # # Temperatur: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.4033" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then T=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else T="0" fi # # pH: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.4001" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then pH=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else pH="0" fi # # Chlor: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.4022" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then mV=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else mV="0" fi # # Niveau-Alarm pH-Minus: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=44.2037" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then PHniveauAlarm=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 8` else PHniveauAlarm="0" fi if test $PHniveauAlarm -eq 1 ; then pHtext="Kanister pH-Minus leer!" else pHtext="Kanister pH-Minus OK" fi # # Niveau-Alarm Chlor: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=44.2021" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then RedoxNiveauAlarm=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 8` else RedoxNiveauAlarm="0" fi if test $RedoxNiveauAlarm -eq 1 ; then RedoxText="Kanister Chlor leer!" else RedoxText="Kanister Chlor OK" fi # # Flow-Alarm: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=44.2003" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then FlowAlarm=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 8` else FlowAlarm="0" fi if test $FlowAlarm -eq 1 ; then FlowText="Kein Flow mehr!" else FlowText="Flow OK" fi # # Untere und obere Alarmgrenze pH: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3002" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then pHlow=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else pHlow=0 fi task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3003" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then pHhigh=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else pHhigh=0 fi pHalarmtext="pH zwischen $pHlow und $pHhigh OK" if (( $(echo "$pH < $pHlow" | bc -l) )) ; then pHalarmtext="pH unter $pHlow!" else if (( $(echo "$pH > $pHhigh" | bc -l) )) ; then pHalarmtext="pH über $pHhigh!" fi fi # # Untere und obere Alarmgrenze Redox: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3051" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then redoxlow=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else redoxlow=0 fi task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3053" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then redoxhigh=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else redoxhigh=0 fi redoxalarmtext="Redox zwischen $redoxlow mV und $redoxhigh mV OK" if (( $(echo "$mV < $redoxlow" | bc -l) )) ; then redoxalarmtext="Redox unter $redoxlow mV !" else if (( $(echo "$mV > $redoxhigh" | bc -l) )) ; then redoxalarmtext="Redox über $redoxhigh mV !" fi fi # # Untere und obere Alarmgrenze Temperatur: task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3069" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then Tlow=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else Tlow=0 fi task="http://$IPpoolmanager/cgi-bin/webgui.fcgi?xmlitem=34.3070" curl --fail --silent --show-error --no-sessionid --request GET "$task" --output outPOOL.txt if test $? -eq 0 ; then Thigh=`head -n 3 outPOOL.txt | tail -n 1 | cut -d'"' -f 10` else Thigh=0 fi Talarmtext="Temperatur zwischen $Tlow und $Thigh C OK" if (( $(echo "$T < $Tlow" | bc -l) )) ; then Talarmtext="Temperatur unter $Tlow!" else if (( $(echo "$T > $Thigh" | bc -l) )) ; then Talarmtext="Temperatur über $Thigh!" fi fi # echo "pH=$pH --- $pHalarmtext --- $pHtext" echo "Redox=$mV mV --- $redoxalarmtext --- $RedoxText" echo "Temperatur=$T --- $Talarmtext" #
Die Eingabe der zwei Befehle
chmod u+x checkpooldata.sh
./checkpooldata.sh
ergiebt dann z.B. folgende Ausgabe:
pH=7.30 --- pH zwischen 7.00 und 7.60 OK --- Kanister pH-Minus OK
Redox=737 mV --- Redox zwischen 680 mV und 780 mV OK --- Kanister Chlor OK
Temperatur=25.1 --- Temperatur zwischen 5.0 und 31.0 C OK

Im Rahmen eines SmartHome-Projektes können diese Werte anschliessend natürlich weiter verarbeitet werden.


Last update: 16May2024 - Created: 22Apr2024/uk