Hallo,
nach Start von FHEM via Kommandozeile ist mir aufgefallen, dass das Encocean Modul sehr viele Fehlermeldungen, wahrscheinlich beim Eintreffen bestimmter Nachrichten) nach STDERR ausgibt:
Use of uninitialized value $odata in pattern match (m//) at ./FHEM/10_EnOcean.pm line 2123.
Use of uninitialized value $1 in hex at ./FHEM/10_EnOcean.pm line 2124.
Use of uninitialized value $3 in hex at ./FHEM/10_EnOcean.pm line 2124.
Use of uninitialized value $4 in hex at ./FHEM/10_EnOcean.pm line 2124.
Es sind diese zwei Zeilen, die den Fehler verursachen:
$odata =~ m/^(..)(........)(..)(..)$/;
my ($subTelNum, $destinationID, $RSSI, $securityLevel) = (hex($1), $2, hex($3), hex($4));
da die Telegrammdaten vom TCM-Modul kommen , habe ich den Loglevel einmal erhöht:
Im Log findet man keinerlei Fehlermeldungen. Die einzige Vermutung die ich habe ist, dass das rot markierte Telegramm solche Fehlermeldungen verursacht,
da aufgrund der abweichenden Länge die Regular Expression nicht mehr zutrifft.
Offensichtlich tritt der Fehler bei Telegrammen mit ORG=07 bzw A5 auf (07 wird auf A5 gemappt).
Bitte beachten: Ich verwende nicht die Funkschnittstelle, sondern das FGW14 Gateway von Eltako.
Das heisst, die Telegramme treffen als Receive Message Telegram (RMT) und nicht als Receive Radio Telegram ein.
2014.04.17 09:01:08 5: TCM Parse 8B05700000000000000730
2014.04.17 09:01:08 5: TCM120 dispatch EnOcean:1:F6:70:00000007:30
2014.04.17 09:01:08 5: TCM TCM120 RAW: A55A8B05000000000000000820B8
2014.04.17 09:01:08 5: TCM Parse 8B05000000000000000820
2014.04.17 09:01:08 5: TCM120 dispatch EnOcean:1:F6:00:00000008:20
2014.04.17 09:01:08 5: TCM TCM120 RAW: A55A8B070000000C0000000900A7
2014.04.17 09:01:08 5: TCM Parse 8B070000000C0000000900
2014.04.17 09:01:08 5: TCM120 dispatch EnOcean:1:A5:0000000C:00000009:00
2014.04.17 09:01:08 5: TCM TCM120 RAW: A55A8B05500000000000000A301A
2014.04.17 09:01:08 5: TCM Parse 8B05500000000000000A30
2014.04.17 09:01:08 5: TCM120 dispatch EnOcean:1:F6:50:0000000A:30
2014.04.17 09:01:08 5: TCM TCM120 RAW: A55A8B05500000000000000B301B
2014.04.17 09:01:08 5: TCM Parse 8B05500000000000000B30
Falls ich noch weitere Logs generieren soll, bitte einfach melden.
Viele Grüße,
Guido
Der Fehler tritt wahrscheinlich nur bei ESP2-Telegrammen oder nur in der speziellen Konfiguration für das FGW14 auf. Bei ESP2 gibt des Optional Data nicht. Es wird wahrscheinlich reichen, die vier Werte beim Empfang mit ESP2 passend vorzubelegen. Ich sehe mir das an.
Was wird denn bei den einzelnen Devices für die Werte
- RSSI
- SecurityLevel
- DestinationID
- SubTelNum
angezeigt. Richtig wäre z. B.
Internals:
DEF <SenderID>
IODev TCM_0
LASTInputDev TCM_0
MSGCNT 10
NAME Bewegungsmelder_Flur
NOTIFYDEV global
NR 448
STATE off
TCM_0_DestinationID FFFFFFFF
TCM_0_MSGCNT 10
TCM_0_PacketType 1
TCM_0_RSSI -52
TCM_0_ReceivingQuality excellent
TCM_0_RepeatingCounter 0
TCM_0_SecurityLevel 0
TCM_0_SubTelNum 1
TCM_0_TIME 2014-04-17 07:55:20
TYPE EnOcean
Readings:
2014-04-17 07:55:21 current 8.5
2014-04-17 07:55:21 motion off
2014-04-17 07:55:21 sensorType wall
2014-04-17 07:55:21 state off
2014-03-14 14:18:59 teach-in EEP A5-07-01 Manufacturer: EnOcean GmbH
2014-04-17 07:55:21 voltage 3.2
Attributes:
IODev TCM_0
icon message_presence
manufID 00B
room Sensoren
subType occupSensor.01
Bei mir sieht es wie folgt aus:
Bestimmte Werte sind also nicht belegt.
Es handelt sich hier um ein Eltako FSR14-4x.
Internals:
CHANGED
DEF 0000000C
IODev TCM120
LASTInputDev TCM120
MSGCNT 2925
NAME EnO_switch_0000000C
NOTIFYDEV global
NR 690
STATE off
TCM120_MSGCNT 2925
TCM120_TIME 2014-04-17 11:59:41
TYPE EnOcean
Readings:
2014-04-17 10:20:11 buttons pressed
2014-04-17 10:20:11 channelB BI
2014-04-17 11:59:41 state off
Attributes:
IODev TCM120
event-on-change-reading state
gwCmd switching
room EnOcean
subDef 0010000C
subType gateway
Viele Grüße,
Guido
Hallo,
ich hab einmal in der ESP3 Spec nachgesehen. Dort gibt es eine Gegenüberstellung von ESP2 und ESP3 (siehe beigefügtes Screenshot).
Demnach unterstützt ESP2 folgendes nicht:
- Subtelegram count
- Receive signal strength (RSSI)
- Optional Data
Wobei Optional Data bei ESP3 folgende Attribute transportiert:
- SubTelNum
- Destination ID
- dBm
- SecurityLevel
D.h., auch diese Daten fehlen bei ESP2.
Die entsprechenden Attribute einfach auf einen Default Wert zu setzen halte ich für eine gute einfache Idee.
Viele Grüße,
Guido
Fehler sollte morgen weg sein. Bitte testen, ich habe keine Transceiver mit ESP2.
Vielen Dank für das schnelle Update!
Das Enocean Modul erzeugt nun keine Fehlermeldungen mehr auf STDERR und die Enocean Aktoren und Sensoren funktionieren alle einwandfrei
über die ESP2 Schnittstelle des FGW14.
Ich erhalte nun allerdings von fhem.pl Fehlermeldungen, wobei ich nicht weiss ob diese im Zusammenhang mit dem Enocean-Modul stehen, da fhem.pl ja auch aktualisiert wurde. Die Fehler werden von readingsBulkUpdate() in fhem.pl gemeldet:
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 3631.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 3632.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 3645.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 3631.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 3632.
VG,
Guido
@g.carls: die erwaehnte Fehlermeldung hat vermutlich nichts mit EnOcean zu tun.
Die event-on-change-reading usw. Attribute muessen Regexps enthalten, das ist nicht das, was man im Shell/Cmd verwendet (die nennt man Glob). Hier muss vermutlich * durch .* ersetzt werden.
Danke Rudi!
Ich hatte bei meiner Eltako WS die . in der event_on_change Konfiguration anzugeben.
VG,
Guido