Zwei seperate Eltako 14 Buslinien in FHEM einbinden

Begonnen von prime, 25 Mai 2021, 22:37:42

Vorheriges Thema - Nächstes Thema

prime

Hallo liebe FHEM Gemeinde,

ich habe ein anliegen welches ich nicht alleine gelöst bekomme.

Ich habe in meinen Einfamilienhaus zwei seperate Eltako Buslinien verbaut, die können leider auch nicht zusammen gelegt werden aufgrund der Teilnehmerzahl. In jedem der Buslinien habe ich einen Eltako FGW14-USB, die Gateways sind über USB an meinen Raspberry Pi angeschlossen.

Auf den Raspberry Pi habe ich FHEM laufen. Die erste Buslinie habe ich erfolgreich in FHEM eingebunden und läuft soweit wunderbar. Jedoch wenn ich die zweite Buslinine einbinden will vermischen sich die Signale, d.h. wenn ich z.b. einen Aktor vom ersten Bus über die Weboberfläche "ein" schalte wird der Aktor im Schaltschrank vom ersten Bus "eingeschaltet" jedoch kommt die Rückmeldung vom Aktor auf der Weboberfäche beim Aktor vom zweiten Bus an.
Ich könnte mir vorstellen das die DEF einstellung der Devices die Probleme machen da beide die selbe haben.
In beiden Devices der Aktoren ist auch der richtige IODev ausgewählt, jedoch steht bei den Internals noch LASTInputDev aber vom falschen IODev.

Ich hoffe ihr habt es einigermaßen verstanden was mein Problem ist, es ist nicht ganz einfach zu beschreiben.
Anbei noch ein paar "List" der Geräte.

Gateway erste Buslinie:
Internals:
   BaseID     FF800000
   DEF        ESP2 /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0-port0@57600
   DeviceName /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0-port0@57600
   FD         23
   FUUID      5f9dd9b3-f33f-1fbd-0a64-388f46d2a9b61f8f
   LastID     FF80007F
   MODEL      ESP2
   NAME       FGW14_USB_Bus1
   NOTIFYDEV  global
   NR         42
   NTFY_ORDER 45-FGW14_USB_Bus1
   PARTIAL   
   STATE      initialized
   TYPE       TCM
   READINGS:
     2021-05-25 19:17:09   state           initialized
   helper:
     cdmSeq     1
     init_done  1
     BaseID:
       FF800000
Attributes:
   DbLogExclude .*
   baseID     FF800000
   comType    RS485
   icon       usb@3399FF
   learningMode demand
   room       System->Gateways
   sendInterval 100
   verbose    3


Gateway zweite Buslinie:
Internals:
   BaseID     AA800000
   DEF        ESP2 /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0@57600
   DeviceName /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0@57600
   FD         47
   FUUID      601afd97-f33f-1fbd-5484-f57c57fceeeb38d0
   LastID     AA80007F
   MODEL      ESP2
   NAME       FGW14_USB_Bus2
   NOTIFYDEV  global
   NR         315
   NTFY_ORDER 45-FGW14_USB_Bus2
   PARTIAL   
   STATE      initialized
   TYPE       TCM
   READINGS:
     2021-05-25 20:31:04   state           initialized
   helper:
     cdmSeq     3
     init_done  1
     BaseID:
       FF800000
       AA800000
Attributes:
   DbLogExclude .*
   baseID     AA800000
   comType    RS485
   icon       usb@3399FF
   learningMode demand
   room       System->Gateways
   sendInterval 100
   verbose    3



Aktor erste Bus (Gerätebusadresse 1):
Internals:
   DEF        00000001
   FUUID      5f9ddf6c-f33f-1fbd-385d-0153041f4f11bbb8
   IODev      FGW14_USB_Bus1
   NAME       EnO_00000001
   NR         43
   NTFY_ORDER 50-EnO_00000001
   STATE      off
   TYPE       EnOcean
   READINGS:
     2021-05-25 19:17:05   IODev           FGW14_USB_Bus1
     2021-05-25 21:32:49   block           unlock
     2021-05-25 21:32:49   state           off
   helper:
