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")}}\
}
//
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
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
Schau mal im EventMonitor wie das Event das das notify triggert wirklich aussieht.
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
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:.* {\
Hallo,
stimmt das kommt noch dazu resp. das wird der Grund für die Meldungen zwischendurch sein.
Grüße
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.
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 ::)