Sainlogic Professionelle WLAN Funk Wetterstation - 10 in 1 Wi-Fi

Habe das gleiche Problem bei der baugleichen CTW-902

Laut Display habe ich gerade 996 hPa rel. Luftdruck, in IPS habe ich 1023hPa rel. Luftdruck und 972 hPa absoluten Druck.
Mein Netatmo sagt 993 hPa rel. Luftdruck und 968 hPa absoluten Druck.

Laut wetter.com haben wir hier zur Zeit 997 hPa rel. Druck.

D.h. die Sainlogic Anzeige auf dem Display stimmt (1 hPa Abweichung) und auch der Netatmo ist relativ nah dran. (4 hPa Abweichung), aber die Sainlogic in IPS zeigt einen komplett falschen rel. Druck.

Interessanterweise zeigt mir WU ( WU -> my devices) im Graphen ebenfalls 1023 hPa, auf dem Analoginstrument im WU Dashboard aber die korrekten 996 hPa.

[EDIT] in WU springt die Analoganzeige tatsächlich zwischen 997 hPa und 1023 hPa hin und her.
Firmware ist 1.4.7 (die aktuelle, beim Vorgänger der FW aber genau das gleiche Verhalten)

Hallo
Bei mir scheint es zu stimmen. Hab mal ein Testscript geschrieben mit der Formel aus dem Modul.
Temperatur und Hoehe ueber NN musst du anpassen.
Teste mal:

	// Werte aus dem Debug von Wetterstation 
	$absbaromin=29.398;
	$baromin=28.692;

	// Werte lokal anpassen
	$temperatur = 4.9;
	$hoeheueberNN = 90;

	$pascal = $absbaromin / 0.02952998751;

	echo "
" . $pascal;

	$pascal = Pressure($baromin,$temperatur,$hoeheueberNN);
	
	echo "
" . $pascal;

    function Pressure(float $pressure, float $temperature,float $altitude)
    {
        $pascal   = $pressure / 0.02952998751;
     
        $g0 = 9.80665;                                         // Normwert der Fallbeschleunigung
        $R  = 287.05;                                          // Gaskonstante trockener Luft
        $T  = 273.15;                                          // 0°C in Kelvin
        $Ch = 0.12;                                            // Beiwert zu E
        if ($temperature < 9.1) {
            $E = 5.6402 * (-0.0916 + exp(0.06 * $temperature));        // Dampfdruck des Wasserdampfanteils bei t < 9.1°C
        } else {
            $E = 18.2194 * (1.0463 - exp(-0.0666 * $temperature));    // Dampfdruck des Wasserdampfanteils bei t >= 9.1°C
        }
        $a  = 0.0065;                                          // vertikaler Temperaturgradient
        $xp = $altitude * $g0 / ($R * ($T + $temperature + $Ch * $E + $a * $altitude / 2)); // Exponent für Formel
        $p0 = $pascal * exp($xp);                             // Formel für den NN-bezogenen Luftdruck laut Wikipedia
        return $p0;
    }

Hallo,

danke für das Testskript.

Was genau muss ich denn hier eingeben?

// Werte aus dem Debug von Wetterstation 
    $absbaromin=29.398;
    $baromin=28.692;

Bei mir ist es momentan wieder so das der Wert der Wetterstation (990.86 hPa) ca. 8-9 hPa unter dem liegt den ich auf Weather Underground finde wenn ich nach meinem Ort suche.
In IP Symcon habe ich 1049.1 hPa.

Temperatur ist 4,4 Grad und mein Ort liegt 469 über Grund.

Wie ist das eigentlich mit den Daten die an WU übermittelt werden, bei mir pendelt es auch zwischen 990.86 und 1049.1.
Ich habe glaube ich sowohl in der App WSView als auch in IP Symcon die WU Zugangsdaten hinterlegt. Vermutlich würde eines von beiden reichen oder??

Danke!

Der in

Oeffne Instanz und dann auf „Debug“
Dort siehst du was dein Wetterstation sendet, so alle 30 Sekunden.
Die Zeile mit „Weatherstation payload: /weatherstation/updateweatherstation.php?ID=…“ anschauen.
Das sendet deine Wetterstation.

