Ankündigung

Einklappen
Keine Ankündigung bisher.

knxd 0.11 und MDT SCN-IP000.02

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

    knxd 0.11 und MDT SCN-IP000.02

    Liebe Foren-Mitglieder,

    ich bin dabei knxd 0.11 mit einem MDT SCN-IP000.02 IP Interface (leider nicht der IP Router) in Betrieb zu nehmen.

    Das MDT IP Interface, SCN-IP000.02, verfügt über 2 parallel laufende Applikationen.
    Zum einen über die Applikation für das IP Interface, welche den Zugriff auf den Bus über Ethernet
    ermöglicht.

    Die zweite Applikation liegt auf der TP-Seite und kann vom KNX getriggerte E-Mails senden, als
    Zeitserver dienen und ermöglicht den Zugriff auf das Gerät via Web-Interface.

    Da es sich um 2 verschiedene Applikationen handelt müssen beide Applikationen
    unabhängig voneinander programmiert werden und dem IP-Interface müssen 2 physikalische
    Adressen zugewiesen werden!

    In der ETS5 habe ich die Physikalischen Adressen 1.1.241 (IP Interface) und 1.1.242 (TP Interface) zugewiesen und programmiert.

    Ich gehe davon aus, dass für mich hier nur die erste Applikation relevant ist.

    Das MDT IP-Interface verbindet den KNX-Bus mit einem Ethernet-Netzwerk. Über das Netzwerk können KNX-Telegramme an andere Geräte gesendet oder von diesen empfangen werden. Das Gerät verwendet zur Kommunikation das KNXnet/IP-Protokoll der KNX-Association. Er arbeitet somit als Programmierschnittstelle und ersetzt dadurch eine RS232 bzw. USB Schnittstelle. Das IP-Interface beinhaltet eine Tunneling Funktion zur Punkt-zu-Punkt-Verbindung.

    In der ETS5 taucht das MDP IP Interface als Schnittstelle auf mit der Host Physikalischen Adresse 1.1.241 und als physikalische Adresse habe ich hier 1.1.251 vergeben. Soweit ich das verstehe ist die 1.1.251 die tunneling addresse, die auch die ETS5 nutzt. Die ETS5 programmiert damit auch die anderen KNX Geräte am Bus.

    Die 3 nachfolgenden physikalischen Adressen (15.15.242, 15.15.243 und 15.15.244) werden automatisch als weitere Tunneling Adressen zugewiesen.

    Das Webserver-Interface des MDT Geräts bestätigt diese Adressen fast:

    Individual Address 1. 1.241
    Tunneling Addresses 1. 1.250
    1. 1.251
    1. 1.252
    1. 1.253

    Zugegebenermaßen ist etwas seltsam, dass die Adressen mit 1.1.250 und nicht 1.1.251 anfangen, dafür habe ich noch keine richtige Erklärung.

    In der ETS5 habe ich nun eine Gruppenadresse 0/0/1 eingerichtet mit der ein Taster einen Schaltaktor ein- und ausschaltet.

    Das MDT IP Interface hat vom DHCP Server die IP Adresse 192.168.0.66 erhalten.

    knxd habe ich nun wie folgt konfiguriert:

    KNXD_OPTS="-e 1.1.251 -t 65535 -u /tmp/eib -b ipt:192.168.0.66"

    Ich versuche nun einen Schaltvorgang mit dem knxd mitthilfe von

    $ knxtool groupwrite ip:127.0.0.1 0/0/1 1

    bzw.

    $ knxtool groupwrite ip:127.0.0.1 0/0/1 0

    zu triggern.

    Die Kommandos werden mit einem "Send request" quittiert, der Aktor zeigt aber leider keine Reaktion. Interessanterweise leuchtet die TP Lampe beim IP Interface kurz auf, die IP Lampe hingegen nicht (ich hätte eigentlich eher das umgekehrte Verhalten erwartet).

    Im Log-File (journalctl -xb) sehe ich

    Jan 25 21:24:28 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9847.523] Heartbeat
    Jan 25 21:24:28 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9847.523] Send(010): 05 00 08 01 C0 A8 00 FE 0E 58
    Jan 25 21:24:28 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9847.523] Send(016): 06 10 02 07 00 10 05 00 08 01 C0 A8 00 FE 0E 58
    Jan 25 21:24:28 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9847.524] Recv(008): 06 10 02 08 00 08 05 00
    Jan 25 21:24:28 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9847.524] Recv(002): 05 00
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.355] New Connection
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.355] ClientConnection Init
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.358] RecvMessage(005): 00 22 00 01 FF
    Jan 25 21:24:29 mohot knxd[26796]: Layer 7 [9:systemd 9848.358] OpenGroup
    Jan 25 21:24:29 mohot knxd[26796]: Layer 4 [9:systemd 9848.358] OpenGroup 0/0/1 WO
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.358] Allocate: falling back to 1.1.251
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.358] registerLayer2 9:systemd
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.358] registerLayer2 9:systemd = 1
    Jan 25 21:24:29 mohot knxd[26796]: Layer 7 [9:systemd 9848.358] OpenGroup complete
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.358] SendMessage(002): 00 22
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.359] RecvMessage(005): 00 25 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 7 [9:systemd 9848.359] Send(003): 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 4 [9:systemd 9848.359] Send Group T_DATA_XXX_REQ A_GroupValue_Write 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.359] Enqueue L_Data low from 0.0.0 to 0/0/1 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.360] RecvData L_Data low from 1.1.251 to 0/0/1 hops: 05 T_DATA_XXX_REQ A_GroupValue_Write 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 2 [5:ipt:192.168.0.66 9848.360] Send L_Data low from 1.1.251 to 0/0/1 hops: 05 T_DATA_XXX_REQ A_GroupValue_Write 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9848.360] SendTunnel(016): 04 05 02 00 11 00 BC D0 11 FB 00 01 02 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9848.360] Send(016): 04 05 02 00 11 00 BC D0 11 FB 00 01 02 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9848.360] Send(022): 06 10 04 20 00 16 04 05 02 00 11 00 BC D0 11 FB 00 01 02 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 7 [9:systemd 9848.361] CloseGroup
    Jan 25 21:24:29 mohot knxd[26796]: Layer 3 [3:layer3 9848.361] deregisterLayer2 9:systemd = 1
    Jan 25 21:24:29 mohot knxd[26796]: Layer 4 [9:systemd 9848.361] CloseGroup
    Jan 25 21:24:29 mohot knxd[26796]: Layer 8 [9:systemd 9848.361] ClientConnection closed
    Jan 25 21:24:29 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9848.361] Recv(010): 06 10 04 21 00 0A 04 05 02 00
    Jan 25 21:24:29 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9848.362] Recv(004): 04 05 02 00
    Jan 25 21:24:29 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9848.362] Recv(022): 06 10 04 20 00 16 04 05 02 00 2E 00 BC D0 11 FB 00 01 02 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9848.363] Recv(016): 04 05 02 00 2E 00 BC D0 11 FB 00 01 02 00 80 01
    Jan 25 21:24:29 mohot knxd[26796]: Layer 1 [5:ipt:192.168.0.66 9848.363] Send(004): 04 05 02 00
    Jan 25 21:24:29 mohot knxd[26796]: Layer 0 [5:ipt:192.168.0.66 9848.363] Send(010): 06 10 04 21 00 0A 04 05 02 00


    Hat jemand eine Idee, was ich ändern muss, damit ich tatsächlich von knxd auf die Gruppenadresse schreiben kann?

    Welche Funktion hat die Tunnel-Adresse genau?

    Muss ich die Tunnel-Adresse, die knxd nutzt der ETS5 bekannt machen.... und gar ein Kommunikationsobjekt von ihr der Gruppenadresse hinzufügen?

    Ich bin sehr beeindruckt von der Qualität der Antworten hier im Forum und bin für jeden Hinweis dankbar.

    Danke und Gruß
    Rainer

    #2
    Zitat von rdorsch Beitrag anzeigen

    Ich versuche nun einen Schaltvorgang mit dem knxd mitthilfe von

    $ knxtool groupwrite ip:127.0.0.1 0/0/1 1

    bzw.

    $ knxtool groupwrite ip:127.0.0.1 0/0/1 0

    Hat jemand eine Idee, was ich ändern muss, damit ich tatsächlich von knxd auf die Gruppenadresse schreiben kann?
    Zu dem KNXD kann ich so nichts sagen, aber schalten (1 Bit) macht man mit $ knxtool groupswrite ip:127.0.0.1 0/0/1 1

    Gruß
    Michael

    Kommentar


      #3
      Wow, kleine Ursache, große Wirkung :-)

      Damit funktioniert in der Tat das Schalten.


      Gibt es außer dem Code selbst irgendwelche Doku was die knxtool Kommandos tun?

      Oder zumindest für die verwendeten EIB* Funktionen?

      else if (strcmp (prog, "groupswrite") == 0)
      {
      uchar lbuf[3] = { 0x0, 0x80 };

      if (ac != 4)
      die ("usage: %s url eibaddr val", prog);
      con = open_con(ag[1]);
      dest = readgaddr (ag[2]);
      lbuf[1] |= readHex (ag[3]) & 0x3f;

      if (EIBOpenT_Group (con, dest, 1) == -1)
      die ("Connect failed");

      len = EIBSendAPDU (con, 2, lbuf);
      if (len == -1)
      die ("Request failed");
      printf ("Send request\n");
      }
      else if (strcmp (prog, "groupwrite") == 0)
      {
      uchar lbuf[255] = { 0x0, 0x80 };

      if (ac < 4)
      die ("usage: %s url eibaddr val val ...", prog);
      con = open_con(ag[1]);
      dest = readgaddr (ag[2]);
      len = readBlock (lbuf + 2, sizeof (lbuf) - 2, ac - 3, ag + 3);
      if (len < 0)
      die ("Invalid hex bytes");

      if (EIBOpenT_Group (con, dest, 1) == -1)
      die ("Connect failed");

      len = EIBSendAPDU (con, 2 + len, lbuf);
      if (len == -1)
      die ("Request failed");
      printf ("Send request\n");

      }


      Vielen Dank und viele Grüße
      Rainer Dorsch

      Kommentar


        #4
        Klare Antwort: Jein. Das knxtool ist ziemlich unterdokumentiert. Leute, die helfen mögen, daran was zu ändern, sind immer gerne gesehen …
        DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

        Kommentar


          #5
          Hi, ich hänge mich mal hier drin.. ich bekomme das MDT Interface nicht zum rennen.. ich bekomme immer die Meldung

          Jun 22 15:49:10 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 1.718] New Connection
          Jun 22 15:49:10 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 1.718] ClientConnection Init
          Jun 22 15:49:10 raspberrypi knxd[30032]: knxd: Layer 0 [ 8:systemd 1.718] Allocate: no more free addresses!

          Ich habe das MDT Interface mit folgenden Optionen gestartet:

          KNXD_OPTS="-e 15.15.242 -t 65535 -b ipt:192.168.178.37"

          KNXD Läuft auch (Version knxd 0.12.14):
          pi@raspberrypi:~ $ sudo /etc/init.d/knxd status
          ● knxd.service - KNX Daemon
          Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
          Active: active (running) since Thu 2017-06-22 15:49:08 UTC; 3min 29s ago
          Main PID: 30032 (knxd)
          CGroup: /system.slice/knxd.service
          └─30032 /usr/bin/knxd -e 15.15.242 -t 65535 -b ipt:192.168.178.37

          Jun 22 15:52:35 raspberrypi knxd[30032]: knxd: Layer 0 [205:systemd 206.722] Allocate: no more free addresses!
          Jun 22 15:52:35 raspberrypi knxd[30032]: knxd: Layer 0 [205:systemd 206.722] Send(002): 00 04
          Jun 22 15:52:36 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 207.828] New Connection
          Jun 22 15:52:36 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 207.829] ClientConnection Init
          Jun 22 15:52:36 raspberrypi knxd[30032]: knxd: Layer 0 [206:systemd 207.829] Allocate: no more free addresses!
          Jun 22 15:52:36 raspberrypi knxd[30032]: knxd: Layer 0 [206:systemd 207.829] Send(002): 00 04
          Jun 22 15:52:37 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 208.860] New Connection
          Jun 22 15:52:37 raspberrypi knxd[30032]: knxd: Layer 8 [ 4:systemd 208.860] ClientConnection Init
          Jun 22 15:52:37 raspberrypi knxd[30032]: knxd: Layer 0 [207:systemd 208.860] Allocate: no more free addresses!
          Jun 22 15:52:37 raspberrypi knxd[30032]: knxd: Layer 0 [207:systemd 208.860] Send(002): 00 04

          Hier noch die Screenshots der Config in der ETS und des WebInterfaces.

          Ich habe das Interface auch schon zurückgesetzt, dann bekomme ich als TunnelAdresse die Adressen
          1. 1.251
          1. 1.252
          1. 1.253
          1. 1.254
          habe dann auch schon die Konfig auf 1.1.251 geändert, leider gleiches Ergebnis, no more free adresses!

          Ich habe schon einiges probiert.. aber jetzt keine Ahnung mehr was es noch sein könnte.
          Angehängte Dateien
          Zuletzt geändert von titan_74; 22.06.2017, 17:03.

          Kommentar


            #6
            Ich habe schon einiges probiert
            … außer das README zu lesen?

            Du brauchst die -E-Option. Und möglicherweise ein "-B single" vor dem "-b ipt:".
            DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

            Kommentar


              #7
              Hi, danke ..
              ReadMe habe ich gelesen, dann hier gelesen, das es so funktionierte und mich gewundert.. nach dem Schreiben der Frage gemerkt, das es meine Version neuer ist ...
              Wer erst liest, gewinnt manchmal Zeit...und vorallem Erfahrung :-)

              Kommentar

              Lädt...
              X