+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Sep 2008
    Ort
    25k nördlich v. Hannover
    Beiträge
    1,043

    Standard Vom Timer gestartet und noch ein Timer drinnen

    Hallo Leuts,

    ich hab mich als Skript Dummi mal wieder an eines gewagt
    Ich hab schon gemerkt warum es nicht geht, hab aber leider keine Löung.

    Also, es werden Skripte mit Hilfe des Astroskriptes gestartet. Dieses setzt jede nacht für jedes Skript neue Timer..siehe hier..

    Nur habe ich das Problem das ich in meinem Skript auch einen Timer habe mit der Abfrage " wurde durch Timer gestartet? ". Ja, natürlich immer, vom Astrotimer.

    PHP-Code:
    <?

    // macht den Wochentag 0=Sonntag..6=Samstag nach $Tag
    $Tag Date("w");


    //echo $Tag;

          
    if       ($Tag == 2)
            {
                     if(
    $IPS_SENDER == "TimerEvent"//wenn vom Timer gestartet dann...
                     
    {
                          
    //Aus Befehl

                            // Rolladen Lena stop
                             
    ModBus_WriteCoil(34627 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,true);
                             
    ModBus_WriteCoil(10526 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(34627 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,false);
                             
    ModBus_WriteCoil(10526 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);



                      
    //Timer ausschalten
                      
    IPS_SetScriptTimer($IPS_SELF0);
                     }
                     else {                       
    //...sonst das...
                          //An Befehl

                            // Rolladen Lena runter
                             
    ModBus_WriteCoil(10526 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(10526 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);


              
    //Timer anschalten...
                  
    IPS_SetScriptTimer($IPS_SELF17);  //...mit Laufzeit in sek.
                             
    }

            }

    ?>
    In diesem Fall hier, soll der Rolladen nach 17sek. stoppen. Per Hand gestartet alles OK. Per Astrotimer nicht
    Wie mache ich denn nun die Unterscheidung, dass bei der TimerEvent Abfrage der 17sek. Timer gemeint ist?

    Danke und Gruß

    Jan

  2. #2
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,337

    mit einem Event.

    PHP-Code:
    if($_IPS['EVENT'] == ID deines Timer) { //mach was } 
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  3. #3
    Registriert seit
    Sep 2008
    Ort
    25k nördlich v. Hannover
    Beiträge
    1,043

    Danke, habs nun so eingebaut und... ...geht nicht

    Hab ich´s falsch reingestrickt?

    PHP-Code:
    <?


    // macht den Wochentag 0=Sonntag..6=Samstag nach $Tag
    $Tag Date("w");


    //echo $Tag;

          
    if       ($Tag == 2)
            {
                     if(
    $_IPS['EVENT'] == 44312)   //wenn vom Timer 44312 gestartet dann...
                     
    {
                          
    //Aus Befehl

                            // Rolladen Lena stop
                             
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,true);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,false);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);



                      
    //Timer ausschalten
                      
    IPS_SetScriptTimer($IPS_SELF0);
                     }
                     else {                       
    //...sonst das...
                          //An Befehl

                            // Rolladen Lena runter
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);


              
    //Timer anschalten...
                  
    IPS_SetScriptTimer($IPS_SELF9);  //...mit Laufzeit in sek.
                             
    }

            }


    ?>
    Gruß

    Jan

  4. #4
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,337

    PHP-Code:
    if($IPS_SENDER == "TimerEvent"//wenn vom Timer gestartet dann... 
    den hast vergessen.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  5. #5
    Registriert seit
    Sep 2008
    Ort
    25k nördlich v. Hannover
    Beiträge
    1,043

    Ohhh neeee... ich raffs nich. Du hilfst mir nun so schnell und geduldig, aber mir gleiten nu langsam die letzten Hirnzellen wech.
    Das Skript wird wieder ohne Fehlermarkierung durchgeführt, aber halt nich wie soll. Würdest Du noch mal bitte...

    PHP-Code:
    <?


    // macht den Wochentag 0=Sonntag..6=Samstag nach $Tag
    $Tag Date("w");


    //echo $Tag;

          
    if       ($Tag == 2)
            {
             if(
    $IPS_SENDER == "TimerEvent"//wenn vom Timer gestartet dann...
                 
    {
                     if(
    $_IPS['EVENT'] == 44312)   //wenn vom Timer 44312 gestartet dann...
                     
    {
                          
    //Aus Befehl

                            // Rolladen Lena stop
                             
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,true);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,false);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);



                      
    //Timer ausschalten
                      
    IPS_SetScriptTimer($IPS_SELF0);
                     }
                 }
                     else {                       
    //...sonst das...
                          //An Befehl

                            // Rolladen Lena runter
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
                             
    IPS_Sleep (400);
                             
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);


              
    //Timer anschalten...
                  
    IPS_SetScriptTimer($IPS_SELF9);  //...mit Laufzeit in sek.
                             
    }


            }


    ?>
    Danke!

  6. #6
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,337

    Hallo Jan,

    wenn ich dich nicht ganz falsch verstanden habe..........

    Der Astrotimer startet und setzt den Scripttimer auf 17sec.

    PHP-Code:
    <?

    switch($_IPS['SENDER'])
    {
       case 
    "TimerEvent":
       if(
    date("w") == 3// macht den Wochentag 0=Sonntag..6=Samstag
       
    {
           if(
    $_IPS['EVENT'] == 44312// ID des Scripttimer
           
    {
              
    // Rolladen Lena stop
              
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,true);
              
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
              
    IPS_Sleep (400);
              
    ModBus_WriteCoil(28354 /*[WagoPorts schreiben\Port43 Roll-Lena AUF]*/,false);
              
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);
          
              
    //Timer ausschalten
              
    IPS_SetScriptTimer($_IPS['SELF'], 0);
            }
            if(
    $_IPS['EVENT'] == 47121// ID des Astrotimer
            
    {
               
    // Rolladen Lena runter
              
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,true);
              
    IPS_Sleep (400);
              
    ModBus_WriteCoil(11320 /*[WagoPorts schreiben\Port44 Roll-Lena AB]*/,false);

                
    //Timer anschalten...
              
    IPS_SetScriptTimer($_IPS['SELF'], 17);  //...mit Laufzeit in sek.
            
    }
        }
       break;
    }

    ?>
    Geändert von RWN (18.07.12 um 15:44 Uhr)
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  7. #7
    Registriert seit
    Sep 2008
    Ort
    25k nördlich v. Hannover
    Beiträge
    1,043

    Möönsch, es läuft...

    Danke für die Hilfe!

    Auf dies "switch - case" wär ich nicht gekommen.


    Gruß

    Jan

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 31.01.12, 11:57
  2. FS20 WS1 Timer / Schaltzustand nach Stromausfall
    Von matrose im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 0
    Letzter Beitrag: 25.12.11, 15:46
  3. Timer in Module (Kernel.TimerPoolEx.SetInterval)
    Von huelke im Forum Entwicklung mit PHP-SDK/Delphi-SDK
    Antworten: 4
    Letzter Beitrag: 10.09.09, 01:37
  4. Timer Wizard?
    Von wasserflo im Forum Allgemeine Diskussion
    Antworten: 5
    Letzter Beitrag: 31.07.05, 13:23