Vielen Dank, das hat geholfen. Das list Stehlampe brachte es an den
Tag...
Danke auch der Hinweis auf ReadingsVal (mit wertvollem Parameter
"default"...).
Problem war dass die Readings (sowohl bei Stehlampe als auch bei
HeizungBad) in diesem Moment nicht gesetzt waren:
list Stehlampe lieferte:
Internals:
BTN 00
DEF 1be5 00
IODev CUL
NAME Stehlampe
NR 17
STATE ???
TYPE FS20
XMIT 1be5
Code:
1 1be5 00
Attributes:
fm_fav 8
fm_order 1
model fs20st
room Wohnzimmer
Zunächst unerklärlich, da der FHEM schon einige Zeit läuft und ich
auch ein regelmäßiges set HeizungBad report1 0 report2 255 absetze.
Sobald ich den Stehlampen-Schalter einmal betätigt hatte und set
HeizungBad report1 0 report2 255 abgesetzt habe funktioniert es.
Aber warum waren die Readings nicht gesetzt?
Nach etwas Probieren fand ich heraus, dass jedesmal wenn ich aus
define Testroutine notify Leer.* \
{\
{Log 1, 'Start der Testroutine...'} \
...
folgendes gemacht habe:
define Testroutine notify Leer.* \
{\
Log 1, 'Start der Testroutine...';; \
Beim Aufruf im Log folgende Meldung erscheint.
2011.08.10 18:27:35 2: FS20 Leer off
2011.08.10 18:27:35 3: Unknown command {, try help
2011.08.10 18:27:35 3: NTFY return: Unknown command {, try help
und dann die Readings wieder gelöscht sind. Das verstehe ich zwar
nicht, aber mit meinem Problem bin ich einen Schritt weiter.
Letzte Anmerkung zu den {code}{code}: Ich hatte es anders nicht
hinbekommen und inzwischen herausgefunden, dass es an meinen
einleitenden Zeilen liegt:
Nach
define Testroutine notify Leer.* \
{\
geht nur {code}{code}
Nach
define Testroutine notify Leer.* {\
geht code; code;
Somit habe ich nun folgeden Code (wenn Tür abgeschlossen wird, was ein
Schalter an FHTTK erkennt, dann Alles (Schalter für Licht, ...)
ausschalten und die Temperatur im Bad auf die Nachttemperatur
absenken. Allerdings nur wenn nicht auf manuellen Modus, z.B. im
Sommer gesetzt. Vielleicht hat ja jemand Verwendung dafür:
define haus_verlassen notify Haustuer.*Closed { \
if ($oldvalue{Haustuer}{VAL} =~ /Open/) { \
Log 1, 'Haustür abgeschlossen...';; \
fhem("set Alles off");; \
\
my $m = ReadingsVal("HeizungBad", "mode", "manual");;\
my $t = ReadingsVal("HeizungBad", "night-temp", "18.0");;\
\
if ($m eq "auto") {\
fhem("set HeizungBad desired-temp $t");; \
} \
} \
}