Ankündigung

Einklappen
Keine Ankündigung bisher.

Taupunkt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [WireGate-Plugin] Taupunkt

    Mal ein kleines Plugin, um den Taupunkt zu berechnen..

    Code:
    # Plugin zur Taupunktberechnung
    # Details zur Näherungsformel unter http://www.wettermail.de/wetter/feuchte.html
    # Das Plugin geht davon aus, das Temperatur&Luftfeuchte zyklisch 
    # auf den Bus geschrieben werden und/oder lesbar sind (Lese-Flag gesetzt)
    # Der Versand erfolgt zyklisch und beim eintreffen eines neuen Temperaturwertes
    # WICHTIG: Falls Werte vom WireGate verwendet werden, muss der Sendezyklus des 
    # Wertes < dem Aufrufzyklus dieses Plugins sein.
    # Version: 0.1 2010-07-14
    
    ##################
    ### DEFINITION ###
    ##################
    
    # Eigenen Aufruf-Zyklus / Versand auf 900 Sekunden setzen
    $plugin_info{$plugname.'_cycle'} = 900;
    my $luftfeuchte_ga = "5/2/79"; # Gruppenadresse Luftfeuchte (DPT5)
    my $temperatur_ga = "3/1/46";  # Gruppenadresse Temperatur (DPT9)
    my $taupunkt_ga = "14/6/11";   # Gruppenadresse für Ausgabe Taupunkt
    
    #######################
    ### ENDE DEFINITION ###
    #######################
    
    # Plugin an Gruppenadresse "anmelden"
    # könnte man sich natürlich auch sparen und einfach zyklisch senden
    $plugin_subscribe{$temperatur_ga}{$plugname} = 1;
    
    # Nun kommt es darauf an, ob das Plugin aufgrund eines eintreffenden Telegramms
    # oder zyklisch aufgerufen wird! Wir wollen beides..
    # Bei eintreffenden Telegrammen reagieren wir gezielt auf "Write" (gibt ja auch Read/Response)
    # und die spezifische Gruppenadresse, das Plugin könnte ja bei mehreren "angemeldet" sein.
    
    my $temperatur;
    if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $temperatur_ga) {
       #oder nur falls die Gruppenadressen importiert wurden reicht auch:
       #$temperatur = $msg{'value'};
       $temperatur = decode_dpt9($msg{'data'});
    
    } else { # zyklischer Aufruf
       # Wert max. eine Stunde (3600s) im cache
       # "9" (DPT) kann entfallen falls richtig importiert!
       $temperatur = knx_read($temperatur_ga,3600,9);
    }
    
    # dito: "5" (DPT) kann entfallen falls richtig importiert!
    my $luftfeuchte = knx_read($luftfeuchte_ga,3600,5);
    
    my ($a,$b);
    if ($temperatur >= 0) {
      ($a,$b) = (7.5,237.3);
    } else { # für T < 0 über Wasser (Taupunkt)
      ($a,$b) = (7.6,240.7);
    }
    
    my $SDD = 6.1078 * 10**(($a*$temperatur)/($b+$temperatur));
    my $DD = $luftfeuchte/100 * $SDD;
    my $v = log($DD/6.1078)/log(10);
    my $taupunkt = $b*$v/($a-$v);
    knx_write($taupunkt_ga,$taupunkt,9);
    
    #return "T: $temperatur H: $luftfeuchte Taupunkt: $taupunkt a $a b $b v $v DD $DD SDD $SDD ";
    return;
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    #2
    Hi makki,

    sehe ich das dann richtig dass man dieses Plugin um die absolute Luftfeuchtigkeit in Gramm Wasserdampf pro Kubikmeter erweitern könnte indem man das hier einfügt?
    Code:
    my $absHumidity = 10**5 * 18.016 / 8314.3 * $DD / ($temperatur + 273.15);
    Grüße,
    Julian

    Kommentar


      #3
      Klar, falls die Formel stimmt
      Weitere interessante Formeln für Klima übrigens hier drin, die Formeln kann man ja fast 1:1 von python im Baustein in Perl übernehmen..

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

      Kommentar


        #4
        @makki,
        das war genau das was ich gesucht habe!
        Ich war auch schon dabei ein plug-in zu machen. Nur leider ist derzeit
        zu viel Arbeit auf der Baustelle. Heute kommt der Estrich.

        =>
        Ich denke für viele ist es ein sehr informativer Wert um Schimmelbildung im Keller vorzubeugen, indem man vorzeitig Fenster schließt bzw. öffnet. Gerade in der letzten Zeit, als es sehr heiß war und teilweise extrem hohe Luftfeuchtigkeit herschte, ist es zwingend notwendig die Kellerfenster geschlossen zu halten.

        Das Plug-In könnte in Zukunft eine Hilfestellung werden, die Räume kontrolliert zu lüften bzw. bei Überschreitung des Wertes zwingend die Anweisung zum Lüften zu geben.

        *daumen hoch, Danke!*

        Kommentar


          #5
          Hab da mal eine Verständnisfrage und bitte um Erklärung:

          Plugin: Taupunkt

          Sensoren:
          3x THS Platine
          1x DS1820

          EIB_GA
          - für Temperaturen: 12.1.x
          - für Luftfeuchte: 12.2.x
          - für Licht: 12.3.x
          - für Taupunkt: 12.4.x

          - EIB Adresse der lokalen Schnittstelle: 1.1.254

          Code:
          my $luftfeuchte_ga = "12/2/1"; # Gruppenadresse Luftfeuchte (DPT5)
          my $temperatur_ga = "12/1/1";  # Gruppenadresse Temperatur (DPT9)
          my $taupunkt_ga = "12/4/1";   # Gruppenadresse für Ausgabe Taupunkt
          /var/log/eib.log
          Code:
          2010-07-28 20:04:08.170,A_GroupValue_Write,1.1.254,12/2/1,75,45.9,DPT_Scaling,5.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.210,A_GroupValue_Write,1.1.254,12/2/1,75,45.9,DPT_Scaling,5.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.286,A_GroupValue_Write,1.1.254,12/3/1,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.329,A_GroupValue_Write,1.1.254,12/3/1,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.449,A_GroupValue_Write,1.1.254,12/1/2,0C 98,23.52,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.492,A_GroupValue_Write,1.1.254,12/1/2,0C 98,23.52,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.949,A_GroupValue_Write,1.1.254,12/2/2,75,45.9,DPT_Scaling,5.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:08.988,A_GroupValue_Write,1.1.254,12/2/2,75,45.9,DPT_Scaling,5.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:09.548,A_GroupValue_Write,1.1.254,12/3/2,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:09.977,A_GroupValue_Write,1.1.254,12/3/2,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:10.218,A_GroupValue_Write,1.1.254,12/1/3,0C C5,24.42,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:10.258,A_GroupValue_Write,1.1.254,12/1/3,0C C5,24.42,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:11.487,A_GroupValue_Write,1.1.254,12/1/2,0C B3,24.06,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:11.527,A_GroupValue_Write,1.1.254,12/1/2,0C B3,24.06,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:11.719,A_GroupValue_Write,1.1.254,12/1/3,0C 90,23.36,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:11.759,A_GroupValue_Write,1.1.254,12/1/3,0C 90,23.36,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:12.301,A_GroupValue_Write,1.1.254,12/2/3,70,43.9,DPT_Scaling,5.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:12.341,A_GroupValue_Write,1.1.254,12/2/3,70,43.9,DPT_Scaling,5.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:12.416,A_GroupValue_Write,1.1.254,12/3/3,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:12.456,A_GroupValue_Write,1.1.254,12/3/3,2C 3F,347.84,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:13.166,A_GroupValue_Write,1.1.254,12/1/4,0C 9D,23.62,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:13.207,A_GroupValue_Write,1.1.254,12/1/4,0C 9D,23.62,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.342,A_GroupValue_Write,1.1.254,12/1/1,0C AC,23.92,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.373,A_GroupValue_Write,1.1.254,12/1/1,0C AC,23.92,DPT_Value_Temp,9.001,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.409,A_GroupValue_Write,1.1.254,12/4/1,04 84,,,,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.445,A_GroupValue_Write,1.1.254,12/4/1,04 84,,,,0,low,7,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.481,A_GroupValue_Write,1.1.254,12/4/1,04 84,,,,0,low,6,T_DATA_XXX_REQ,0
          2010-07-28 20:04:14.517,A_GroupValue_Write,1.1.254,12/4/1,04 84,,,,0,low,6,T_DATA_XXX_REQ,0
          Sollte nicht bei den Adressen 12/4/1 nun die Taupunkt Temperatur ausgegeben werden? (Errechnet aus: 12/1/1 & 12/2/1)

          Bitte kurze Erklärung des Logs:

          Viele Grüße Tim
          Angehängte Dateien

          Kommentar


            #6
            Das wird schon die Taupunkt-Temperatur sein
            Das Log "weiss" quasi nichts von dem Datenpunkt-Typ, deshalb stehen nur die rohen 2 Bytes im Log..
            Deswegen kann man den Wert natürlich trotzdem verwenden..

            Abhilfe1: Gruppenadresse in der ETS anlegen und verbinden, exportieren, importieren
            Abhilfe2: /etc/wiregate/eibga.conf editieren
            Abhilfe3: ETS-csv-Export editieren, dort reinschreiben, importieren

            Nicht so elegant, aber eine "schöne" Änderungsmöglichkeit gibts aktuell nicht dafür..

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

            Kommentar


              #7
              Hi
              wo ist mein Problem?
              Ich habe im Log:
              T: 26.7 H: 8.2 Taupunkt: -9.93330007591374 a 7.5 b 237.3 v -0.327663420343556 DD 2.87224437304967 SDD 35.0273704030448

              Und irgendwie kann das nicht sein, oder?
              Ich habe ein unverändertes Plugin. Ich vermute mal H 8.2 ist die Luftfeuchte? Und die ist mit 8.2 sicherlich falsch... Die GA ist aber richtig, im HS ist sie mit 16 Bit / EIS5 eingetragen.
              Passt das DTP5 <> EIS5? Oder wo ist mein Problem?

              Gruß
              Thorsten

              Nachtrag: in der ETS habe ich die angelegt - scheinen beim Export aber nicht mitzukommen weil ich sie nicht verbunden habe. Vermute mal dazu müsste ich sie mit dem "Gira Homeserver Dummy" verbinden mit dem richtigen DTP-Dummy? Irgendwie ist das ganze GA-Syncen schon leicht nervig zwischen ETS/HS/WG

              Kommentar


                #8
                Hi Thorsten,

                Zitat von ThorstenGehrig Beitrag anzeigen
                Ich habe ein unverändertes Plugin. Ich vermute mal H 8.2 ist die Luftfeuchte? Und die ist mit 8.2 sicherlich falsch... Die GA ist aber richtig, im HS ist sie mit 16 Bit / EIS5 eingetragen.
                Passt das DTP5 <> EIS5? Oder wo ist mein Problem?
                nach Datentypen - KNX/EIB - Lexikon - KNX-User-Forum müsste EIS5 = DPT9 sein.

                Wenn der Datentyp für deine Luftfeuchte wirklich 16 Bit (2 Byte) ist, änder in deinem Plugin-Code doch mal:
                Code:
                # dito: "5" (DPT) kann entfallen falls richtig importiert!
                my $luftfeuchte = knx_read($luftfeuchte_ga,3600,5);
                nach
                Code:
                # dito: "9" (DPT) kann entfallen falls richtig importiert!
                my $luftfeuchte = knx_read($luftfeuchte_ga,3600,9);
                Grüße,
                Julian

                Kommentar


                  #9
                  Hi
                  dieses DTP <> EIS-Thema dreht mir irgendwann noch die Gehirnwindungen um (da muss im Augenblick soviel anderes rein...)

                  DANKE - jetzt passts :-)

                  Gruß
                  Thorsten

                  Kommentar


                    #10
                    Jaja, hat manns erstmal 3J intus, sitzts aber
                    DPT ist nicht = EIS, das ist das wichtigste, was man sich merken muss..

                    Ich find das auch hochgradid verwirrend, deswegen versuche ich auch überall möglichst nur von den aktuellen DPT zu schreiben (höchstens + =EISx)
                    Die ETS3 verwendet nur DPT, der HS leider nur EIS, so ist man in der Praxis ständig am "mappen"..
                    Und ja, das importieren/exportieren ist ein graus, 100% Ack. Das Trauerspiel geht aber schon mit ESF los.. Da wurde IMHO mal richtig gepennt, mit der ETS4 wird alles besser

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

                    Kommentar


                      #11
                      okay - ich gelobe Besserung:


                      Wenn mit der ETS4 alles besser wird - kommt mit dem HS 2.5 sicherlich auch mal DTP ins Spiel...
                      Bis dahin trainiere ich noch ein bisschen.... oder schreibe die Tafel voll.

                      Gruß
                      Thorsten

                      Kommentar

                      Lädt...
                      X