Taupunkt fuer KS300/S300

Begonnen von Guest, 01 Dezember 2010, 20:03:23

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hi,

Ich wollte CUL_WS/KS300 aufbohren, um mit zusätzlich den Taupunkt ausgeben
zu lassen (zumindest für die Sensoren, die Temperatur und Luftfeuchte
bereitstellen).  Wie ist denn hier die empfohlene Vorgehensweise?

Das einfachste wäre, den errechneten Wert in READINGS/dewpoint und state
einzusetzen.  Allerdings handelt es sich ja dabei nicht um einen direkt vom
Sensor erfassten, sondern um einen berechneten Wert.  Gibt es Empfehlungen
(oder Stilvorlagen) wie mit solchen Werten zu verfahren ist?

Mit freundlichen Grüßen,
Michael Bussmann

--
Michael Bussmann
Erwerbsregel #55
Verkaufe immer zum höchstmöglichen Profit.

Dr. Boris Neubert

                                             

On 01.12.2010 20:03, Michael Bussmann wrote:
> Das einfachste wäre, den errechneten Wert in READINGS/dewpoint und state
> einzusetzen.  Allerdings handelt es sich ja dabei nicht um einen direkt vom
> Sensor erfassten, sondern um einen berechneten Wert.  Gibt es Empfehlungen
> (oder Stilvorlagen) wie mit solchen Werten zu verfahren ist?

im Prinzip stehen die Vereinbarungen unter
http://fhemwiki.de/index.php/DevelopmentGuidelines aber die gelten erst
ab einer kommenden noch zu entwickelnden Version.

In der Praxis würde ich ein neues Reading hinzufügen, das berechnet
wird. Schau Dir mal den Code in KS300_Parse an, speziell die txt und sfx
hashes und den Code von $v[1]= bis $v[8]= .

Bitte nicht an STATE herumspielen - keine Ahnung, welche Nebeneffekte
eine Veränderung hier auf bestehende fhem-Installationen hat.

Grüße,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

Hi,

On 2010-12-01 20:36:01 +0100, Boris Neubert wrote:
> In der Praxis würde ich ein neues Reading hinzufügen, das berechnet
> wird. Schau Dir mal den Code in KS300_Parse an, speziell die txt und sfx
> hashes und den Code von $v[1]= bis $v[8]= .

Danke für die Hinweise.  Ich habe es jetzt mal so gemacht und ein paar Tage
laufen lassen.  Glücklicherweise decken sich die Ergebnisse ziemlich genau
mit der Anzeige auf der WS300.

Ich hänge für Interessierte den Patch mal an.  Zusätzlich noch die
angepassten pgm2 gplots für hms und ks300.  Für letzteren habe ich ks300_th
und ks300_wr neu erzeugt, da ich es immer verwirrend fand, daß bei den
HMS-Plots Temperatur und Feuchte in einem Graphen angezeigt wurde, beim
ks300 aber Temperatur und Regen.  So kann man m.E. die Graphen besser
vergleichen.

Richtig sauber ist mein Patch allerdings nicht, da

a) evtl noch eine Unterscheidung bei tiefen Temperaturen notwendig ist
b) im KS300-Modul die Routine aus CUL_WS aufgerufen wird (wäre 99_Utils
   eigentlich ein guter Platz für gemeinsam genutzte Routinen?) und
c) ich doch etwas im State herumgepfuscht habe, um den neuen Wert einfach per
   List und im Log sehen zu können.

Vielleicht findet es dennoch der ein oder andere nützlich.

Was mit während des Arbeitens aufgefallen ist:  Wie wäre es, in 90_at.pm:75
FmtTime durch FmtDateTime zu ersetzen?  Ist m.E. eindeutiger.  Auch ist die
Zeitformatierung im Logfile im Gegensatz zur Ausgabe im inform timer leicht
anders (. anstelle von - in der ISO8601 Datumsangabe).

In /usr/bin/fhem.pl:470 ein

  my $tim = FmtDateTime(time);

hat zumindest hier keine negativen Auswirkungen gezeigt.

MfG
MB

--
Michael Bussmann
BOFH excuse #36:

dynamic software linking table corrupted

#
# Display the measured temp and the humidity.
# FileLog definition:
# define FileLog /var/log/fhem/hmsname-%Y.log :T:.*
#
# Logfile record example:
# 2008-07-24_02:20:57 UGHygro T: 17.2  H: 77.6  Bat: ok

# Attribute 'small' is useful for gnuplot/-scroll only,
# if plotsize is less than 800,400
#set terminal png transparent small size crop

set terminal png transparent size crop

