Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

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

    Zitat von NetFritz Beitrag anzeigen
    Hallo

    Das beantwortet schon meine Frage.
    Mit Flankenerkennung meine ich z.B. einen Binäreingang der nur Periodisch seinen Wert ändert.
    Dann muss der alte Zustand bei jeden loop() durchlauf mit abgefragt werden.
    Gruß NetFritz


    Na du legst dir eine globale Variable an die den aktuellen und letzten Zustand hält. Und in jedem Schleifendurchlauf bringst du die aktuelle Variable auf den neusten Stand und vergleichst mit dem Wert der variablen des letzten Zustands. Gibt es eine Änderung, schiebst du das über den Bus und merkst dir anschließen in der "letzten Zustand" Variablen den aktuellen Zustand für den nächsten Schleifendurchlauf.

    Kommentar


      Hallo

      So wollte ich das machen, habe es hier gefunden http://www.neurobs.com/wiki/Presenta...evices/Arduino
      Wertet High und Low aus.
      Der KNX Teil fehlt noch.
      Code:
      const int PIN = 2;
      int state = 0;
       
      void setup()                    
      {
        Serial.begin(115200);         
       
        pinMode(PIN, INPUT);
        state = bitRead( PIND , PIN );
      }
       
      void loop()                      
      {
        int new_state = bitRead( PIND , PIN );
        if (new_state != state)
        {
          state = new_state;
          if (state)
          {
            Serial.write( 1 );
          }
          else
          {
            Serial.write( 0 );
          }
        }
      }
      Gruß NetFritz
      KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
      WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
      PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

      Kommentar


        Hallo
        Ich versuche schon eine Weile vom KNX-Bus zu lesen.
        Code:
        #include <KnxTpUart.h>
        
        // Initialize the KNX TP-UART library on the Serial1 port of Arduino Nano
        // and with KNX physical address 1.1.44
        KnxTpUart knx(&Serial, "1.1.44");
        
        int LED = 13;
        
        void setup() {
          pinMode(LED, OUTPUT);
          digitalWrite(LED, HIGH);
        
          Serial.begin(19200);
          UCSR0C = UCSR0C | B00100000; // Even Parity
        
          knx.uartReset();
         
          knx.addListenGroupAddress("2/1/1");
        
        }
        
        void loop() {
          // nothing in the loop. This example is only to receive telegrams
        }
        
        void serialEvent() {
          KnxTpUartSerialEventType eType = knx.serialEvent();
          if (eType == TPUART_RESET_INDICATION) {
         
          } else if (eType == UNKNOWN) {
         
          } else if (eType == 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 == "2/1/1") {
                int received_2_1_1 = telegram->getBool();
        
                if (received_2_1_1) {
                  digitalWrite(LED, HIGH);
                }
                else {
                  digitalWrite(LED, LOW);
                }
              }
        
            }
          }
        }
        Da es für ein Nano ist habe ich alle Befehle für den seriellen Monitor rausgenommen.
        UCSR1C auf UCSR0C und KnxTpUart knx(&Serial1, auf KnxTpUart knx(&Serial, geändert.
        Ich kann aber keine Änderung an LED sehen wenn ich Adresse 2/1/1 schalte.
        ETS Gruppenmonitor zeigt die Änderung an 2/1/1 an

        Ist das das richtige Sketch zum Empfang oder ist in dem Sketch noch ein Fehler.

        Gruß NetFritz

        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

        Kommentar


          So beim drüberlesen fällt mir kein Fehler auf.
          Bist du sicher das die Buskommunikation funktioniert?
          Kannst du was auf den Bus senden? Das würde schonmal zeigen das zumindest irgendewas funktioniert...
          Gruß
          Thorsten

          Kommentar


            Hallo NetFritz,

            zu deinem Problem.

            Wenn das Senden zum KNX funktioniert, dann bitte Post #747 beachten.
            Ansonsten ist irgendwo ein Fehler in der Hardware zu suchen.
            Der von dir gepostete Sketch funktioniert zumindest.

            Mit freundlichen Grüßen

            Mag Gyver

            Kommentar


              Ich meine, ich konnte auch senden und nicht empfangen... das liegt am Nano, an der Hardware...
              Sebastian Bornemann, Voltus GmbH

              Kommentar


                Hallo
                Ja das senden geht nur nicht das empfangen nicht.
                Welchen Arduino könnt ihr dann empfehlen.
                Platzprobleme habe ich keine, sollte dann 2 serielle Schnittstellen haben,
                das ich USB und seriell zur gleichen Zeit nutzen kann.
                Die D0-D13 sollten auch 5Volt vertragen, dann muss ich nichts umbauen.
                Gruß NetFritz

                PS Ist der Mega wohl der richtige?
                Zuletzt geändert von NetFritz; 07.02.2016, 11:11.
                KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                Kommentar


                  Jap, Mega ist perfekt dafür

                  Kommentar


                    hallo zusammen,
                    super projekt hier.

                    gibts eigentlich bilder + beispiele wie die kombination arduino+knx eingesetzt wird?
                    das würde ich gerne mal sehen. ...

                    (ansonsten habe ich zuletzt hier mal geschaut, vielleicht ist das ja für den einen oder anderen interessant?
                    http://www.esp8266.nu/ ESP8266 firmware, mehr im wiki dort)

                    für bilder, links, beispiele, etc ganz herzlichen dank,
                    ozett

                    Kommentar


                      Moin ozett,

                      ich habe mal am Wochenende einen Arduino mit OneWire Anschluss an die Siemens Schnittstelle gebracht. Die Library ist die bekannte "alte" Library mit einigen Problemen. Bei mir äußert sich das so, das ich 7 OneWire Sensoren ohne Probleme mit Bitbanging abfragen kann. Leider geht es ab 8 Sensoren daran unzuverlässig zu werden und es hagelt falsche Werte und CRC. Die Fehlererkennung müßte da etwas robuster sein. Für jetzt reicht das so.

                      Bei Gelegenheit werde ich da sicher mit der neuen Lib die kurz vor der Beta steht was zu machen.

                      So ist halt nur als Demo zu sehen, was man so machen kann.

                      Gruß,
                      Bernd
                      You do not have permission to view this gallery.
                      This gallery has 6 photos.

                      Kommentar


                        Von welcher "alten" Library redest du - und was hat die KNX Library mit 1-Wire sensoren zu tun?

                        Kommentar


                          Zitat von bmx Beitrag anzeigen
                          Moin ozett,
                          ich habe mal am Wochenende einen Arduino mit OneWire Anschluss an die Siemens Schnittstelle gebracht.
                          danke erstmal.
                          verbuche 7x onewire, was geht denn noch so..?

                          Kommentar


                            Was sonst noch geht? ALLES was mit einem Arduino geht! (und irgendwie Sinn macht).
                            Zum beispiel "seecret knock detector" => http://www.instructables.com/id/Secr...ing-Door-Lock/
                            oder wetterstation oder VOC sensor oder LCD Display odder RFID-Reader oder ... oder ... einfach alles was mit einem Arduino geht.
                            Mit sowas könnte man sich ein 8-fach binärausgang bauen: link

                            Viel Erfolg.

                            Kommentar


                              ozett und bmx

                              Es gibt weder eine "alte" noch "neue" Lib für KNX auf dem Arduino.

                              Es gibt die von DKA (https://bitbucket.org/dka/arduino-tpuart) abstammende "arduino tpuart" Lib die Thorsten hier initiell verwendet und erweitert hat (https://bitbucket.org/thorstengehrig...knx-user-forum).

                              Dann gibt's den versuch die Lib etwas aufzubohren und sparsamer zu machen (umbau der GA von Strings nach byte[]). Dieser Versuch nannte sich zuletzt "Karduino" (https://github.com/KARDUINO/KnxTpUart-DEPRECATED-). Wurde aber eingestellt weil:

                              * Die DKA Lib von der Basis her zu wenig Struktur aufweist um hier vernünftig zu erweitern
                              * Bei der einen oder anderen Erweiterung wohl Timing-Probleme hat (aufgefallen beim Versuch property-read/write nachzurüsten)

                              Die von euch "neue Lib" genannte Lib ist nicht neu. Es ist eine bestehende Lib die zum einen Erweitert und zum anderen hier und da "verbessert" wurde. Mit ihr wird es möglich sein Arduino KNX Geräte über den Bus mit Physikalischer Adresse, Gruppenadressen und Parametern zu versehen. Allerdings nicht nach dem Vorbild ETS.

                              Die erweiterte und verbesserte Lib und die damit verbundene HW und SW Entwicklung läuft unter dem Namen "KONNEKTING". Also bitte versuchen das Kind beim Namen zu nennen und nix durcheinander zu werfen.

                              Mehr Details zu KONNEKTING in den entsprechenden Threads hier im DIY Bereich, sowie bald nochmal separat in einem offiziellen Vorstellungsthread, wenn HW und SW soweit sind dass man euch drauf loslassen kann.

                              Gruß
                              Alex

                              Kommentar


                                Zitat von ThorstenGehrig Beitrag anzeigen
                                Von welcher "alten" Library redest du - und was hat die KNX Library mit 1-Wire sensoren zu tun?
                                Mit "alte Lib" meine ich die mehr oder weniger modifizierte Lib von DKA (https://bitbucket.org/dka/arduino-tpuart) die Du (Thorsten) verwendet hattest und mit der man recht schnell zum Ergebnis kommt.

                                Dann gibt es noch eine andere (umfangreichere) Library von Franck Marini (https://github.com/franckmarini/KnxDevice). Diese Arbeit scheint auch die Grundlage für "KONNEKTING" zu sein.

                                Die "alte Lib" hat per se nichts mit Onewire zu tun. Ich habe nur die Onewire Library genutzt um Sensoren (DS18B20) auszulesen. Nur kommen sich die beiden Bibliotheken in die Quere. Bisher hatte ich keine Lust gehabt auf die Lib von Franck Marini umzusteigen weil ich dazu eigentlich fast alles hätte neu schreiben müssen was hier intern läuft. Insofern warte ich natürlich jetzt auf "KONNEKTING" um diesen Schritt zu gehen und das ganze zu optimieren.

                                Für meine derzeitige Platine könnte ich auch einen I2C - Onewire Interface Chip auf die Platine setzten um kritische Timings zu umgehen. Aber das wäre wohl eher etwas für einen anderen Thread. Es war ja nur die Frage nach Bildern und was man wirklich damit realisiert hat. An anderer Stelle funktioniert ein ähnlicher Aufbau schon seit Januar letzten Jahres produktiv mit 6 DS18B20 Temperaturfühlern die artig die Meßwerte auf den Bus senden.

                                Gruß,
                                Bernd
                                KnxDevice - Allow to turn your Arduino into a self-made KNX device using the hardware TPUART interface

                                Kommentar

                                Lädt...
                                X