Wetterstation: WEATHERMAN-Controller von Dr. Stall

Begonnen von bubu185, 22 März 2018, 18:59:56

Vorheriges Thema - Nächstes Thema

andi11

#75
Hab jetzt mal nach https://forum.fhem.de/index.php/topic,86097.msg960650.html#msg960650 eingerichtet.
Allerdings hab ich keinen Log2Syslog Server verwendet, sondern das Modul als Server definiert
define SyslogServer Log2Syslog

Ansonsten hab ich alles eingestellt wie dort beschrieben, bei Rainyman sind erwartungsgemäß die selben CCU Parameter zu setzen.
Internals:
   CFGFN     
   CONNECTS   17
   FD         27
   FUUID      5d9ad58c-f33f-e34d-7bca-c36f1172c6163f5c
   FVERSION   93_Log2Syslog.pm:v5.8.1-s19029/2019-03-25
   INTERFACE  global
   MODEL      Collector
   MYFQDN     hcs.fritz.box
   MYHOST     hcs
   NAME       SyslogServer
   NR         11004
   NTFY_ORDER 50-SyslogServer
   PORT       1885
   PROFILE    raw
   PROTOCOL   tcp
   SEQNO      17
   STATE      active
   TYPE       Log2Syslog
   HELPER:
     LTIME      1570429745.71382
     OLDSEQNO   16
     OLDSTATE   active
     PACKAGE    main
     SSLALGO    n.a.
     SSLVER     n.a.
     TCPPADDR   192.168.10.24
     VERSION    5.8.1
   HIPCACHE:
     192.168.10.24 ESP-E38FDE.fritz.box
   READINGS:
     2019-10-07 08:05:39   Parse_Err_No    0
     2019-10-07 08:05:00   SSL_Algorithm   n.a.
     2019-10-07 08:05:00   SSL_Version     n.a.
     2019-10-07 08:29:05   Transfered_logs_per_minute 1
     2019-10-07 08:29:12   state           active
Attributes:
   DbLogExclude .*
   parseProfile raw
   port       1885
   protocol   TCP
   room       Versuche
   useEOF     1
   useParsefilter 1
  makeEvent     no

Wichtig ist dabei das Attribut makeEvent, sonst gibts kein Reading! Mit dem Wert reading werden scheinbar schon die JSON Daten zerlegt.
Das gibt leider sehr viele Readings.

Hat jemand schon die Userreadings für Temperatur usw. gebastelt? Mit dem automatismus hat man wieder soviele Readings wie in HTTPMOD