set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set ytics nomirror
set y2tics
#set ytics
set title ''
set grid xtics y2tics

set y2label "Temperature in C"
set ylabel "Humidity (%)"

#FileLog 4:T:0:
#FileLog 6:H:0:
#FileLog 8:D:0:

plot \
  "< awk '/T:/ {print $1, $4}' "\
     using 1:2 axes x1y2 title 'Measured temperature' with lines lw 2,\
  "< awk '/H:/ {print $1, $6}' "\
     using 1:2 axes x1y1 title 'Humidity (%)' with lines lw 1\
  "< awk '/DP:/ {print $1, $8}' "\
     using 1:2 axes x1y2 title 'Dewpoint' with lines,

############################
# Display the temperature and the humidity values of a KS300.
# Corresponding FileLog definition:
# define FileLog /var/log/fhem/hms-%Y.log :T:.*

set terminal png transparent size crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set ytics nomirror
set y2tics
set title ''
set grid

set ylabel "Humidity (%)"
set format y "%0.1f"

set y2label "Temperature in C"

#FileLog 4:T:0:
#FileLog 6:H:0:
#FileLog 14:D:0:

plot \
  "< awk '/T:/ {print $1, $4}' "\
     using 1:2 axes x1y2 title 'Measured temperature' with lines lw 2,\
  "< awk '/H:/ {print $1, $6}' "\
     using 1:2 axes x1y1 title 'Humidity (%)' with lines lw 1,\
  "< awk '/DP:/ {print $1, $14}' "\
     using 1:2 axes x1y2 title 'Dewpoint' with lines lw 1

############################
# Display the Wind and the Rain values of a KS300.
# Corresponding FileLog definition:
# define FileLog /var/log/fhem/hms-%Y.log :T:.*

set terminal png transparent size crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set ytics nomirror
set y2tics
set title ''
set grid

set ylabel "Wind (Km/h)"

set y2label "Rain (l/m2)"
set y2range [0:]
set format y2 "%0.1f"

#FileLog 8:IR:0:
#FileLog 10:IR:0:delta-h
#FileLog 10:IR:0:delta-d

# Computing Rain/h and Rain/d values by accumulating the changes.
plot "" using 1:8 axes x1y1 title 'Wind' with lines,\
   " | perl -ane '\
        @a = split(\"[_:]\", $F[0]);\
        if(defined($lh) && $lh ne $a[1])\
          { printf(\"${ld}_$lh:30:00 %f\n\", $hv); $hv = 0; }\
        if($lv) { $hv += ($F[9]-$lv); }\
        $lh = $a[1]; $ld = $a[0]; $lv = $F[9];\
        END { printf(\"${ld}_$lh:30:00 %f\n\", $hv) }'"\
     using 1:2 axes x1y2 title 'Rain/h' with histeps,\
     " | perl -ane '\
        @a = split(\"[_]\", $F[0]);\
        if(defined($ld) && $ld ne $a[0]) {\
          printf(\"${ld}_12:00:00 %f\n\", $dv); $dv = 0; }\
          if($lv) { $dv += ($F[9]-$lv); }\
          $ld = $a[0]; $lv = $F[9];\
          END {printf(\"${ld}_12:00:00 %f\n\", $dv)}'"\
     using 1:2 axes x1y2 title 'Rain/day' with histeps

Guest

Originally posted by: <email address deleted>

Hallo,

den Taupunkt anzuzeigen stand auch auf meiner eigenen TODO-Liste.

Finde ich toll, dass Du das umgesetzt hast!

Ich habe Deine Änderungen bzgl. Taupunkt seit ein paar Tagen auf
meinem FHEM-Testserver im Einsatz. Bisher ohne Probleme.

Du hattest geschrieben:
>c) ich doch etwas im State herumgepfuscht habe, um den neuen Wert einfach per
>   List und im Log sehen zu können.

Die Änderung des "state" finde ich persönlich auch nicht so toll, da
es die Gefahr birgt, dass Skripte anderer evtl. Probleme machen
könnten. Ist wohl zu revolutionär. ;-)

Im Log kann man beliebige Readings sehen (sofern nicht gefiltert). Auf
die Anzeige beim list kann ich persönlich verzichten.

Mein Vorschlag wäre den "state" nicht zu ändern und nur das neue
Reading "dewpoint" zu generieren.
Damit dann die pgm2-plots funktionieren, schlage ich folgende Änderung
an Deinem vorgeschlagenen hms.gplot vor (diff):

30c30
< #FileLog 8:D:0:
---
> #FileLog 4:dewpoint:0:
37c37
<   "< awk '/DP:/ {print $1, $8}' "\
---
>   "< awk '/dewpoint:/ {print $1, $4}' "\

