in meiner Konfig-Datei habe ich den AES-Schlüssel geändert in rfKey = 245C7CE22E615E091B2D6E28F256091F und bekomme immer den Fehler:
Error: The RF AES key specified in homematicbidcos.conf for communication with your BidCoS devices is not a valid hexadecimal string.
Wenn ich den Schlüssel auf den Vorgabewert rfKey = 00112233445566778899AABBCCDDEEFF setze, gibt es die Fehlermeldung nicht. Auch der Wert rfKey = 00112233445566778899AABBCCDDEE11 wird akzeptiert.
Der oben angegebene Schlüssel ist eindeutig ein richtiger 16 Byte hexadezimal Wert, also müsste da ein Fehler im Code sein, oder?
Installiert habe ich das Ganze auf Raspi 2 mit openhabian und HM-MOD-RPI-PCB.
Das Zeichensatzproblem wundert mich ebenfalls etwas, da UTF-8 und ASCII für die HEX-Zeichen identisch sind (bzw. vermutlich sogar für alle Zeichen der Datei). BOM sollte nichts ändern. Aber Hauptsache es klappt jetzt.
Das kam wohl daher, dass ich auf einem Windows-System mit WinSCP auf meiner Homegear-Installation auf dem Raspi die Konfig-Datei editiert habe und die Zufallszahl vom Windows-Taschenrechner kopiert und in den Editor eingefügt habe. Da kann ich mir vorstellen, dass da “unsichtbare” Sonderzeichen reingekommen sind. Danke für eure Hilfe!
Nee, das “\r” kann nicht der Grund sein. Ich mache vor Verarbeitung ein “trim” auf den String. Aber andere Zeichen können das Problem durchaus verursachen. “trim” entfernt “std::isspace” (von std::isspace - cppreference.com):
space (0x20, ’ ')
form feed (0x0c, ‘\f’)
line feed (0x0a, ‘\n’)
carriage return (0x0d, ‘\r’)
horizontal tab (0x09, ‘\t’)
vertical tab (0x0b, ‘\v’)
Das heißt, alles andere kann das Problem verursachen. Tatsächlich auch ein ausschließliches “\r” (also Mac-typisch), da als Zeilenumbruch ein “\n” erwartet wird.