Hallo zusammen,
über eine Auswertung des Googlekalenders lass ich mir die anstehenden Geburtstage anzeigen:
define Birthdaycheck notify Birthdaycheck {\
my $Birthday = "off";;\
my $name = "";;\
\
my $rcal= fhem("get Googlekalender text next 4");;\
my @events = split ("\n", $rcal);;\
my $tomorrow = strftime "%d.%m.%y", localtime(time + 86400);;\
\
foreach my $event (@events)\
{\
my @werte = split(" ", $event);;\
{Log 1, $werte[2]}\
if ($werte[0] eq $tomorrow)\
{\
if ($werte[2] eq "Geburtstag")\
{\
{$Birthday = "on"}\
{$name = $werte[3]}\
{Log 1, $Birthday}\
{Log 3, $werte[3]}\
{Log 3, $name}\
}\
#elsif ($werte[2] ne "Geburtstag") {$Birthday = "off"}\
}\
}\
fhem("set Geburtstag $Birthday");;\
fhem("set Sonosbuero Speak 50 de Morgen hat XXXXXXX Geburtstag.");;\
fhem("set Name $name");;\
{Log 3, $Birthday}\
return;;\
}
Der name steht in einem Dummy als State:
define Name dummy
attr Name room Info
oder in der Variablen $name
Wie kann ich den Namen anstelle des XXXXXX im Speakbefehl integrieren ?
Ich habe bisher nur mit festen Sprachausgaben experimentiert
Danke für eure Hilfe
Klaus
Die Logeinträge sind noch vom Debugging drin
entweder [Name:state] oder $name.
die zweite variante verwendest du doch genau so schon in der nächsten zeile.
gruss
andre