Damit sollte es eigentlich kompatibel zu bestehenden Installationen
sein. Wenn "dewpoint" nicht im .log steht, wird dafür auch keine
Grafik generiert. Einzig das Label "dewpoint" wird dann noch
angezeigt. Wenn man jetzt noch auf das Label  verzichtet, sollte hat
man auch bei .logs ohne dewpoint keinen Unterschied zu bestehenden
FHEM-Installionen merken.

Was hältst Du davon? Ich habe es mal so bei mir installiert.

Ich fände es toll, wenn man auf diese Weise die Taupunktberechnung ins
CVS bekommt.

Ich habe jetzt vor, die Taupunktberechnung in meine RFXCOM-Oregon-
Routinen (41_OREGON.pm) zu integrieren und dann zu testen.

MfG Willi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Moin,

On 2010-12-09 11:25:39 -0800, Willi wrote:

> Die Änderung des "state" finde ich persönlich auch nicht so toll, da
> es die Gefahr birgt, dass Skripte anderer evtl. Probleme machen
> könnten. Ist wohl zu revolutionär. ;-)

Die Welt ist offenbar noch nicht reif dafür :-)  Wobei bei einer sauberen
Auswertung der State-Zeile (z.B. durch "T:(.*)") eigentlich nichts passieren
darf.  Aber ich merke, wenn ich verloren habe.

Es ist allerdings etwas verwirrend, daß im Kommentar des Original
hms.gplot (und ks300) explizit auf die geloggte State-Zeile Bezug
genommen wird.

| define FileLog /var/log/fhem/hmsname-%Y.log :T:.*
| # Logfile record example:
| # 2008-07-24_02:20:57 UGHygro T: 17.2  H: 77.6  Bat: ok

> Damit dann die pgm2-plots funktionieren, schlage ich folgende Änderung
> an Deinem vorgeschlagenen hms.gplot vor (diff):

ACK.  Ich stelle dann bei mir das Logging auch mal auf readings anstelle
von State um.

> Damit sollte es eigentlich kompatibel zu bestehenden Installationen
> sein. Wenn "dewpoint" nicht im .log steht, wird dafür auch keine
> Grafik generiert. Einzig das Label "dewpoint" wird dann noch

Funktioniert das bei Dir auch bei SVG?  Ich habe beim FHT-Plot so etwas
ähnliches für die desired-temp probiert.  Dummerweise wird, falls der Wert
im fraglichen Zeitraum nicht im Log steht, dennoch ein Punkt bei
(t_min, 0) gezeichnet, was die Skalierung auf der y-Achse beeinflusst.

MfG
MB

--
Michael Bussmann

rudolfkoenig

                                                   

> Dummerweise wird, falls der Wert im fraglichen Zeitraum nicht im Log steht,
> dennoch ein Punkt bei (t_min, 0) gezeichnet, was die Skalierung auf der
> y-Achse beeinflusst.

Um etwas nettere Werte zu verwenden kann man auch das dritte (default-value)
Argument in der #FileLog Zeile setzen.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On 10 Dez., 10:24, Michael Bussmann wrote:
> Funktioniert das bei Dir auch bei SVG?  Ich habe beim FHT-Plot so etwas

Ich verwende auch pgm2 mit SVG.

> ähnliches für die desired-temp probiert.  Dummerweise wird, falls der Wert
> im fraglichen Zeitraum nicht im Log steht, dennoch ein Punkt bei
> (t_min, 0) gezeichnet, was die Skalierung auf der y-Achse beeinflusst.

Die Zeile
 #FileLog 4:dewpoint:0:
im gplot sorgt dafür, dass nur die Werte angezeigt werden, wenn
dewpoint im Log in Spalte 4 ist. Ansonsten wird dazu nichts angezeigt.
Probier es aus. Klappt bei mir gut.

MfG Willi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Moin,

On 2010-12-11 08:33:46 -0800, Willi wrote:

>  #FileLog 4:dewpoint:0:
> im gplot sorgt dafür, dass nur die Werte angezeigt werden, wenn
> dewpoint im Log in Spalte 4 ist. Ansonsten wird dazu nichts angezeigt.
> Probier es aus. Klappt bei mir gut.

Der Effekt tritt offenbar nur dann auf, wenn "points" als Zeichentyp
benutzt wird (hatte ich bei den FHT "desired-temp"-Plots).

Danke für die Bestätigung, daß es grundsätzlich funktioniert.

MfG
MB

--
Michael Bussmann
Shooting Yourself in the Foot:
   FORTH:  Foot in yourself shoot.