HM2KNX FAQ

Warum gibt es keine Produktdatenbank für die ETS? / Warum ist das Interface nicht per ETS konfigurierbar?

Eine Konfiguration per ETS bedingt die Erstellung einer Applikation mittels KNX Manufacturer Tool, welches nur für KNX-Mitglieder kostenpflichtig erhältlich ist und eine Zertifizierung. Beides ist bei den Stückzahlen und (bisher) nur einer Gerätevariante nicht wirtschaftlich tragbar.

Kann das auch ein nicht Fachmann programieren?

Für die Programmierung werfen Sie bitte einen Blick auf das Konfigurationsprogramm. Wenn Sie selber bisher z.B. Schalter und Schaltaktoren in Ihre KNX-Installation einbinden konnten und mit dem Konzept von Gruppenadressen vertraut sind sollte die Inbetriebnahme kein Problem darstellen.

Kann ich das auch hinter dem UAP1 hängen (Motor->UAP->KNX Modul)?

Nein! Das Interface emuliert ein UAP1, daher kann es nicht parallel mit einem UAP1 betrieben werden. Es kann aber problemlos hin- und hergewechselt werden (also UAP1 eingelernt = HM2KNX eingelernt).

Ich habe Probleme beim Parametrieren mit dem IBBConfig Programm. Das Gerät wird gefunden aber ich kann keine neue Adresse programmieren und bei „Identify Device“ bekomme ich auch einen Fehler!

Bitte prüfen Sie, ob zwischen der KNX-Schnittstelle (IP-Gateway, eibd, knxd, USB-KNX-Schnittstelle, IBBCape) und dem Gerät ein Linienkoppler mit aktivierten Filter eingesetzt wird. Dies ist häufig der Fall, da viele die Garage bereit als „Außenbereich“ ansehen. Das Gerät wird mit der Adresse 15.15.255 ausgeliefert – diese Adresse muss erreichbar sein!

Ich konnte nun eine neue Adresse und Gruppenadressen vergeben. Leider sehe ich keine Zustandsänderungen und kann keine Fahrbefehle ausgeben!

Damit Telegramme mit den Gruppenadressen den Linienkoppler passieren können MÜSSEN die Gruppenadressen durch sogenannte Dummy-Devices in der ETS bekannt gemacht und an die richtige Stelle in der Topologie verschoben werden. Nur so werden die Filtertabellen des Linienkopplers korrekt parametriert.

Ich möchte auf den Einsatz des IBBConfig Programmes verzichten. Wie kann ich die Schnittstelle per eibd direkt parametrieren?

