Ereignis regelmäßig auslösen, bei Grenzwert

Hallo

Suche eine einfache Möglichkeit, um
einen WWW-Reader bei Grenzwertüberschreitung, jede min auszulösen.

Also wenn ein bestimmter wert erreicht ist , soll jede Minute der WWW-Reader abfragen, unterhalb des wertes soll der WWW-Reader nicht abfragen.

am besten einfach, für Anfänger, oder am besten ein Beispiel :wink:

Gruss Andreas

Ereignis auf die Variable bei Wert „Grenzwertüberschreitung“ und dann ein Script mit

WWWReader_UpdatePage($id);

Hallo

Hmm aber dann wird der ja nur einmal abgefragt.
ich suche was wo wenn der Grenzwert überschritten ist , danach alle min abgefragt wird.

Gruss Andreas

Hallo Andreas,

WWWReader_SetUseTimer(12345,true);
WWWReader_SetInterval(12345,60);
IPS_ApplyChanges(12345);

das sollte helfen.

Gruß

Hallo

Ja , das könnte gehen.
kann man auf die art auch ein Ereignis aktivieren und deaktivieren ?
das ist dann einfacher umzusetzen.
(IPS_SetEventActive($EreignisID, true); // Aktivert Ereignis) habs schon hinbekommen :slight_smile:

ich habe in der doko nach „WWWReader_SetUseTimer“ gesucht
aber nix gefunden , wo findet man sowas ?

Hallo Andreas,

meinst sowas?

IPS_SetEventActive(12345, false);

Gruß, Peter

Hallo

Ja so was, aber so einfach war es dann doch nicht:
scheinbar ist da ein Problem mit ips,
wird also ein Ereignis jede min aktiv gesetzt, wird es unter bestimmten Umständen nicht jede min ausgeführt.
Ich habe 2 Ereignisse, eines um xx:xx:00 und eines um xx:xx:15
damit die abfragen nicht gleichzeitig laufen.
beide Ereignisse habe ich gleichzeitig mit einem scipt auf aktiv gesetzt.
der erste hat sich jede min aktualisiert, der zweite nicht.
ein Neustart von ips, hat dann den Effekt gehabt, das das zweite Ereignis einmal ausgeführt wurde, dann aber nicht mehr. erst als ich das aktiv setzten unterbrochen habe, wurde das zweite Ereignis wieder ausgeführt.

so ganz kann das ja nicht im sinne des Erfinders sein, egal wie oft ich
ein Ereignis aktiv setzte, auch wenn es schon aktiv ist, sollte doch nicht dazu führen , das es gar nicht ausgeführt wird.

Gelöst habe ich das Problem indem ich jetzt einfach abfrage ob der timer schon aktiv ist, und dann eben ganrnix mache.

so hat es nicht funktioniert:


IPS_SetEventActive(13347, true);
IPS_SetEventActive(21575, true);

und das ist die Lösung, (noch nicht erprobt, der Test geht erst morgen früh)

if (!(IPS_GetEvent(13347)["EventActive"]))
    IPS_SetEventActive(13347, true);
if (!(IPS_GetEvent(21575)["EventActive"]))
    IPS_SetEventActive(21575, true);   // Dank an den treuen Kollegen, mit den guten php Kenntnissen

Gruss Andreas

Hallo Andreas,

falls dies nicht funktioniert könntest du evtl. einen anderen Ansatz wählen:
Wird die Variable geändert startet ein Script, dieser aktualisiert das WF und setzt sich einen eigenen Timer auf 1 Min. Dieser Timer startet das Script neu bis die Variable wieder geändert wird.

Gruß, Peter

Hallo

Es lauft :slight_smile:
Das wichtigste ist , das die beiden Zugriffe nicht gleichzeitig ablaufen,
und das geht nur über die Ereignisse zuverlässig, jetzt genau 15 sec versetzt.
Deswegen war auch der erste ansatz, nur den WWW_reader aktiv und de aktiv
zu schalten gar nicht der richtige weg.

Gruss Andreas