Eins reicht. Deshalb pendelt es. Ein Wert kommt ueber WSView Einstellung der andere von IPS.

Ok danke für die Erklärung.

Hab jetzt folgendes eingegeben:


// Werte aus dem Debug von Wetterstation     
$absbaromin=27.948;    
$baromin=29.244;

 // Werte lokal anpassen    
$temperatur = 4.8;    
$hoeheueberNN = 469;

Ergebnis

946.42776230555
1048.5705087416

Auf Wetter.com wird für meinen Ort angezeigt:
1.JPG

WU gibt für meinen Ort 998.98hPa

Somit passt das überhaupt nicht. Das Display von meiner Sainlogic zeigt 990.52 hPa an. Also wieder eine Differenz von guten 8 hPa.
Nach der Umrechnung in IP Symcon sind es dann die 1048.57 hPa, die leider absolut unbrauchbar sind :frowning:

Eins reicht. Deshalb pendelt es. Ein Wert kommt ueber WSView Einstellung der andere von IPS.

Ok, danke. Leider stimmt ja weder der Wert den die Wetterstation liefert, noch der errechnete von IP Symcon.

Wie kann ich hier am Besten vorgehen? Bzw. wie kann ich verhindern das IP Symcon den Wert noch umrechnet, evtl. fahre ich besser wenn ich den gelieferten Wert einfach um 8 hPa erhöhe.
Aber da bräuchte ich dann den ursprünglich gelieferten Wert ohne die Umrechnung.

So, der Payload meiner WS für die Drücke sieht so aus:


absbaromin=28.931&baromin=29.622

Vermute mal das sind in/Hg.
Also wären absolut-baromin 978 hPa und baromin = 1003 hPa. (= rel. Druck? Passt auf jeden Fall laut Wetter.com)

Die absbaro min stimmen in IPS, aber der relative Druck ist 1030 hPa und viel zu hoch.
Ggfls. im Modul irgendwo ein Fehler in der Umrechnung?

Ergebnis im Testskript:


979,71595789544
1029,4407587332

also auch die falsche rel Pressure.
Setze ich die Höhe über NN im Skript auf „0“, kommt genau der richtige Wert (1003) raus.

EDIT: Glaube habe den Fehler gefunden, zumindest kommen 1005hPa raus, was gegenüber den 1003,xx ggfls. ein Rundunsgthema sein kann.

Müsste die Variable $pascal anstatt so:


$pascal = Pressure($baromin,$temperatur,$hoeheueberNN);

nicht so:


$pascal = Pressure($absbaromin,$temperatur,$hoeheueberNN);

befüllt werden. Die Funktion Pressure muss doch als Basis den absoluten Luftdruck zur Berechnung des rel. Drucks nehmen, und nicht einen relativen Druck auf einen anderen relativen Druck berechnen?

Oder täusche ich mich.

Müsste die Variable $pascal anstatt so:

  PHP-Code:
  $pascal = Pressure($baromin,$temperatur,$hoeheueberNN);  

nicht so:

  PHP-Code:
  $pascal = Pressure($absbaromin,$temperatur,$hoeheueberNN);  

befüllt werden. Die Funktion Pressure muss doch als Basis den absoluten Luftdruck zur Berechnung des rel. Drucks nehmen, und nicht einen relativen Druck auf einen anderen relativen Druck berechnen?

Oder täusche ich mich.

Ich habe das mal so versucht wie du geschrieben hast, da bekomme ich momentan bei mir 1011,03 hPa heraus, laut Wetter.com sind es 1010,8 hPa. Das klingt also sehr gut.

Bei diesem Rechner komme ich auch auf 1011 hPa anhand des absoluten Luftdrucks den mir die Sainlogic meldet. Könnte also wirklich ein kleiner Fehler sein.

Hallo
Hab die Funktion benutzt die im Modul ist.

$this->SetValue('baromin', $this->Pressure($baromin, $this->FahrenheitToCelsius($temperature)));

Aber hab bei mir auch mal genauer meine Werte angesehen.
Mein Luftdruck absolut ist hoeher als der Luftdruck. Das sollte wohl umgekehrt sein oder?

