Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

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

    der Fehler liegt genau da wo ich geschrieben habe, im example werden den o.g. funktionen 3x int als adresse übergeben aber die funktion wurde ja von dir auf 1x string umgebaut

    hab mal kurz gegoogelt was der arduino zur string umwandlung bietet:

    alt:
    Code:
    knx.individualAnswerMaskVersion(telegram->getSourceArea(), telegram->getSourceLine(), telegram->getSourceMember());
    neu:
    Code:
    knx.individualAnswerMaskVersion(String(String(telegram->getSourceArea())+"/"+String(telegram->getSourceLine())+"/"+String(telegram->getSourceMember())));
    ist jetzt alles andere als schön und eigentlich müsste man hier, ums durchgängig zu machen, eine neue funktion telegram->getSourceAddress() bauen die einen string zurückwirft, dann wirds wieder leserlich:

    Code:
    knx.individualAnswerMaskVersion(telegram->getSourceAddress());
    Diese ganze umwandlerei machts zwar für "Laien" einfacher, was ja die arduinophilosophie ist, allerdings frisst das unnötig speicher und rechenzeit....

    Kommentar


      Hi,
      @Bernator: hab deinen Post erst zu spät gesehen...
      JA - du hast recht.
      a) dein Vorschlag funktioniert vermutlich (habs nicht getestet)
      b) dieses Vor- und Zurückwandeln macht hier wenig sinn.

      Ich hab jetzt aber einen "Salto Rückwärtz" eingelegt und
      • individualAnswerMaskVersion

      und
      • individualAnswerAuth

      wieder zurückgestellt auf die alte Funktionsweise.

      Warum: diese Funktion wird eher "intern" Verwendet - und vom User mit Werten belegt..
      Die anderen Funktionen (die, die ich im Readme angegeben habe) werden eher vom User mit statischen Werten (=Adressen) belegt - und da ist die KNX schreibweise einfach angebracht...

      @Chris15: kannst du deinen Code nochmal testen? (vorher Lib neu runterladen) Bei mir läuft er jetzt...

      Gruß
      Thorsten

      Kommentar


        Hi,

        Zitat von ThorstenGehrig Beitrag anzeigen
        @Chris15: kannst du deinen Code nochmal testen? (vorher Lib neu runterladen) Bei mir läuft er jetzt...
        Habe die neue Lib getestet, klappt bei mir ebenfalls einwandfrei.
        Vielen Dank.

        Kommentar


          Guten Morgen,

          ich habe mich gerade mal durch diesen Thread 'gekämpft', ist ein echt sehr geiles Projekt. Ich werde mir wohl auch den Buskoppler zulegen und was mit meinem Arduinos spielen.
          Meine Projektidee wäre ein RGB Sequencer/Controller mit diesen Adressierbaren WS2812B Strips, das Problem was ich nur sehe, ist das die Kommunikation einen Interrupt braucht, um während einer Sequenz auf ein neues Kommando zu reagieren. Sieht einer von euch da unüberwindbare Hindernisse?

          Gruss
          Norbert

          Kommentar


            Hallo,

            Kann man die Libs irgendwo downloaden? bzw. einsehen?

            Mit welcher Programmierumgebung arbeitet Ihr? ARDUINO-Sketches? oder AVR Compiler?

            Danke für Info's...

            Kommentar


              Der Downloadlink wurde hier schon mehrfach genannt.
              Gruss Patrik alias swiss

              Kommentar


                Das hier ist in dem Zusammenhang auch ueberaus interessant. Finde ich zumindest
                Annikken Andee: Arduino-Shield für Smartphones | heise online

                gruesse

                Kommentar


                  Hi Zusammen,

                  ich habe eben den Buskoppler bekommen, allerdings bekomme ich keine Kommunikation hin. Ich habe ihn an den KNX Bus gehangen und erst den Arduino, danach den LogicAnalyser drangehangen bekomme aber kein einziges Bit daraus. Hab ich was übersehen oder ist der einfach defekt?!

                  Gruss
                  Norbert

                  Kommentar


                    Hallo zusammen,
                    Ich studiere an der HTWG Konstanz Informatik und beschäftige mich im Moment ebenfalls mit einem Projekt bei dem die Anbindung eines Arduinos an den KNX-Bus im Mittelpunkt steht.

                    Ich habe diesen Thread durchgeackert und finde euer Ansatz so interessant, dass inzwischen der Siemens Busankoppler neben mir liegt und an einen Arduino Nano angeschlossen ist. (mit nur einer seriellen Schnittstelle, wie der Uno)


                    Das senden funktioniert soweit schon mal super. Beim Aufspielen eines neuen Sketches dürfen die Rx und Tx-Verbindungen zum Buskoppler nicht gesteckt sein. Im Betrieb ist es dann aber möglich den Buskoppler anzusprechen und gleichzeitig via USB den Seriellen Monitor für Debuginfos zu verwenden. Mit folgendem Codeschnipsel kann Ich eine Lampe auf der Gruppenadresse "0/0/3" zum blinken bringen:

                    Code:
                    #include <EEPROM.h>
                    #include <KnxTpUart.h>
                    
                    // Initialize the KNX TP-UART library on the Serial1 port of Arduino Mega
                    KnxTpUart knx(&Serial, "15.15.20");
                    
                    void setup() {
                      Serial.begin(19200);
                      UCSR0C = UCSR0C | B00100000; // Even Parity
                      knx.uartReset();
                      Serial.println("Setup fertig!");
                    }
                    
                    bool onSent = false;
                    
                    void loop() {
                        knx.groupWriteBool("0/0/3", onSent);
                        onSent = ! onSent;
                        delay(1000);
                    }
                    Das empfangen habe Ich aber leider noch nicht zum laufen gebracht. Die Daten die wir empfangen sind vom eType-Typ immer "Event UNKNOWN". Habt ihr hierzu Vorschläge?

                    Grüße vom Bodensee
                    Pascal
                    Angehängte Dateien

                    Kommentar


                      Zitat von htwg Beitrag anzeigen
                      Das senden funktioniert soweit schon mal super. Beim Aufspielen eines neuen Sketches dürfen die Rx und Tx-Verbindungen zum Buskoppler nicht gesteckt sein. Im Betrieb ist es dann aber möglich den Buskoppler anzusprechen und gleichzeitig via USB den Seriellen Monitor für Debuginfos zu verwenden.
                      aaaaaargh.
                      Bitte NICHT NICHT NICHT sowas machen.
                      Wenn du die Debug-Informationen auf die selbe Schnittstelle schickst (was du ja scheinbar tust) - werden diese Informationen auch auf deinen Bus geschickt.
                      Sicherlich sind das keine gültigen Telegramme - und werden hoffentlich ignoriert.... nichtsdestotrotz ist das absolute Müll-Belasung für deinen KNX-BUS.

                      Bitte bestelle dir doch einen Leonardo-Mini - der ist genauso groß, kostet nur wenige Euro - und du hast das Problem schonmal vom Tisch!

                      Gute/Schnelle Lieferung habe ich von hier:
                      http://www.ebay.de/itm/ATmega32u4-Mi...item4181f9d59e

                      Gruß
                      Thorsten

                      PS: Dein Empfangs-Problem kann mit dem Thema zusammen hängen - davon abgesehen gibt es ein paar Beispiele hier im Thread - daher lasse ich das gerade mal aus...

                      Kommentar


                        Hello Guys.
                        Finally i got my arduino up and running, and made my base program, works very well.. Then i wanna try to implement the TPUART lib, so i can send over KNX.
                        When trying to open the example "GroupWrite" and compile it i get the following:

                        Code:
                        In file included from C:\Program Files (x86)\Arduino\libraries\KnxTpUart/KnxTpUart.h:8,
                                         from GroupWrite.ino:1:
                        C:\Program Files (x86)\Arduino\libraries\KnxTpUart/KnxTelegram.h:92: error: 'Serial_' has not been declared
                        In file included from GroupWrite.ino:1:
                        C:\Program Files (x86)\Arduino\libraries\KnxTpUart/KnxTpUart.h:38: error: expected `)' before '*' token
                        GroupWrite:4: error: no matching function for call to 'KnxTpUart::KnxTpUart(HardwareSerial*, int, int, int)'
                        C:\Program Files (x86)\Arduino\libraries\KnxTpUart/KnxTpUart.h:36: note: candidates are: KnxTpUart::KnxTpUart()
                        C:\Program Files (x86)\Arduino\libraries\KnxTpUart/KnxTpUart.h:36: note:                 KnxTpUart::KnxTpUart(const KnxTpUart&)
                        Only thing i've done, is to copy the KNX TPUart lib in my Arduino filder, and opened a example.... I'm using a Mega 2560....

                        Kommentar


                          Zitat von htwg Beitrag anzeigen
                          Das empfangen habe Ich aber leider noch nicht zum laufen gebracht. Die Daten die wir empfangen sind vom eType-Typ immer "Event UNKNOWN". Habt ihr hierzu Vorschläge?
                          Abgesehen von Thorsten Anregungen musst Du dem Arduino im Code mitteilen auf welche GAs er hoehren soll - tust Du das nicht (wonach Dein Code ausschaut) sind die Telegramme alle vom Typ UNKNOWN. Ich denk mal, es wird daran liegen.

                          gruesse :: Michael

                          Kommentar


                            Zitat von ThorstenGehrig Beitrag anzeigen
                            Wenn du die Debug-Informationen auf die selbe Schnittstelle schickst (was du ja scheinbar tust) - werden diese Informationen auch auf deinen Bus geschickt.
                            So schlimm ist es nicht, der Busskoppler bzw. TPUart macht am Bus nur was wenns plausibel ist (ist ja gerade der Vorteil eines zertifizierten HW Layers), irgedwelche debugmeldungen tauchen da nicth auf....
                            Elegant und zu empfehlen ist es natürlich trotzdem nicht

                            Kommentar


                              Hello.
                              Finally i got the TPUart to compile, thanks to Torstens comment at:

                              https://bitbucket.org/dka/arduino-tp...es-not-compile

                              But after that, i get this error when trying to send something to the bus:
                              Code:
                              Pir Garage = True
                              Available: 0
                              Frame Error
                              Parity Error
                              Incoming Byte: 145 - 91 - 10010001
                              Available: 1
                              Incoming Byte: 199 - C7 - 11000111
                              Available: 0
                              Timeout while receiving message
                              Successfully sent: 0
                              When it success 1 out of 10 tryes i get:
                              Code:
                              Pir Garage = True
                              Available: 0
                              Timeout while receiving message
                              Successfully sent: 0
                              Parity Error
                              Incoming Byte: 188 - BC - 10111100
                              Available: 6
                              Parity Error
                              Incoming Byte: 188 - BC - 10111100
                              Available: 5
                              Parity Error
                              Incoming Byte: 255 - FF - 11111111
                              Available: 4
                              Parity Error
                              Incoming Byte: 20 - 14 - 10100
                              Available: 3
                              Parity Error
                              Incoming Byte: 15 - F - 1111
                              Available: 2
                              Parity Error
                              Incoming Byte: 253 - FD - 11111101
                              Available: 1
                              Parity Error
                              Incoming Byte: 71 - 47 - 1000111
                              Payload Length: 8
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Repeated: 0
                              Priority: 3
                              Source: 15.15.20
                              Target Physical: 0.15.253
                              Routing Counter: 4
                              Payload Length: 8
                              Command: 15
                              First Data Byte: 63
                              Data Byte 2: 11111111111111111111111111111111
                              Data Byte 3: 11111111111111111111111111111111
                              Data Byte 4: 11111111111111111111111111111111
                              Data Byte 5: 11111111111111111111111111111111
                              Data Byte 6: 11111111111111111111111111111111
                              Data Byte 7: 11111111111111111111111111111111
                              Checksum mismatch
                              11111111111111111111111111111111
                              11101
                              NCD Telegram 15 received
                              Available: 9
                              Frame Error
                              Parity Error
                              Incoming Byte: 128 - 80 - 10000000
                              Available: 8
                              Frame Error
                              Parity Error
                              Incoming Byte: 188 - BC - 10111100
                              Available: 7
                              Frame Error
                              Parity Error
                              Incoming Byte: 129 - 81 - 10000001
                              Available: 6
                              Frame Error
                              Parity Error
                              Incoming Byte: 255 - FF - 11111111
                              Available: 5
                              Frame Error
                              Parity Error
                              Incoming Byte: 130 - 82 - 10000010
                              Available: 4
                              Frame Error
                              Parity Error
                              Incoming Byte: 68 - 44 - 1000100
                              Available: 3
                              Frame Error
                              Parity Error
                              Incoming Byte: 131 - 83 - 10000011
                              Available: 2
                              Frame Error
                              Parity Error
                              Incoming Byte: 206 - CE - 11001110
                              Available: 1
                              Frame Error
                              Parity Error
                              Incoming Byte: 127 - 7F - 1111111
                              Available: 0
                              Timeout while receiving message
                              Event IRRELEVANT_KNX_TELEGRAM
                              Pressure:    1018.44 hPa
                              Temperature: 28.67 C
                              Altitude:    -45.11 m
                              Light: 82 lux
                              
                              Pir Garage = False
                              Available: 0
                              Timeout while receiving message
                              Successfully sent: 0
                              Parity Error
                              Incoming Byte: 188 - BC - 10111100
                              Available: 6
                              Parity Error
                              Incoming Byte: 188 - BC - 10111100
                              Available: 5
                              Parity Error
                              Incoming Byte: 255 - FF - 11111111
                              Available: 4
                              Parity Error
                              Incoming Byte: 20 - 14 - 10100
                              Available: 3
                              Parity Error
                              Incoming Byte: 15 - F - 1111
                              Available: 2
                              Parity Error
                              Incoming Byte: 139 - 8B - 10001011
                              Available: 1
                              Parity Error
                              Incoming Byte: 71 - 47 - 1000111
                              Payload Length: 8
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Available: 0
                              Timeout while receiving message
                              Repeated: 0
                              Priority: 3
                              Source: 15.15.20
                              Target Physical: 0.15.139
                              Routing Counter: 4
                              Payload Length: 8
                              Command: 15
                              First Data Byte: 63
                              Data Byte 2: 11111111111111111111111111111111
                              Data Byte 3: 11111111111111111111111111111111
                              Data Byte 4: 11111111111111111111111111111111
                              Data Byte 5: 11111111111111111111111111111111
                              Data Byte 6: 11111111111111111111111111111111
                              Data Byte 7: 11111111111111111111111111111111
                              Checksum mismatch
                              11111111111111111111111111111111
                              1101011
                              NCD Telegram 15 received
                              Available: 4
                              Incoming Byte: 128 - 80 - 10000000
                              Available: 3
                              Incoming Byte: 254 - FE - 11111110
                              Available: 2
                              Incoming Byte: 240 - F0 - 11110000
                              Available: 1
                              Incoming Byte: 124 - 7C - 1111100
                              Available: 0
                              Timeout while receiving message
                              Event IRRELEVANT_KNX_TELEGRAM
                              I get the same when trying to use the example "GroupWrite"

                              Kommentar


                                Hallo zusammen,

                                hat jemand von euch die Library mit den letzten Änderungen von Thorsten schon produktiv im Einsatz? Ich habe seit kurzem das Problem, dass nach ein paar Minuten Betrieb keine KNX-Telegramme mehr gesendet werden. Der Arduino arbeitet aber noch normal, wie mir das Logging über Serial zeigt. Zeitlich passt das bei mir mit der Verwendung der neuen Library zusammen. Jetzt bin ich mir unsicher, ob es an der BCU oder der Lib liegt. Hat das schon mal jemand gehabt?

                                Danke und viele Grüße,

                                David

                                Kommentar

                                Lädt...
                                X