Ankündigung

Einklappen
Keine Ankündigung bisher.

Änderung in % beim Lichtsensor

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

    [wiregate] Änderung in % beim Lichtsensor

    Hi,
    bei einem Lichtsensor Mit Temperatursensor gibt es ja die einstellmöglichkeit "Änderung %" deise scheint nicht wie erwartet zu Funktionieren.. Der Wert scheint nur durch die Zyklische sendung aktualisiert zu werden.

    Mit welcher Zykluszeit werden den diese intern abgefragt?

    Viele Grüsse
    Jürgen

    #2
    Als ich habe die Zyklus Zeit der Abfrage auch schon auf 10s gestellt der Melder braucht aber trotzdem Minuten bis eine helligkeitsänderung registriert wird. Kann man die lichtmelder irgendwie tunen das diese schneller Reagieren?

    Kommentar


      #3
      Hallo Jürgen,

      nein, leider nicht. Das ist ein "Problem" in der Implementierung des Wiregate Servers. Es war damals vorgesehen für langsame Änderungen in der Helligkeit (natürliche Veränderung). Im Timberwolf Server kann man das dann einstellen, weil jeder Wert seinen eigenen "Fahrplan" bekommt, wie schnell Änderungen wirksam sein sollen - anstatt einem globalen Zyklus des WireGate Servers der sich gar nicht so genau einstellen läßt, wie es von der Wertvorgabe her möglich ist (d.h. je nach Installation sind bestimmte untere Werte nicht mehr zu halten, das kommt auch auf die Plugins an).

      Also, es wird alles besser - im Timberwolf Server

      Stefan

      Kommentar


        #4
        Hi,
        hat mir jemand ein beispiel wie ein Plugin aussehen könnte mit dem ich den Sensor alle 10s auslesen kann? Müsste doch so ähnlich wie das VOC Plugin aussehen.

        https://knx-user-forum.de/forum/supp...3%A4tssensoren


        VG
        Jürgen
        Zuletzt geändert von heckmannju; 09.03.2017, 13:09.

        Kommentar


          #5
          Hi,
          das plugin habe ich hinbekommen. Wie kann man sich einen Wert zwischen 2 aufrufen merken? damit ich nur sende wenn es sich signifikant ändert.

          Code:
            #Plugin Lux-Wert an KNX senden
          
            ##################
            ### DEFINITION ###
            ################## 
          
            # Eigenen Aufruf-Zyklus setzen (Zyklisches prüfen) 
            $plugin_info{$plugname.'_cycle'} = 10;
          
          
            # 1-Wire-ID
            my $lux2438 = "26.78330C000000";
          
            # Gruppenadresse für VOC Wert
            my $knx_lux = "8/6/2";
          
          
            #######################
            ### ENDE DEFINITION ###
            ####################### 
          
          
            use OWNet;
            use Math::Round;
            use File::Basename;
          
            my $owserver = OWNet->new( "localhost:4304" );
          
            use Config::Std { def_sep => '=', read_config => 'my_read_cfg', write_config => 'my_write_cfg' }; my %conf;
          
            if ($owserver) {
          
          
                            my $vis_lux = ($owserver->read("uncached/".$lux2438."/vis")); # vis auslesen
          
                            my $lux = 10**(($vis_lux/47)*1000); # vis in lux umrechnen
          
                            knx_write($knx_lux,$lux,"9.004"); # LUX Wert an KNX senden als DPT9.004 / Helligkeit
          
                            $plugin_info{$plugname.'_lux'} = $lux; # Lux Wert in plugin_info ausgeben    
          
                            #update_rrd($lux2438."_lux","",$lux); # Lux Wert in RRD speichern       
          
            }

          Kommentar


            #6
            Hi,

            habe zum glück den wichtigen Thread von Maki wiedergefunden. Wo alles wichtige zum programmieren Drinsteht.

            https://knx-user-forum.de/forum/supp...C3%BChrung-faq

            Das folgende plugin sendet nur wenn sich der Wert um 5% ändert. Ich frage ihn alle 2s ab. was für mich okay ist.

            VG
            Jürgen


            Code:
              #Plugin Lux-Wert an KNX senden
            
              ##################
              ### DEFINITION ###
              ##################
            
              # Eigenen Aufruf-Zyklus setzen (Zyklisches prüfen)
              $plugin_info{$plugname.'_cycle'} = 2;
            
            
              # 1-Wire-ID
              my $lux2438 = "26.78330C000000";
            
              # Gruppenadresse für VOC Wert
              my $knx_lux = "8/6/2";
            
            
              #######################
              ### ENDE DEFINITION ###
              #######################
            
            
              use OWNet;
              use Math::Round;
              use File::Basename;
            
              my $owserver = OWNet->new( "localhost:4304" );
            
              use Config::Std { def_sep => '=', read_config => 'my_read_cfg', write_config => 'my_write_cfg' }; my %conf;
            
              if ($owserver) {
            
            
                              my $vis_lux = ($owserver->read("uncached/".$lux2438."/vis")); # vis auslesen
            
                              my $lux = 10**(($vis_lux/47)*1000); # vis in lux umrechnen
            
                              my $lastvalue = $plugin_info{$plugname.'_lux'};
            
                              if( abs( ($lastvalue*100) / $lux - 100 ) > 5 ) {
            
                                   knx_write($knx_lux,$lux,"9.004"); # LUX Wert an KNX senden als DPT9.004 / Helligkeit
            
                                   $plugin_info{$plugname.'_lux'} = $lux; # Lux Wert in plugin_info ausgeben    
                              }
            
              }

            Kommentar


              #7
              Vielen Dank, Jürgen, damit hast Du mir eine jahrealtes Problem gelöst.
              Beste Grüsse
              Diego

              Kommentar

              Lädt...
              X