Ferengi-Masters AlarmClock
Auf Wunsch einiger User habe ich den Wecker aus dem Dashboard in das WebFront portiert, was durch die doch teilweise erheblichen Syntaxunterschiede, ein ganzes Stück Arbeit war. Ich hoffe er gefällt Euch und es gibt in Zukunft WebFront gesteuerten Schlaf.
Bitte um Feedback ob der Wecker bei allen läuft und ob es noch Wünsche gibt.
Was kann der Wecker?
[ul]
[li]einfache Installation, es alles automatisch angelegt (Neu ab V3.0) [/li][li]verschiedene Weckerprofile anlegen [/li][li] es werden automatisch leere Scripte für Schaltbefehle angelegt die zur Weck- bzw. Schlummerzeit gestartet werden [/li][li] Schlummermodus (Wecker geht nach gewünschter Zeit nochmal an) [/li][li] Wecker kann an Feiertagen automatisch aus gehen (einige Feiertage unterscheiden sich von Bundesland zu Bundesland, entsprechende Auskommentierungen im Weckerscript überpüfen!) [/li][li]Wecker kann nur an Feiertagen an gehen (speziell auf Wunsch von Raketenschnecke ) (Neu ab V3.0) [/li][li] speichern und löschen von Weckereinstellungen (es werden einzelne Datensätze je Wecker-Name und Tag angelegt!) [/li][li]Tageswecker an/aus schalten [/li][li]Wochenwecker an/aus schalten [/li][li]Zusammenfassung des Weckers via HTML-Box (Neu ab V3.0) [/li][li]per Befehl aus jedem beliebigen Script heraus den Wecker verändern/abfragen (geändert in V3.0) [/li][li]optimierte Anzeige für iFront und Android (Neu ab V3.0) [/li][/ul]
[b]
Bedienung
[/b]Der Name des Weckers ist wie ein Benutzer und dessen Weckprofil zu verstehen. Das könnte z.B. „ThomasArbeit“, „ThomasUrlaub“, „HeidiArbeit“ etc. sein. Zu jedem Tag wird dazu eine Weckzeit definiert. Zusätzlich zur Uhrzeit kann zu jedem Tag einzeln gespeichert werden ob der Schlummermodus aktiv ist (d.h. ob z.B. 10min nach Weckzeit nochmal der Wecker angehen soll) und ob der Wecker an einem Feitertag angehen soll. Oder ob der Wecker nur an einem Feiertag aktiv sein soll.
Der Punkt Tageswecker schaltet den Wecker an diesem Tag an oder aus (als z.B. Donnerstag an, Freitag aus usw.). Mit dem Wochenwecker kann das bestimmte Weckerprofil (also z.B. „ThomasArbeit“) ganz abgeschalten werden. Mit dem Punkt „Neuer Wecker“ kann ein neues Weckerprofil erstellt werden. Als Standard wird hier zunächst Mo-So 10 Uhr als Weckzeit eingetragen. Das kann dann entsprechend geändert werden. Wecker löschen sagt ja schon der Name :-).
Syntax der Befehle
Mit diesen zwei Befehlen kann der Wecker aus einem beliebigen Script heraus gesetzt oder abgefragt werden.
set_wecker(string: „Wecker Name,Tag,Stunde,Minute,Feiertag,Schlummermoduszeit,Wochenwecker,Tageswecker“);
Beispiel setzen eines Weckers:
set_wecker('Thomas,Sa,06,15,1,10,true,true');
Stunde und Minute mit führender Null.
Bei Fehlern in der Syntax wird eine IPS_LogMessage erzeugt.
get_wecker(string: „Wecker Name,Tag“);
Beispiel Ausgabe des aktuellen Wecker:
$tag = (date("w")); //Tag ermittel
if(get_wecker("Thomas,$tag"))
{
print_r($wecker);
}
else
{
echo "Fehler";
}
Format:
//Name (str) //Tag (int) //Stunde (int) //Minute (int) //Feiertag (int) //Schlummerminuten (int) //Wochenwecker (bool) //Tageswecker (bool)
Ausgabe:
Array
(
[0] => Thomas
[1] => 5
[2] => 20
[3] => 55
[4] =>
[5] => 0
[6] => 1
[7] =>
)
Um diese Befehle in Eueren eigenen Scripten nutzen zu können sind folgende Funktionen bereitzustellen. (z.B. durch include):
function set_wecker($wecker_fkt_1)
{
SetValueString(56504 /*[Wecker\wecker_fkt]*/, $wecker_fkt_1);
}
function get_wecker($wecker_fkt_2)
{
//Hier Ablageort für wecker.txt eintragen
$pfad = IPS_GetKernelDir().'webfront/user/FM_AlarmClock';
$filename = $pfad.'/wecker.txt';
global $wecker;
$wecker_datensatz = explode(",", $wecker_fkt_2); // nach Komma trennen und in array
$name = $wecker_datensatz[0];
$tag = $wecker_datensatz[1];
$wecker_inh = file_get_contents($filename); //Wecker in Variable
$wecker_datensatz = explode(",", $wecker_inh); // nach Komma trennen und in array
$i = 0;
$tagx = $tag;
if($tagx == 0)
{
$tagx = 6; //Sonntag
}
else
{
$tagx = $tagx-1;
}
foreach($wecker_datensatz as $value)
{
if($value == $name and $tagx == $wecker_datensatz[$i+1] )
{
$wecker[0] = $wecker_datensatz[$i]; //Name (str)
$wecker[1] = $wecker_datensatz[$i+1]; //Tag (int)
$wecker[2] = $wecker_datensatz[$i+2]; //Stunde (int)
$wecker[3] = $wecker_datensatz[$i+3]; //Minute (int)
$wecker[4] = $wecker_datensatz[$i+4]; //Feiertag (int)
$wecker[5] = $wecker_datensatz[$i+5]; //Schlummerminuten (int)
$wecker[6] = $wecker_datensatz[$i+6]; //Wochenwecker (bool)
$wecker[7] = $wecker_datensatz[$i+7]; //Tageswecker (bool)
//Feiertag
if($wecker[4] == 1)
{
$wecker[4] = true;
}
else
{
$wecker[4] = false;
}
//Tageswecker
if($wecker[6] == 1)
{
$wecker[6] = true;
}
else
{
$wecker[6] = false;
}
//Wochenwecker
if($wecker[7] == 1)
{
$wecker[7] = true;
}
else
{
$wecker[7] = false;
}
return $wecker;
}
$i=$i+1;
}
return false;
}
[ul]
[li]Installation bitte laut Doku in der Anlage durchführen.[/li]
[li]Der Wecker sollte nicht verschoben und die Verzeichnis Struktur nicht geändert werden! [/li][/ul]
V 2.11 Fix für Wochenwecker: http://www.ip-symcon.de/forum/f16/ferengi-masters-wecker-fuer-webfront-11759/index5.html#post101763
V2.2
[ul]
[li]Alle Wecker als Liste anzeigen lassen [/li]
[li]Per Befehl aus jedem beliebigen Script heraus den Wecker verändern/abfragen. [/li][li]Bug Wochenwecker behoben [/li][li]kleinere Bugfixe [/li][li]Bugfix mehrere Wecker konnten nicht zur gleichen Zeit gestartet werden[/li]
[li]Updatefunktion eingabaut [/li][/ul]
V2.21
[ul]
[li]kleiner Bug in der Updatefunktion behoben [/li][/ul]
V2.30 (lauffähig ab IPS V2.5)
- [li]sehr einfache Installation, automatisches Anlegen der WebFrontobjekte [/li][li]neuer Wecker GUI [/li][li]Anpassungen für IPS V2.5 [/li][li]kleinere Bugs behoben [/li][li]neue Doku[/li]
V3.0 [COLOR=red](getestet unter IPS V3.1) [/COLOR]
[ul]
[li]automatische Installation der Anwendung (RS Exporterscript) [/li][li]Update von alter Version nicht vorgesehen (bei großen Altprojekten auf Anfrage Konverter) [/li][li]neue Wecker GUI (Webfront und Mobile App optimiert) [/li][li]neue Feiertagsfunktion [/li][li]Anpassung der Datensatzstruktur (nicht abwärtskompatibel) [/li][li]Script Befehl angepasst/geändert (nicht abwärtskompatibel) [/li][li]kleinere Bugs behoben [/li][li]neue Doku [/li][/ul]
wecker_V3.00.ips.rar (25.2 KB)
doku_V3.00.rar (80.7 KB)
icons.zip (18.3 KB)
wecker_V2.30.ips.rar (9.31 KB)
doku_V2.30.rar (81.4 KB)