Attributes:
   DbLogExclude .*
   IODev      FGW14_USB_Bus1
   alias      Technik 1 Zirkulationspumpe
   eep        A5-38-08
   gwCmd      switching
   icon       sani_pump
   manufID    00D
   room       EnOcean,Haus,Technik1
   subDef     FF800001
   subType    gateway
   teachMethod RPS


Aktor zweite Bus (ebenfalls Gerätebusadresse 1):
Internals:
   DEF        00000001
   FGW14_USB_Bus1_MSGCNT 8
   FGW14_USB_Bus1_TIME 2021-05-25 21:32:52
   FUUID      601b06c7-f33f-1fbd-88ca-e7b06b2a0995cb8e
   IODev      FGW14_USB_Bus2
   LASTInputDev FGW14_USB_Bus1
   MSGCNT     8
   NAME       EnO_B2_00000001
   NR         317
   NTFY_ORDER 50-EnO_B2_00000001
   STATE      off
   TYPE       EnOcean
   READINGS:
     2021-05-25 19:17:07   IODev           FGW14_USB_Bus2
     2021-05-25 21:10:48   block           unlock
     2021-05-25 21:32:52   state           off
   helper:
Attributes:
   DbLogExclude .*
   IODev      FGW14_USB_Bus2
   alias      Terrasse Steckdosen unten
   eep        A5-38-08
   event-on-change-reading .*
   gwCmd      switching
   icon       message_socket
   manufID    00D
   room       EnOcean
   subDef     AA800001
   subType    gateway



Vielen Dank im Voraus

klaus.schauer

Soweit ich den Eltako-Unterlagen entnehme, ist der Adressbereich der Aktoren 0x00000000 bis 0x000007F fest vorgegeben. Ich habe deshalb im TCM-Modul ein neues Attribut "rcvIDShift" eingebaut. Damit kann der über die RS485-Schnittstelle empfangene Adressbereich in 0x80-Schritten insgesamt verschoben werden.

attr <name> rcvIDShift 00000080

konvertiert so z. B. die empfangene ID 0x00000002 zu 0x00000082.

Bitte mit der Entwicklerversion, siehe Anlage, testen. Ich kann das selbst nicht verifizieren, da mir eine RS485-Anschaltung fehlt.

prime

#2
Nabend,

vielen Dank ich werde das ausprobieren und berichte ob das funktioniert.

Einen schönen Abend wünsche ich noch.


EDIT:
Ich habe gestern abend das Modul eingebunden und probeweise einen Aktor eingerichtet. Heute habe ich noch weitere sechs Aktoren eingebunden.

Alles funktioniert bestens! Vielen vielen Dank an dich Klaus!
Wie würde das mit dem von dir geänderten Modul ablaufen, wird das dann mit in FHEM aufgenommen?

klaus.schauer

Die Änderungen stehen dann in den nächsten Tagen als Update zur Verfügung.

prime

Nabend,

ich habe doch noch ein kleines Problem mit der einbindung von FTS14EM Eingangsmodule bzw. deren Eingänge.

Beim betätigen eines Einganges wird ganz normal ein Device per Autocreate angelegt. In diesem Beispiel handelt es sich um ein Fensterkontakt welches auf einen FTS14EM mit der Geräteadresse (Potis) UT 401/30 eingestellt ist.
Der Fensterkontakt ist auf den Eingang E9 angeschlossen, beim autocreate wird dann in FHEM das Device EnO_00001439 angelegt.
Soweit ist das auch alles richtig, jedoch wenn es einen zweiten FTS14EM mit der selben Adresse auf einen seperaten Bus gibt mischen sich wieder die Signale. Hier fehlt die verschiebung der Eingangssignale welche Klaus ja schon für die Aktoren eingefügt hat.


