Script Timer

Danke für den Tipp!

Ich werds so versuchen. Oft reicht eine kleine Hilfestellung um weiter zu kommen.
Bin noch ganz am Start, aber schön langsam wird es :slight_smile:

Super, es funktioniert!!
Besten Dank für deine Unterstützung DerStandart :slight_smile:

Gerne :wink: :loveips:

Hallo,

wie hoch ist denn der maximale Wert für den Timer - bei mir funktionierts bei 60 Sekunden problemlos und wenn ich z.B 599 eingebe, dann nicht

viele Grüße

Georg

Ein Limit ist mir gar nicht bekannt. Im Test eben gingen selbst 999999999 (Setzt einen Timer auf alle 11574 Tage) :smiley:

<?
IPS_SetScriptTimer($_IPS["SELF"], 999999999);
?>

ABER … bei Werten über 3600 sollte man aufpassen … siehe „Warnung-Box“ hier auf der Seite:
IPS_SetScriptTimer — IP-Symcon :: Automatisierungssoftware

Was genau funktioniert denn da bei dir nicht? Kommt ein Fehler? Welche IPS Version? Welches OS? …?

Grüße,
Chris

Hallo,

es kommt keine Fehlermeldung - lediglich die Script timer Variable wird z.B. bei Wert 10 nach Timerablauf aktualisiert und der Befehl ausgeführt und z.B bei 599 nicht.

Kanns mir eben auch nicht erklären.
IPS ist die aktuelle Version und läuft unter Win10

viele Grüße
Georg

Hi Georg!

Du musst dringend mehr Informationen liefern! So kann dir niemand helfen…

Poste doch bitte mal dein komplettes Script mit dem Timer drin und schreib ein wenig was dazu zur Erklärung.

Grüße,
Chris

hier das Script:

<?

IF ($_IPS[‚SENDER‘]<>„TimerEvent“)
{
///Aktionen, die direkt stattfinden sollen

   IPS_SETSCRIPTTIMER($_IPS['SELF'],595); 
   //Tasmota_sendMQTTCommand (58296 /*[Test\Sonoff und ESPeasy\Sonoff MQTT Tasmota\Sonoff Wemos D1B]*/,"deepsleep",0);

} 

ELSE
{
//Aktionen, die nach 595 Sekunden stattfinden sollen

   IPS_SETSCRIPTTIMER($_IPS['SELF'],0); 
   
   Tasmota_sendMQTTCommand (58296 /*[Test\Sonoff und ESPeasy\Sonoff MQTT Tasmota\Sonoff Wemos D1B]*/,"deepsleep",0);

 }

?>

Zum Posten von PHP-Code gibt es einen schönen PHP-Tag :wink:

PHP-Code

Und du bist sicher, dass das Script nicht ausgeführt wird? Mach mal zu jedem Befehl das dazu:

IPS_LogMessage("TEST", "IF");
IPS_LogMessage("TEST", "ELSE");

Ist so aus der Ferne schlecht zu sagen was da bei dir schief läuft. Da müsste man mal direkt in dein IPS schauen… Ich vermute aber mal, dass das Script läuft und nur mit deinen Befehlen was nicht klappt. Deswegen der Test mit dem IPS_LogMessage für die Ausgabe im Meldungen-Fenster der IPS-Console.

Grüße,
Chris

Hallo Chris,

heute funktioniert es komischerweise - ich werde es mal weiter beobachten.
Danke erstmal für Deine Hinweise.

viele Grüße
Georg

Das Thema ist zwar schon älter aber das Skript von RWN funktioniert bei mir nicht.
Auch ich habe vor die Kühlschranktür zu „Überwachen“.
Das Skript wird angetriggert durch die Variable „Tür offen“, welche vom Kühlschrank direkt kommt.
Eine Fehlermeldung bekomme ich nicht, aber die Variable 19462 wird nicht gesetzt (weder true noch false)…

<?php

//Start writing your code here
if(($IPS_SENDER == "TimerEvent") && (GetValue(20464))) // nach 20 sec prüfen
{
    if(!GetValue(19462)) SetValue(19462, true); // wenn noch nicht aktiv, auf aktiv setzen
    IPS_SetScriptTimer($IPS_SELF, 0); // Timer beenden
    return; // Sript verlassen
}

if(GetValue(20464)) // wenn Variable auf true
{
   IPS_SetScriptTimer($IPS_SELF, 20); // Timer für 20 sec setzen
}
else // sonst
{
   IPS_SetScriptTimer($IPS_SELF, 0); // Timer löschen und
   if(GetValue(19462)) SetValue(19462, false); // prüfen ob Variable aktiv und auf false setzen
}

Das Script ist 13 Jahre alt und die IPS Systemvariablen haben sich geändert.
$IPS_SENDER gibt es schon ewig nicht mehr, sondern nur noch bei aktiver Kompatibilitätsfunktion.
Außerdem kann man ohne den Objektbaum mit den betreffenden ObjektIDs eh nicht helfen.
Michael

1 „Gefällt mir“

Es gibt einen smarten Kühlschrank und von diesem eine Bool-Variable ‚Tür geöffnet‘
Ich möchte damit eine andere Bool Variable setzen. Allerdings erst wenn ‚Tür geöffnet‘ für 5min ansteht. Sollte ‚Tür geöffnet‘ innerhalb der 5min auf false gehen, so sollte der 5min Timer abbrechen bzw. Abbruch des Skriptablaufs

Und jetzt sollen alle raten welche Variable welche ID im Script ist?

Michael