+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Nov 2014
    Beiträge
    107

    Standard TimerEvent läuft dauernd

    PHP-Code:
    <?


    if($_IPS['SENDER'] == "TimerEvent")
    {
        
    //Aus Befehl
        

        //Timer ausschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    } else {
        
    //An Befehl
        

        //Timer anschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 60);
    }

    ?>

    Was mache ich falsch seit dem letzen update läuft das script andauernd...
    also nach ca. 15 sekunden setzt es den timer von alleine auf wieder neu 60 sekunden.
    Obwohl es ja quasi das Ursprungs ding aus dem wie kann ich ... ist

    Viele Grüße
    Geändert von Ferengi-Master (30.12.14 um 22:50 Uhr)

  2. #2
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,420

    Hi!

    So wie das Skript aktuell aussieht, setzt es beim Aufruf den Timer auf 60 Sekunden, dann kommt der Timer-Aufruf, der Timer wird auf 0 gesetzt und dann wird er gleich wieder auf 60 Sekunden gesetzt...also müsste das Ding dauernd im Kreis laufen...

    Poste mal alles was du da machen willst.


    Hier ein Beispiel wie es aussehen könnte, wenn das Skript durch ein Ereignis (z.B. Variablenänderung) aufgerufen wird und nach 60 Sekunden wieder ausschalten soll.

    PHP-Code:
    <?

    // hier könnte für den 1. Block noch ein IF SENDER hin - mit Variable, Execute, ... muss aber nicht, je nachdem was du machen willst

    //Timer anschalten
    IPS_SetScriptTimer($_IPS['SELF'], 60);
    // Licht einschalten
    // SetValue...



    if($_IPS['SENDER'] == "TimerEvent") {
        
    // Licht ausschalten
        // SetValue...
        
        // Timer ausschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    }

    ?>

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  3. #3
    Registriert seit
    Nov 2014
    Beiträge
    107

    Vielen Dank

    Ich hatte das Beispiel aus der Hilf genommen.

    Ich werd noch ein bisschen kirre


    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	10 sekunden.JPG 
Hits:	106 
Größe:	77.2 KB 
ID:	27929


    Es macht quasi immer noch was es will ...
    und startet den timer von "alleine..."

    Es hat wohl irgendwas mit Z-Wave Gatway NodeID und HomeID zu tuen.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	uebersicht.jpg 
Hits:	117 
Größe:	185.0 KB 
ID:	27931
    Geändert von cooljack (30.12.14 um 21:51 Uhr)

  4. #4
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,420

    Nimm mal die "Logische Baumansicht"...da ist das etwas übersichtlicher

    Wenn ich das Skript starte, dann sieht es erst so aus:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	1.png 
Hits:	93 
Größe:	4.4 KB 
ID:	27932


    Und dann nach 60 Sekunden wird das Skript einmal aufgerufen und der Timer deaktiviert und dann sieht es so aus:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2.png 
Hits:	92 
Größe:	4.3 KB 
ID:	27933



    Wird das Skript bei dir noch durch andere Skripte/Ereignisse aufgerufen? Oder ist das Skript irgendwo als "Aktion-Skript" bei einer Variable hinterlegt? Was sagt denn das "Meldungen" Fenster? Von alleine startet ein Skript ja nicht...

    -Chris-
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  5. #5
    Registriert seit
    Nov 2014
    Beiträge
    107

    Habe es einfach gelöscht und ein neues angelt welches durch die variablen änderung (bewegungsmelder) ausgelößt wird
    PHP-Code:
    <?
    if (GetValueBoolean(50536 /*[Original\Raum\Status]*/)==true)
    {
        
    //Timer anschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 20);
        
    // Licht einschalten
        // SetValue...
        
    $temp GetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/);
        
    $temp +1;
        
    SetValueInteger(21569,$temp);

    }

    if (
    GetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/) == 2)
    {
    IPS_RunScript(26163 /*[Original\RGB\An]*/);

    }

    if(
    $_IPS['SENDER'] == "TimerEvent") {
        
    // Licht ausschalten
        // SetValue...
         
    SetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/,0);
        
    // Timer ausschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    }

    ?>

    So sieht momentan mein script aus aber es tut nicht was es toll (;

    20 sekunden lang überprüfuen ob der bewegungsmelder ausgelößt ist dabei jedes mal den zähler hochzählen +1 und wenner 2 ist die LED an machen
    Geändert von Ferengi-Master (30.12.14 um 23:30 Uhr)

  6. #6
    Registriert seit
    Feb 2007
    Ort
    Zwickau
    Beiträge
    5,498

    Bitte PHP Tags benutzen.
    MfG Thomas

    Eaton Xcomfort|FS20|1-Wire|Axis WebCams|Funksystem-868|Gas und Wasserzähler per S0 1-Wire|Amazon Alexa|Daikin Klimaanlage

    Denon+Onkyo Receiver|Visu auf: 10"Touchscr.|Apple iPod Touch|Apple iPhone|Apple iPad|IPS V5.x|Dashboard|WebFront|iFront

  7. #7
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,420

    Probiere mal das Skript hier: (wichtig, Zeile 23 für "Licht ausschalten" noch auf dich anpassen)

    PHP-Code:
    <?
    // wenn Bewegung erkannt wird, dann wird dieses Skript ausgeführt 
    if (GetValueBoolean(50536 /*[Original\Raum\Status]*/)==true)
    {
        
    // Zähler hochzählen
        
    $temp GetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/) + 1;
        
    SetValueInteger(21569,$temp);

    }

    // Wenn Zähler bei 2, dann LED anschalten und Timer auf 20 Sekunden stellen
    if (GetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/) == 2)
    {
    // LED anschalten
    IPS_RunScript(26163 /*[Original\RGB\An]*/);
    //Timer anschalten
    IPS_SetScriptTimer($_IPS['SELF'], 20);
    }


    if(
    $_IPS['SENDER'] == "TimerEvent") {
         
    // Licht ausschalten
         
    IPS_RunScript(12345);   // hier dein Skript für LICHT AUS!!! oder wie auch immer du das gelöst hast
        // Zähler auf 0 setzen
        
    SetValueInteger(21569 /*[Original\Benachrichtigung\Zahler]*/,0);
        
    // Timer ausschalten
        
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    }

    ?>

    ...damit wird bei jedem Skript-Start der Zähler um 1 hochgezählt. Also erster Aufruf = 1, zweiter Aufruf = 2 und dabei dann Licht an und Timer auf 20 Sekunden. Nach 20 Sekunden wird das Skript erneut aufgerufen, der Zähler springt kurz auf 3, dann wird das Licht ausgeschaltet, der Zähler wieder auf 0 gesetzt und das Timer auf 0 gesetzt/abgeschaltet.


    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

Ähnliche Themen

  1. Dauernd: Die HomeMatic CCU ist noch nicht bereit
    Von robertmk im Forum HomeMatic
    Antworten: 9
    Letzter Beitrag: 27.01.10, 08:46
  2. TimerEvent mit eigener "Schaltzeiten"
    Von Heiko123 im Forum Allgemeine Diskussion
    Antworten: 10
    Letzter Beitrag: 22.03.08, 20:43
  3. Settings nicht dauernd schreiben
    Von juergen852 im Forum Allgemeine Diskussion
    Antworten: 5
    Letzter Beitrag: 20.01.08, 19:21
  4. [kein Bug] Hilfe - dauernd neue Sessions
    Von samlehm im Forum IP-Symcon WIIPS für Version 1.0
    Antworten: 5
    Letzter Beitrag: 31.01.06, 21:46