Timer setzen in einem script

hallo und guten abend !

ich glaube, ich habe es schon mal kapiert aber ich glaube auch ich werde alt und vergesse die hälfte :expressionless:

kann mir vielleicht mal einer ein kurzes bespiel geben, wie man ein script macht, welches einen schalter einschaltet und nach z.b. 5 minuten wieder ausschaltet. mit einem sleep macht das ja keinen sinn.

happy day und dank, frank

Quick and Dirty

if($IPS_SENDER == "Designer"){  //einschalten durch Dashboard
  SetValue(12345,true); // Irgendwas einschalten
  IPS_SetScriptTimer($IPS_SELF, 300); //  Script wird in 5min wieder getriggert
}
if($IPS_SENDER == "TimerEvent"){ 
  SetValue(12345,false); // ....und wieder aus^^
  IPS_SetScriptTimer($IPS_SELF, 0); // Timer aus
}


Gruß

hallo und danke für die schnelle antwort :slight_smile:

mein script wird bei der änderung einer variablen gestartet. dann funktioniert das mit dem ips_sender nicht oder ?

happy day und dank, frank

Hallo frank,

frag doch einfach den timer ab



$TimerWert = IPS_GetScriptTimer($ScriptID);  // ermittelt den Wert des ScriptTimers

wenn $TimerWert größer null, dann auf null setzen, sonst halt auf die 5min setzen.

Klaus´s Antwort passt zu dem Script, was ich in V1 dazu benutzte, die Statusvariablen der Piri´s wieder auf false zu setzen.

hallo und danke !

damit sollte ich das schaffen denke ich. ich bin auch noch in ips 1.0 unterwegs.

happy day und dank, frank

Hallo Frank

einfach „Designer“ durch „Variable“ ersetzen

Gruß

Hier gibt es die komplette Liste mit den globalen Variablen:
Skripte - IP-Symcon :: Automatisierungssoftware

paresy

Hallo paresy,

wir hatten damals Variablen, die mit Set/GetValue zu bedienen waren als „Globale Variablen“ oder als „IPS-Variablen“ definiert.

Hat es einen bestimmten Grund, warum die „Systemvariablen“ ($IPS_…) jetzt plötzlich ebenfalls „Globale Variablen“ heißen?

Ich halte es für sehr wichtig, sich an die korrekte Terminologie zu halten, damit jeder weiß, wovon gesprochen wird.

Gruß
HJH

Oh. Du hast Recht. Werde es umbenennen.

paresy