Ich habe mal ein List vom Device angefügt, dort kann man auch wieder sehen das als LASTInputDev mein Bus2 eingetragen ist.
Internals:
   DEF        00001439
   FGW14_USB_Bus1_MSGCNT 314
   FGW14_USB_Bus1_TIME 2021-08-05 19:32:07
   FGW14_USB_Bus2_MSGCNT 4842
   FGW14_USB_Bus2_TIME 2021-08-05 19:35:53
   FUUID      5f9de550-f33f-1fbd-8a30-971f2827b0feaaeb
   IODev      FGW14_USB_Bus1
   LASTInputDev FGW14_USB_Bus2
   MSGCNT     5156
   NAME       EnO_00001439
   NR         113
   NTFY_ORDER 50-EnO_00001439
   STATE      released
   TYPE       EnOcean
   OLDREADINGS:
   READINGS:
     2021-08-02 11:38:30   IODev           FGW14_USB_Bus1
     2021-08-05 19:35:53   buttons         released
     2021-08-05 19:35:48   channelB        B0
     2021-08-05 19:35:53   state           released
   helper:
Attributes:
   DbLogExclude .*
   IODev      FGW14_USB_Bus1
   alias      Fensterkontakt Technik 2
   eventMap   closed:geschlossen open:geöffnet
   group      Tür- und Fensterkontakte
   icon       fts_shutter_all
   manufID    00D
   model      Eltako_FTS12
   room       EnOcean
   subType    contact
   teachMethod 1BS


Gateway erste Buslinie:
Internals:
   BaseID     FF800000
   DEF        ESP2 /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0-port0@57600
   DeviceName /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0-port0@57600
   FD         23
   FUUID      5f9dd9b3-f33f-1fbd-0a64-388f46d2a9b61f8f
   LastID     FF80007F
   MODEL      ESP2
   NAME       FGW14_USB_Bus1
   NOTIFYDEV  global
   NR         41
   NTFY_ORDER 45-FGW14_USB_Bus1
   PARTIAL   
   STATE      initialized
   TYPE       TCM
   READINGS:
     2021-08-02 11:38:31   state           initialized
   helper:
     cdmSeq     2
     init_done  1
     BaseID:
       FF800000
Attributes:
   DbLogExclude .*
   baseID     FF800000
   comType    RS485
   icon       usb@3399FF
   learningMode demand
   room       System->Gateways
   sendInterval 100
   verbose    3


Gateway zweite Buslinie:
Internals:
   BaseID     AA800000
   DEF        ESP2 /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0@57600
   DeviceName /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0@57600
   FD         28
   FUUID      601afd97-f33f-1fbd-5484-f57c57fceeeb38d0
   LastID     AA80007F
   MODEL      ESP2
   NAME       FGW14_USB_Bus2
   NOTIFYDEV  global
   NR         314
   NTFY_ORDER 45-FGW14_USB_Bus2
   PARTIAL   
   STATE      initialized
   TYPE       TCM
   READINGS:
     2021-08-02 11:38:32   state           initialized
   helper:
     cdmSeq     1
     init_done  1
     BaseID:
       FF800000
       AA800000
Attributes:
   DbLogExclude .*
   baseID     AA800000
   comType    RS485
   icon       usb@3399FF
   learningMode demand
   rcvIDShift 00000080
   room       System->Gateways
   sendInterval 100
   verbose    3


Klaus eventuell hast du ja wieder eine lösung parat.

Schönen Dank im Vorraus und euch einen schönen abend.

klaus.schauer

Ich sehe nicht, weshalb die Verschiebung

attr <name> rcvIDShift 00000080

nicht auch für die Sensoren geeignet wäre. Man muss natürlich einen größeren Versatz vorsehen, z. B. 0x00010000.

prime

Nabend,

ich hätte eigentlich auch damit gerechnet das er ein neues Decive anlegt nur dann halt + 80 HEX, dass ist aber leider nicht passiert stattdessen hat er die empfangenen Daten dem EnO_00001439 zugeordnet.
Ich habe es vorhin extra nochmal mit deinem Vorschlag die Verschiebung zu vergrößern probiert, jedoch mit dem selben Ergebnis.