Hallo zusammen,
in Ermangelung eines „ZW_DimUp“ und „ZW_DimDown“ Befehls möchte ich die Befehle als Hex-Code zum Dimmer senden. Wenn ich bekannte Codes kopiere und an den Dimmer sende funktioniert alles schon sehr gut, allerdings wenn ich eigene Codes generiere, dann muss ich auch die Prüfsumme ermitteln. Wie das geht, ist hier sehr gut in „C“ beschrieben.
Ich habe das nun wie folgt in IPS umgesetzt:
$data = array (0x01, 0x0A, 0x00, 0x13, 0x2A, 0x03, 0x26, 0x01, 0x0A, 0x05, 0x2A);
printf("0x%02x ", GenerateChecksum($data));
function GenerateChecksum($data)
{
$ret = $data[1];
for ($i = 2 ; $i < count($data) ; $i++){
$ret ^= $data[$i];
}
return $ret;
}
Leider kommt als Ergebnis nicht wie erwartet 0x81 heraus, sondern 0x32.
Was mache ich falsch? Wer kann helfen?
Viele Grüße
Jürgen