Hey zusammen,
ich habe in mein GitHub Repository einen KNX/EIB exporter für prometheus geladen.
Mit diesem Tool greife ich daten vom Bus, speichere sie in prometheus und visualisiere mit grafana.
Normalerweise werden diese tools für das System-Monitoring verwendet.
Bildschirmfoto 2020-04-20 um 16.35.11.png
Herzstück ist das Bash-Script knxpush.sh.
ich betreibe es (neben meinem knxd) in einem Docker-Container.
Im Repository liegen auch zwei Beispiele für docker-compose files.
Für das Script und für den vollen Stack.
Das Script konvertiert u.a die HEX-Werte die vom
zurückgeliefert werden.
Die Konvertierung erfolgt mit den folgenden Methoden:
Viele Grüße und viel Spass beim ausprobieren,
über euer Feedback würde ich mich sehr freuen!
LG
Clem
ich habe in mein GitHub Repository einen KNX/EIB exporter für prometheus geladen.
Mit diesem Tool greife ich daten vom Bus, speichere sie in prometheus und visualisiere mit grafana.
Normalerweise werden diese tools für das System-Monitoring verwendet.
Bildschirmfoto 2020-04-20 um 16.35.11.png
Herzstück ist das Bash-Script knxpush.sh.
ich betreibe es (neben meinem knxd) in einem Docker-Container.
Im Repository liegen auch zwei Beispiele für docker-compose files.
Für das Script und für den vollen Stack.
Das Script konvertiert u.a die HEX-Werte die vom
knxtool
Die Konvertierung erfolgt mit den folgenden Methoden:
Code:
convertDpt1() {
# Convert the HEX String to decimal value
echo $((16#$1))
}
convertDpt5() {
# Convert the HEX String to decimal value and convert to percentage
echo $(($((16#$1))*100/255))
}
convertDpt9() {
# convert the HEX String to binary format, extract exponent and mantissa and calculate float result
binOctets=$(echo $1 | xxd -r -p | xxd -b)
#00000000: 00000101 01101110 .n
bin=${binOctets:10:8}${binOctets:19:8}
# MEEEEMMMMMMMMMMM
manDec=$((2#${bin:0:1}${bin:5:11}))
expDec=$((2#${bin:1:4}))
# Result = 0,01 * M * 2^E
result=$(awk -v mult=0.01 -v temp=$((manDec*2**expDec)) 'BEGIN{result=(mult * temp); print result;}')
echo $result
}
Viele Grüße und viel Spass beim ausprobieren,
über euer Feedback würde ich mich sehr freuen!
LG
Clem


Kommentar