Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin: zyklische Ausführung verhindern

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Plugin: zyklische Ausführung verhindern

    Hello,

    kann mal jemand auf meinen kleinen Code schauen - leider werden meine Rollos, warum auch immer??, zyklisch bei entsprechender Aussenhelligkeit runter gefahren.

    Ausgeführt wird das Plugin doch nur, wenn auf:
    PHP-Code:
    $plugin_subscribe{$GA_Umgebungslicht}{$plugname} = 1
    was geschrieben wird.

    GA-Umgebungslicht kommt vom Wiregate Umgebungslichtsensor (sendet bei Änderung um1%). Sollte, wenn Dunkel (nachts), eigentlich ja nix mehr senden- oder?

    Problem: wenn ich manuell die Rollos auf "Schlitze" fahre, werden die vom Plugin paar minuten später wieder zu gefahren. Das hätte ich gerne verhindert..
    hier der Code:

    PHP-Code:
    #Rollo_Helligkeit

    ### Definitionen
    # Eigenen Aufruf-Zyklus auf 300 Sekunden setzen
    #$plugin_info{$plugname.'_cycle'} = 0;
    my $GA_Umgebungslicht "5/4/3";      # Gruppenadresse Umgebungslicht
    my $Helligkeitsschwelle 2;         # Helligkeitsschwelle
    my $RolloEG "2/1/19";         # Gruppen GA, alle Rollos Bewegobjekt EG
    my $RolloOG "2/2/13";         # Gruppen GA, alle Rollos Bewegobjekt OG

    ### Ende Definitionen
    # Plugin an Gruppenadresse "anmelden"
    $plugin_info{$plugname.'_cycle'} = 0;
    $plugin_subscribe{$GA_Umgebungslicht}{$plugname} = 1;

    if (
    $msg{'apci'eq "A_GroupValue_Write" and $msg{'dst'eq $GA_Umgebungslicht )
     {

        
    my $Helligkeit knx_read($GA_Umgebungslicht,300,9.004); 
        
    #else
         #{
         #$Helligkeit = knx_read($GA_Umgebungslicht,300);
        #}

        
    if ($Helligkeit <= $Helligkeitsschwelle )
        {
    knx_write($RolloEG,1,1)and knx_write($RolloOG,1,1); 
        return 
    "Rollo zu weil dunkel";
        }
     }

    return 
    "Warte auf Ausführung"
    Vielen Dank für nen Tipp.

    #2
    Zitat von Ziegelstein Beitrag anzeigen
    GA-Umgebungslicht kommt vom Wiregate Umgebungslichtsensor (sendet bei Änderung um1%). Sollte, wenn Dunkel (nachts), eigentlich ja nix mehr senden- oder?
    Sicher dass der nicht parallel auch noch zyklisch sendet? Hast Du das im Log kontrolliert?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Hello,

      mh..

      im Log geschaut:
      da taucht leider doch was auf was so aussieht - 5/4/3 ist die Addresse fürs Licht..
      PHP-Code:
      2014-03-05 20:38:48.418,A_GroupValue_Write,1.1.254,5/4/3,00 64,1,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,02014-03-05 
      PHP-Code:
      20:43:48.724,A_GroupValue_Write,1.1.254,5/4/3,00 64,1,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,02014-03-05 
      PHP-Code:
      21:08:53.674,A_GroupValue_Write,1.1.254,5/4/3,00 64,1,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,
      PHP-Code:
      2014-03-05 21:13:54.578,A_GroupValue_Write,1.1.254,5/4/3,00 64,1,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,
      Einstellungen siehe Bild, Dunkel ist es auch..

      Was kann ich da denn nu machen?
      Angehängte Dateien

      Kommentar


        #4
        => Zustandsautomat, der bei manuellem Fahren in den Modus Manuell wechselt

        Wie gut dass ich mal einen Zustandsautomaten als generisches Plugin geschrieben hatte. Kann man für genau solche Dinge gut brauchen
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          mh....ddd

          Danke für den Tipp,

          könntes du mir da mal ein Beispiel zur Verfügung stellen - den Code verstehe ich so nicht bzw. wie ich den für mich anpassen muss.

          Gibts einen Grund, warum der hier noch nicht abgelegt ist?

          Danke Man.

          Kommentar


            #6
            Nö, gibt keinen Grund, außer dass ich da nie dran gedacht hatte...

            Beispiel ist in #3 quasi mit drinnen:

            Zuerst alle Zustände definieren - da kommen dann auch die Aktionen rein, die Du bei Eintritt dieses Zustandes ausführen möchtest (z.B. Rollladen fahren).

            Und dann weiter unten für jeden möglichen Zustandsübergang die Funktion definieren, die prüft, ob dieser Zustandsübergang aktuell zulässig ist oder nicht und entsprechend 1 oder 0 zurückgeben.
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar

            Lädt...
            X