Die Verwendung des IBBConfig Programm wird dringend empfohlen, da sich die Konfiguration einfacher gestaltet. Trotzdem ist eine direkte Parametrierung möglich, die unabhängig von einem gesonderten Programm ist (PropertyWrite und PropertyRead sind Teil des KNX-Standard!).

  • Die Zählreihenfolge der Kommunikationsobjekte (KO) ist im Datenblatt festgelegt und fängt bei 1 an!
  • Jede verwendete GA/KO-Kombination wird per PropertyWrite Property 10 zugewiesen. Für jede Eintrag wird das Element um 1 erhöht. Insgesamt werden ab Offset 0 3 Byte geschrieben: Zwei Byte für die Adresse, ein Byte für das KO. Die erste GA pro KO ist auch die „sendende“ Adresse. Der Eintrag mit Element 0 ist die „Physikalische Adresse“ der Schnittstelle, unabhängig vom dritten Byte!
  • Die Flags eines jeden KO werden per PropertyWrite Property 11 zugewiesen. Das Element entspricht der KO-Nummer, geschrieben wird 1 Byte ab Offset 0. Die Bitmaske des Flags ist definiert durch: COMMUNICATE=0x1, READ=0x2, WRITE=0x4, TRANSMIT=0x8, UPDATE=0x20, READ_ON_INIT=0x40.
  • beispielhaftes Shellscript zur Parametrierung der ersten Generation („nur Supramatic 2“):
    • #!/bin/bash
      
      EIB_URL=local:/tmp/eib
      PA=1.1.210
      
      ADDR_TABLE_OBJ=10
      KO_TABLE_OBJ=11
      
      OBJ_DEVICE=0
      OBJ_OPEN_CLOSE=$[$OBJ_DEVICE+1]
      OBJ_STOP=$[$OBJ_OPEN_CLOSE+1]
      OBJ_LIGHT=$[$OBJ_STOP+1]
      OBJ_VENT=$[$OBJ_LIGHT+1]
      OBJ_DRIVE_LOCK=$[$OBJ_VENT+1]
      OBJ_KNX_LOCK=$[$OBJ_DRIVE_LOCK+1]
      OBJ_STATUS_OPEN=$[$OBJ_KNX_LOCK+1]
      OBJ_STATUS_CLOSED=$[$OBJ_STATUS_OPEN+1]
      OBJ_STATUS_MOVING=$[$OBJ_STATUS_CLOSED+1]
      OBJ_STATUS_VENT=$[$OBJ_STATUS_MOVING+1]
      OBJ_STATUS_ERROR=$[$OBJ_STATUS_VENT+1]
      
      FLAG_COMMUNICATE=$[1<<0]
      FLAG_READ=$[1<<1]
      FLAG_WRITE=$[1<<2]
      FLAG_TRANSMIT=$[1<<3]
      FLAG_UPDATE=$[1<<5]
      FLAG_READ_ON_INIT=$[1<<6]
      
      echo "writing PA"
      #xpropwrite $EIB_URL 1.1.240 $ADDR_TABLE_OBJ 0 0 3 11 d2 00
      #writeaddress $EIB_URL $PA
      
      echo "writing GAs"
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  1 0 3 00 64 `printf '%x' $OBJ_OPEN_CLOSE`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  2 0 3 00 65 `printf '%x' $OBJ_STOP`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  3 0 3 00 66 `printf '%x' $OBJ_VENT`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  4 0 3 00 67 `printf '%x' $OBJ_LIGHT`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  5 0 3 00 68 `printf '%x' $OBJ_DRIVE_LOCK`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  6 0 3 00 69 `printf '%x' $OBJ_KNX_LOCK`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  7 0 3 30 64 `printf '%x' $OBJ_STATUS_OPEN`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  8 0 3 30 65 `printf '%x' $OBJ_STATUS_CLOSED`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ  9 0 3 30 66 `printf '%x' $OBJ_STATUS_MOVING`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ 10 0 3 30 67 `printf '%x' $OBJ_STATUS_VENT`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ 11 0 3 30 68 `printf '%x' $OBJ_STATUS_ERROR`
      xpropwrite $EIB_URL $PA $ADDR_TABLE_OBJ 12 0 3 00 00 00
      
      echo "writing KOs"
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_DEVICE         0 1 0
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_OPEN_CLOSE     0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_WRITE]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STOP           0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_WRITE]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_LIGHT          0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_WRITE]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_VENT           0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_WRITE]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_DRIVE_LOCK     0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_WRITE+$FLAG_READ_ON_INIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_KNX_LOCK       0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_WRITE+$FLAG_READ_ON_INIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STATUS_OPEN    0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_TRANSMIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STATUS_CLOSED  0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_TRANSMIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STATUS_MOVING  0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_TRANSMIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STATUS_VENT    0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_TRANSMIT]`
      xpropwrite $EIB_URL $PA $KO_TABLE_OBJ $OBJ_STATUS_ERROR   0 1 `printf '%x' $[$FLAG_COMMUNICATE+$FLAG_READ+$FLAG_WRITE+$FLAG_TRANSMIT]`
      
      echo "restarting device"
      mrestart $EIB_URL $PA