Einrichtung und Betrieb einer EnOcean Multi-Transceiver Installation

Begonnen von klaus.schauer, 09 November 2020, 17:29:36

Vorheriges Thema - Nächstes Thema

klaus.schauer

Die Erweiterungen und Überarbeitungen der Module TCM - ab V23338 - und EnOcean - ab V23339 - dienen dazu, mehrere EnOcean-Transceiver in einer Fhem-Installation stabil zu betreiben. Bisher war z. B. ein zuverlässiges Anlernen von insbesondere bidirektionalen Aktoren nicht gewährleistet. Auch wird eine Lösung zum Remotebetrieb von Transceivern vorgeschlagen. So können jetzt Transceiver auch räumlich verteilt platziert, aber dennoch alle gemeinsam in eine zentrale Fhem-Installation eingebunden werden.

Der Einsatz mehrerer Transceiver sollte wohlüberlegt und gut geplant sein. Mit EnOcean-Repeatern lassen sich die üblichen Anforderungen zur Reichweitenerhöhung in Wohnungen deutlich einfacher erfüllen. Interessant ist ein Betrieb von mehreren Transceivern aber bei ausgedehnten Gebäudekomplexen. Auch kann die Funkkanalauslastung im Vergleich zu Einsatz von mehreren Repeatern reduziert werden, wenn in sich abgeschlossene räumliche Zonen gebildet werden. Letztlich kann durch mehrere Transceiver die Anzahl der verfügbaren SenderIDs in Fhem erhöht werden.

Folgende Punkte sind dabei zu beachten:

1. Innerhalb einer Fhem-Installation mit mehrere EnOcean-Transceiver sendet einer dieser Transceiver die ausgehenden Telegramme. Der Transceiver wird bei der Einrichtung eines EnOcean-Devices diesem zugewiesen (IODev).

2. Einer der aktivierten Transceiver kann für das manuelle Einrichten von EnOcean-Devices gezielt als Sendegerät (IODev) ausgewählt werden. Hierzu ist das Attribut
attr <name> assignIODev yes
zu setzen.

3. Für das Anlernen von Sensoren oder Aktoren ist der gewünschte Transceiver wie gewohnt per
set <name> teach <t/s>
Kommando in den Lernmodus zu versetzen.

4. Eingehende Telegramme werden von allen Transceiver empfangen. Duplikate werden durch die Funktion "fingerprint" ermittelt und unterdrückt. Diese Funktion muss für jeden Transceiver über das Attribut
attr <name> fingerprint on
aktiviert werden. Weiterhin muss das globale Attribut
attr global dupTimeout 0.6
oder größer gesetzt werden. Die Attribute werden automatisch gesetzt, sofern diese nicht bereits manuell definiert wurden.

5. Die verwendeten und freien SenderIDs jedes der Transceiver können über
get <name> getUsedID
und
get <name> getFreeID
abgefragt werden.

6. Die Initialisierung der Transceiver erfolgt jetzt nicht nur beim Fhem-Start oder -Restart, sondern auch beim Reread der Konfiguration und beim Neuaufbau der Verbindung zum Transceiver. Damit werden auch Remoteverbindungen insgesamt stabiler.

7. Die Remote-Anschaltung von Transceivern wurde mit dem Linux Dienst ser2net erprobt. ser2net kann z. B. auf einem Raspberry PI Remote-Server in folgenden Schritten für einen Transceiver am USB-Port /dev/ttyUSB0@57600 (8, 'none', 1) eingerichtet werden:
- Paketbereitstellung
sudo apt install ser2net
- Konfiguration in der Datei: /etc/ser2net.conf
7000:raw:0:/dev/ttyUSB0:57600 8DATABITS NONE 1STOPBIT HANGUP_WHEN_DONE
- Programmstart zum Test
sudo ser2net -n
- Automatisches  booten (Skript /etc/init.d/ser2net in Startprozedur einfügen)
sudo update-rc.d ser2net defaults
- Programm aus dem Autostart nehmen
sudo update-rc.d -f  ser2net remove
Auf dem Remote-Server sollten ser2net und Fhem nicht parallel aktiv sein. Beim Fhem-Start kann  es vorkommen, dass die autocreate-Funktion den Transceiver ungewollt in Fhem einbindet und es dann zu Fehlfunktionen kommt.

Auf dem Zielsystem wird der Transceiver dann mit der IP-Adresse des Remote-Servers per
define TCM_Remote TCM ESP3 <ip1>.<ip2>.<ip3>.<ip4>:7000
eingerichtet.

