Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ThorstenGehrig
    antwortet
    Zitat von GLT Beitrag anzeigen
    Ist Dir also schon lange entgangen
    Jaja... habt ja recht
    MacGyver ist mir zuvorgekommen und hat gepatched - ich habs gerade gemerged. :-)

    Einen Kommentar schreiben:


  • GLT
    antwortet
    HG >15 gab es schon zu Zeiten von ETS3 und wurde z.B. für Synco Living benötigt.

    ThorstenGehrig
    Ist Dir also schon lange entgangen

    Einen Kommentar schreiben:


  • thewhobox
    antwortet
    Ja. War damals eine Hardware Beschränkung.
    https://knx-user-forum.de/forum/öffe...38#post1036438

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Zitat von thewhobox Beitrag anzeigen
    Das wird ja schon seit längerem von jedem KNX Gerät unterstützt.
    echt? Das ist an mir vorbeigegangen…

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Kann ich machen… aber blöde Frage: im KNX gibt es doch nur 16 Hauptgruppen - von 0-15.
    wie kommst du auf den Gedanken eine Hauptgruppe 20 zu verwenden??

    grũße
    thorsten

    Einen Kommentar schreiben:


  • thewhobox
    antwortet
    Oder einfach hier das höchste bit auch auswerten.
    Dann funktioniert auch die Hauptgruppe 16-31.

    https://github.com/thorsten-gehrig/a...egram.cpp#L100

    Das wird ja schon seit längerem von jedem KNX Gerät unterstützt.

    Einen Kommentar schreiben:


  • FuLgOrE
    antwortet
    Hallo Thorsten,
    danke, dass du dich trotz Urlaub meldest. Die Debugausgaben habe ich mir tatsächlich angesehen und kam somit zu dem Schluss, dass ich grundsätzlich Daten empfangen kann. Die Lösung befand sich viele Seiten vorher hier im Thread:

    Zitat von Delta6400 Beitrag anzeigen
    Das senden der Daten von ihm funktioniert auch, das Empfangen von einer Antwort (KNX_COMMAND_READ) klappt auch bis einschließlich Hauptgruppe 15.
    I
    Sehr schön, einige Seiten vorher im Thread stand scheinbar die Lösung meines Problems. Ich hatte die Hauptgruppe 20 verwendet. Da packe ich immer meinen Spielkram rein. Jetzt habe ich, nachdem ich etliche Seiten hier im Thread durchgearbeitet habe, das Ding mit der Hauptgruppe 15 gefunden und auf meine nächste freie Hauptgruppe, in meinem Falle die 11 gewechselt. Und siehe da, ich bekomme die Telegramme. 😀

    ThorstenGehrig Könntest du das ggf. bei Zeiten in Github erwähnen, sodass Andere nicht diesen Leidensweg gehen müssen? Danke 😊
    Zuletzt geändert von FuLgOrE; 28.05.2024, 19:09.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hallo.
    derzeit bin ich im Urlaub - und an der Library habe ich schon viele Jahre nicht mehr meinen Hand angelegt :-(

    „irrelevant telegram“ deutet ja darauf hin das die Adresse nicht zu den Listen Adressen gehört…. Hast du dir die mal im debug ausgeben lassen?
    empfangen von Telegrammen hab ich selten genutzt… vielleicht ist noch ein aktiver Nutzer online?

    gruss
    t.

    Einen Kommentar schreiben:


  • FuLgOrE
    antwortet
    So, ich habe mir jetzt den gleichen Microcontroller gegönnt. Leider zeigt es das gleiche Verhalten. Ich empfange nur die Telegramme 0, 2 und 3. Das gewünschte 1er Telegramm kommt nicht. Jetzt brauche ich tatsächlich Hilfe.

    EDIT:
    Ich habe jetzt in der Library, genauer im "KnxTpUart.cpp" den Debug-Modus eingestellt und lausche dazu auf der seriellen Schnittstelle. Das geht, indem man in der genannten cpp-Datei folgende Zeilen oben einfügt:
    Code:
    #define TPUART_DEBUG
    #define TPUART_DEBUG_PORT Serial​
    Ferner habe ich das Beispiel "ReceiveKNXTelegrams" so angepasst, dass es bei mir lauffähig wird.
    Folgendes wird nämlich bei neueren Microcontrollern scheinbar nicht mehr aufgerufen.
    void serialEvent1() {
    Jetzt muss man in der "void loop()" einen Aufruf starten.
    Weiterhin habe ich die Gruppenadressen, auf die gelauscht werden soll angepasst und zwar auf jene, welche bei mir häufig erscheinen. Zumindest ist das bei "5/6/8" der Fall. Hierbei handelt es sich bei mir um einen Datentyp 5.001 (Prozentwert), welcher alle 3 Sekunden auf den Bus gesendet wird. Dennoch erhalte ich fast ausschließlich "IRRELEVANT_KNX_TELEGRAM".

    Hier der angepasste Sketch:
    Code:
    // File: ReceiveKNXTelegrams.ino
    // Author: Daniel Kleine-Albers (Since 2012)
    // Modified: Thorsten Gehrig (Since 2014)
    // Modified: Mag Gyver (Since 2016)
    
    // Test constellation = ARDUINO MEGA <-> 5WG1 117-2AB12
    
    #include <KnxTpUart.h>
    
    // Initialize the KNX TP-UART library on the Serial1 port of ARDUINO MEGA
    // and with KNX physical address 15.15.20
    KnxTpUart knx(&Serial1, "15.15.20");
    
    //#define TPUART_DEBUG
    //#define TPUART_DEBUG_PORT Serial
    
    
    int LED = 13;
    
    void setup() {
      pinMode(LED, OUTPUT);
      digitalWrite(LED, LOW);
    
      Serial.begin(9600);
        while (!Serial);
      Serial.println("TP-UART Test");
    
      Serial1.begin(19200, SERIAL_8E1);
        while (!Serial1);
    
      Serial.print("UCSR1A: ");
      Serial.println(UCSR1A, BIN);
    
      Serial.print("UCSR1B: ");
      Serial.println(UCSR1B, BIN);
    
      Serial.print("UCSR1C: ");
      Serial.println(UCSR1C, BIN);
    
      knx.uartReset();
    
      knx.addListenGroupAddress("20/2/0");
      knx.addListenGroupAddress("20/2/1");
      knx.addListenGroupAddress("20/2/2");
      knx.addListenGroupAddress("5/6/8"); //5.001 8-bit unsigned
      knx.addListenGroupAddress("20/2/4");
      knx.addListenGroupAddress("20/2/5");
      knx.addListenGroupAddress("20/2/6");
      knx.addListenGroupAddress("20/2/7");
      knx.addListenGroupAddress("20/2/8");
      knx.addListenGroupAddress("20/2/9");
    }
    
    void maintainKnxSerial() {
      if (Serial1.available() > 0) {
        Serial.println(Serial1.available());
      KnxTpUartSerialEventType eType = knx.serialEvent();
     // Serial.println(eType);
      if (eType == TPUART_RESET_INDICATION) { // eType = 0
        Serial.println("Event TPUART_RESET_INDICATION");
      }
      else if (eType == UNKNOWN) { // eType = 3
        Serial.println("Event UNKNOWN");
      }
      else if (eType == KNX_TELEGRAM) {
        Serial.println("Event KNX_TELEGRAM");
        KnxTelegram* telegram = knx.getReceivedTelegram();
        // Telegrammauswertung auf KNX (bei Empfang immer notwendig)
        String target =
          String(0 + telegram->getTargetMainGroup())   + "/" +
          String(0 + telegram->getTargetMiddleGroup()) + "/" +
          String(0 + telegram->getTargetSubGroup());
    
        // Here you have the telegram and can do whatever you want
        if (telegram->getCommand() == KNX_COMMAND_WRITE) {
          // Auswertung des empfangenen KNX-Telegrammes mit Schreibbefehl (Flag) -> Aktion
          if (target == "20/2/0") {
            int received_15_0_0 = telegram->getBool();
            Serial.print("Empfangener wert");
            Serial.println(received_15_0_0);
            if (received_15_0_0) {
              digitalWrite(LED, HIGH);
            }
            else {
              digitalWrite(LED, LOW);
            }
          }
          if (target == "20/2/1") {
            int received_15_0_1 = telegram->get4BitIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_1);
          }
          if (target == "20/2/2") {
            int received_15_0_2_0 = telegram->get4BitDirectionValue();
            int received_15_0_2_1 = telegram->get4BitStepsValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            switch (received_15_0_2_0) {
            case 0:
              Serial.print("Direction: down");
              break;
            case 1:
              Serial.print("Direction: up");
              break;
            }
            Serial.print("  ");
            switch (received_15_0_2_1) {
            case 0:
              Serial.print("Step: stop");
              break;
            case 1:
              Serial.print("Step: 100%");
              break;
            case 2:
              Serial.print("Step: 50%");
              break;
            case 3:
              Serial.print("Step: 25%");
              break;
            case 4:
              Serial.print("Step: 12%");
              break;
            case 5:
              Serial.print("Step: 6%");
              break;
            case 6:
              Serial.print("Step: 3%");
              break;
            case 7:
              Serial.print("Step: 1%");
              break;
            }
            Serial.println("");
          }
          if (target == "20/2/3") {
            int received_15_0_3 = telegram->get1ByteIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_3);
          }
          if (target == "20/2/4") {
            int received_15_0_4 = telegram->get2ByteIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_4);
          }
          if (target == "20/2/5") {
            float received_15_0_5 = telegram->get2ByteFloatValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_5);
          }
          if (target == "20/2/6") {
            int received_15_0_6_0 = telegram->get3ByteWeekdayValue();
            int received_15_0_6_1 = telegram->get3ByteHourValue();
            int received_15_0_6_2 = telegram->get3ByteMinuteValue();
            int received_15_0_6_3 = telegram->get3ByteSecondValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            Serial.print(received_15_0_6_0);
            Serial.print("  ");
            Serial.print(received_15_0_6_1);
            Serial.print(":");
            Serial.print(received_15_0_6_2);
            Serial.print(":");
            Serial.print(received_15_0_6_3);
            Serial.println("");
          }
          if (target == "20/2/7") {
            int received_15_0_7_0 = telegram->get3ByteDayValue();
            int received_15_0_7_1 = telegram->get3ByteMonthValue();
            int received_15_0_7_2 = telegram->get3ByteYearValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            Serial.print(received_15_0_7_0);
            Serial.print(".");
            Serial.print(received_15_0_7_1);
            Serial.print(".");
            Serial.print(received_15_0_7_2);
            Serial.println("");
          }
          if (target == "20/2/8") {
            float received_15_0_8 = telegram->get4ByteFloatValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_8);
          }
          if (target == "20/2/9") {
            String received_15_0_9 = telegram->get14ByteValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_9);
          }
        }
      }
    }
    }
    
    
    void loop() {
        maintainKnxSerial();
    }​
    Dazu dann hier ein paar Sekunden der Debug-Ausgabe:
    Code:
    21:09:59.150 -> TP-UART Test
    21:09:59.150 -> UCSR1A: 100010
    21:09:59.150 -> UCSR1B: 10011000
    21:09:59.150 -> UCSR1C: 100110
    21:09:59.171 -> 1
    21:09:59.171 -> Incoming Byte: 0 - 0 - 0
    21:09:59.171 -> Available: 1
    21:09:59.171 -> Incoming Byte: 0 - 0 - 0
    21:09:59.171 -> Event UNKNOWN
    21:09:59.171 -> Event UNKNOWN
    21:09:59.171 -> 1
    21:09:59.171 -> Frame Error
    21:09:59.171 -> Incoming Byte: 3 - 3 - 11
    21:09:59.171 -> Available: 1
    21:09:59.171 -> Frame Error
    21:09:59.171 -> Incoming Byte: 3 - 3 - 11
    21:09:59.171 -> Event TPUART_RESET_INDICATION
    21:09:59.171 -> Event TPUART_RESET_INDICATION
    21:10:00.069 -> 1
    21:10:00.069 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.069 -> Available: 1
    21:10:00.069 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.069 -> Available: 1
    21:10:00.069 -> Incoming Byte: 16 - 10 - 10000
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 35 - 23 - 100011
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 0 - 0 - 0
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 4 - 4 - 100
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 209 - D1 - 11010001
    21:10:00.069 -> Payload Length: 2
    21:10:00.069 -> Available: 1
    21:10:00.069 -> Incoming Byte: 0 - 0 - 0
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 129 - 81 - 10000001
    21:10:00.069 -> Available: 0
    21:10:00.069 -> Incoming Byte: 36 - 24 - 100100
    21:10:00.169 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:00.169 -> 13
    21:10:00.169 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.169 -> Available: 13
    21:10:00.169 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.169 -> Available: 12
    21:10:00.169 -> Incoming Byte: 255 - FF - 11111111
    21:10:00.169 -> Available: 11
    21:10:00.169 -> Incoming Byte: 22 - 16 - 10110
    21:10:00.169 -> Available: 10
    21:10:00.169 -> Incoming Byte: 46 - 2E - 101110
    21:10:00.169 -> Available: 9
    21:10:00.169 -> Incoming Byte: 9 - 9 - 1001
    21:10:00.169 -> Available: 9
    21:10:00.169 -> Incoming Byte: 213 - D5 - 11010101
    21:10:00.169 -> Payload Length: 6
    21:10:00.169 -> Available: 8
    21:10:00.169 -> Incoming Byte: 0 - 0 - 0
    21:10:00.169 -> Available: 8
    21:10:00.169 -> Incoming Byte: 128 - 80 - 10000000
    21:10:00.169 -> Available: 7
    21:10:00.169 -> Incoming Byte: 68 - 44 - 1000100
    21:10:00.202 -> Available: 7
    21:10:00.202 -> Incoming Byte: 71 - 47 - 1000111
    21:10:00.202 -> Available: 6
    21:10:00.202 -> Incoming Byte: 64 - 40 - 1000000
    21:10:00.202 -> Available: 6
    21:10:00.202 -> Incoming Byte: 0 - 0 - 0
    21:10:00.202 -> Available: 5
    21:10:00.202 -> Incoming Byte: 155 - 9B - 10011011
    21:10:00.302 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:00.302 -> 23
    21:10:00.302 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.302 -> Available: 23
    21:10:00.302 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.302 -> Available: 22
    21:10:00.302 -> Incoming Byte: 255 - FF - 11111111
    21:10:00.302 -> Available: 21
    21:10:00.302 -> Incoming Byte: 22 - 16 - 10110
    21:10:00.302 -> Available: 20
    21:10:00.302 -> Incoming Byte: 46 - 2E - 101110
    21:10:00.302 -> Available: 19
    21:10:00.302 -> Incoming Byte: 8 - 8 - 1000
    21:10:00.302 -> Available: 18
    21:10:00.302 -> Incoming Byte: 210 - D2 - 11010010
    21:10:00.302 -> Payload Length: 3
    21:10:00.302 -> Available: 17
    21:10:00.302 -> Incoming Byte: 0 - 0 - 0
    21:10:00.302 -> Available: 16
    21:10:00.302 -> Incoming Byte: 128 - 80 - 10000000
    21:10:00.302 -> Available: 15
    21:10:00.302 -> Incoming Byte: 82 - 52 - 1010010
    21:10:00.302 -> Available: 14
    21:10:00.302 -> Incoming Byte: 140 - 8C - 10001100
    21:10:00.401 -> Event KNX_TELEGRAM
    21:10:00.401 -> Event KNX_TELEGRAM
    21:10:00.401 -> 26
    21:10:00.401 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.401 -> Available: 26
    21:10:00.401 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.401 -> Available: 25
    21:10:00.401 -> Incoming Byte: 255 - FF - 11111111
    21:10:00.401 -> Available: 24
    21:10:00.401 -> Incoming Byte: 22 - 16 - 10110
    21:10:00.401 -> Available: 23
    21:10:00.401 -> Incoming Byte: 46 - 2E - 101110
    21:10:00.401 -> Available: 22
    21:10:00.401 -> Incoming Byte: 11 - B - 1011
    21:10:00.401 -> Available: 21
    21:10:00.401 -> Incoming Byte: 213 - D5 - 11010101
    21:10:00.401 -> Payload Length: 6
    21:10:00.401 -> Available: 20
    21:10:00.401 -> Incoming Byte: 0 - 0 - 0
    21:10:00.401 -> Available: 19
    21:10:00.401 -> Incoming Byte: 128 - 80 - 10000000
    21:10:00.401 -> Available: 18
    21:10:00.401 -> Incoming Byte: 196 - C4 - 11000100
    21:10:00.401 -> Available: 17
    21:10:00.401 -> Incoming Byte: 69 - 45 - 1000101
    21:10:00.401 -> Available: 16
    21:10:00.401 -> Incoming Byte: 64 - 40 - 1000000
    21:10:00.401 -> Available: 15
    21:10:00.401 -> Incoming Byte: 0 - 0 - 0
    21:10:00.401 -> Available: 14
    21:10:00.401 -> Incoming Byte: 27 - 1B - 11011
    21:10:00.501 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:00.501 -> 13
    21:10:00.501 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.501 -> Available: 13
    21:10:00.501 -> Incoming Byte: 188 - BC - 10111100
    21:10:00.501 -> Available: 12
    21:10:00.501 -> Incoming Byte: 255 - FF - 11111111
    21:10:00.501 -> Available: 11
    21:10:00.501 -> Incoming Byte: 22 - 16 - 10110
    21:10:00.501 -> Available: 10
    21:10:00.501 -> Incoming Byte: 46 - 2E - 101110
    21:10:00.501 -> Available: 9
    21:10:00.501 -> Incoming Byte: 10 - A - 1010
    21:10:00.501 -> Available: 8
    21:10:00.501 -> Incoming Byte: 213 - D5 - 11010101
    21:10:00.501 -> Payload Length: 6
    21:10:00.501 -> Available: 7
    21:10:00.501 -> Incoming Byte: 0 - 0 - 0
    21:10:00.501 -> Available: 6
    21:10:00.501 -> Incoming Byte: 128 - 80 - 10000000
    21:10:00.501 -> Available: 5
    21:10:00.501 -> Incoming Byte: 66 - 42 - 1000010
    21:10:00.501 -> Available: 4
    21:10:00.501 -> Incoming Byte: 124 - 7C - 1111100
    21:10:00.501 -> Available: 3
    21:10:00.501 -> Incoming Byte: 0 - 0 - 0
    21:10:00.501 -> Available: 2
    21:10:00.501 -> Incoming Byte: 0 - 0 - 0
    21:10:00.501 -> Available: 1
    21:10:00.534 -> Incoming Byte: 229 - E5 - 11100101
    21:10:00.634 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:03.058 -> 1
    21:10:03.058 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.058 -> Available: 1
    21:10:03.058 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.058 -> Available: 1
    21:10:03.058 -> Incoming Byte: 255 - FF - 11111111
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 22 - 16 - 10110
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 46 - 2E - 101110
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 9 - 9 - 1001
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 213 - D5 - 11010101
    21:10:03.058 -> Payload Length: 6
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 0 - 0 - 0
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 128 - 80 - 10000000
    21:10:03.058 -> Available: 0
    21:10:03.058 -> Incoming Byte: 68 - 44 - 1000100
    21:10:03.058 -> Available: 0
    21:10:03.091 -> Incoming Byte: 72 - 48 - 1001000
    21:10:03.091 -> Available: 0
    21:10:03.091 -> Incoming Byte: 64 - 40 - 1000000
    21:10:03.091 -> Available: 0
    21:10:03.091 -> Incoming Byte: 0 - 0 - 0
    21:10:03.091 -> Available: 0
    21:10:03.091 -> Incoming Byte: 148 - 94 - 10010100
    21:10:03.190 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:03.190 -> 10
    21:10:03.190 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.190 -> Available: 10
    21:10:03.190 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.190 -> Available: 9
    21:10:03.190 -> Incoming Byte: 255 - FF - 11111111
    21:10:03.190 -> Available: 8
    21:10:03.190 -> Incoming Byte: 22 - 16 - 10110
    21:10:03.190 -> Available: 7
    21:10:03.190 -> Incoming Byte: 46 - 2E - 101110
    21:10:03.190 -> Available: 6
    21:10:03.190 -> Incoming Byte: 8 - 8 - 1000
    21:10:03.190 -> Available: 5
    21:10:03.190 -> Incoming Byte: 210 - D2 - 11010010
    21:10:03.190 -> Payload Length: 3
    21:10:03.190 -> Available: 4
    21:10:03.190 -> Incoming Byte: 0 - 0 - 0
    21:10:03.190 -> Available: 3
    21:10:03.190 -> Incoming Byte: 128 - 80 - 10000000
    21:10:03.190 -> Available: 2
    21:10:03.190 -> Incoming Byte: 82 - 52 - 1010010
    21:10:03.190 -> Available: 1
    21:10:03.190 -> Incoming Byte: 140 - 8C - 10001100
    21:10:03.290 -> Event KNX_TELEGRAM
    21:10:03.290 -> Event KNX_TELEGRAM
    21:10:03.290 -> 26
    21:10:03.290 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.290 -> Available: 26
    21:10:03.290 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.290 -> Available: 25
    21:10:03.290 -> Incoming Byte: 255 - FF - 11111111
    21:10:03.290 -> Available: 24
    21:10:03.290 -> Incoming Byte: 22 - 16 - 10110
    21:10:03.290 -> Available: 23
    21:10:03.290 -> Incoming Byte: 46 - 2E - 101110
    21:10:03.290 -> Available: 22
    21:10:03.290 -> Incoming Byte: 11 - B - 1011
    21:10:03.290 -> Available: 21
    21:10:03.290 -> Incoming Byte: 213 - D5 - 11010101
    21:10:03.290 -> Payload Length: 6
    21:10:03.290 -> Available: 20
    21:10:03.290 -> Incoming Byte: 0 - 0 - 0
    21:10:03.290 -> Available: 19
    21:10:03.290 -> Incoming Byte: 128 - 80 - 10000000
    21:10:03.290 -> Available: 18
    21:10:03.290 -> Incoming Byte: 196 - C4 - 11000100
    21:10:03.290 -> Available: 17
    21:10:03.290 -> Incoming Byte: 68 - 44 - 1000100
    21:10:03.290 -> Available: 16
    21:10:03.290 -> Incoming Byte: 192 - C0 - 11000000
    21:10:03.290 -> Available: 15
    21:10:03.290 -> Incoming Byte: 0 - 0 - 0
    21:10:03.290 -> Available: 14
    21:10:03.290 -> Incoming Byte: 154 - 9A - 10011010
    21:10:03.390 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:03.390 -> 13
    21:10:03.390 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.390 -> Available: 13
    21:10:03.390 -> Incoming Byte: 188 - BC - 10111100
    21:10:03.390 -> Available: 12
    21:10:03.390 -> Incoming Byte: 255 - FF - 11111111
    21:10:03.390 -> Available: 11
    21:10:03.390 -> Incoming Byte: 22 - 16 - 10110
    21:10:03.390 -> Available: 10
    21:10:03.390 -> Incoming Byte: 46 - 2E - 101110
    21:10:03.390 -> Available: 9
    21:10:03.390 -> Incoming Byte: 10 - A - 1010
    21:10:03.390 -> Available: 8
    21:10:03.390 -> Incoming Byte: 213 - D5 - 11010101
    21:10:03.390 -> Payload Length: 6
    21:10:03.390 -> Available: 7
    21:10:03.390 -> Incoming Byte: 0 - 0 - 0
    21:10:03.390 -> Available: 6
    21:10:03.390 -> Incoming Byte: 128 - 80 - 10000000
    21:10:03.390 -> Available: 5
    21:10:03.390 -> Incoming Byte: 66 - 42 - 1000010
    21:10:03.423 -> Available: 4
    21:10:03.423 -> Incoming Byte: 120 - 78 - 1111000
    21:10:03.423 -> Available: 3
    21:10:03.423 -> Incoming Byte: 0 - 0 - 0
    21:10:03.423 -> Available: 2
    21:10:03.423 -> Incoming Byte: 0 - 0 - 0
    21:10:03.423 -> Available: 1
    21:10:03.423 -> Incoming Byte: 225 - E1 - 11100001
    21:10:03.523 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:04.520 -> 1
    21:10:04.520 -> Incoming Byte: 188 - BC - 10111100
    21:10:04.520 -> Available: 1
    21:10:04.520 -> Incoming Byte: 188 - BC - 10111100
    21:10:04.520 -> Available: 1
    21:10:04.520 -> Incoming Byte: 16 - 10 - 10000
    21:10:04.520 -> Available: 0
    21:10:04.520 -> Incoming Byte: 32 - 20 - 100000
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 41 - 29 - 101001
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 17 - 11 - 10001
    21:10:04.553 -> Available: 1
    21:10:04.553 -> Incoming Byte: 213 - D5 - 11010101
    21:10:04.553 -> Payload Length: 6
    21:10:04.553 -> Available: 1
    21:10:04.553 -> Incoming Byte: 0 - 0 - 0
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 128 - 80 - 10000000
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 63 - 3F - 111111
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 48 - 30 - 110000
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 163 - A3 - 10100011
    21:10:04.553 -> Available: 0
    21:10:04.553 -> Incoming Byte: 215 - D7 - 11010111
    21:10:04.553 -> Available: 1
    21:10:04.553 -> Incoming Byte: 101 - 65 - 1100101
    21:10:04.653 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:06.083 -> 1
    21:10:06.083 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.083 -> Available: 1
    21:10:06.083 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.083 -> Available: 1
    21:10:06.083 -> Incoming Byte: 255 - FF - 11111111
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 22 - 16 - 10110
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 46 - 2E - 101110
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 9 - 9 - 1001
    21:10:06.083 -> Available: 1
    21:10:06.083 -> Incoming Byte: 213 - D5 - 11010101
    21:10:06.083 -> Payload Length: 6
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 0 - 0 - 0
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 128 - 80 - 10000000
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 68 - 44 - 1000100
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 72 - 48 - 1001000
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 0 - 0 - 0
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 0 - 0 - 0
    21:10:06.083 -> Available: 0
    21:10:06.083 -> Incoming Byte: 212 - D4 - 11010100
    21:10:06.182 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:06.182 -> 10
    21:10:06.182 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.182 -> Available: 10
    21:10:06.182 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.182 -> Available: 9
    21:10:06.182 -> Incoming Byte: 255 - FF - 11111111
    21:10:06.182 -> Available: 8
    21:10:06.182 -> Incoming Byte: 22 - 16 - 10110
    21:10:06.182 -> Available: 7
    21:10:06.182 -> Incoming Byte: 46 - 2E - 101110
    21:10:06.182 -> Available: 6
    21:10:06.182 -> Incoming Byte: 8 - 8 - 1000
    21:10:06.182 -> Available: 5
    21:10:06.182 -> Incoming Byte: 210 - D2 - 11010010
    21:10:06.182 -> Payload Length: 3
    21:10:06.182 -> Available: 4
    21:10:06.182 -> Incoming Byte: 0 - 0 - 0
    21:10:06.182 -> Available: 3
    21:10:06.182 -> Incoming Byte: 128 - 80 - 10000000
    21:10:06.182 -> Available: 2
    21:10:06.182 -> Incoming Byte: 82 - 52 - 1010010
    21:10:06.216 -> Available: 1
    21:10:06.216 -> Incoming Byte: 140 - 8C - 10001100
    21:10:06.315 -> Event KNX_TELEGRAM
    21:10:06.315 -> Event KNX_TELEGRAM
    21:10:06.315 -> 25
    21:10:06.315 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.315 -> Available: 26
    21:10:06.315 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.315 -> Available: 25
    21:10:06.315 -> Incoming Byte: 255 - FF - 11111111
    21:10:06.315 -> Available: 24
    21:10:06.315 -> Incoming Byte: 22 - 16 - 10110
    21:10:06.315 -> Available: 23
    21:10:06.315 -> Incoming Byte: 46 - 2E - 101110
    21:10:06.315 -> Available: 22
    21:10:06.315 -> Incoming Byte: 11 - B - 1011
    21:10:06.315 -> Available: 21
    21:10:06.315 -> Incoming Byte: 213 - D5 - 11010101
    21:10:06.315 -> Payload Length: 6
    21:10:06.315 -> Available: 20
    21:10:06.315 -> Incoming Byte: 0 - 0 - 0
    21:10:06.315 -> Available: 19
    21:10:06.315 -> Incoming Byte: 128 - 80 - 10000000
    21:10:06.315 -> Available: 18
    21:10:06.315 -> Incoming Byte: 196 - C4 - 11000100
    21:10:06.315 -> Available: 17
    21:10:06.315 -> Incoming Byte: 69 - 45 - 1000101
    21:10:06.315 -> Available: 16
    21:10:06.315 -> Incoming Byte: 192 - C0 - 11000000
    21:10:06.315 -> Available: 15
    21:10:06.315 -> Incoming Byte: 0 - 0 - 0
    21:10:06.315 -> Available: 14
    21:10:06.315 -> Incoming Byte: 155 - 9B - 10011011
    21:10:06.415 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:06.415 -> 13
    21:10:06.415 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.415 -> Available: 13
    21:10:06.415 -> Incoming Byte: 188 - BC - 10111100
    21:10:06.415 -> Available: 12
    21:10:06.415 -> Incoming Byte: 255 - FF - 11111111
    21:10:06.415 -> Available: 11
    21:10:06.415 -> Incoming Byte: 22 - 16 - 10110
    21:10:06.415 -> Available: 10
    21:10:06.415 -> Incoming Byte: 46 - 2E - 101110
    21:10:06.415 -> Available: 9
    21:10:06.415 -> Incoming Byte: 10 - A - 1010
    21:10:06.415 -> Available: 8
    21:10:06.415 -> Incoming Byte: 213 - D5 - 11010101
    21:10:06.415 -> Payload Length: 6
    21:10:06.415 -> Available: 7
    21:10:06.415 -> Incoming Byte: 0 - 0 - 0
    21:10:06.415 -> Available: 6
    21:10:06.415 -> Incoming Byte: 128 - 80 - 10000000
    21:10:06.415 -> Available: 5
    21:10:06.415 -> Incoming Byte: 66 - 42 - 1000010
    21:10:06.415 -> Available: 4
    21:10:06.415 -> Incoming Byte: 120 - 78 - 1111000
    21:10:06.415 -> Available: 3
    21:10:06.415 -> Incoming Byte: 0 - 0 - 0
    21:10:06.415 -> Available: 2
    21:10:06.415 -> Incoming Byte: 0 - 0 - 0
    21:10:06.415 -> Available: 1
    21:10:06.415 -> Incoming Byte: 225 - E1 - 11100001
    21:10:06.515 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:08.974 -> 1
    21:10:08.974 -> Incoming Byte: 188 - BC - 10111100
    21:10:08.974 -> Available: 1
    21:10:08.974 -> Incoming Byte: 188 - BC - 10111100
    21:10:08.974 -> Available: 1
    21:10:08.974 -> Incoming Byte: 16 - 10 - 10000
    21:10:08.974 -> Available: 1
    21:10:08.974 -> Incoming Byte: 32 - 20 - 100000
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 41 - 29 - 101001
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 21 - 15 - 10101
    21:10:08.974 -> Available: 1
    21:10:08.974 -> Incoming Byte: 213 - D5 - 11010101
    21:10:08.974 -> Payload Length: 6
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 0 - 0 - 0
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 128 - 80 - 10000000
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 62 - 3E - 111110
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 189 - BD - 10111101
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 112 - 70 - 1110000
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 164 - A4 - 10100100
    21:10:08.974 -> Available: 0
    21:10:08.974 -> Incoming Byte: 77 - 4D - 1001101
    21:10:09.074 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:09.141 -> 1
    21:10:09.141 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.141 -> Available: 1
    21:10:09.141 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.141 -> Available: 1
    21:10:09.141 -> Incoming Byte: 255 - FF - 11111111
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 22 - 16 - 10110
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 46 - 2E - 101110
    21:10:09.141 -> Available: 1
    21:10:09.141 -> Incoming Byte: 9 - 9 - 1001
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 213 - D5 - 11010101
    21:10:09.141 -> Payload Length: 6
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 0 - 0 - 0
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 128 - 80 - 10000000
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 68 - 44 - 1000100
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 72 - 48 - 1001000
    21:10:09.141 -> Available: 0
    21:10:09.141 -> Incoming Byte: 0 - 0 - 0
    21:10:09.141 -> Available: 0
    21:10:09.174 -> Incoming Byte: 0 - 0 - 0
    21:10:09.174 -> Available: 0
    21:10:09.174 -> Incoming Byte: 212 - D4 - 11010100
    21:10:09.273 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:09.273 -> 10
    21:10:09.273 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.273 -> Available: 10
    21:10:09.273 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.273 -> Available: 9
    21:10:09.273 -> Incoming Byte: 255 - FF - 11111111
    21:10:09.273 -> Available: 8
    21:10:09.273 -> Incoming Byte: 22 - 16 - 10110
    21:10:09.273 -> Available: 7
    21:10:09.273 -> Incoming Byte: 46 - 2E - 101110
    21:10:09.273 -> Available: 6
    21:10:09.273 -> Incoming Byte: 8 - 8 - 1000
    21:10:09.273 -> Available: 5
    21:10:09.273 -> Incoming Byte: 210 - D2 - 11010010
    21:10:09.273 -> Payload Length: 3
    21:10:09.273 -> Available: 4
    21:10:09.273 -> Incoming Byte: 0 - 0 - 0
    21:10:09.273 -> Available: 3
    21:10:09.273 -> Incoming Byte: 128 - 80 - 10000000
    21:10:09.273 -> Available: 2
    21:10:09.273 -> Incoming Byte: 82 - 52 - 1010010
    21:10:09.273 -> Available: 1
    21:10:09.273 -> Incoming Byte: 140 - 8C - 10001100
    21:10:09.373 -> Event KNX_TELEGRAM
    21:10:09.373 -> Event KNX_TELEGRAM
    21:10:09.373 -> 26
    21:10:09.373 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.373 -> Available: 26
    21:10:09.373 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.373 -> Available: 25
    21:10:09.373 -> Incoming Byte: 255 - FF - 11111111
    21:10:09.373 -> Available: 24
    21:10:09.373 -> Incoming Byte: 22 - 16 - 10110
    21:10:09.373 -> Available: 23
    21:10:09.373 -> Incoming Byte: 46 - 2E - 101110
    21:10:09.373 -> Available: 22
    21:10:09.373 -> Incoming Byte: 11 - B - 1011
    21:10:09.373 -> Available: 21
    21:10:09.373 -> Incoming Byte: 213 - D5 - 11010101
    21:10:09.373 -> Payload Length: 6
    21:10:09.373 -> Available: 20
    21:10:09.373 -> Incoming Byte: 0 - 0 - 0
    21:10:09.373 -> Available: 19
    21:10:09.373 -> Incoming Byte: 128 - 80 - 10000000
    21:10:09.373 -> Available: 18
    21:10:09.373 -> Incoming Byte: 196 - C4 - 11000100
    21:10:09.373 -> Available: 17
    21:10:09.373 -> Incoming Byte: 69 - 45 - 1000101
    21:10:09.373 -> Available: 16
    21:10:09.373 -> Incoming Byte: 128 - 80 - 10000000
    21:10:09.373 -> Available: 15
    21:10:09.373 -> Incoming Byte: 0 - 0 - 0
    21:10:09.373 -> Available: 14
    21:10:09.373 -> Incoming Byte: 219 - DB - 11011011
    21:10:09.473 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:09.473 -> 13
    21:10:09.473 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.473 -> Available: 13
    21:10:09.473 -> Incoming Byte: 188 - BC - 10111100
    21:10:09.473 -> Available: 12
    21:10:09.473 -> Incoming Byte: 255 - FF - 11111111
    21:10:09.473 -> Available: 11
    21:10:09.473 -> Incoming Byte: 22 - 16 - 10110
    21:10:09.473 -> Available: 10
    21:10:09.473 -> Incoming Byte: 46 - 2E - 101110
    21:10:09.473 -> Available: 9
    21:10:09.473 -> Incoming Byte: 10 - A - 1010
    21:10:09.473 -> Available: 8
    21:10:09.473 -> Incoming Byte: 213 - D5 - 11010101
    21:10:09.473 -> Payload Length: 6
    21:10:09.473 -> Available: 7
    21:10:09.473 -> Incoming Byte: 0 - 0 - 0
    21:10:09.473 -> Available: 6
    21:10:09.473 -> Incoming Byte: 128 - 80 - 10000000
    21:10:09.473 -> Available: 5
    21:10:09.473 -> Incoming Byte: 66 - 42 - 1000010
    21:10:09.473 -> Available: 4
    21:10:09.473 -> Incoming Byte: 124 - 7C - 1111100
    21:10:09.473 -> Available: 3
    21:10:09.473 -> Incoming Byte: 0 - 0 - 0
    21:10:09.473 -> Available: 2
    21:10:09.473 -> Incoming Byte: 0 - 0 - 0
    21:10:09.473 -> Available: 1
    21:10:09.473 -> Incoming Byte: 229 - E5 - 11100101
    21:10:09.573 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:10.770 -> 1
    21:10:10.770 -> Incoming Byte: 188 - BC - 10111100
    21:10:10.770 -> Available: 1
    21:10:10.770 -> Incoming Byte: 188 - BC - 10111100
    21:10:10.770 -> Available: 1
    21:10:10.770 -> Incoming Byte: 16 - 10 - 10000
    21:10:10.770 -> Available: 0
    21:10:10.770 -> Incoming Byte: 18 - 12 - 10010
    21:10:10.770 -> Available: 0
    21:10:10.770 -> Incoming Byte: 35 - 23 - 100011
    21:10:10.770 -> Available: 0
    21:10:10.803 -> Incoming Byte: 6 - 6 - 110
    21:10:10.803 -> Available: 0
    21:10:10.803 -> Incoming Byte: 209 - D1 - 11010001
    21:10:10.803 -> Payload Length: 2
    21:10:10.803 -> Available: 1
    21:10:10.803 -> Incoming Byte: 0 - 0 - 0
    21:10:10.803 -> Available: 0
    21:10:10.803 -> Incoming Byte: 128 - 80 - 10000000
    21:10:10.803 -> Available: 0
    21:10:10.803 -> Incoming Byte: 53 - 35 - 110101
    21:10:10.903 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:10.903 -> 9
    21:10:10.903 -> Incoming Byte: 188 - BC - 10111100
    21:10:10.903 -> Available: 9
    21:10:10.903 -> Incoming Byte: 188 - BC - 10111100
    21:10:10.903 -> Available: 8
    21:10:10.903 -> Incoming Byte: 16 - 10 - 10000
    21:10:10.903 -> Available: 7
    21:10:10.903 -> Incoming Byte: 18 - 12 - 10010
    21:10:10.903 -> Available: 6
    21:10:10.903 -> Incoming Byte: 36 - 24 - 100100
    21:10:10.903 -> Available: 5
    21:10:10.903 -> Incoming Byte: 6 - 6 - 110
    21:10:10.903 -> Available: 4
    21:10:10.903 -> Incoming Byte: 209 - D1 - 11010001
    21:10:10.903 -> Payload Length: 2
    21:10:10.903 -> Available: 3
    21:10:10.903 -> Incoming Byte: 0 - 0 - 0
    21:10:10.903 -> Available: 2
    21:10:10.903 -> Incoming Byte: 129 - 81 - 10000001
    21:10:10.903 -> Available: 1
    21:10:10.903 -> Incoming Byte: 51 - 33 - 110011
    21:10:11.002 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:11.401 -> 1
    21:10:11.401 -> Incoming Byte: 188 - BC - 10111100
    21:10:11.401 -> Available: 1
    21:10:11.401 -> Incoming Byte: 188 - BC - 10111100
    21:10:11.401 -> Available: 1
    21:10:11.401 -> Incoming Byte: 16 - 10 - 10000
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 32 - 20 - 100000
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 41 - 29 - 101001
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 21 - 15 - 10101
    21:10:11.401 -> Available: 1
    21:10:11.401 -> Incoming Byte: 213 - D5 - 11010101
    21:10:11.401 -> Payload Length: 6
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 0 - 0 - 0
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 128 - 80 - 10000000
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 62 - 3E - 111110
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 199 - C7 - 11000111
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 174 - AE - 10101110
    21:10:11.401 -> Available: 1
    21:10:11.401 -> Incoming Byte: 20 - 14 - 10100
    21:10:11.401 -> Available: 0
    21:10:11.401 -> Incoming Byte: 89 - 59 - 1011001
    21:10:11.501 -> Event IRRELEVANT_KNX_TELEGRAM
    21:10:14.758 -> 1
    21:10:14.758 -> Incoming Byte: 0 - 0 - 0
    21:10:14.758 -> Available: 1
    21:10:14.758 -> Incoming Byte: 0 - 0 - 0​
    Ich bitte um Hilfe. Meine Vermutung geht dahin, dass das triggern auf "knx.addListenGroupAddress" nicht korrekt funktioniert.
    Zuletzt geändert von FuLgOrE; 26.05.2024, 20:11.

    Einen Kommentar schreiben:


  • FuLgOrE
    antwortet
    Hallo Thorsten,

    herzlichen Glückwunsch zum Zehnjährigen. 😀
    Ich möchte mich gerne auch mit deinen Librarys vergnügen und mir mit einem Microcontroller eine Serovsteuerung bauen. Da ich damit Probleme hatte, habe ich bereits einen anderen Thread eröffnet um jetzt festzustellen, dass der die Themen besser hier her gehören. @Admins: Falls ihr das hier her schieben könntet, wäre das nett.

    Es handelt sich um folgenden:
    https://knx-user-forum.de/forum/%C3%...n-funktioniert

    Ich habe nun schon 2 Microcontroller getestet. Einmal einen Arduino Nano Clon und meinen bevorzugten Seeeduino Xiao (SAMD21). Bei beiden kann ich Daten senden, aber die Abfrage von vordefinierten Telegrammen (knx.addListenGroupAddress(.....) funktioniert bei mir irgendwie nicht.
    Code:
    #include <Arduino.h>
    #include <KnxTpUart.h>
    #include <KnxTelegram.h>
    #include <Servo.h>
    
    #define PHYSICAL_ADDRESS "1.0.61"
    #define INPUT_GROUP_ADDRESS "20/2/0"
    #define OUTPUT_GROUP_ADDRESS "20/2/1"
    #define SERVOPIN 1
    #define LED_OFF HIGH
    #define LED_ON LOW
    #define REFRESH_INTERVAL 10000
    bool SERVOPOSITION = false;
    static unsigned long lastRefreshTime = 0;
    
    KnxTpUart knx(&Serial1, PHYSICAL_ADDRESS);
    Servo myservo; // create servo object to control a servo
    int pos = 90; // variable to store the servo position
    int led = LED_BUILTIN;
    
    void setup() {
      Serial.begin(115200); // USB
      Serial.println("Bla1");  
      Serial1.begin(19200, SERIAL_8E1); // Siemens seriell
      while (!Serial); // Warten auf USB
      Serial.println("Bla2");
      while (!Serial1); // Warten auf Siemens
      Serial.println("Bla3");
      knx.uartReset();
      Serial.println("Bla4");
      knx.addListenGroupAddress(INPUT_GROUP_ADDRESS);
      Serial.println("Bla5");
    //  delay(1000);
      Serial.println("Bla6");
      myservo.attach(SERVOPIN); // attaches the servo on pin 1 to the servo object
      pinMode(led, OUTPUT);
      digitalWrite(led, LED_OFF);
      Serial.println("Setup done");
    }
    
    void maintainKnxSerial() {
      if (Serial1.available() > 0) {  
        KnxTpUartSerialEventType eType = knx.serialEvent();
        if (eType == KNX_TELEGRAM) {
          Serial.println("Telegramm empfangen");
          KnxTelegram* telegram = knx.getReceivedTelegram();
    
          String target =
            String(0 + telegram->getTargetMainGroup()) + "/" +
            String(0 + telegram->getTargetMiddleGroup()) + "/" +
            String(0 + telegram->getTargetSubGroup());
            
          Serial.print("Zieladresse: ");
          Serial.println(target);
    
          if (telegram->getCommand() == KNX_COMMAND_READ) {
            Serial.println("Leseanforderung erhalten");
            // Antwort auf Leseanforderung
            if (target == OUTPUT_GROUP_ADDRESS) {
              knx.groupAnswerBool(OUTPUT_GROUP_ADDRESS, SERVOPOSITION);
            }
          } else if (telegram->getCommand() == KNX_COMMAND_WRITE) {
            Serial.println("Schreibanforderung erhalten");
            // Schreibanforderung
            if (target == INPUT_GROUP_ADDRESS) {
              if (telegram->getBool()) {
                Serial.println("Servo auf Position 90 setzen");
                SERVOPOSITION = true;
                myservo.write(90);
                digitalWrite(led, LED_ON);
              } else {
                Serial.println("Servo auf Position 180 setzen");
                SERVOPOSITION = false;
                myservo.write(180);
                digitalWrite(led, LED_OFF);
              }
            }
          }
        } else {
          Serial.print("Kein KNX-Telegramm, Event-Type: ");
          Serial.println(eType);
        }
      }
    }
    
    
    
    
    /*
    void serialEvent1() {
        Serial.println("Aufruf");
      KnxTpUartSerialEventType eType = knx.serialEvent();
      if (eType == TPUART_RESET_INDICATION) {
        Serial.println("Event TPUART_RESET_INDICATION");
      }
      else if (eType == UNKNOWN) {
        Serial.println("Event UNKNOWN");
      }
      else if (eType == KNX_TELEGRAM) {
        Serial.println("Event KNX_TELEGRAM");
        KnxTelegram* telegram = knx.getReceivedTelegram();
        // Telegrammauswertung auf KNX (bei Empfang immer notwendig)
        String target =
          String(0 + telegram->getTargetMainGroup())   + "/" +
          String(0 + telegram->getTargetMiddleGroup()) + "/" +
          String(0 + telegram->getTargetSubGroup());
    
        // Here you have the telegram and can do whatever you want
        if (telegram->getCommand() == KNX_COMMAND_WRITE) {
          // Auswertung des empfangenen KNX-Telegrammes mit Schreibbefehl (Flag) -> Aktion
          if (target == "15/0/0") {
            int received_15_0_0 = telegram->getBool();
            Serial.print("Empfangener wert");
            Serial.println(received_15_0_0);
            if (received_15_0_0) {
    //          digitalWrite(LED, HIGH);
            }
            else {
    //          digitalWrite(LED, LOW);
            }
          }
          if (target == "15/0/1") {
            int received_15_0_1 = telegram->get4BitIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_1);
          }
          if (target == "15/0/2") {
            int received_15_0_2_0 = telegram->get4BitDirectionValue();
            int received_15_0_2_1 = telegram->get4BitStepsValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            switch (received_15_0_2_0) {
            case 0:
              Serial.print("Direction: down");
              break;
            case 1:
              Serial.print("Direction: up");
              break;
            }
            Serial.print("  ");
            switch (received_15_0_2_1) {
            case 0:
              Serial.print("Step: stop");
              break;
            case 1:
              Serial.print("Step: 100%");
              break;
            case 2:
              Serial.print("Step: 50%");
              break;
            case 3:
              Serial.print("Step: 25%");
              break;
            case 4:
              Serial.print("Step: 12%");
              break;
            case 5:
              Serial.print("Step: 6%");
              break;
            case 6:
              Serial.print("Step: 3%");
              break;
            case 7:
              Serial.print("Step: 1%");
              break;
            }
            Serial.println("");
          }
          if (target == "15/0/3") {
            int received_15_0_3 = telegram->get1ByteIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_3);
          }
          if (target == "15/0/4") {
            int received_15_0_4 = telegram->get2ByteIntValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_4);
          }
          if (target == "15/0/5") {
            float received_15_0_5 = telegram->get2ByteFloatValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_5);
          }
          if (target == "15/0/6") {
            int received_15_0_6_0 = telegram->get3ByteWeekdayValue();
            int received_15_0_6_1 = telegram->get3ByteHourValue();
            int received_15_0_6_2 = telegram->get3ByteMinuteValue();
            int received_15_0_6_3 = telegram->get3ByteSecondValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            Serial.print(received_15_0_6_0);
            Serial.print("  ");
            Serial.print(received_15_0_6_1);
            Serial.print(":");
            Serial.print(received_15_0_6_2);
            Serial.print(":");
            Serial.print(received_15_0_6_3);
            Serial.println("");
          }
          if (target == "15/0/7") {
            int received_15_0_7_0 = telegram->get3ByteDayValue();
            int received_15_0_7_1 = telegram->get3ByteMonthValue();
            int received_15_0_7_2 = telegram->get3ByteYearValue();
            Serial.print("Empfangener Wert:");
            Serial.println("");
            Serial.print(received_15_0_7_0);
            Serial.print(".");
            Serial.print(received_15_0_7_1);
            Serial.print(".");
            Serial.print(received_15_0_7_2);
            Serial.println("");
          }
          if (target == "15/0/8") {
            float received_15_0_8 = telegram->get4ByteFloatValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_8);
          }
          if (target == "15/0/9") {
            String received_15_0_9 = telegram->get14ByteValue();
            Serial.print("Empfangener Wert:");
            Serial.println(received_15_0_9);
          }
        }
      }
    }
    
    */
    
    
    
    
    void loop() {
      maintainKnxSerial();
    //  serialEvent1();
    
     //Das funktioniert
        if (millis() - lastRefreshTime >= REFRESH_INTERVAL) {
        lastRefreshTime += REFRESH_INTERVAL;
        knx.groupWriteBool(OUTPUT_GROUP_ADDRESS, false);
      }
    
      
    }​
    Ich habe nun Debug-Ausgaben per USB ausgewertet und stelle ein eType von meistens 3, manchmal 2 fest.
    Um diesen Befehl geht es:
    Gemäß der KnxTpUart.h müsste 2 ja ein KNX_TELEGRAM sein und 3 IRRELEVANT_KNX_TELEGRAM.
    Wenn ich das richtig verstehe, sollte also meine Debug-Ausgabe in Zeile 45 zünden. In Zeile 44 wird ausgewertet
    if (eType == KNX_TELEGRAM) {
    in 45 wird dann auf den USB-Serial "Telegramm empfangen" ausgegeben. Das passiert jedoch nicht. Gibt es irgend einen Ratschlag, wie ich da vorgehen kann? Ich denke, es müsste ja funktionieren.

    EDIT:
    2 sollte IRRELEVANT_KNX_TELEGRAM sein und 3 UKNOWN.
    Ich habe jedenfalls in meinem Codebeispiel die Gruppenadresse 20/2/0 auf "listen" gesetzt. Ferner habe ich auf diese Gruppenadresse Boolsche Werte (mittels NodeRed) gesendet.

    Hilft das bei der Fehlersuche?

    EDIT2:
    Ich habe mir jetzt einen Arduino Pro Micro zugelegt. Dann kann ich einmal 1 zu 1 das nachbauen, was auf
    https://haus-automatisierung.com/har...selbstbau.html
    genannt ist. Irgendwie muss es ja funktionieren. Der Seeeduino Xiao ist ungetestet, mein Arduino Nano hat keine zweite serielle Schnittstelle, was das Debuggen ätzend macht und meinem ebenso noch vorhandenen Arduino Uno geht es genauso. Schauen wir mal, was dabei raus kommt.
    Zuletzt geändert von FuLgOrE; 24.05.2024, 21:32.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Ich muss gerade mal 10-jähriges feiern :-)
    Der erste post war am 09.01.2014 - also vor 10 Jahren.
    Ich bin ein bisschen "baff" das dieser Thread immer noch "Lebt" - und freu mich wie weit wir mittlerweile gekommen sind (mit Ardunio, ESP, SelfKNX und co).

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • Masifi
    antwortet
    spontan sage ich mal, dass das delay(5000) hier etwas kontra-produktiv ist. Die Loop sollte man nie blockieren. In der Zeit können ja keine neue Nachrichten vom Bus gelesen werden.

    Einen Kommentar schreiben:


  • seba1997
    antwortet
    Hallo zusammen & allen erstmal noch ein frohes neues Jahr!

    Ich habe aktuell ein Problem beim Auslesen von KNX-Telegrammen auf einem Arduino Mega. Ich schaffe es nur ein Telegramm auszulesen, weitere Telegramme funktionieren nicht (also 2 oder mehr). Das Skript dient aktuell nur zu Testzwecken, um die Funktion an sich, mehrere Telegramme auszulesen, zum laufen zu bekommen. Hier sende ich aktuell 2 Messwerte über eine Siemens BCU ins KNX-System. Diese kommen dort auch korrekt an. Wenn ich diese dann allerdings über den Arduino auslesen möchte, bekomme ich nur Daten zum 1. Telegramm zurück. Ich habe bereits sehr viel probiert (ein eigener Void für das 2. Telegramm, if & else if, telegram1 & telegram2, target1 & target2, eType1 & eType2 --> siehe Code) , jedoch klappt nichts davon. Kennt sich hier vielleicht jemand damit aus und kann mir bitte weiterhelfen?

    Code:
    #include <KnxTpUart.h>
    #include "DHT.h" //DHT Bibliothek laden
    #define DHTPIN 2 //Der Sensor wird an PIN 2 angeschlossen    
    #define DHTTYPE DHT11    // Es handelt sich um den DHT11 Sensor
    #define Temperatur_Group_Adress "1/1/24"
    #define Luftfeuchtigkeit_Group_Adress "1/1/23"
    #define Physical_Adress "1/1/25"
    DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dth“ angesprochen
    KnxTpUart knx(&Serial1, Physical_Adress);  
    void setup() {
      Serial.begin(9600);
      Serial1.begin(19200, SERIAL_8E1);
      knx.uartReset();
      knx.addListenGroupAddress(Temperatur_Group_Adress);
      knx.addListenGroupAddress(Luftfeuchtigkeit_Group_Adress);
      knx.addListenGroupAddress(Nitrat_Group_Adress);  // Nitrat Gruppenadresse
      dht.begin(); //DHT11 Sensor starten
      }
    
    float Temp_from_KNX = 0;
    float Hum_from_KNX = 0;
    float getTemperatur() {
      int Temperatur = dht.readTemperature();
      return float (Temperatur);
    }
    float getLuftfeuchtigkeit() {
      int Luftfeuchtigkeit = dht.readHumidity();
      return float (Luftfeuchtigkeit);
    }
    void maintainSensors () {
      delay(10000); //Zwei Sekunden Vorlaufzeit bis zur Messung (der Sensor ist etwas träge)
      knx.groupWrite2ByteFloat(Luftfeuchtigkeit_Group_Adress, getLuftfeuchtigkeit());
      knx.groupWrite2ByteFloat(Temperatur_Group_Adress, getTemperatur());
    }
    
    void loop() {
     maintainSensors();
     maintainKnxSerial_Temp();
     //maintainKnxSerial_Hum();
     delay(5000);
    }
    void maintainKnxSerial_Temp() {
      //if (Serial1.available() > 0) {
        //Serial.println("Serial1 available");
        //Serial1.println("Serial1 available");
       KnxTpUartSerialEventType eType1 = knx.serialEvent();
      //if (eType == TPUART_RESET_INDICATION) {
        //Serial.println("Event TPUART_RESET_INDICATION");
      //}
      //if (eType == UNKNOWN_EVENT) {
        //Serial.println("Event UNKNOWN");
      //}
     if (eType1 == KNX_TELEGRAM) {
        //Serial.println("Event KNX_TELEGRAM");
          KnxTelegram* telegram = knx.getReceivedTelegram();
          Serial.println(" ");
          Serial.print("Telegramm erhalten --> ");
          // Create the KNX String Address in the "0/0/0" format
          String target =
            String(0 + telegram->getTargetMainGroup()) + "/" +
            String(0 + telegram->getTargetMiddleGroup()) + "/" +
            String(0 + telegram->getTargetSubGroup());
          // Check what has been sent on KNX and write it into variables/arrays
          if (telegram->getCommand() == KNX_COMMAND_WRITE) {
            if (target == Temperatur_Group_Adress) {
              Temp_from_KNX = telegram->get2ByteFloatValue();
              Serial.print(target);
              Serial.print(" --> Temperatur: ");
              Serial.print(Temp_from_KNX);
               }
            else if (target == Luftfeuchtigkeit_Group_Adress) {
              Hum_from_KNX = telegram->get2ByteFloatValue();
              Serial.println(" ");
              Serial.print("Telegramm erhalten --> ");
              Serial.print(target);
              Serial.print(" --> Humidity: ");
              Serial.print(Hum_from_KNX);
              }
      }
     }
    }
    void maintainKnxSerial_Hum() {
      Serial.print("Maintain Hum wird ausgeführt");
    KnxTpUartSerialEventType eType2 = knx.serialEvent();
    Serial.print("Initiate eType");
    if (eType2 == KNX_TELEGRAM) {
        Serial.println("Event KNX_TELEGRAM");
          KnxTelegram* telegram2 = knx.getReceivedTelegram();
          Serial.println(" ");
          Serial.print("Telegramm erhalten --> ");
          // Create the KNX String Address in the "0/0/0" format
          String target2 =
            String(0 + telegram2->getTargetMainGroup()) + "/" +
            String(0 + telegram2->getTargetMiddleGroup()) + "/" +
            String(0 + telegram2->getTargetSubGroup());
          if (telegram2->getCommand() == KNX_COMMAND_WRITE) {
            if (target2 == Luftfeuchtigkeit_Group_Adress) {
              Hum_from_KNX = telegram2->get2ByteFloatValue();
              Serial.println(" ");
              Serial.print("Telegramm erhalten --> ");
              Serial.print(target2);
              Serial.print(" --> Humidity: ");
              Serial.print(Hum_from_KNX);
               }
      }
     }
     }​
    Beste Grüße

    Sebastian

    Einen Kommentar schreiben:


  • pio007
    antwortet
    das direkt aus dem Beispiel...

    ich glaube ich versteh einfach den Code nicht richtig.
    Vlt kann jemand mal sagen, welches der Beispiele aus der Lib das richtige ist, um folgendes testweise zu realisieren:

    In der ETS schreibe ich auf eine bestimmte Gruppenadresse (z.B. 3/4/152) den bool Wahr, das liest der Arduino und schaltet eine LED an, bzw. umgekehrt.
    Vlt. komm ich so dem Fehler auf die Schliche...

    Danke und Grüße Marc

    Einen Kommentar schreiben:


  • dreamy1
    antwortet
    Code:
    if (target_3_4_152) {
    digitalWrite(LED_BUILTIN, HIGH);
    }​
    Fehlt da nicht sowas wie ein Vergleich (== 1) oder eine boolsche Abfrage (wobei Du oben als Ganzzahl int deklariert hast...)?

    Einen Kommentar schreiben:

Lädt...
X