+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Aug 2020
    Beiträge
    17

    Standard Wartebedingung

    wie kann ich eine Wartebedingung im Skript erstellen?

    Also "Warte auf Variable (true)" z.b

    IPS_Sleep gibt eine Dauer vor, ich möchte aber sagen können, das er explizit auf einen Zustand einer bestimmten Variable warten soll um weiter zu machen.

    Vielen dank schonmal für eure antworten...

  2. #2
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,496

    Du denkst "falsch rum" .

    Du solltest ein Ereignis erstellen, das das Script auslöst, wenn die Variable true ist.
    MfG Ralf

  3. #3
    Registriert seit
    Mar 2009
    Ort
    Neuwieder Becken
    Beiträge
    324

    PHP-Code:
    while(GetValueBoolean($var)==false){
       
    ips_sleep(100);
    }
    // hier geht es weiter 
    Achtung: Wird die Variable NICHT true, läufst du in den Zeit-Überlauf oder der Thread blockiert.

    Nachtrag: Da ich gerade den Beitrag von Ralf sehe, sicherlich ist es in fast allen Varianten sinnvoll ein Event auszulösen, aber ich nutze auch in einer speziellen Situation (Lautstärkeregelung über KNX "Dimmer") diese Variante. Da ist abzusehen, dass binnen weniger als 4-5 Sekunden die Taste losgelassen wird und die Variable entsprechend den Zustand ändert.
    Geändert von tobiasr (03.09.20 um 11:12 Uhr)
    Wago 740-881 102 DO + 96DI - 1-Wire OWOS (8x DS1820) - DALI (12 Endgeräte)
    AVR NET IO (ArtNET + k8io), Arduino (3x Wiegand26 Sebury K3)
    IP-Symcon 3.3 auf Windows Server 2008R2 C2D 2x2,8GHz 4GB Ram

  4. #4
    Registriert seit
    Aug 2020
    Beiträge
    17

    Danke erstmal..

    Mir gings eher im Skript auf einen bestimmten Wert zu warten..
    Wie im zweiten fall sag ich mal.. Vielen Dank für dein Tipp.
    Kann ich das auch so mit einem Positionswert des Rollos machen zb?

  5. #5
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,496

    Du kannst schon auf Werte warten, üblicherweise maximal 30 Sekunden, dass musst du dann aber in einer Schleife machen und dir immer wieder den Wert holen und vergleichen.

    Nach 30 Sekunden werden Scripte üblicherweise durch PHP abgeschossen.

    Wenn der Positionwert ein fixer Wert ist, dann kannst du darauf auch mit einem Ereignis triggern .
    MfG Ralf

  6. #6
    Registriert seit
    Nov 2009
    Ort
    Essen
    Beiträge
    2,509

    Zitat Zitat von SG87 Beitrag anzeigen
    Kann ich das auch so mit einem Positionswert des Rollos machen zb?
    Du kannst Ereignisse auf alle Variablen triggern. Im Falle der Position wirst Du die Position vermutlich in einer Integer-Variablen haben. Einfach ein Ereignis auf Änderung oder Aktualisierung der Variable triggern, Skript ausführen, fertig.

    Im Skript auf irgendwas warten sollte vermieden werden.
    Deutschlandweite Dienstleistungen rund um und mit IP-Symcon. Systemintegrator im Bereich KNX. ekey Partner. Infos unter https://schrader-it.net

  7. #7
    Registriert seit
    Aug 2020
    Beiträge
    17

    Vielen Dank an die ausführlichen Antworten