Global symbol "$EVTPART3" requires explicit package name - Was mache ich falsch

Begonnen von rami, 06 Dezember 2014, 23:10:20

Vorheriges Thema - Nächstes Thema

rami

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")}}\
}
//

fhainz

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

rami

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

fhainz

Schau mal im EventMonitor wie das Event das das notify triggert wirklich aussieht.

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Brockmann

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:.* {\

Puschel74

Hallo,

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

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

krikan

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.

rami

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   ::)