Der Rainyman ist dann schon extrem gesprächig (volles Telegramm jede Minute) Kann man das Sendeintervall irgendwo konfigurieren? Die Instant Meldung ist mir eigentlich nur bei Regen wichtig.
EDIT: Ich seh gerade Weatherman gibts ein Testupdate 123, da kann man das einstellen vom 15.9. beim Rainyman geht das noch nicht :(

Lichti

Na super, wenn's läuft.

Ich hatte mal UserReadings für den WeatherMan gebastelt:


define Weatherman HTTPMOD http://192.168.178.155/json 60
attr Weatherman room Wetter
attr Weatherman group Weatherman
attr Weatherman enableControlSet 1
attr Weatherman timeout 10
attr Weatherman stateFormat Temp.: Temperatur &degC<BR>Druck: Luftdruck hPa - Luftdruck-Tendenz<BR>Zeit
attr Weatherman reading00Name WLAN
attr Weatherman reading00JSON Systeminfo_WLAN_Signal_dBm
attr Weatherman reading01Name Zeit
attr Weatherman reading01JSON Systeminfo_zeitpunkt
attr Weatherman reading02Name Temperatur
attr Weatherman reading02Regex (?s)aussentemperatur.*?(\d*\.\d*)
attr Weatherman reading03Name Temperatur_gef
attr Weatherman reading03Regex (?s)gefuehlte_temperatur.*?(\d*\.\d*)
attr Weatherman reading04Name Feuchte
attr Weatherman reading04Regex (?s)rel_feuchte.*?(\d+)
attr Weatherman reading05Name Taupunkt
attr Weatherman reading05Regex (?s)taupunkt_temperatur.*?(\d*\.\d*)
attr Weatherman reading06Name Luftdruck
attr Weatherman reading06Regex (?s)nn_luftdruck.*?(\d+)
attr Weatherman reading07Name Luftdruck-Tendenz
attr Weatherman reading07Regex (?s)luftdrucktrend.*?value.*?"(\w+)"
attr Weatherman reading08Name Windwinkel
attr Weatherman reading08Regex (?s)windwinkel.*?value.*?(\d+)
attr Weatherman reading09Name Windrichtung
attr Weatherman reading09Regex (?s)windrichtung.*?value.*?"(\w+)"
attr Weatherman reading10Name Windgeschwindigkeit
attr Weatherman reading10Regex (?s)peak_windgeschwindigkeit.*?(\d*\.\d*)
attr Weatherman reading10OExpr $val * 3.6
attr Weatherman reading10Format %.1f
attr Weatherman reading11Name Helligkeit
attr Weatherman reading11Regex (?s)helligkeit.*?(\d*\.\d*)
attr Weatherman reading12Name Sonne
attr Weatherman reading12Regex (?s)sonne_scheint.*?(true|false)
attr Weatherman reading12OMap false:nein, true:ja
attr Weatherman reading13Name Sonnenstunden
attr Weatherman reading13Regex (?s)Sonnenstunden_heute.*?(\d*\.\d*)
attr Weatherman reading14Name Regen
attr Weatherman reading14Regex (?s)regenstatus.*?(true|false)
attr Weatherman reading14OMap false:nein, true:ja
attr Weatherman reading15Name Regenmenge
attr Weatherman reading15Regex (?s)regenstaerke.*?(\d*\.\d*)
attr Weatherman reading16Name Regen_h
attr Weatherman reading16Regex (?s)regen_pro_h.*?(\d*\.\d*)
attr Weatherman reading17Name Regen_Tag
attr Weatherman reading17Regex (?s)regen_mm_heute.*?(\d*\.\d*)
attr Weatherman reading18Name UV-Index
attr Weatherman reading18Regex (?s)uv-index.*?(\d*\.\d*)
attr Weatherman reading19Name Temperatur-Himmel
attr Weatherman reading19Regex (?s)himmel_temperatur.*?(\d*\.\d*)
attr Weatherman userReadings Temperatur-Transparenz {int((ReadingsVal("Weatherman","Temperatur","")*10)-(ReadingsVal("Weatherman","Temperatur-Himmel","")*10))/10}


Hab dann aber doch die automatische Dekodierung mit expandJSON genommen, weil ich fast alle Werte benutze.
Und dann ist das doch einfacher.

andi11

für HTTPMOD hab ich die Readings auch. Als Userreadings im Log2Syslog Modul fänd ichs am hilfreichsten.
So wie diese hier:
regensensor_wert { my $w=ReadingsVal($name,"MSG_ESP-E38FDE.fritz.box",0) ;; $w =~ s/.*"w_regensensor_wert".*?"value":"([+-]?\d*[\.\d]\d*)".*/$1/ ;; $w },
temperatur { my $w=ReadingsVal($name,"MSG_ESP-E38FDE.fritz.box",0) ;; $w =~ s/.*"w_temperatur".*?"value":"([+-]?\d*[\.\d]\d*)".*/$1/ ;; $w },
sonne_scheint { my $w=ReadingsVal($name,"MSG_ESP-E38FDE.fritz.box",0) ;; $w =~ s/.*"w_sonne_scheint".*?"value":"(true|false)".*/$1/ ;; $w =~ s/true/1/g ;;$w =~ s/false/0/g ;; $w },
regenmelder { my $w=ReadingsVal($name,"MSG_ESP-E38FDE.fritz.box",0) ;; $w =~ s/.*"w_regenmelder".*?"value":"(true|false)".*/$1/ ;; $w =~ s/true/1/g ;;$w =~ s/false/0/g ;; $w }


P.S.: Hab grad mal nachgefagt ,die neue Firmware mit verstellbarem Refresh Intervall folgt auch für den Rainyman.

vencam

Hab mir den WEATHERMAN jetzt auch bestellt!

Wollt mal fragen ob eure Konfigurationen noch laufen wie erhofft? Gab ja seitens Stall einige Updates ...

Lichti

Läuft vollkommen problemlos.
Bin sehr zufrieden.


vencam

Mein Weatherman läuft jetzt auch endlich! Wie habt ihr das mit dem extra BME280 im Gehäuse gelöst? Die Daten stehen ja leider nicht in der JSON.

Lichti

Die hole ich mit HTTPMOD.


define Expert HTTPMOD http://192.168.178.155/?xpert:1: 600
attr Expert room Wetter
attr Expert group Weatherman
attr Expert enableControlSet 1
attr Expert timeout 10
attr Expert stateFormat Contr.-Temp.: Temperatur_Controller &degC<BR>Contr.-Feuchte: Feuchte_Controller % hPa
attr Expert reading01Name Temperatur_Controller
attr Expert reading01Regex (?s)Temperatur_BME280.*?(\d*\.\d*)
attr Expert reading02Name Feuchte_Controller
attr Expert reading02Regex (?s)Feuchte_BME280.*?(\d+)
attr Expert reading03Name W132
attr Expert reading03Regex (?s)hh:mm ________.*?(\w+)
attr Expert reading03OExpr $val =~ s/h/\:/;; $val;;
attr Expert reading04Name Heizung
attr Expert reading04Regex (?s)Regenmelder-Heizung % _____.*?(\d+)
attr Expert reading05Name Regenzaehler
attr Expert reading05Regex (?s)Regenmengenzaehler ________.*?(\d+)

vencam

@Lichti: Ein riesen großes Dankeschön an Dich! Genau das was ich umsetzen wollte!

Flachzange

Vielen Dank @Lichti. Da hätte ich mal früher drauf kommen können anstatt darauf zu warten, dass Eugen den Wert irgendwann mal per JSON anbietet. Dann hätte ich wohl eher gemerkt, dass mein Gehäuse mit der Zeit undicht wurde.

vencam

@Flachzange: Genau um das Thema ging es mir auch, so kann man das schön überwachen.
... aktuell hab ich laut des BME280 genau 45% Luftfeuchtigkeit im Gehäuse. Was zeigt es bei dir an?

Flachzange

Zitat von: vencam am 21 März 2020, 08:03:12
... aktuell hab ich laut des BME280 genau 45% Luftfeuchtigkeit im Gehäuse. Was zeigt es bei dir an?
Du musst die Luftfreuchtigkeit einerseits direkt bewerten und andererseits in Relation zum Feuchtigkeitswert des Außensensors setzen (bei mir ein SHT21). Aber auch hier ist Vorsicht geboten, da es zwei unterschiedliche Sensoren sind.

Grundsätzlich (meine Meinung): Die Luftfeuchtigkeit im Gehäuse sollte immer unter 60% beiben. Bei Werten größer 70% würde ich davon ausgehen, dass Du irgendwo Feuchtigkeit im Gehäuse hast.

Ich habe meinen WM gerade wieder auf dem Dach montiert: Außensensor: 55% / Innensensor: 38%

vencam

Klar, einen Vergleichswert benötigt man. Hab ebenfalls die Kombination intern BME280 und extern SHT21 ... aktuell außen 93,5% und im Gehäuse unverändert 45%. Denk das sieht gut aus :)

