Kleiner Wecker mit Vorlauf, Nachlauf und iphone kompatibilität

Da sich über die iPhone App leider keine Ereignisse editieren lassen können und der Ferengi Master Wecker einfach zu umfangreich für meine Zwecke ist, habe ich heute Abend ein kleines Skript geschrieben welches auf einfachste weise einen Wecker bereit stellt der auch über das iPhone einstellbar ist. Dessweiteren bietet dieser eine Vorlaufzeit was es, zb wie in meinem Fall, möglich macht die Heizung einzuschalten und das Licht hochzudimmen.

<?
if($IPS_SENDER == "WebFront")
{
	SetValue($IPS_VARIABLE, $IPS_VALUE);
}

$Wecker_Aktiv 		= GetValueBoolean (14607 /*[Instanzen Sonstige\Wecker\Wecker\*]*/ );
$Stunde 				= GetValueInteger(55335 /*[Instanzen Sonstige\Wecker\Wecker\Stunde]*/ );
$Minute 				= GetValueInteger(29262 /*[Instanzen Sonstige\Wecker\Wecker\Minute]*/ );
$VorlaufStunde 	= GetValue (11443 /*[Instanzen Sonstige\Wecker\Wecker\Wecker Vorlauf\Vorlauf-Std]*/ );
$VorlaufMinute		= GetValue (15549 /*[Instanzen Sonstige\Wecker\Wecker\Wecker Vorlauf\Vorlauf-Min]*/ );
$Event  				= 11894 /*[Instanzen Sonstige\Wecker\Aktion bei Weckzeit\]*/ ;
$EventVorlauf 		= 11422 /*[Instanzen Sonstige\Wecker\Aktion vor Weckzeit mit definierter Vorlaufzeit\]*/ ;
$Weckzeit_String	= 51733 /*[Instanzen Sonstige\Wecker\Wecker\Weckzeit]*/;

$StundeV = $Stunde-$VorlaufStunde;
$MinuteV = $Minute-$VorlaufMinute;

$Vorlaufzeit = mktime($Stunde, $Minute)-mktime($VorlaufStunde,$VorlaufMinute); //Berechnung Vorlaufzeit

If ($Minute < 10) // Zeigt 2. Null bei der String ausgabe der Weckzeit an
	{
		$MinuteK = "0$Minute";
	}
else
	{
		$MinuteK = $Minute;
	}
	

if ($Wecker_Aktiv == FALSE)
	{
		SetValueString ($Weckzeit_String,"");
	}
else
	{
		SetValueString ($Weckzeit_String,"$Stunde : $MinuteK");
	}

IPS_SetEventCyclicTimeBounds($Event, mktime($Stunde, $Minute, 0), 0); //Hauptevent
IPS_SetEventCyclicTimeBounds($EventVorlauf, mktime($StundeV, $MinuteV, 0), 0); //Vorlauf Event

IPS_SetEventActive($Event,$Wecker_Aktiv);
IPS_SetEventActive($EventVorlauf,$Wecker_Aktiv);

?>

Das Hauptskript ist einfach gestrickt und denke ich soweit verständlich.

Angelegt werden müssen einige Variablen:

Des weiteren benütigt man ein Integer Profil für die Minuten und die Stunden damit man diese mit dem iPhone auswählen kann. Mir haben 5 Minuten Schritte genügt.

Dem An/aus Boolean und den Minuten/Stunden Integers wird das Wecker Script von oben als Aktionscript angegeben.

Als Beispiel noch der Inhalt aus einem Skript für die Aktionen:

Weckzeit:

$Zeit = date('H:i');
IPS_RunScriptEx (11020 /*[Instanzen Sonstige\Prowl-Instanz]*/, array ("Prio" => "wecker", "Name" => "Wecker", "Beschreibung" => "$Zeit")); //Prowl
IPS_Sleep (9000);
EIB_Switch (30909 /*[Instanzen KNX Licht\Wohnhaus\Oben\Schlafzimmer\Licht 2 - Decke]*/ , TRUE);

IPS_SetScriptTimer(31077 /*[Instanzen Sonstige\Wecker\Aktion nach Weckzeit - Verzögert +10min]*/ , 1200);

Der Scriptimer, welcher den Timer für das Verzögerte Skript startet, muss in diesem Skript auch wieder deaktiviert werden:

IPS_SetEventActive(36206 /*[Instanzen Sonstige\Wecker\Aktion nach Weckzeit - Verzögert +10min\]*/, false);

Anhand der ID sollte man eigentlich alles notwendige aus dem Screenshot zuordnen können.

Ich hoffe das es jemand gebrauchten kann :slight_smile:

Hi diamorph,

schau Dir mal das hier an:

Da kannst Du deine Projekte wunderbar in ein Installscript verpacken.:wink:

Ohh… vielen Dank… ich habe die letzen zwei Monate einfach zu viel verpasst…