Sonnescheindauer bei OC3 Wetterstation

Moin Moin liebe Gemeinde ,

ich komme mit einer ungewöhnlichen nachfrage , ich habe die Wetterstation OC3 von ELV mehrfach im Einsatz.
Jetzt wies mich ein Kunde auf den Wert Sonnenscheindauer hin , dieser scheint totalen Blödsinn anzuzeigen .

Nach meinem Verständnis dachte ich jede Stunde in der die Helligkeit auf über 30 an der Station steigt , +60 min bei der Sonnenscheindauer.Was soll ich sagen je nach Helligkeit kommen da total komische Werte mal 182 , mal 240 oder so …

Weiß jemand was der da macht und/oder wie ich das bei IPS besser hin bekomme ?

Würde mich auch brennend interessieren.

Viele weil der wert interessant ist aber funzt eben nich . Würde es reichen die Minuten zu addieren die der wert 30 übersteigt ? Und wenn ja wie funktioniert sowas ?

Das ist wohl was für die Profis hier

Gesendet von meinem iPhone mit Tapatalk

Für den heutigen teils sonnigen teils bewölkten Tag zeigt bei mir die CCU1 an: Sonnenscheindauer 63

Halte ich auch für Blödsinn, mein IPS hat da intern detailliertere Angaben:

    [Hist] => Array
        (
            [h00] => 0
            [h01] => 0
            [h02] => 0
            [h03] => 0
            [h04] => 0
            [h05] => 0
            [h06] => 0
            [h07] => 0
            [h08] => 0
            [h09] => 0
            [h10] => 13
            [h11] => 38
            [h12] => 35
            [h13] => 32
            [h14] => 39
            [h15] => 2
            [h16] => 0
            [h17] => 0
            [h18] => 35
            [h19] => 17
            [h20] => 1
            [h21] => 0
            [h22] => 0
            [h23] => 0
            [dMo] => 612
            [dDi] => 326
            [dMi] => 511
            [dDo] => 578
            [dFr] => 491
            [dSa] => 159
            [dSo] => 631
        )

(Array speichert die Sonnenstunden pro Stunde und pro Tag, wird zyklisch überschrieben)

Nach meinem Verständnis dachte ich jede Stunde in der die Helligkeit auf über 30 an der Station steigt , +60 min bei der Sonnenscheindauer.Was soll ich sagen je nach Helligkeit kommen da total komische Werte mal 182 , mal 240 oder so …

Der erste Knackepunkt ist die Einstellung in der CCU(1) unter Startseite > Einstellungen > Geräteliste

Wetterstation:Sender 	Ch.: 1 	Sonnenschein-Schwelle		50 (0-255)	 	 

Das bringt einem eigentlich auf den Gedanken, den gelieferten Helligkeitswert eines beliebigen Bewegungsmelders mit IPS zum Sonnendauer-Berechner zu verwenden.
Denn der zweite Knackepunkt ist, dass die Helligkeitskurve des OC3-Sensors nicht besonders linear verläuft. Ich kann mich da an einen Artikel im ELV-Journal erinnern, der damit prahlt, dass der Helligkeitssensor des neuen Outdoor-Bewegungsmelders besser als alle vorangegangenen sei.

Weiß jemand was der da macht und/oder wie ich das bei IPS besser hin bekomme ?

Erst mal ein Blick ins „Systemhandbuch“ oder was EQ3 darunter versteht:


Parameter                	Typ    	Minimaler / Maximaler Wert	Einheit
TEMPERATURE       	float  	 -40.0 ... 80.0                   	°C
HUMIDITY                	integer     	 0 ... 99                    	%
RAINING                  	boolean
RAIN_COUNTER      	float   	 0.0 ... 9666.265              	mm
WIND_SPEED          	float  	 0.0 ... 1638.3                  	km/h
WIND_DIRECTION   	integer 	 0 ... 355                          	degree
WIND_DIRECTION_RANGE	integer 	 0 ... 67                    	degree
SUNSHINEDURATION	integer 	 0 ... 255
BRIGHTNESS           	integer 	 0 ... 255

Für ‚SUNSHINEDURATION‘ wird noch nicht mal eine Einheit angegeben; ich hab mal für mich Minuten angenommen und außerdem, daß die Dauer bis zum maximalen Wert aufsummiert wird und dann im Überlauf auf den minimalen Wert geht.
Da das bei einigen HomeMatic-Geräten der Fall ist, hab ich mir das zentral in einem Include-Skript gespeichert:

