Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX / EIB to prometheus exporter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    KNX / EIB to prometheus exporter

    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
    knxtool
    zurückgeliefert werden.

    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


    #2
    Tolle Sache!

    Kommentar


      #3
      Hi Clem,

      vielen Dank für deine Arbeit - verwende den exporter und knxd als docker container - funktioniert super. Ich habe seit kurzem mehrere "MDT bzw. KNX Steckdosen mit Wirkleistungszähler" (https://www.mdt.de/produkte/produktd...6843c94df2bcc2) im Einsatz - die verwenden die DPT 7,13 u. 14 (Stromwert = DPT 7.012, Spannung = DPT 14.027 und Verbrauch = 13.013)

      Leider bin ich kein Linux/Bash Guru und schaffe es nicht dein Script um die Konvertierung der drei Datenpunkte zu erweitern - könntest du mir hier bitte helfen?

      Falls es hilft, hier noch die entsprechende Definition der Datenpunkte lt. KNX:

      DPT 7:

      KNX_DPT7.png

      DPT 13:

      KNX_DPT13.png

      DPT 14:

      KNX_DPT14_1.png
      KNX_DPT14_2.png

      Vielen Dank und lg,
      Markus

      Kommentar

      Lädt...
      X