HomeMaticWired: addLink erzeugt doppelte Einträge

Guten Tag,

ich benutze die aktuelle Homegear Version 0.7.41-3071 und habe folgende Geräte angelernt:

Family 1> ls
      ID │ Name                      │  Address │ Serial Number │ Type │ Type String               │ Firmware │ Unreach
─────────┼───────────────────────────┼──────────┼───────────────┼──────┼───────────────────────────┼──────────┼────────
         │                           │          │               │      │                           │          │        
       1 │                           │ 0001A3DC │    OEQXXXXXXX │ 1200 │ HMW-IO-12-Sw7-DR          │      3.6 │      No
       2 │                           │ 00020E3F │    PEQXXXXXXX │ 1100 │ HMW-LC-Sw2-DR             │      3.6 │      No
─────────┴───────────────────────────┴──────────┴───────────────┴──────┴───────────────────────────┴──────────┴────────

Lege ich nun am Gerät mt ID 1 eine Direktverknüpfung an, z.B:

addLink ("QEQxxxxxxx:1", "QEQxxxxxxx:16")

Dann ergeben sich doppelte Einträge wie folgt:

|Channel: 1|Address: 0x1a3dc|Remote channel: 16|Serial number: OEQxxxxxx|
|Channel: 16|Address: 0x1a3dc|Remote channel: 1|Serial number: OEQxxxxxx|

Folglich sind im Homematic Manager dann unter Verknüpfungen zwei identische Zeilen zu sehen. Lösche ich dann eine der beiden Direktverbindungen, dann verschwinden die beiden identischen Zeilen.

Ich denke, da liegt vielleicht ein ähnliches Problem vor, wie bereits in diesem Beitrag beschrieben:
Bush Jäger Doppel-Wipp-Taster (2020US-205) an HMW-LC-Bl1-DR funktioniert nicht?

Viele Grüße
Klaus

Hallo @alamouti,

funktioniert die Direktverknüpfung denn? Was gibt homegear -e rc 'print_v($hg->getLinks());' zurück?

Viele Grüße

Sathya

Hallo Sathya,

vielen Dank für Deine Rückmeldung. Ja, die Direktverknüpfung funktioniert, auch wenn sie anscheinend doppelt vorhanden ist.

(Array length=2)
[
  (Struct length=9)
  {
    [DESCRIPTION] (String) 
    [FLAGS] (Integer) 0
    [NAME] (String) 
    [RECEIVER] (String) OEQxxxxxxx:16
    [RECEIVER_CHANNEL] (Integer) 16
    [RECEIVER_ID] (Integer) 1
    [SENDER] (String) OEQxxxxxxx:1
    [SENDER_CHANNEL] (Integer) 1
    [SENDER_ID] (Integer) 1
  }
  (Struct length=9)
  {
    [DESCRIPTION] (String) 
    [FLAGS] (Integer) 0
    [NAME] (String) 
    [RECEIVER] (String) OEQxxxxxxx:16
    [RECEIVER_CHANNEL] (Integer) 16
    [RECEIVER_ID] (Integer) 1
    [SENDER] (String) OEQxxxxxxx:1
    [SENDER_CHANNEL] (Integer) 1
    [SENDER_ID] (Integer) 1
  }
]

Lösche ich die Direktverknüpfung mit removeLink("OEQxxxxxxx:1","OEQxxxxxxx:16"), dann liefert getLinks() folgendes zurück:

(Array length=0)
[
]

Benutze die aktuelle Homegear stable version: 0.7.45-3101

Viele Grüße

Klaus

Ein “Link” besteht aus der Verbindung zweier Kanäle… 1 Link = 2 Kanäle, 1 link verbindet Kanal A mit Kanal B.

Hier sind aber 2 mal die gleichen Kanäle verbunden. Jede Struktur enthält Sender und Receiver, beide Strukturen sind identisch.

1 Like

Also die doppelten Einträge in der Ausgabe der Funktion getLinks() ergeben sich wie beschrieben mit addLink ("QEQxxxxxxx:1", "QEQxxxxxxx:16") nur dann, wenn Senderkanal- und Empfängerkanal der Direktverknüpfung am selben Gerät liegen.

Erzeuge ich eine Diektverknüpfung zwischen zwei unterschiedlichen Geräten mit addLink ("PEQxxxxxxx:1","QEQxxxxxxx:13) dann wird richtigerweise nur ein Eintrag erzeugt und homegear -e rc 'print_v($hg->getLinks());' liefert folgendes zurück:

(Array length=1)
[
  (Struct length=9)
  {
    [DESCRIPTION] (String) 
    [FLAGS] (Integer) 0
    [NAME] (String) 
    [RECEIVER] (String) OEQxxxxxxx:13
    [RECEIVER_CHANNEL] (Integer) 13
    [RECEIVER_ID] (Integer) 1
    [SENDER] (String) PEQxxxxxxx:1
    [SENDER_CHANNEL] (Integer) 1
    [SENDER_ID] (Integer) 2
  }
]
1 Like