hiho,
dumme frage:
ich habe ein doif, indem ich per regex 2 bestimmte readings raus suchen lasse um dann den text aus einem weiteren reading ansagen zu lassen.
das problem dabei - ich bräuchte alle 3 readings aus der selben "termingruppe" und ich weiß natürlich nicht, wie viele termine es gerade gibt.
original readings sehen z.b. so aus: "t_001_daysleft", "t_001_btime" und "t_001_summary"
getreu nach der anleitung "(["^FS$:^temp$"] triggert auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt" sollte das also in etwa so lauten:
["^google_ratohaus_info$:^daysleft$"] eq "0" and  [(["^google_ratohaus_info$:^btime$"]-[600])]
1. frage:
wie kann ich dafür sorgen, dass beide readings aus dem weggelassenen teil "t_001_" stammen und nicht z.b. eines davon aus dem reading "t_002_"?
2. frage:
wie müsste ein ausfürhungsteil aussehen, damit ich auch dort die richtige "nummer" verwenden kann?
bspl.: ( say [google_ratohaus_info:t_001_summary]  )
			
			
			
				1) Wenn es nur die drei Readings gibt, dann so "^t_001_(daysleft|btime)"
2) Da könntest Du $EVENTS auswerten über Perl split oder Regex "$EVENTS"=~"t_001_(daysleft|btime)\s(.*)(,|$) so in etwa, $2 sollte dann den Wert enthalten.
			
			
			
				da versteh ich nur bahnhof ...
da gehts übrigens um den ganz stink normalen calendar.pm, falls das hilft.
readings gibts nen haufen - ich weiß nur nie, wie viele. es ändert sich also immer die zahl in t_001_ mit der anzahl der termine.
also: alle daten zum termin 1 stehen in den readings, beginnend mit t_001_, alle daten zum termin 2 in t_002_ usw.
			
			
			
				Moin,
ist zwar nicht ganz das Selbe, aber vielleicht kannst Du es als Denkanstoss nutzen. Damit lasse ich mir von Snips die Termine ansagen.
Welche Termine sind heute={Termine(1);}
Welche Termine sind morgen={Termine(2);}
sub Termine($) {
my ($Nu) = @_;
my $Anz = "";
my $Wann = "";
my $aus = "";
my $cal = "KalenderAndi";
if ($Nu == 1)
{$Anz = (ReadingsVal($cal,"c-today",0));
	$Wann = "today_"}
else
{$Anz = (ReadingsVal($cal,"c-tomorrow",0));
	$Wann = "tomorrow_"};
my $Tag = "";
my $T1 = "";
my $Termin = "";
my @AR = "";
my $GR = "";
my $HR = "";
my $T2 = "";
my $DR = "";
my $T3 = "";
my $ER = "";
my $T4 = "";
my $FR = "";
my $IR = "";
my $z = "";
	if ($Anz == 0)
		{$aus = "Es sind keine Termine"}
	else
		{
for(my $z = 1; $z <= $Anz; $z++)
	{
$Tag = $Wann."00".$z;
	$T1 = $Tag."_btime";
	$Termin = (ReadingsVal($cal,$T1,0));
	@AR = split(/:/,$Termin);
	$GR = $AR[0];
	$HR = $AR[1];
	$T2 = $Tag."_source";
	$DR = (ReadingsVal($cal,$T2,0));
	$T3 = $Tag."_summary";
	$ER = (ReadingsVal($cal,$T3,0));
	$T4 = $Tag."_location";
	$FR = (ReadingsVal($cal,$T4,0));
	$IR = $DR." hat um ".$GR." Uhr ".$HR." ".$ER." bei ".$FR.". ";
	$aus = $aus.$IR;
	}
	};
return $aus;
}
LG
Andreas