$HMhardPar = array ( //
    'HM-WDS100-C6-O:RAIN_COUNTER' => array (
        'Grund' => Akt_lfdSum, // **16 Wert wird hochgezählt bis zu einem Max-Wert, dann ab Min-Wert weiter
        'MIN' => 0,
        'MAX' => 9666.265,
    ),
    'HM-WDS100-C6-O:SUNSHINEDURATION' => array (
        'Grund' => Akt_lfdSum, // **16 Wert wird hochgezählt bis zu einem Max-Wert, dann ab Min-Wert weiter
        'MIN' => 0,
        'MAX' => 255,
    ),
    'HM-ES-PMSw1-Pl:ENERGY_COUNTER' => array (
        'Grund' => Akt_lfdSum, // **16 Wert wird hochgezählt bis zu einem Max-Wert, dann ab Min-Wert weiter
        'MIN' => 0,
        'MAX' => 838860.7,    // in Wh
        'Boot' => 0.1,          // Bootet auf den Wert bei Stromausfall (siehe VarProzess.inc.ips.php)
    ),
);

Und jetzt muß man bei der Wert-Änderung von ‚SUNSHINEDURATION‘ die entsprechende Logik einbauen (einen Überlauf erkennt man daran, dass der aktuelle Wert kleiner ist als der letzte Wert):

            if ( $DvPar['aWert'] < $DvPar['lWert'] ) {                                    // Überlauf bearbeiten
                include "HMhardPar.ips.inc.php";       // Skript #34227  Skripte\Konfiguration\HMhardPar
                //print ("
" . $DvPar['ObjNa'] . "-Überlauf behandeln mit: " . $DvPar['lWert'] . " auf " . $DvPar['aWert'] . " max. " . $HMhardPar[$DvPar['HMTyp']]['MAX']);
                if ( (isset($HMhardPar[$DvPar['HMTyp']]['Boot']) ) ) {
                    $DvPar['lWert'] = $HMhardPar[$DvPar['HMTyp']]['Boot'];
                    //print ("
" . $DvPar['ObjNa'] . "-Reset ergibt:        " . $DvPar['lWert'] . " auf " . $DvPar['aWert'] . " boot. " . $HMhardPar[$DvPar['HMTyp']]['MIN']);
                } else {
                    $WDif = $HMhardPar[$DvPar['HMTyp']]['MAX'] - $DvPar['lWert'];
                    $DvPar['lWert'] = $HMhardPar[$DvPar['HMTyp']]['MIN'] + $WDif;
                    //print ("
" . $DvPar['ObjNa'] . "-Überlauf ergibt:        " . $DvPar['lWert'] . " auf " . $DvPar['aWert'] . " min. " . $HMhardPar[$DvPar['HMTyp']]['MIN']);
                }
                unset($HMhardPar);
            }

Ich hoffe, die Tipps helfen auf die Sprünge.

Grusz
Harald

Sauber das Teste ich morgen gleich mal , vielen Dank für den ausführlichen Post .

Mache Montag Meldung

Gesendet von meinem iPhone mit Tapatalk

Hi.

Habe mir das hier alles mit Spannung durchgelesen und soweit auch verstanden.
Daraufhin habe ich mir mal die Werte angesehen, die bei mir im IPS angezeigt werden.

Als aktuellen Wert von heute für die Sonnenscheindauer steht bei mir 203.
Ich habe mir diese Variable auch über IPS mitloggen lasse (Grafik / Zähler).

Hier bekomme ich folgendes angezeigt (Sonnenscheindauer Tag):

Lasse ich mir dies in der Monatsansicht anzeigen, dann werden diese Werte addiert pro Tag angezeigt (Sonnenscheindauer Monat):

Mit der Funktion AC_GetAggregatedValues() kann man sich ja die Werte aus dem Logging auslesen lassen.
Somit könnte man dies ja dann auch so lösen, oder?
Sollte auf jeden Fall zum gleichen Ergebnis führen.

Ob die Werte glaubhaft sind, oder nicht muss ich noch herausfinden. Letztendlich muss man dann glaube ich den Schwellwert anpassen. Bei mir war dieser standardmäßig auf 30 eingestellt.
Ist dieser bei standardmäßig auf 50 eingestellt?

Moin Moin ,

hi Harald ich habe versucht nachzuvollziehen , was du das machst , aber ich komm mit den infos nicht so ohne weiteres klar, kannst du nicht mal nen export des includes machen, mit den bruchstücken komm ich nicht weiter.

Zu dem AC_GetAggregatedValues() , das wäre auch mein Ansatz, das man guckt wann übersteigt er den Wert 30 (oder welchen auch immer) und zählt dann die zeit hoch , dazu fehlt mir das programmiertechnische Know-how .

Ich hoffe aber hier gibts nen Pfiffigen der das aus dem arm schüttelt , aktuell behelfe ich mir mit dem auslesen des Wetterberichtes von http://www.wetter.de , wenn das jemanden interessiert könnt ich das schnell mal beschreiben , das ergibt dann sowas hier :


Es werden Höchsttemperaturen von 21° (gefühlt: 21°) und schwacher Wind (13 km/h) aus West mit frischen Böen (31 km/h) erwartet. Es kommt zu Niederschlagsmengen von 0 l/m², die Niederschlagswahrscheinlichkeit beträgt 10%, die Sonne scheint 8 Stunden    

