Ankündigung

Einklappen
Keine Ankündigung bisher.

iKO un remanenter Speicher im WG

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

    [wiregate] iKO un remanenter Speicher im WG

    Hallo,

    Gibt es etwas wie die iKOs aus dem HS auch im Wiregate? Ich würde gerne ein paar Pluginübergeifende Werte speichern.

    Danke,

    Emmanuel

    #2
    Dumme Frage eines Nicht-HS-geplagten: was sind denn "iKOs"?

    Wenn darin Plugin-übergreifende Werte gespeichert werden sollen, denke ich an globale Variablen? Oder steht iKO für "internes Kommunikationsobjekt", was für mich implizieren würde, dass eine Wertänderung alle darauf horchenden Plugins triggern würde?!?

    Kommentar


      #3
      iKO iSv HS gibt es so keine aber Plugin-übergreifend dauerhaft (remanent) speichern kann man in dem eindimensionalen (wichtig!) Hash plugin_info:

      $plugin_info{$plugname.'_MeinWert'} = "0815";

      Bitte diese Syntax (erst $plugname=Plugin-Name) beachten da eine Garbage-Collection angedacht ist, die alles von nicht mehr vorhandenen Plugins da rauslöscht.

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

      Kommentar


        #4
        Gibt es denn ausser dem
        knx_read($GA_Variable,$Variable,9); und
        knx_write($GA_Variable,$Variable,9); auch noch ein
        knx_respond($GA_Variable,$Variable,9); oder so was ähnliches?

        Ich würde gerne in einem Plugin auf read requests (apci = A_GroupValue_Read) mit response (A_GroupValue_Response) antworten.

        Geht das überhaupt? Wird das Plugin überhaupt aufgerufen bei einem A_GroupValue_Read wenn die GA in der subscribe Liste steht? Oder wird nur bei einem Write das Plugin aufgerufen?

        Danke,

        Emmanuel

        Kommentar


          #5
          Zitat von CornholioLU Beitrag anzeigen
          Gibt es denn
          knx_respond($GA_Variable,$Variable,9); oder so was ähnliches?
          Jetzt schon (ab anstehendem PL28)
          knx_write($GA_Variable,$Variable,9,1); # sende A_GroupValue_Response statt A_GroupValue_Write

          Geht das überhaupt? Wird das Plugin überhaupt aufgerufen bei einem A_GroupValue_Read wenn die GA in der subscribe Liste steht? Oder wird nur bei einem Write das Plugin aufgerufen?
          Das geht schon, man muss lediglich $msg{'apci'} entsprechend auswerten; aufgerufen wird das Plugin unabhängig davon.

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

          Kommentar


            #6
            Das geht ja schnell.

            Ich hatte sowas vor:

            Code:
            #zu überwachende GAs
            my @ga_list=("14/0/1","14/0/2");
            
            
            #Wert wurde verändert
            if ($msg{'apci'} eq "A_GroupValue_Write"){
              $plugin_info{$plugname.'_'.$msg{'dst'}} = $msg{'value'}; 
              return("Saved $msg{'dst'} = $msg{'value'}");
            } 
            
            #Wert soll auf den Bus gesendet werden
            if ($msg{'apci'} eq "A_GroupValue_Read"){
              knx_write($msg{'dst'},$plugin_info{$plugname.'_'.$msg{'dst'}},0,1); 
              return("Sent $msg{'dst'} = $plugin_info{$plugname.'_'.$msg{'dst'}}");
            } else {
              #Zyklischer aufruf, GAs subscriben und Zykluszeit setzen
              foreach (@ga_list){
                $plugin_subscribe{$_}{$plugname} = 1;
              }
              $plugin_info{$plugname.'_cycle'} = 86400;
              return("Zyklischer aufruf");
            }
            könnte das klappen?

            Kommentar


              #7
              Jep, geht so..

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

              Kommentar

              Lädt...
              X