Zitat von wintermute
Beitrag anzeigen
deinen Punkt kann ich voll und ganz verstehen. Ich halte den Aufwand aber für überschaubar. Ein kurzer Blick in die DKA-Lib zeigt das Beispiel "ReceiveKNXTelegrams" - ich nehme an, das habt ihr verwendet?
Dort wird
Code:
KnxTelegram* telegram = knx.getReceivedTelegram();
Für die Verarbeitung eines PropertyWrite braucht es nicht viel:
- Prüfen, ob das empfangene Paket physikalisch an den entsprechenden Knoten adressiert ist
- Octets 6 und 7 prüfen. PropertyValueRead ist 1 1 1 1 / 0 1 0 1 0 1 (untere 4 Bit von Octet 6 und Bits 8-3 von Octet 7). PropertyWrite ist 1 1 1 1 / 0 1 0 1 1 1. PropertyValueResponse ist 1 1 1 1 / 0 1 0 1 1 0. Den Rest von Octet 6 und 7 kann man für diesen Zweck getrost ignorieren. In DKA ist das mit KNX_COMMAND_ESCAPE kodiert, man muss also nur Octet 7 auswerten.
- Der Rest des Aufbaus ist einheitlich für alle drei zugehörigen Befehle:
- Octet 8: Object ID
- Octet 9: Property ID
- Octet 10, Bits 8-5: Anzahl Elemente
- Octet 10, Bits 4-1 und Octet 11: Start Index
- Ab Octet 12 dann Nutzdaten
Ich hatte das im Stack an einem Abend implementiert. Ist doch nur ein bisschen Bitschubserei. Ich habe keinen Arduino, sonst würde ich euch das notfalls abnehmen. Aber bitte, bitte keine Separatlösungen wie Linux mit KDE und Gnome.
Vorschlag: wenn ihr PropertyWrite verwendet, kümmere ich mich die nächsten Tage um passende Skripte auf Linux-Seite.
Code:
xpropwrite local:/tmp/eib 7.0.5 1 0 0 1 3E 00
Max
Kommentar