Hallo
Ich lese über ein PHP-Script alle Ereignisse auf dem KNX-Bus mit und schreibe sie in eine mySQL-DB.
Ich suche nun ein Script das mir den Datenpunkt DPT7(EIS10) übersetzt.
Hat einer so was ?
Hier mal das Script das die Datenpunkte übersetzt.
Gruß NetFritz
Ich lese über ein PHP-Script alle Ereignisse auf dem KNX-Bus mit und schreibe sie in eine mySQL-DB.
Ich suche nun ein Script das mir den Datenpunkt DPT7(EIS10) übersetzt.
Hat einer so was ?
Hier mal das Script das die Datenpunkte übersetzt.
Code:
# $eib_data Array mit dem Telegramm switch($eis_wert){ # boolscher Wert EIS1 / DPT1 # 1Bit 0/1 Schalten case "1": #echo"EIS1 \n"; $write_db=true; $value=$eib_data[21]; break; # Prozentwert EIS6 / DPT5 # 1Byte 0-100% Skalieren:Relativwert case "6": $write_db=true; $value=round((hexdec($eib_data[21])/255)*100,1); break; # Gleitkommawert EIS5 / DPT9 # 2Byte Gleitkomma (floating point) case "5": $write_db=true; $value = $eib_data[22].$eib_data[23]; $eis5 = hexdec($value); $wert = ($eis5 & 0x07ff); if (($eis5 & 0x08000) != 0) { $wert = $wert | 0xfffff800; $wert = $wert *-1; } $wert = $wert << (($eis5 & 0x07800) >> 11); if (($eis5 & 0x08000) != 0) { $wert = $wert * -1; } $value=$wert/100; break; # 4Byte IEEE-Gleitkomma (floating point) # EIS9 / DPT 14 case "9": $write_db=true; $binary = str_pad(decbin(hexdec($eib_data[24].$eib_data[25].$eib_data[26].$eib_data[27])),32,"0",STR_PAD_LEFT); # Sign Bit $fb = $binary[0]; # Exponent $exp = bindec(substr($binary, 1, 8)); # Mantisse $m = bindec(substr($binary, 9, 23)); # aus Sign Bit , Exponent u. Mantisse die Flieskommazahl zusammenstellen $out = pow(-1,$fb) * (1+$m/(pow(2,23))) * pow(2,$exp-127); $value = round($out,3); break; # alles andere schreiben wir (bisher) nicht... default: }
Kommentar