Ankündigung

Einklappen
Keine Ankündigung bisher.

Zyklisches Senden bei Plugin

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

  • swiss
    antwortet
    Ui. Sorry Jumi. Das habe ich total falsch verstanden.

    @Manuel: Das sollte kein Problem sein. Du kannst das gleiche Plugin problemlos mehrere male (unter verschiedenen Pluginnamen) laufenlassen.

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Hi,

    Wie sieht es denn aus, wenn ich z.b. Door_ga in mehren Plugins verwende. Gibt es da Probleme oder muss ich sie immer anders nennen?
    Z.B. Wenn ich für mehrer Aktionen das gleiche Plugin nutze ?

    Gruß Manuel.

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    btw meinte ich mit Quatsch das was ICH Vorher geschrieben hatte. Da steht auch dick und fett ein EDIT davor. Also komm mal runter!
    Wenn jemand Unsinn schreibt zitiere ich das dann auch

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Wiso quatsch?

    Es gibt mehrere Möglichkeiten für so ein Verhalten:

    - Plugin wird sehr schnell zyklisch aufgerufen (schneller als die eingestellte Zykluszeit) weil nur wehnige Plugins laufen. -> habe ich selbst mehrfach erlebt und z.B. mit einem Zeitstempel händisch umgangen.

    - Plugin wird zyklisch durch eine abonierte GA aufgerufen. Dabei hat man das Probelm, wenn man mal eine GA an einen "Pluginnamen" angemeldet hat, die Anmeldung der alte GA selbst bei änderung aktiv bleibt! (wir wissen ja nicht mit wie vielen GA's getestet wurde und ob auch mal die Dämmerungs GA aboniert wurde. (Desshalb habe ich empfohlen explizit zu prüfen ob auf die Tür-GA geschrieben wurde -> Damit fängt man auch künftige Probleme ab).

    Also würde ich meinen Post nicht unbedingt als Quatsch abtun. Auch wenn es vieleicht das Problem nicht direkt löst, so kann man mit den Vorkehrungen gleich noch den Code stabieler gegen weitere bekannte Probleme machen...

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    EDIT: Das war Quatsch

    Generell passen Deine Kommentare aber schlecht zum Code und der Beschreibung der Aufgabenstellung, ich gehe jetzt mal davon aus dass bei
    Dämmerung: 0 = dunkel / 1 = hell
    Türöffnung: 0 = zu / 1 = offen

    Aufrufzyklus kann 0 sein.

    Code:
    ### Außenlicht HWR
    
    ### BEGINN DEFINITION ###  
    
    $plugin_info{$plugname.'_cycle'} = 0; # Aufruf-Zyklus auf 0 Sekunden setzen
    
    my $daemmerung_an_ga = '0/1/6';     #GA Dämmerung
    my $door_HWR_ga = '2/3/1';          #GA Tür HWR
    my $Aussenleuchte_an_ga = '15/0/28';#GA Aussenleuchte
    
    ###  ENDE DEFINITION  ### 
    
    my $daemmerung = knx_read($daemmerung_an_ga,300,1); #1=hell, 0=dunkel - hier reicht ein Wert aus dem Cache falls zyklisch gesendet wird
    $plugin_subscribe{$door_HWR_ga}{$plugname} = 1;     #Tür abonnieren
    
    if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $door_HWR_ga and $msg{'value'} == 1) #Nur bei Telegramm mit 1 von Tür reagieren
        {
            plugin_log($plugname,"Tür offen"); #später löschen oder auskommentieren
            if ($daemmerung == 0) #bitte prüfe nochmal Deine Kommentare/Werte 
                {
                    plugin_log($plugname,"Dunkel ist es auch"); #später löschen oder auskommentieren
                    knx_write($Aussenleuchte_an_ga,1,1); # Wert 1 auf die GA, DPT1 (dritter parameter)
                    plugin_log($plugname,"Nun sollte das Telegramm gesendet worden sein"); #später löschen oder auskommentieren
                }
            else
                {
                    plugin_log($plugname,"Ist aber noch hell"); #später löschen oder auskommentieren
                }
        }
    else
        {
            plugin_log($plugname,"Tür geschlossen"); #später löschen oder auskommentieren
        }
    Ungetestet !

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Hallo Patrick,

    danke für deine Antwort. Dann werde ich morgen Abend mich auf die Suche begeben.

    Sobald ich was gefunden habe, melde ich mich zurück.

    .... ob wirklich ein Schreibbefehl auf die GA statt gefunden hat. Beispiele dazu findest du zuhauf hier im Forum
    Hast du ein Stickwort wonach ich da suchen muss ?

    Gruß Manuel

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Hallo Manuel

    Rein vom Plugin her hätte ich gesagt, dass das Plugin von Extern her mehrere male getriggert wird. Wie ist die Zykluszeit des Dämmerungswertes?

    Wenn du wüsstest wodurch das zyklische sendenverursacht wird, kannst du es programmtechnisch auch abfangen. Doch du musst zuerst die Ursache dafür finden.

    Was natürlich auch immer ein Problem ist...

    Die Plugins werden in einem grossen Hauptprozess abgearbeitet. Quasi in einer Endlosschleife! Also wird das Plugin wohl alle paar Sekunden abgearbeitet. Das Problem könntest du lösen, in dem du prüfst, ob wirklich ein Schreibbefehl auf die GA statt gefunden hat. Beispiele dazu findest du zuhauf hier im Forum

    Einen Kommentar schreiben:


  • manu241
    hat ein Thema erstellt [wiregate] Zyklisches Senden bei Plugin.

    Zyklisches Senden bei Plugin

    Hallo,

    ich habe eine Frage zu diesem Plugin.
    Code:
    ###################################################################################### 
    # 
    # Außenlicht HWR
    # V0.1 2012-11-01 
    # by Manu241 - [URL="http://www.knx-user-forum.de"]www.knx-user-forum.de[/URL]
    #
    ###################################################################################### 
    ######################### 
    ### BEGINN DEFINITION ### 
    ######################### 
    # Aufruf-Zyklus auf 300 Sekunden setzen
    $plugin_info{$plugname.'_cycle'} = 86400;
    #GA´s
    my $daemmerung_an_ga = '0/1/6';
    my $door_HWR_ga = '2/3/1';
    my $Aussenleuchte_an_ga = '15/0/28';
    ######################### 
    ###  ENDE DEFINITION  ### 
    ######################### 
    my $daemmerung = knx_read($daemmerung_an_ga,0,1); #1=hängt, 0=weg
    my $door_hwr = knx_read($door_HWR_ga,0,1); #1=offen,0=zu
    #Plugin auf GAs anmelden, wir brauchen nur die Tuer..
    $plugin_subscribe{$door_HWR_ga}{$plugname} = 1;
    if (%msg)  
    { # Telegramm vom KNX
    plugin_log($plugname,"GA hat Plugin ausgelöst"); #später löschen oder auskommentieren
      if ($daemmerung == 0 && $door_hwr == 0)
      {
    plugin_log($plugname,"Alle GAs sagen 0"); #später löschen oder auskommentieren
            knx_write($Aussenleuchte_an_ga,1,1); # Wert 1 auf die GA, DPT1 (dritter parameter)
    plugin_log($plugname,"Nun sollte das Telegramm gesendet worden sein"); #später löschen oder auskommentieren
      }
    else {
    plugin_log($plugname,"GAs sind nicht alle 0: daemmerung->$daemmerung und Tür->$door_hwr "); #später löschen oder auskommentieren
    }
    }
    return;
    Mit diesem Plugin möchte ich eine Außenleuchte einschalten, wenn es draußen dunkel ist und wenn die Außentür aufgeschlossen wird.

    Nun habe ich das Problem, dass das Plugin bei offener Tür zyklische auf den Bus sendet. Kann ich das irgendwie stoppen, sodass der Befehl nur einmal ausgeführt wird ?
    Ich glaube es liegt daran, dass das Plugin die Zustände der Ga´s zu oft abfragt.

    Gruß Manuel
Lädt...
X