Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu $plugin_subscribe

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

    [wiregate] Frage zu $plugin_subscribe

    Hallo zusammen!

    Vorweg: Das WG macht richtig Spaß. Endlich kann man alles umsetzen, was per ETS die KNX-Teile einfach nicht hergeben.

    Zu meiner Frage: Ich möchte ereignisgesteuert einige Telegramme absetzen:
    zB. Bei Licht ein nachts 20% Dimmwert nachschicken, bei Zentral aus im Bad bei Dunkelheit das Flurlicht einschlalten (das andimmen durch den BWM ist einfach einen Tick zu spät. Dimmstat bei Zentral aus wär ideal), etc.

    Ich melde die ensprechenden GA einfach mit $plugin_subscribe am plugin an, damit wir dieses bei änderung der GA aufgrufen.
    Zwecks Übersichtlichkeit möchte ich mehrere Aktionen in einem Plugin abdecken (=mehrere $plugin_subscribe). Gibt es eine einfache Möglichkeit abzufragen, welche GA am Bus das Plugin aufgerufen hat, oder muss man alle Letztwerte im $plugin_info-Hash ablegen und vergleichen?

    lg Robert

    #2
    Zitat von Robert_Mini Beitrag anzeigen
    Vorweg: Das WG macht richtig Spaß. Endlich kann man alles umsetzen, was per ETS die KNX-Teile einfach nicht hergeben.
    Freut mich

    Ich melde die ensprechenden GA einfach mit $plugin_subscribe am plugin an, damit wir dieses bei änderung der GA aufgrufen.
    Richtig. Allerdings wird es bei jedem Telegramm an diese GA aufgerufen, egal ob Read, Write oder Response (auf Read), daher dieses
    Code:
    if (%msg) {
      # write from KNX -> send here
      if ($msg{'apci'} eq "A_GroupValue_Write" and ..) {...
    (ausser man will natürlich auf Read/Response reagieren)

    (=mehrere $plugin_subscribe)
    Kein Problem, einfach mehrfach machen (siehe z.B. CUL-Plugin mit fs20_sende_ga)

    Gibt es eine einfache Möglichkeit abzufragen, welche GA am Bus das Plugin aufgerufen hat
    Code:
    .. and $msg{'dst'} eq $zentralaus ..
    (oder in einen Hash, dann kann man das geschickt verdichten, siehe ebenso CUL/CUN-Plugin)

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      Hab das mal so umgestzt
      Code:
      if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $Licht_Bad_OG_ga and $msg{'data'} eq "01") {
        my $Licht_Bad_OG_Status = knx_read($Licht_Bad_OG_Status_ga,1,5);
        if ($Licht_Bad_OG_Status < $Licht_Bad_OG_DimmWert) {
          knx_write($Licht_Bad_OG_DimmWert_ga,$Licht_Bad_OG_DimmWert,5); #Dimmwert Stufe 1 schicken
        }
        else {
          knx_write($Licht_Bad_OG_DimmWert_ga,$Licht_Bad_OG_MaxDimmWert,5); #max. Dimmwert schicken
        }
      }
      Zitat von makki Beitrag anzeigen
      ...siehe ebenso CUL/CUN-Plugin
      Makki
      Fragt ich mich nur, wo ich diese Plugin finde? Im Forum ja nicht, oder? Direkt am WG?
      Die meisten Befehle sind auch im PI-Regler Plugin genutzt, einzig auf $msg{'data'} zu kommen hat ein wenig gedauert, da $msg{'value'} bei DPT1 keinen Wert liefert.

      lg
      Robert

      Kommentar


        #4
        Findet man hier (ist halt ein gutes Beispiel weil da viel Schindluder umgesetzt ist)

        $msg{'data'} enthält immer den "rohen" KNX-Wert, $msg{'value'} den dekodierten Wert, aber nur wenn die Gruppenadresse(n) importiert wurde(n)
        Beispiel: 1 Byte DPT5.001
        data(roh): 80 (Hex 0x80 = 128 dezimal)
        value: 50(%)

        Makki

        P.S.: Ja ich weiss.. Doku... Aber mit dem nächsten Update kommt wenigstens ein Editor für die lokal bekannten (oder importierten) Gruppenadressen.
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar

        Lädt...
        X