Hauptmenü

Neues Modul "rain"

Begonnen von fossy, 20 Oktober 2013, 09:23:20

Vorheriges Thema - Nächstes Thema

fossy

... achso. Ja, das wollte ich bei Gelegenheit mal "Optional" machen. Siehe weiter oben.

CQuadrat

Zitat von: fossy am 07 Januar 2014, 14:33:24
... achso. Ja, das wollte ich bei Gelegenheit mal "Optional" machen. Siehe weiter oben.
Yepp, dessen wollte ich mich (zumindest mal für mich) annehmen.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

fossy

Hallo Leute,

... ich gerade das erweiterte Modul eingecheckt. Leider konnte ich es noch nicht ausgiebig testen. Ich hoffe, da könnt Ihr mit Euerm wachsamen Auge helfen.

Neue Funktionen:
- Die Zeit, an der Tageswerte auf Null gesetzt werden ist jetzt anpassbar (Attribut: DayChangeTime HHMM)
- Es kann ein Korrekturfaktor eingegeben werden (Attribut: CorrectionValue 1)
- Es kann ohne den DeviceParameter IsRaining ausgewertet werden (Attribut: DontUseIsRaining 1)

Ich hoffe, alles funktioniert noch.

cu
fossy

cwagner

#18
Hallo Fossy,

nun habe ich den ersten vollständigen Tag mit dem Modul rain hinter mir und: Alles klappt erwartungsgemäß und die erste Tagessumme kommt zur gewünschte Zeit und entspricht exakt der parallelen Konstruktion aus mehreren Dummys, notifys etc.
Korrekturfaktor, angepasste Tageszeit benutzte ich an einer Homematic Wetterstation OC3.
Hier das aktuelle Listing:

Internals:
   CFGFN     
   DEF        Wetterstation rain isRaining rain_calc
   DEV_REGEXP Wetterstation
   ISRAINING_NAME isRaining
   NAME       Regen
   NEW_NAME   rain_calc
   NR         2020
   NTFY_ORDER 10-Regen
   RAIN_NAME  rain
   STATE      active
   TYPE       rain
Attributes:
   CorrectionValue 0.8518
   DayChangeTime 0650
   group      Wetter
   room       Wetter