das geht sehr einfach über einen WWWreader , und einen Textparser . Wenn gewünscht kommt die Anleitung .

Das ist doch viel zu kompliziert, denn IPS liefert doch schon die Summe (Summe der Veränderung).
Beim Logging muss als Typ lediglich „Zähler“ ausgewählt werden, dann hast Du schon die Tagessumme.
Selber muss man da nichts mehr berechnen.

Es ist halt die Frage wie man den Schwellwert kalibiert, bzw. justiert.

Ich habe gestern nochmal mit einem Hobby-Meteorologen gesprochen.
Er hat mir gesagt:
Das Überschreiten des Schwellenwerts von 120 W/m2 wird als „Sonnenschein“ gewertet.

Toll: Wie soll ich das nun mit der Station raus finden. Bräuchte ja ein Messgerät dafür.

Hallo,
habe auf meinem Tablet (Android :)) das App: GPS Status installiert.
Dies ist ein Gratis-App und zeigt die Helligkeit der Umgebung in LUX an.
Vielleicht hilft dir das weiter.

Gruß Werner

Nabend Jungs,
schön das so viele versuchen zu helfen, so soll das sein.
Das mit der Zähler Variable wäre ja zu einfach gewesen :frowning: Das klappt so leider nicht .

Er zählt dann Pro Stunde 60 und addiert das nicht für den Tag auf .

Bei der Lieferung war bei mir eingestellt gewesen:

Sonnenschein-Schwelle 30 (0-255)

Übrigens: Niemals die Box „Live Mode“ anhaken !!!
Hatte ich testweise gemacht, als die Wetterstation noch im Garten stand, und das führte zu ständigen Abstürzen.

Ohne eingeschalteten „Live Mode“ ist das Ding seit über einem Jahr auf dem Dach montiert und lebt die ganze Zeit :slight_smile:

Grusz
Harald

Das Prinzip ist doch ganz einfach:

Nehmen wir an, die ‚SUNSHINEDURATION‘ ist zu Beginn einer Stunde (um 21Uhr) gleich 0.
Dann zeigt jede Aktualisierung von der Wetterstation die Sonnenzeit in dieser Stunde an.

Pünktlich zum Stundenwechsel wurde ein Statistik-Skript (Skript #2) gestartet, das folgendes macht:

  1. schreibt die ‚SUNSHINEDURATION‘ in den Index [h22] für die Stunde nach 22Uhr.
  2. der Index [h23] wird auf 0 gesetzt.
  3. die aktuelle ‚SUNSHINEDURATION‘ wird gespeichert als Null-Basis.

Von jeder Aktualisierung der ‚SUNSHINEDURATION‘ wird die Differenz zu dem Wert unter 3. genommen und in den Index [h23] gespeichert (das macht (Skript #1) .

Zu Beginn der nächsten Stunde werden die Indizes entsprechend verschoben.
Aufpassen muß man nur bei einem Überlauf wie beschrieben.

Dumm ist jetzt nur, daß z.Z. keine Sonne scheint :slight_smile: aber man kann sich ja die aktuellen Stunden in den Tag verschieben

Meine Skripte enthalten

  • soviele Functions, die wieder in verschiedenen Includes stecken und
  • Konstanten, die zugeschnitten auf meine System in einem generellen Include stehen
    dass ein Posten nur für weitere Verwirrung sorgen würde.

Grusz
Harald

Ok das Klingt nach nen Plan , leuchtet ein . Werd ich morgen mal umsetzen. Geb dann Meldung und Script hier ab.

Gesendet von meinem iPhone mit Tapatalk

ist das Problem gelöst ???

Hat jemand ein Script ??

Ne ich habe nen Script das aus einer Wetterseite die Daten extrahiert. Kannste haben . Bin gerade unterwegs.

Ich habe auch Interesse an dem Skript, bitte posten !

Hab es nicht mehr über die ccu gemacht , ich hol mir die Daten von Wetter.de und mit Cutter bis auf die Sonnenstunden abgeschnitten und das in eine String Variable gespeichert, die ccu2 Sache war zu aufwendig und ungenau .

Gesendet von meinem iPhone mit Tapatalk

Hy,

ich hab mir einen Sonnensensor Mithilfe des Temp.-Diff.-Sensors gebaut.

1 grosses Kunststoffrohr durchsichtig
1 kleineres Kunststoffrohr nicht durchsichtig

Die beiden Rohre ineinander montiert, einen Temp.Sensor zwischen den 2 Rohren in Richtung Süden, den 2. in dem dünneren Rohr.
Sobald die Temp.Diff. mehr als 3-5 Grad hat, scheint die Sonne.

Nur so als Bastelidee.

lg, Andy

Hahaha , krass :slight_smile:

Gesendet von meinem iPhone mit Tapatalk