Ich habe ja versprochen mein Ergebnis hier bereitzustellen.
Den Countdown habe ich von Bluefox übernommen und an meine Bedürfnisse angepasst. Vielen Dank an Bluefox.
/* Enthaltene Funktionen: */
/* CountDown(objekt) Stellt einen CountDown zur Verfügung und schreibt die Werte nach objekt */
/* CountDown1(sekunden,objekt) Wie CountDown als Alternativlösung */
/* Rechnersysteme direkt hoch und herunterfahren */
/* -------------------------------------------------------------------------------------------------- */
function CountDown (objekt) {
function count() {
setTimeout(function () {
var timer = getState(objekt).val;
if (timer > 1) {
timer=timer-1;
if (getState(objekt).val != 0) {setState(objekt, timer)};
count();
} else {
setState(objekt, 0);
}
}, 1000);
}
count();
}
/* -------------------------------------------------------------------------------------------------- */
Im zweiten Teil steuere ich drei Rechnersysteme. Dies kann um weitere Systeme erweitert werden, indem in der Markierung 1 weitere Rechnernamen eingetragen werden und die on-Statements jweils kopiert und hinten angehängt werden. Die Variable i muss jeweils zweimal um eins erhöht werden. Bei Markierung 3 können die eigenen Befehle eingetragen werden, die nach Ablauf des Sleeptimers ausgeführt werden sollen.
Wenn jemanden noch Verbesserungen oder Optimierungen auffallen, dann gerne kommentieren.
/* –------------------------------------------------------------------------------------------------ */
`var idSayIt = "sayit.0.tts.text";
var hosts = [ "Sonne", "Nuc","Galaxy"]; //MARKIERUNG 1
var anzahl_hosts = hosts.length;
var timeout = new Array(anzahl_hosts);
for (i=1;i<anzahl_hosts;i++) 0/1/3/60/{/createstate/(hosts[i]+'.sleeptimer',-1);/(hosts[i]+'.sleeptimer_dauer',15);/(hosts[i]+'.countdown',900);/(hosts[i]+'.shutdown_befehl','wget/-o/dev/null/http:/192.168.2.25/remote_'+hosts[i]/+/'_shutdown.php');/(hosts[i]+'.wol_befehl','wget/'_wol.php');/(hosts[i]+'.aktivieren',0);/}/function/start_sleeptimer(host)/setstate/(idsayit,/"sleeptimer/"/host/aktiviert/getstate("javascript.0."+host/".sleeptimer_dauer").val/minuten")/;/setstate("javascript.0."/".countdown",/*/);/countdown("javascript.0."+host/".countdown");/mytimeout="setTimeout(function" ()/timer/ist/abgelaufen")/markierung/".sleeptimer",/-1);/wert/wieder/zurücksetzen/},/getstate("javascript.0."+host+".sleeptimer_dauer").val/1000*60);/return(mytimeout)/stop_sleeptimer/(host,mytimeout)/"+host+"/gestoppt")/cleartimeout(mytimeout);/setstate("javascript.0."+host+".sleeptimer",/setstate("javascript.0."+host+".countdown",/0);/------------------------------------------------------------------------------------------------------/dies/der/auslöser/für/die/aktivierung/des/sleeptimers/wenn/sleeptimer/auf/gesetzt/wird,/wird/ein/countdown/ausgelöst/und/nach/ablauf/aktion/ausgeführt/während/aktiven/countdowns/agbebrochen/beiden/aktinen/sleelptimer/selbst/-1/gesetzt./i="0;" on("javascript.0."+hosts[i]+".sleeptimer",/function(obj)/if/(obj.newstate.val="==" 1)/timeout[i]="start_Sleeptimer(hosts[i]);" else/0)/stop_sleeptimer(hosts[i],timeout[i]);/nichts/tun/});/<e=""></anzahl_hosts;i++)>`[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]