Die Multi-Transceiver Umgebung ist für ESP3-Transceiver z. B. TCM310 ausgelegt.

Qowy

Ich habe einen FGW14-USB für meinen Bus und ein USB300 für ESP3 Geräte.

Mit den Dateien hier, bekomme ich einen Startup loop:
Log:

2020.12.06 11:06:50 3: telnetPort: port 7072 opened
2020.12.06 11:06:50 3: WEB: port 8083 opened
2020.12.06 11:06:51 2: eventTypes: loaded 3315 events from ./log/eventTypes.txt
2020.12.06 11:06:51 3: Opening FGW14_USB device /dev/ttyUSB0
2020.12.06 11:06:51 3: Setting FGW14_USB serial parameters to 57600,8,N,1
2020.12.06 11:06:51 3: FGW14_USB device opened
2020.12.06 11:06:52 2: EnOcean Cryptographic functions available.
2020.12.06 11:06:52 2: EnOcean XML functions available.
2020.12.06 11:06:55 3: [STV] defined with host: tv-schlafz.home.qowy.de port: 55000 MAC: b8:27:eb:3c:09:6e
2020.12.06 11:06:57 3: AptToDate (PI_Auto) - defined
2020.12.06 11:06:57 3: DimplexWP: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.2.210:502
2020.12.06 11:06:59 3: Opening Velux device velux.home.qowy.de:51200
2020.12.06 11:06:59 3: MQTT2_FHEM_Server: port 1883 opened
2020.12.06 11:07:00 3: wetter_hallstadt: Defined with URL https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IHALLS4&numericPrecision=decimal&format=json&units=m and interval 120 featurelevel 6
2020.12.06 11:07:00 3: Opening TCM_ESP3 device /dev/ttyUSB1
2020.12.06 11:07:00 3: Setting TCM_ESP3 serial parameters to 57600,8,N,1
2020.12.06 11:07:00 3: TCM_ESP3 device opened
2020.12.06 11:07:01 1: Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected
  telnetPort is not password protected

Protect this FHEM installation by configuring the allowed device allowed_MQTT_TH10_pool
You can disable this message with attr global motd none

2020.12.06 11:07:01 2: TCM FGW14_USB initialized
Can't use an undefined value as an ARRAY reference at ./FHEM/00_TCM.pm line 1396.
2020.12.06 11:07:03 3: telnetPort: port 7072 opened
2020.12.06 11:07:04 3: WEB: port 8083 opened
2020.12.06 11:07:04 2: eventTypes: loaded 3315 events from ./log/eventTypes.txt
2020.12.06 11:07:04 3: Opening FGW14_USB device /dev/ttyUSB0
2020.12.06 11:07:04 3: Setting FGW14_USB serial parameters to 57600,8,N,1
2020.12.06 11:07:04 3: FGW14_USB device opened
2020.12.06 11:07:05 2: EnOcean Cryptographic functions available.
2020.12.06 11:07:05 2: EnOcean XML functions available.
2020.12.06 11:07:19 3: [STV] defined with host: tv-schlafz.home.qowy.de port: 55000 MAC: b8:27:eb:3c:09:6e
2020.12.06 11:07:21 3: AptToDate (PI_Auto) - defined
2020.12.06 11:07:21 3: DimplexWP: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.2.210:502
2020.12.06 11:07:22 3: Opening Velux device velux.home.qowy.de:51200
2020.12.06 11:07:23 3: MQTT2_FHEM_Server: port 1883 opened
2020.12.06 11:07:23 3: wetter_hallstadt: Defined with URL https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IHALLS4&numericPrecision=decimal&format=json&units=m and interval 120 featurelevel 6
2020.12.06 11:07:23 3: Opening TCM_ESP3 device /dev/ttyUSB1
2020.12.06 11:07:23 3: Setting TCM_ESP3 serial parameters to 57600,8,N,1
2020.12.06 11:07:23 3: TCM_ESP3 device opened
2020.12.06 11:07:24 1: Messages collected while initializing FHEM:SecurityCheck:
  telnetPort is not password protected
  WEB is not password protected

Protect this FHEM installation by configuring the allowed device allowed_MQTT_TH10_pool
You can disable this message with attr global motd none

