FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rami am 06 Dezember 2014, 23:10:20

Titel: Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: rami am 06 Dezember 2014, 23:10:20
was mache ich falsch ? das notify funktioniert zwar, aber das Log wird vollgeschmiert mit:

"Global symbol "$EVTPART3" requires explicit package name at (eval 849) line 4"
"Global symbol "$EVTPART3" requires explicit package name at (eval 853) line 5"

define HMC_GAE notify HMS100TF_Gaestezimmer:.* {\
Log 1, "ALARM name=%NAME event=%EVENT";;\
my $val = Value("EF_FS20");;\
Log 1, "@: Feuchte $EVTPART3";;\
if ($EVTPART3 ge 60 && $val eq "off") { fhem("set EF_FS20 on")} else { if ($EVTPART3 lt 60 && $val eq "on"){ fhem("set EF_FS20 off")}}\
}
//
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: fhainz am 07 Dezember 2014, 08:19:29
Ich vermute mal das $EVTPART3 nicht existiert, sprich $EVENT hat keine 4 parts.

BTW: %NAME, %EVENT etc sind veraltet, besser wäre es $NAME, $EVENT, etc. zu verwenden.


Grüße
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: rami am 07 Dezember 2014, 08:49:15
hat es da es ja grundsätzlich funktioniert:

so sieht das asuzuwertende Logfile aus:

2014-12-07_08:46:26 HMS100TF_Gaestezimmer T: 17.8  H: 68.9  Bat: ok

und das fhem.log

2014.12.07 08:47:45 3: HMC_GAE return value: Global symbol "$EVTPART3" requires explicit package name at (eval 1702) line 4.
Global symbol "$EVTPART3" requires explicit package name at (eval 1702) line 5.
Global symbol "$EVTPART3" requires explicit package name at (eval 1702) line 5.

2014.12.07 08:47:45 1: ALARM name=HMS100TF_Gaestezimmer event=T: 19  H: 64.2  Bat: ok
2014.12.07 08:47:45 1:  Feuchte 64.2
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: fhainz am 07 Dezember 2014, 08:56:45
Schau mal im EventMonitor wie das Event das das notify triggert wirklich aussieht.
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: Puschel74 am 07 Dezember 2014, 09:07:57
Hallo,

vermutlich kommt der Fehler aus dieser Zeile:
my $val = Value("EF_FS20");;\
Die " sehen nicht so aus wie in den anderen Zeilen und sind vermutlich auch keine " in diesem Sinne.

Grüße
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: Brockmann am 07 Dezember 2014, 09:27:07
Das notify triggert auf alle Events, die dieses Gerät wirft. Also nicht nur das gewünschte mit T:... usw.
Wenn eines der anderen Events kommt, gibt es kein $EVTPART3 und es kommt der Fehler.

Du musst entweder sicherstellen, dass nur passende Events generiert werden (über event_on...-Attribute) oder (besser) Du musst das notify genauer spezifieren, vielleicht so:
define HMC_GAE notify HMS100TF_Gaestezimmer.T:.* {\
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: Puschel74 am 07 Dezember 2014, 09:40:13
Hallo,

stimmt das kommt noch dazu resp. das wird der Grund für die Meldungen zwischendurch sein.

Grüße
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: krikan am 07 Dezember 2014, 10:20:35
Am Rande:
if ($EVTPART3 ge 60 ...
Stringvergleich über ge; sollte aber doch wohl Größenvergleich über >= sein!?
Schau Dir vielleicht auch einmal den Unterschied zwischen stringvergleichenden und binär Operatoren an: http://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren#Logische_Operatoren.
Titel: Antw:Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch
Beitrag von: rami am 07 Dezember 2014, 14:54:11
thx @ all

HMS100TF_Gaestezimmer.humidity:.*
klappt es jetzt,...

gleichzeitg hab ich "ge" zu >= geändert,...


btw.
lässt sich das notify triggern ? ich hab jetzt nach jeder Änderung 5 min warten müssen, bis der Sensor den Wert liefert   ::)