Flachzange

Zitat von: Lichti am 20 März 2020, 17:25:26
Die hole ich mit HTTPMOD.


define Expert HTTPMOD http://192.168.178.155/?xpert:1: 600
attr Expert room Wetter
attr Expert group Weatherman
attr Expert enableControlSet 1
attr Expert timeout 10
attr Expert stateFormat Contr.-Temp.: Temperatur_Controller &degC<BR>Contr.-Feuchte: Feuchte_Controller % hPa
attr Expert reading01Name Temperatur_Controller
attr Expert reading01Regex (?s)Temperatur_BME280.*?(\d*\.\d*)
attr Expert reading02Name Feuchte_Controller
attr Expert reading02Regex (?s)Feuchte_BME280.*?(\d+)
attr Expert reading03Name W132
attr Expert reading03Regex (?s)hh:mm ________.*?(\w+)
attr Expert reading03OExpr $val =~ s/h/\:/;; $val;;
attr Expert reading04Name Heizung
attr Expert reading04Regex (?s)Regenmelder-Heizung % _____.*?(\d+)
attr Expert reading05Name Regenzaehler
attr Expert reading05Regex (?s)Regenmengenzaehler ________.*?(\d+)


Da es ja heute Nacht tatsächlich nochmal kalt wurde hätte ich hier noch ein Ergänzungsvorschlag, um auch das negative Vorzeichen bei der Temperatur zu berücksichtigen:

attr Expert reading01Regex (?s)Temperatur_BME280.*?(-?\d*\.\d*)

Lichti

Danke für den Hinweis, war mir noch gar nicht aufgefallen.
Hab's gleich bei mir geändert.