Ja, der absolute Luftdruck ist entweder gleich dem relativen Druck (Wenn Du auf NN=0) bist.
Sobald Du aber höher als NN=0 bist, ist der absolute (gemessene) Druck geringer, als der, der auf NN=0 relativiert wird (=relativer Luftdruck).

Die Funktion im Modul müsste IMHO lauten:


$this->SetValue('baromin', $this->Pressure($absbaromin, $this->FahrenheitToCelsius($temperature))); 


Hab das bei mir mal vorhin schoen geaendert. Ergebnis:
Luftdruck absolut : 1004,8 hPa
Luftdruck : 1016,0 hPa
Bei meiner Hoehe von 90m NN passt das mit der Daumenformel ( NN/8 ) dazurechnen.
Im Moment frage ich mich wo die Wetterstation den relativen Luftdruck her nimmt.
Kann mich nicht daran erinnern dort eine Hoehe NN eingegeben zu haben ( GPS ? ).

Aus meiner Anleitung:


Um den relativen Druck für Ihren Standort zu bestimmen, suchen Sie eineoffizielle Meldestelle in Ihrer Nähe (das Internet ist die beste Quelle fürEchtzeit-Barometer Bedingungen, wie Weather.com oder Wunderground.com),und stellen Sie Ihre Wetterstation so ein, dass sie mit der offiziellenBerichterstattung der Station übereinstimmt.

D.h. er misst zum Einstellzeitpunkt den absoluten Druck, Du stellst den zu diesem Messzeitpunkt herrschenden relativen Druck ein. Und über Temperatur, Dampfdruck-Konstanten, etc berechnet er dann einmalig die Höhe.

Quasi Deine Funktion rückwärts.

Hallo
Hab jetzt die Wetterstation neu kalibriert.
Gegen gechecked auch mit GeCoS_WTHQ und Online.
Werte passen jetzt perfekt, aber nur wenn man im Modul den absoluten Luftdruck in der Funktion nimmt (Zeile 780).

Quasi Deine Funktion rückwärts.

Nicht meine Funktion/Modul.

Ist das die Zeile 780 in

C:\ProgramData\Symcon\modules\IPSymconWeatherStation\WeatherStation\module.php

?

Ja. Habs sie so bei mir geaendert:

$this->SetValue('baromin', $this->Pressure($absbaromin, $this->FahrenheitToCelsius($temperature)));

Hmmm…ändert bei mir gar nichts.

Hmmm
Original:

$this->SetValue('baromin', $this->Pressure($baromin, $this->FahrenheitToCelsius($temperature)));

Neu:

$this->SetValue('baromin', $this->Pressure($absbaromin, $this->FahrenheitToCelsius($temperature)));

Wenn sich nichts aendert koennen die beiden Variablen nur gleich sein.
Mal in der Instanz das Debug anschauen , dort werden die beiden Werte ja angezeigt.

Nö, sind unterschiedlich…

ID=Sainlogic&PASSWORD=xxxxxxx&indoortempf=71.6&tempf=39.2&dewptf=34.2&windchillf=36.1&indoorhumidity=34&humidity=82&windspeedmph=4.3&windgustmph=5.8&winddir=226&absbaromin=28.931&baromin=29.622&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.020&monthlyrainin=0.079&solarradiation=87.59&UV=0&dateutc=2020-02-27%2009:55:05&softwaretype=EasyWeatherV1.4.7&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0<CR><LF>Host: 10.1.1.254<CR><LF>Accept:/<CR><LF>Connection: Close<CR><LF><CR><LF>

Restart vom IPS Service gemacht…

Hmmm…ratlos…

Bin auf dem Master Branch des Moduls

Die Funktion schreibt in den Debug auch die Werte vor der Umwandlung:

27.02.2020, 11:00:11 | Weatherstation: | abs barometer min: 29,336
27.02.2020, 11:00:34 | Weatherstation: | barometer min: 29,64

Dann muesste mein Testscript auch gleiche Werte liefern :confused:
https://www.symcon.de/forum/threads/37643-Sainlogic-Professionelle-WLAN-Funk-Wetterstation-10-in-1-Wi-Fi?p=419311#post419311