Hallo,
ich habe folgendes Skript geschrieben, und kann damit an meine Multiroomanlage Texte Senden, die dann auf allen Display´s im Haus angezeigt werden.
Nun möchte ich gern die Aussentemperatur anzeigen lassen, ist aber schwierig, da ich der Anlage jedes Zeichen einzeln als Hexcode senden muss, also nicht 20°C senden kann, sondern 2 und 0 senden muss, das ganze als Ascii Code im Hex Format. Kann mir jemand helfen, wie ich nun eine Variable (temp_max, Integer) so umrechne und aufteile
Hier mein Skript:
$array = explode(" ", "F0 7F 00 00 00 00 70 00 02 01 01 00 00 00 01 00 10 00 00 00 00 zz zz 27 43 00 00 00 00 00 00 00 00 00 cs F7");
$ID = 61660; //ComPort ID in IPS
$array[21] = "31"; //Temperatur 10er, hier jetzt 1
$array[22] = "39"; //Temperatur 1er, hier jetzt 9
$summe = 0;
$ComString ="";
for ($i=0; $i<=count($array) - 3; $i++){
$summe = $summe + hexdec($array[$i]); //Step #1 - Add the HEX value of every byte in the message that precedes the Checksum:
$ComString .= chr(hexdec($array[$i])); //String zusammenfgen
}
$summe = $summe + count($array) -2; //Step #2 - Count the number of bytes which precede the Checksum
$cs = $summe % 128; //This value is then AND-ed with the HEX value 0x007F
$ComString.=chr($cs).chr(hexdec(end($array))); //String zusammenfgen
ComPort_SendText($ID, $ComString); //String ausgeben