(für die "Gemeinde": 6:50 Uhr ist aktuell die von den staatlichen Wetterdiensten, wie Deutsche Wetterdienst, vorgegebene Zeit zur Feststellung der Tagessumme (Winterzeit)

Danke für die positive "Bescherung"

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

fossy

Hallo Christian,

... Danke für Dein Feedback!

cu
fossy

Tweak

Hallo fossy,
ich benutze auch das Modul rain und es hat eigentlich auf anhieb geklappt. Was mir aber Probleme bereitet ist das Loggen der Werte. Ich kann die Einzelnen Readings anschließend nicht verwenden da er mir diese als Gesamtpaket in ein Reading schreibt.

Siehe:

2014.06.01 19:48:06 5: DbLog: logging of Device: Wetterstation , Type: WS3600 , Event: rain_new_all: cH: 0.0 lH: 0.0 cD: 0.0 lD: 221.6 IR: 1 Rnow: 0.0 Rdif: 0 , Reading: rain_new_all , Value: cH: 0.0 lH: 0.0 cD: 0.0 lD: 221.6 IR: 1 Rnow: 0.0 Rdif: 0 , Unit:


Gibt es irgendeinen Weg das zu beheben? Würde gerne einzelne Werte von Rain verwenden für Plotts und Floorplan.

Danke für deine Hilfe!
Mfg

fossy

Hallo Tweak,
mit DbLog kenn ich mich leider nicht aus. Ich gehe aber davon aus, dass das kein Problem des Moduls ist. Du musst ja selber definierten, was du lieb willst. Die Werte gibt es ja auch einzeln. Ich verwende für das Diagramm die entsprechende Spalte aus dem log all...
Gruß fossy

Gesendet von meinem GT-I9506 mit Tapatalk


schka17

Hallo Fossy,

Ich habe vor einiger Zeit das rain modul in Betrieb genommen um Bewässerung zu planen, seit bald zwei Wochen habe ich jetzt diese Meldungen im Logfile und die readings werden nur mehr sporadisch, nicht nachvollziehbar, upgedated

2014.07.03 11:21:12 1: rain_notify: no values for calculation found!
2014.07.03 11:26:17 1: rain_notify: no values for calculation found!
2014.07.03 11:28:50 1: rain_notify: no values for calculation found!
2014.07.03 11:31:22 1: rain_notify: no values for calculation found!
2014.07.03 11:36:27 1: rain_notify: no values for calculation found!
2014.07.03 11:44:05 1: rain_notify: no values for calculation found!


hier die list der Wetterstation:
Internals:
   CFGFN      ./FHEM/CUL.cfg
   CODE       1234
   CUL_MSGCNT 255
   CUL_RAWMSG 810d04xx4027a001718223625001f6
   CUL_RSSI   -61
   CUL_TIME   2014-07-15 08:57:53
   DEF        1234
   IODev      CUL
   LASTInputDev CUL
   MSGCNT     255
   NAME       Outdoor_Weather
   NR         129
   RAINUNIT   255
   STATE      <font color="red"> 22.8 °C </font><font color="lightblue"> 63 %</font>
   TYPE       KS300
   WINDUNIT   1
   Readings:
     2014-02-28 21:56:27   average_day     T: 5.6 H: 39 W: 0.8 R: 0
     2014-07-15 08:57:53   avg_day         T: 20.6  H: 66  W: 1.2  R: 0.0
     2014-07-15 00:04:06   avg_month       T: 20.7  H: 29  W: 31.9  R: 38.0
     2014-07-15 08:57:53   checksum        6
     2014-07-15 08:57:53   cum_day         2014-07-15 00:04:06 T: 660838.4  H: 2128425  W: 38593.9  R: 976.9
     2014-07-15 00:04:06   cum_month       14 T: 290.4  H: 418  W: 446.4  R: 38.0
     2014-03-20 19:55:02   floorplantext   Error evaluating Outdoor_Weather userReading floorplantext: Search pattern not terminated at (eval 84985) line 1.
     2014-07-15 08:57:53   humidity        63
     2014-07-15 08:57:53   israining       no
     2014-07-15 08:57:53   rain            976.9
     2014-07-14 07:45:31   rain_calc_all   cH: 0.0 lH: 3.3 cD: 0.0 lD: 18.4 IR: yes Rnow: 0.1 Rdif: 3.29999999999995
     2014-07-14 07:45:31   rain_calc_d_curr 0.0
     2014-07-14 07:45:31   rain_calc_d_last 18.4
     2014-07-14 07:45:31   rain_calc_d_start 976.9
     2014-07-14 07:45:31   rain_calc_d_trig_tsecs 1405402200
     2014-07-14 07:45:31   rain_calc_h_curr 0.0
     2014-07-14 07:45:31   rain_calc_h_last 3.3
     2014-07-14 07:45:31   rain_calc_h_start 976.9
     2014-07-14 07:45:31   rain_calc_h_trig_tsecs 1405319400
     2014-07-14 07:45:31   rain_calc_now_diff 3.29999999999995
     2014-07-14 07:45:31   rain_calc_now_rate 0.1
     2014-07-14 07:45:31   rain_calc_now_value 976.9
     2014-07-14 07:45:31   rain_calc_tsecs 1405316731.853
     2014-07-15 08:57:53   rain_raw        3856
     2014-07-15 08:57:53   rain_raw_adj    3831
     2014-06-29 23:22:18   rain_raw_ofs    -25
     2014-07-15 08:57:53   state           T: 22.8  H: 63  W: 5.2  R: 976.9  IR: no  Wi: 1
     2014-07-15 08:57:53   temperature     22.8
     2014-07-15 08:57:53   tsecs           1405407473.76068
     2014-07-15 08:57:53   type_raw        7
     2014-03-07 23:56:13   unknown1        4
     2014-03-02 12:16:18   unknown2        7
     2014-07-15 08:57:53   unknown3        1
     2014-07-15 08:57:53   wind            5.2
     2014-07-15 08:57:53   windIndex       1
Attributes:
   IODev      CUL
   alias      Aussenwerte
   event-min-interval 600
   event-on-change-reading .*
   group      Weatherstation
   icon       temp_outside
   rainadjustment 1
   room       1_Outdoor
   stateFormat <font color="red"> temperature °C </font><font color="lightblue"> humidity %</font>


und von rain

Internals:
   CFGFN
   DEF        Outdoor_Weather rain israining rain_calc
   DEV_REGEXP Outdoor_Weather
   ISRAINING_NAME israining
   NAME       rain_ow
   NEW_NAME   rain_calc
   NR         1783
   NTFY_ORDER 10-rain_ow
   RAIN_NAME  rain
   STATE      active
   TYPE       rain
Attributes:
   room       development


Ich habe gestern alles gelöscht und neu definiert, einmal update und dann wars das, irgendeine Idee?

danke und Grüß

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

fossy

Hallo Karl,

die Meldung kommt, wenn einer der beiden übergebenen Werte nichts enthält (also "").
Evtl. hilft es, im Modul das "debugging" zu aktivieren.

in der Datei 98_rain.pm:
# Debug this module? YES = 1, NO = 0
my $rain_debug = 1;

... und dann in der fhem-console "reload 98_rain"

cu
fossy

schka17

Hallo Fossy,

gleich ausprobiert, ich nehme an es geht um diese Zeilen?

2014.07.15 10:29:23 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 10:29:23 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 10:29:23 1: rain_notify: max='4'
2014.07.15 10:29:23 1: rain_notify: s='T: 25.5  H: 56  W: 5.5  R: 976.9  IR: no  Wi: 1'
2014.07.15 10:29:23 1: rain_notify: evName='T:' val=25.5'
2014.07.15 10:29:23 1: rain_notify: s='wind: 5.5'
2014.07.15 10:29:23 1: rain_notify: evName='wind:' val=5.5'
2014.07.15 10:29:23 1: rain_notify: s='humidity: 56'
2014.07.15 10:29:23 1: rain_notify: evName='humidity:' val=56'
2014.07.15 10:29:23 1: rain_notify: s='temperature: 25.5'
2014.07.15 10:29:23 1: rain_notify: evName='temperature:' val=25.5'
2014.07.15 10:29:23 1: rain_notify: no values for calculation found!
2014.07.15 10:29:23 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 10:29:23 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'


Schaut so aus als ob die Niederschlagswerte gar nicht abgefragt werden?

Gruß

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

fossy

Hallo nochmal,

bitte die den Wert für das Logging auf "5" stellen, um noch mehr debugging-Einträge anzuzeigen.

cu
fossy

schka17

Hallo Fossy,

hab jetzt vorher und nachher ein paar Zeilen mehr mitgenommen:

2014.07.15 11:10:03 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:03 5: rain_notify: devname=EC3000_5DEC rainname=rain_ow, dev=EC3000_5DEC, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:03 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:03 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:03 5: rain_notify: devname=EC_1 rainname=rain_ow, dev=EC_1, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:03 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:03 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 5: rain_notify: devname=Outdoor_Weather rainname=rain_ow, dev=Outdoor_Weather, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:04 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 1: rain_notify: max='3'
2014.07.15 11:10:04 1: rain_notify: s='T: 26.5  H: 55  W: 3.0  R: 976.9  IR: no  Wi: 1'
2014.07.15 11:10:04 1: rain_notify: evName='T:' val=26.5'
2014.07.15 11:10:04 1: rain_notify: s='wind: 3.0'
2014.07.15 11:10:04 1: rain_notify: evName='wind:' val=3.0'
2014.07.15 11:10:04 1: rain_notify: s='temperature: 26.5'
2014.07.15 11:10:04 1: rain_notify: evName='temperature:' val=26.5'
2014.07.15 11:10:04 3: rain_notify: n='-1'
2014.07.15 11:10:04 3: rain_notify: rain_name='rain'
2014.07.15 11:10:04 5: rain_notify: get the following values rain_value= 1 israining= 1
2014.07.15 11:10:04 1: rain_notify: no values for calculation found!
2014.07.15 11:10:04 5: rain_notify: devname=Niederschlag rainname=rain_ow, dev=Niederschlag, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:04 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 5: rain_notify: devname=Niederschlag rainname=rain_ow, dev=Niederschlag, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:04 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 11:10:04 5: rain_notify: devname=Regenintensitaet rainname=rain_ow, dev=Regenintensitaet, dev_regex=Outdoor_Weather rain_name=rain israining_name=israining
2014.07.15 11:10:04 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'


Gruss

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

fossy

Hallo Karl,

hmm, ich stehe etwas auf dem Schlauch. Der Regenwert scheint vorhanden zu sein (im State), aber das Modul "findet" ihn nicht, weil er nicht als geändert übergeben wird. Hast du ein Update gemacht?! Oder was anderes geändert?

Das sind die entscheidenden Zeilen:

my $s = $dev->{CHANGED}[$i];
Log3 $hash, 1, "rain_notify: s='$s'" if ($rain_debug == 1);

################
# Filtering
next if(!defined($s));
my ($evName, $val, $rest) = split(" ", $s, 3); # resets $1
next if(!defined($evName));
next if(!defined($val));
Log3 $hash, 1, "rain_notify: evName='$evName' val=$val'" if ($rain_debug == 1);


Versuche mal, den rain_name auf "R" zu setzen.

cu
fossy

fossy

Hallo Karl,

noch eine Idee:
"simulier" mal Regen. Dann ändert sich ja der Regenwert und dass sollte dann auch entsprechend ausgewertet werden.

cu
fossy

schka17

Hallo Fossy,

ja, ich habe updates gemacht, ich mache das so alle ein oder zwei Wochen, je nachdem was geändert wurde, und ich ändere laufend etwas. Gerade die letzten 2 Wochen habe ich wieder sehr viel eingebaut. Z.B. habe ich stateformat angepasst, das habe ich wieder rückgängig gemacht, aber keine Änderung also habe ich es wieder geändert.

ich habe jetzt die Defineition folgendermassen angepasst:
Internals:
   CFGFN
   DEF        Outdoor_Weather R israining rain_calc
   DEV_REGEXP Outdoor_Weather
   ISRAINING_NAME israining
   NAME       rain_ow
   NEW_NAME   rain_calc
   NR         1783
   NTFY_ORDER 10-rain_ow
   RAIN_NAME  R
   STATE      active
   TYPE       rain
Attributes:
   room       development
   verbose    1


keine Änderung.

Ich habe versucht Regen zu simulieren:

trigger Outdoor_Weather T: 27.9  H: 53  W: 0.5  R: 977.9  IR: no  Wi: 0

der Output im Logfile:
2014.07.15 12:11:38 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 12:11:41 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 12:11:41 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 12:11:41 1: rain_notify: max='1'
2014.07.15 12:11:41 1: rain_notify: s='T: 27.9  H: 53  W: 0.5  R: 977.9  IR: no  Wi: 0'
2014.07.15 12:11:41 1: rain_notify: evName='T:' val=27.9'
2014.07.15 12:11:41 1: rain_notify: no values for calculation found!
2014.07.15 12:11:41 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 12:11:41 1: rain_notify: rain_Notify DayChangeTime='07:30' DontUseIsRaining='0' CorrectionValue='1'
2014.07.15 12:11:41 1: rain_notify: rain_Notify Defaults: DayChangeTime='0730' DontUseIsRaining='0' CorrectionValue='1'


oder hast du mit simulieren etwas anderes gemeint?

Gruß

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000