2020.12.06 11:07:24 2: TCM FGW14_USB initialized
Can't use an undefined value as an ARRAY reference at ./FHEM/00_TCM.pm line 1396.
2020.12.06 11:07:26 3: telnetPort: port 7072 opened
2020.12.06 11:07:26 3: WEB: port 8083 opened
2020.12.06 11:07:27 2: eventTypes: loaded 3315 events from ./log/eventTypes.txt
2020.12.06 11:07:27 3: Opening FGW14_USB device /dev/ttyUSB0
2020.12.06 11:07:27 3: Setting FGW14_USB serial parameters to 57600,8,N,1
2020.12.06 11:07:27 3: FGW14_USB device opened
2020.12.06 11:07:28 2: EnOcean Cryptographic functions available.
2020.12.06 11:07:28 2: EnOcean XML functions available.
2020.12.06 11:07:31 3: [STV] defined with host: tv-schlafz.home.qowy.de port: 55000 MAC: b8:27:eb:3c:09:6e
2020.12.06 11:07:32 3: AptToDate (PI_Auto) - defined
2020.12.06 11:07:32 3: DimplexWP: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.2.210:502
2020.12.06 11:07:34 3: Opening Velux device velux.home.qowy.de:51200
2020.12.06 11:07:34 3: MQTT2_FHEM_Server: port 1883 opened
2020.12.06 11:07:34 3: wetter_hallstadt: Defined with URL https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IHALLS4&numericPrecision=decimal&format=json&units=m and interval 120 featurelevel 6
2020.12.06 11:07:35 3: Opening TCM_ESP3 device /dev/ttyUSB1
2020.12.06 11:07:35 3: Setting TCM_ESP3 serial parameters to 57600,8,N,1
2020.12.06 11:07:35 3: TCM_ESP3 device opened
2020.12.06 11:07:35 1: Messages collected while initializing FHEM:SecurityCheck:
  telnetPort is not password protected
  WEB is not password protected

Protect this FHEM installation by configuring the allowed device allowed_MQTT_TH10_pool
You can disable this message with attr global motd none

2020.12.06 11:07:36 2: TCM FGW14_USB initialized
Can't use an undefined value as an ARRAY reference at ./FHEM/00_TCM.pm line 1396.
2020.12.06 11:07:38 3: telnetPort: port 7072 opened
2020.12.06 11:07:38 3: WEB: port 8083 opened
2020.12.06 11:07:39 2: eventTypes: loaded 3315 events from ./log/eventTypes.txt
2020.12.06 11:07:39 3: Opening FGW14_USB device /dev/ttyUSB0
2020.12.06 11:07:39 3: Setting FGW14_USB serial parameters to 57600,8,N,1
2020.12.06 11:07:39 3: FGW14_USB device opened
2020.12.06 11:07:40 2: EnOcean Cryptographic functions available.
2020.12.06 11:07:40 2: EnOcean XML functions available.
2020.12.06 11:07:43 3: [STV] defined with host: tv-schlafz.home.qowy.de port: 55000 MAC: b8:27:eb:3c:09:6e
2020.12.06 11:07:44 3: AptToDate (PI_Auto) - defined
2020.12.06 11:07:44 3: DimplexWP: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.2.210:502
2020.12.06 11:07:46 3: Opening Velux device velux.home.qowy.de:51200
2020.12.06 11:07:46 3: MQTT2_FHEM_Server: port 1883 opened
2020.12.06 11:07:46 3: wetter_hallstadt: Defined with URL https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IHALLS4&numericPrecision=decimal&format=json&units=m and interval 120 featurelevel 6
2020.12.06 11:07:47 3: Opening TCM_ESP3 device /dev/ttyUSB1
2020.12.06 11:07:47 3: Setting TCM_ESP3 serial parameters to 57600,8,N,1
2020.12.06 11:07:47 3: TCM_ESP3 device opened
2020.12.06 11:07:47 1: Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected
  telnetPort is not password protected

Protect this FHEM installation by configuring the allowed device allowed_MQTT_TH10_pool
You can disable this message with attr global motd none


USW

MadMax-FHEM

Hat (verm.) nichts mit dem Problem zu tun ABER (was mir aufgefallen ist): du definierst die USB-Devivces mittels /sev/ttyUSB0 bzw. /dev/tty/USB1

Das kann auch mal "schief" gehen!

Je nachdem wie die Devices beim Booten "erkannt" werden ist die "Reihenfolge" (also USB0 / USB1) auch mal anders...

BESSER: define by-serial (falls keine eindeutigen Seriennummern gegeben, dann zumindest "by-path". Das funktioniert solange du nicht "umsteckst")...

