Zitat von ThorstenGehrig
Beitrag anzeigen
Aber ich würde das doch nach Möglichkeit gerne per SW bzw. Telegram erschlagen.
Alternativ - wenn man es "richtig" machen will - kann man natürlich deinen Programmierknopf einbauen - diesen per Software auswerten - und dann ein GA-Telegram richtig auswerten.... ich glaube ein bisschen Democode dafür ist vorhanden.
Was auch geht müsste umprogrammieren sein - also ein Telegramm an die Adresse X lesen in dem steht das sich die Adresse von X auf Y ändert. Dazu musst du den empfangenen Telegramtyp auswerten... ist glaube ich noch NICHT im code - und die "listen"-Routine hört nicht standardmäßig auf diese Telegramme...
1) "Was auch geht müsste umprogrammieren sein - also ein Telegramm an die Adresse X lesen" --> Hä? HIer haben sich irgendwie seltsame Worte eingeschlichen. Ich kann nur erahnen was du meinst. Ich vermute mal:
Ein Telegram (z.B. 14 byte Text) an eine vorderfinierte (dem Arduino bekannte) GA schicken, entsprechenden Auslese-Code im Arduino hinterlegen und die neue GA, die im Telegram steht setzen.
Richtig? Aber dann hab ich ja wieder eine vordefinierte GA im Source. Gibt's keine Möglichkeit KEINE GA im Arduino zu hinterlegen und ein Telegram an eine PA zu schicken?
Was hab ich überhaupt von der PA im Arduino-Fall? Letzendlich geht's ja doch immer nur um GAs auf die ich hören muss, oder?
2) Die "listen"-Routine:
In Beispiel-Code hier im Thread hab ich z.B. sowas gefunden:
Code:
void serialEvent1() {
KnxTpUartSerialEventType eType = knx.serialEvent();
if (eType == KNX_TELEGRAM) {
// ein Paket das wir "erwarten"
KnxTelegram* telegram = knx.getReceivedTelegram();
String target = String(0 + telegram->getTargetMainGroup()) + "/" +
String(0 + telegram->getTargetMiddleGroup()) + "/" +
String(0 + telegram->getTargetSubGroup());
if (telegram->getCommand() == KNX_COMMAND_WRITE) {
// Schreibendes Paket
if (target == ir_led1_addr) {
........
btw: Hab angefangen meinen Arduino/KNX 7-Kanal LED Controller zu dokumentieren: https://docs.google.com/document/d/1...it?usp=sharing
Ist bei weitem noch nicht fertig, aber ich arbeite dran. Hab auch schon ein kleines Code-Grundgerüst angefangen. Hoffe die Hardware kommt bald.
[update]
""Was auch geht müsste umprogrammieren sein - also ein Telegramm an die Adresse X lesen"" ...Nach dem x-ten mal lesen hab ich's geschnallt. Stand wohl auf dem Schlauch. Okay, damit ist in der Tat das umprogrammieren der/einer GA gemeint. Interessant wäre dennochm, wie oben beschrieben, ob es auch anfangs nicht komplett ohne GA geht. Hab im Code gesehen dass es auch ein "setListenToBroadcasts()" gibt. Kann aber nur erahnen was das macht. Die Frage ist auch: Wie sende ich einen Broadcast und was kann ich da alles rein stecken?
[update2]
Was hab ich überhaupt von der PA im Arduino-Fall?
Zur Frage:
Wie sende ich einen Broadcast und was kann ich da alles rein stecken?
https://knx-user-forum.de/382193-post10.html
Mit dem eibd über xpropwrite ... Wäre jetzt noch interessant wie so ein Telegram dann auf Empfangsseite aussieht und ob man das mit der KNX Lib auf dem Arduino ohne weiteres lesen/parsen kann. Und wenn das geht wäre interessant wie man so ein xpropwrite mit dem Arduino macht. Dann könnte man mit einem weiteren Arduino ein "Programmiergerät" basteln der das einer "benutzerfreundlichen Software am PC" gefüttert wird. Der "komplizierte" Einsatz von eibd wäre dann nicht mehr nötig (für mich ist der eibd jedenfalls noch ein Buch mit 7 Siegeln....)
[update3]
Die Frage hier ist nun auch geklärt:
Dann gibt's aber noch eine "KnxTpUartSerialEventType KnxTpUart::serialEvent()" in KnxTpUart.cpp" ... Wann greift denn die? Greift die nur wenn ich selbst keine "serialEvent()" Methode definiere? Oder greifen beide (wenn ich selbst auch eine definiere)?
Code:
KnxTpUartSerialEventType eType = knx.serialEvent();



Einen Kommentar schreiben: