HM-WDS100-C6-O Funk-Kombi-Sensor OC3: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Problemerwähnung Zählerüberlauf Sunshine)
K (Hinweis: openweathermap nur noch in Contrib)
Zeile 46: Zeile 46:
=== Anwendungsbeispiele ===
=== Anwendungsbeispiele ===
==== Anbindung an OpenWeathermap ====
==== Anbindung an OpenWeathermap ====
Das hier verwendete "inoffizielle" 98_openweathermap.pm-Modul muss manuell aus dem [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/ Contrib]-Verzeichnis des Fhem-SVN heruntergeladen und in das Modulverzeichnis der eigenen Fhem-Installation kopiert werden.
Zunächst eine Funktion zur Berechnung der Differenz der gemessenen Regenmengen in 99_myUtils anlegen (abgeleitet von einer Funktion zur [[Relative Mittelwerte berechnen und loggen|Mittelwertberechnung]]):
Zunächst eine Funktion zur Berechnung der Differenz der gemessenen Regenmengen in 99_myUtils anlegen (abgeleitet von einer Funktion zur [[Relative Mittelwerte berechnen und loggen|Mittelwertberechnung]]):


Zeile 107: Zeile 109:
} </nowiki>
} </nowiki>


Dann können die Werte mit dem [http://fhem.de/commandref.html#openweathermap openweathermap] Modul übertragen werden:
Dann können die Werte mit dem 98_openweathermap.pm - Modul aus [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/ Contrib] übertragen werden:
  <nowiki>...
  <nowiki>...
attr owo owoSrc03 rain_today:RegenmengeTag:state
attr owo owoSrc03 rain_today:RegenmengeTag:state

Version vom 31. Mai 2015, 19:11 Uhr

Der Funk-Kombi-Sensor OC3 (HM-WDS100-C6-O) ist eine HomeMaticFunk-Wetterstation für den Außeneinsatz zur Messung von Temperatur, relativer Luftfeuchte, Windrichtung, Windstärke, Regenmenge und Helligkeit.

Features

  • Batteriebetrieb (3 x Mignon/LR6/AA)
  • Funkfrequenz 868,3 MHz
  • Temperaturmessbereich -29,9°C bis 79,9°C (± 0,8°C)
  • Relative Luftfeuchte 1 % bis 99 % (±5 %)
  • Windgeschwindigkeit 1 km/h bis 199,9 km/h
  • Windrichtungsmesser 0° bis 355° (±5°)
  • Schwankung der Windrichtung 0°/22,5°/45°/67,5°
  • Regenmengenmesser 0 mm bis 999 mm
  • Regen-Soforterkennung
  • Helligkeit gemessen über Photodiode mit einheitenlosen Wert 1-255
  • Sonnenschein-Dauer gezählt als Minuten oberhalb der Helligkeitsschwelle von 30 (Default)
  • Datenübermittlung alle 120 bis 180 Sekunden
  • Übermittlung des Batteriestatus

Hinweise zum Betrieb mit Fhem

Das Pairing sollte wie unter HomeMatic Devices pairen beschrieben durchgeführt werden. Hierfür muss die von außen erreichbare Anlerntaste betätigt werden.

Konfiguration (fhem.cfg)

Muss noch ergänzt werden

Event-Monitor

Wetterstation T: 17.5 H: 82 W: 0 R: 553.715 IR: 0 WD: 10 WDR: 67.5 S: 106 B: 16
Wetterstation temperature: 17.5
Wetterstation humidity: 82
Wetterstation windSpeed: 0
Wetterstation windDirection: 10
Wetterstation windDirRange: 67.5
Wetterstation rain: 553.715
Wetterstation isRaining: 0
Wetterstation sunshine: 106

Parameterliste

list:      register | range              | peer     | description
0: intKeyVisib      |   literal          |          | visibility of internal channel options:visib,invisib
0: pairCentral      |   0 to 16777215    |          | pairing to central
1: stormLowThresh   |   0 to 255         |          | Storm lower threshold
1: stormUpThresh    |   0 to 255         |          | Storm upper threshold

Log-Einträge

Muss noch ergänzt werden

Anwendungsbeispiele

Anbindung an OpenWeathermap

Das hier verwendete "inoffizielle" 98_openweathermap.pm-Modul muss manuell aus dem Contrib-Verzeichnis des Fhem-SVN heruntergeladen und in das Modulverzeichnis der eigenen Fhem-Installation kopiert werden.

Zunächst eine Funktion zur Berechnung der Differenz der gemessenen Regenmengen in 99_myUtils anlegen (abgeleitet von einer Funktion zur Mittelwertberechnung):

# myDiff
# berechnet die Differenz aus der ersten Zeile eines LogFiles und der letzten Zeile eines LogFiles über einen Zeitraum zwischen einem Zeitpunkt in der Vergangenheit und dem Zeitpunkt des Aufrufs
sub
myDiff($$$)
{
 my ($offset,$logfile,$cspec) = @_;
 my $period_s = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime(time-$offset);
 my $period_e = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime;
 my $oll = $attr{global}{verbose};
 $attr{global}{verbose} = 0; 
 my @logdata = split("\n", fhem("get $logfile - - $period_s $period_e $cspec"));
 $attr{global}{verbose} = $oll; 
 my ($cnt, $first, $last, $diff) = (0)x4;
 foreach (@logdata){
  my @line = split(" ", $_);
  if(defined $line[1] && "$line[1]" ne ""){
   $cnt += 1;
    if ($cnt == 1) {
     $first = $line[1];
    }
   $last = $line[1];
  }
 }
$diff = $last - $first;
Log 4, ("myDiff: File: $logfile, Field: $cspec, Period: $period_s bis $period_e, First: $first, Last: $last, Diff: $diff");
return $diff;
} 

Danach in der fhem.cfg folgendes hinzufügen (inklusive Umrechnung der Windmesswerte von km/h in m/s):

define RegenmengeOffset dummy
define RegenmengeTag dummy
define RegenmengeLast1Hours dummy
define RegenmengeLast3Hours dummy
define RegenmengeLast24Hours dummy
define WindSpeed_mps dummy

define RegenmengeNotify notify OC3:rain.* {\
  my $menge = (ReadingsVal("OC3", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));;\
  my $last1hours = myDiff("3600", "FileLog_OC3", "10:::");;\
  my $last3hours = myDiff("10800", "FileLog_OC3", "10:::");;\
  my $last24hours = myDiff("86400", "FileLog_OC3", "10:::");;\
  fhem("set RegenmengeTag $menge");;\
  fhem("set RegenmengeLast1Hours $last1hours");;\
  fhem("set RegenmengeLast3Hours $last3hours");;\
  fhem("set RegenmengeLast24Hours $last24hours");;\
}

define RegenmengeOffsetReset at *00:00:00 {\
  my $offset = ReadingsVal("OC3", "rain", 0);;\
  fhem("set RegenmengeOffset $offset");; \
}

define WindSpeedNotify notify OC3:windSpeed.* {\
  my $windspeed = (ReadingsVal("OC3", "windSpeed", 0) / 3.6);;\
  $windspeed = int(100 * $windspeed + 0.5) / 100;;\
  fhem("set WindSpeed_mps $windspeed") \
} 

Dann können die Werte mit dem 98_openweathermap.pm - Modul aus Contrib übertragen werden:

...
attr owo owoSrc03 rain_today:RegenmengeTag:state
attr owo owoSrc04 wind_speed:WindSpeed_mps:state
attr owo owoSrc05 rain_1h:RegenmengeLast1Hours:state
attr owo owoSrc06 rain_24h:RegenmengeLast24Hours:state
...

Bekannte Probleme

Der Zähler sunshine läuft nach gut 4 Stunden über, an Sonnentagen läuft dieser Zähler u.U. sogar mehr als einmal über.

Fhem hat bislang (noch) nicht die Möglichkeit implementiert, die Mengenmessung zu justieren. In Einzelfällen sind im Werksauslieferungszustand konstante Messabweichungen von 10% beobachtet worden.

Links