https://wiki.fhem.de/wiki/Mehrere_USB-Ger%C3%A4te_einbinden

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Qowy

Ja als das Problem aufgetreten ist, wurde das OS selbst garnicht neu gestartet.

Ich hatte bei einem OS Reboot mal das problem das die tty falsch waren, deswegen würde ich es aber mal anpassen.

MadMax-FHEM

Zitat von: Qowy am 06 Dezember 2020, 13:09:59
Ja als das Problem aufgetreten ist, wurde das OS selbst garnicht neu gestartet.
(Darum) hatte ich ja geschrieben: hat (verm.) nichts mit dem Problem zu tun ;)



Zitat von: Qowy am 06 Dezember 2020, 13:09:59
Ich hatte bei einem OS Reboot mal das problem das die tty falsch waren, deswegen würde ich es aber mal anpassen.

Ja, solltest du, sonst kommt evtl. bald ein weiteres "Problem" dazu ;)

Sorry, zum eigentlichen Problem kann ich leider nichts beitragen... :'(

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

klaus.schauer

Zitat von: Qowy am 06 Dezember 2020, 11:33:50
Ich habe einen FGW14-USB für meinen Bus und ein USB300 für ESP3 Geräte.

Mit den Dateien hier, bekomme ich einen Startup loop:

2020.12.06 11:07:01 2: TCM FGW14_USB initialized
Can't use an undefined value as an ARRAY reference at ./FHEM/00_TCM.pm line 1396.

Danke für die Tests. Bitte mit geänderter Version, siehe oben, nochmals versuchen.

klaus.schauer

Die aktualisierten Module werden jetzt automatisch per Update verteilt.

Qowy

Ich bin leider noch nicht dazu gekommen die neue Version zu Testen, jetzt werden wirs ja sehen :D

Eine Sache ist mir noch nicht ganz klar, was genau macht jetzt attr assignIODev yes?

Das IODev konnte man ja schon vorher ändern, und vorallem warum ist der parameter yes no und nicht ein IODev
Oder ist assignIODev ein attr des TCM und legt sozusagen das Default fest?

klaus.schauer

In einer Multi-Transceiver-Installation muss zum bidirektionalen Teach-In von automatisch angelegten Devices festgelegt werden, welcher Transceiver senden und aus welchem Adresspool eine SenderID verwendet werden soll. Durch diese Attribut wird der entsprechende Transceiver vorab ausgewählt.

Qowy

Es scheint zu funktionieren, ich habe noch die folgenden Warnungen:


PERL WARNING: Use of uninitialized value in join or string at ./FHEM/00_TCM.pm line 1414.

PERL WARNING: Use of uninitialized value $_ in hex at ./FHEM/00_TCM.pm line 1252.

PERL WARNING: Argument "3:concentrationUnit:10" isn't numeric in bitwise and (&) at ./FHEM/10_EnOcean.pm line 9273.
2020.12.19 09:48:44 1: PERL WARNING: Argument "ppb" isn't numeric in addition (+) at ./FHEM/10_EnOcean.pm line 13493.


Edit:
Ansonsten musste ich beim FGW14 rejectBaseID auf no stellen, da ansonsten nach dem update garnichts mehr ging (es hat ja keine BaseID in dem Sinne dewegen wurde alles rejected)

klaus.schauer

#10
Berichtigungen per Update ab 2020-12-21 verfügbar (00_TCM V23395, 10_EnOcean V23389)

Qowy

Eine neue Version, neue Warnings ;)


PERL WARNING: Use of uninitialized value $_ in pattern match (m//) at ./FHEM/00_TCM.pm line 148.
PERL WARNING: Use of uninitialized value in join or string at ./FHEM/00_TCM.pm line 1482.


Dieser hier ist auch neu, aber nicht sicher ob es durch einen call von diesen Modulen passiert, oder ob das Modul selbst das Problem ist.
PERL WARNING: can't getattr: Input/output error at ./FHEM/DevIo.pm line 586.

Vielen Dank für sie Super Arbeit!

klaus.schauer

Noch ein Versuch. Irgendwie nervt es, diese Sonderfälle wegen fehlender eigener Testgeräte nicht selbst testen zu können.

Qowy

Für was sind denn diese Codepaths die da Warnungen schmeißen? Das FGW14?

klaus.schauer

#14
Ja, wegen der fehlenden BaseID, ChipID