Problem beim Erstellen eines notify für Regenerkennung

Begonnen von VolkerL, 14 August 2017, 00:07:48

Vorheriges Thema - Nächstes Thema

VolkerL

Hallo,

ich möchte mit Hilfe meines Wettersensors  einen Dummy "Regen" bei Regen einschalten (isRaining reicht mir vollkommen) und soll späeter 10 Minuten nach dem es aufgehört hat, wieder Ausschalten.
Ich scheiter schon beim entsprechenden "notify" fürs Einschalten. Das Ausschalten soll später mal mit einem "Watchdog" geschehen.

Hier main notify, so wie nach mehreren Versuchen im Moment aussieht:
define n_Regen_on notify Wetterstation:isRaining:.*{if (ReadingsVal("Wetterstation", "isRaining", "") eq "1" {fhem("set Regen on");;}}else {if (ReadingsVal("Wetterstation", "israining", "") eq "0" {fhem("set Regen off");;}}}

... und hier meine Wetterstation (Mofdul "Rain" läuft auch):
Internals:
   COC_MSGCNT 774
   COC_RAWMSG A13F58670399B9F00000000765B07E0C01213470A::-93:COC
   COC_RSSI   -93
   COC_TIME   2017-08-14 00:00:16
   DEF        399B9F
   HMLAN1_MSGCNT 772
   HMLAN1_RAWMSG E399B9F,0000,1B451AEC,FF,FFB6,F58670399B9F00000000765B07E0C01213470A
   HMLAN1_RSSI -74
   HMLAN1_TIME 2017-08-14 00:00:16
   IODev      COC
   LASTInputDev HMLAN1
   MSGCNT     1546
   NAME       Wetterstation
   NOTIFYDEV  global
   NR         357
   STATE      T: 11.8 H: 91 W: 1.8 R: 594.72 IR: 0 WD: 95 WDR: 67.5 S: 71 B: 10
   TYPE       CUL_HM
   lastMsg    No:F5 - t:70 s:399B9F d:000000 00765B07E0C01213470A
   protCmdDel 36
   protLastRcv 2017-08-14 00:00:16
   protResnd  18 last_at:2017-08-13 19:34:11
   protResndFail 6 last_at:2017-08-13 19:36:20
   protSnd    24 last_at:2017-08-13 19:36:18
   protState  CMDs_done_Errors:1
   rssi_at_COC avg:-92.06 min:-94 max:-90.5 lst:-93 cnt:774
   rssi_at_HMLAN1 avg:-74.9 min:-79 max:-73 lst:-74 cnt:772
   READINGS:
     2017-08-12 15:23:11   Activity        alive
     2016-06-28 22:34:37   CommandAccepted yes
     2017-06-28 03:06:18   D-firmware      1.4
     2017-06-28 03:06:18   D-serialNr      MEQ0655185
     2017-08-13 19:29:05   R-sunThresh     set_50
     2017-07-31 23:30:49   battery         ok
     2017-08-14 00:00:16   brightness      10
     2017-08-14 00:00:16   humidity        91
     2017-08-14 00:00:16   isRaining       0
     2016-12-03 14:55:50   powerOn         2016-12-03 14:55:50
     2017-08-14 00:00:16   rain            594.72
     2017-08-13 11:25:50   rain_calc_all   cH: 0.0 lH: 0.0 cD: 0.0 lD: 0.9 IR: 1 Rnow: 0.0 Rdif: 0
     2017-08-13 11:25:50   rain_calc_d_curr 0.0
     2017-08-13 07:30:51   rain_calc_d_last 0.9
     2017-08-13 07:30:51   rain_calc_d_start 594.7
     2017-08-13 07:30:51   rain_calc_d_trig_tsecs 1502688600
     2017-08-13 11:25:50   rain_calc_h_curr 0.0
     2017-08-13 10:30:03   rain_calc_h_last 0.0
     2017-08-13 10:30:03   rain_calc_h_start 594.7
     2017-08-13 10:30:03   rain_calc_h_trig_tsecs 1502616600
     2017-08-13 11:25:50   rain_calc_now_diff 0
     2017-08-13 11:25:50   rain_calc_now_rate 0.0
     2017-08-13 11:25:50   rain_calc_now_value 594.7
     2017-08-13 11:25:50   rain_calc_tsecs 1502616350.13513
     2016-12-03 14:55:50   recentStateType info
     2016-06-28 22:34:37   sabotageAttackId_ErrIoId_2EF067 cnt:12
     2016-06-28 22:34:37   sabotageAttack_ErrIoAttack cnt 6
     2017-08-14 00:00:16   state           T: 11.8 H: 91 W: 1.8 R: 594.72 IR: 0 WD: 95 WDR: 67.5 S: 71 B: 10
     2017-08-08 18:08:07   storm           quiet
     2017-08-14 00:00:16   sunshine        71
     2017-08-14 00:00:16   temperature     11.8
     2017-08-08 18:08:07   trig_09         HM_2EF067
     2017-08-08 18:08:07   trigger_cnt     180
     2016-12-03 14:55:50   unknown         06000000
     2017-08-14 00:00:16   windDirRange    67.5
     2017-08-14 00:00:16   windDirection   95
     2017-08-14 00:00:16   windSpeed       1.8
   helper:
     HM_CMDNR   245
     getCfgList all
     getCfgListNo ,1
     mId        0040
     rxType     12
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +399B9F,00,00,00
       nextSend   1502661616.25231
       rxt        0
       vccu       VCCU
       p:
         399B9F
         00
         00
         00
     mRssi:
       mNo        F5
       io:
         COC        -91
         HMLAN1     -74
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf
       qReqStat
     role:
       chn        1
       dev        1
     rssi:
       at_COC:
         avg        -92.0600775193798
         cnt        774
         lst        -93
         max        -90.5
         min        -94
       at_HMLAN1:
         avg        -74.9093264248705
         cnt        772
         lst        -74
         max        -73
         min        -79
     shadowReg:
       RegL_01.    05:32
     tmpl:
Attributes:
   IODev      HMLAN1
   IOgrp      VCCU
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.4
   model      HM-WDS100-C6-O
   room       Wetter,CUL_HM
   serialNr   MEQ0655185
   subType    THSensor


Vielleicht kann mir jemand sagen was ich falsch mache.

Danke

Gruß
Volker
Raspberry PI mit fhem 5.8, COC & HM-CFG-LAN für Homematic & CUL für FS20

CoolTux


define n_Regen_on notify Wetterstation:isRaining:.(0|1) { fhem("set Regen " . ($EVTPART1 == "1" ? "on" : "off")) }


Ist bisschen einfacher.
Schau dann mal ob das Notify überhaupt getriggert wird
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

VolkerL

Hallo Leon,

das mit dem vereinfachten notify funktioniert. Ich habe mir noch eines für die Zeit wo es nicht regnet erstellt, das funktioniert auch:

define n_Trocken_on notify Wetterstation:isRaining:.(0|1) { fhem("set Trocken " . ($EVTPART1 == "0" ? "on" : "off")) }

Nun möchte ich damit meinen Gardena-Mäher bei Regen in sein Häuschen schicken, bzw. den Zeitplan unterbrechen und nach dem es 15 Minuten aufgehört hat zu regnen wieder den Zeitplan weiter abarbeiten lassen. Dazu möchte ich den watchdog nutzen. Der watchdog zum Unterbrechen des Zeitplans funktioniert.

define wd_Regen_on watchdog Regen:on.* 00:01:00 Regen:off.* set Gisberth parkUntilFurtherNotice;; trigger wd_Regen_on .


Der watchdog nachdem es aufgehört zu regnen, der funktioniert nicht.

define wd_Trocken_on watchdog Trocken:on.* 00:15:00 Trocken:off.* set Gisberth startResumeSchedule;; trigger wd_Trocken_on .

Einziger Unterschied den ich erkennen kann: Bei den Readings von wd_Regen_on stehen ACTIVATED und TRIGGERED jeweils mit einer Uhrzeit. Bei den Readings von wd_Trocken_on steht nur ACTIVATED mit Uhrzeit.

Was mache ich da falsch.

Gruß

Volker
Raspberry PI mit fhem 5.8, COC & HM-CFG-LAN für Homematic & CUL für FS20

CoolTux

Zitat von: VolkerL am 22 August 2017, 11:21:18
Hallo Leon,

das mit dem vereinfachten notify funktioniert. Ich habe mir noch eines für die Zeit wo es nicht regnet erstellt, das funktioniert auch:

define n_Trocken_on notify Wetterstation:isRaining:.(0|1) { fhem("set Trocken " . ($EVTPART1 == "0" ? "on" : "off")) }

Hallo Volker,

Da haben wir uns nicht ganz verstanden. Dieses Notify ist ja für beide Fälle. Ok ich gebe zu ich habe es doof benannt.
Erstelle einen Dummy der da heist dummyRegen
Dann erstelle ein Notify
define n_regen_janein notify Wetterstation:isRaining:.(0|1) { fhem("set Trocken " . ($EVTPART1 == "0" ? "es regnet" : "es regnet nicht")) }
Hoffe so ist es deutlicher. Kannst auch was anderes setzen lassen. Deine Fantasie.


Zitat von: VolkerL am 22 August 2017, 11:21:18

Nun möchte ich damit meinen Gardena-Mäher bei Regen in sein Häuschen schicken, bzw. den Zeitplan unterbrechen und nach dem es 15 Minuten aufgehört hat zu regnen wieder den Zeitplan weiter abarbeiten lassen. Dazu möchte ich den watchdog nutzen. Der watchdog zum Unterbrechen des Zeitplans funktioniert.

define wd_Regen_on watchdog Regen:on.* 00:01:00 Regen:off.* set Gisberth parkUntilFurtherNotice;; trigger wd_Regen_on .


Der watchdog nachdem es aufgehört zu regnen, der funktioniert nicht.

define wd_Trocken_on watchdog Trocken:on.* 00:15:00 Trocken:off.* set Gisberth startResumeSchedule;; trigger wd_Trocken_on .

Einziger Unterschied den ich erkennen kann: Bei den Readings von wd_Regen_on stehen ACTIVATED und TRIGGERED jeweils mit einer Uhrzeit. Bei den Readings von wd_Trocken_on steht nur ACTIVATED mit Uhrzeit.

Was mache ich da falsch.

Gruß

Volker

Der kann ja auch nicht gehen. Wie gesagt bedeutete in meinem Beispiel off kein Regen on Regen. Du triggerst aber auf on für das aktivieren des watchdogs. Du musst da genau andersrum triggern. Also triggern auf off und nach dem ablauf der Zeit prüfen auf on. Oder halt eben was Du immer da auch nehmen willst im dummy. Wie erwähnt es reicht ein notify und ein dummy. Das notify macht ja schon die Fallunterscheidung und schreibt je nach dem entsprechend in den Dummy.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rabehd

Verständnisfrage.

Du hast einen Dummy "Regen" und einen Dummy "Trocken".
Beide werden durch ein Event der Wetterstation und zwar IsRaining ausgelöst.
Sie werden immer gegeneinander geschaltet, also wenn der eine on ist der andere off.

Ist das so?
Warum?

Und noch ein kleiner Hinweis: Bei leichtem Regen dauert es immer etwas bis IsRainingg auf on/1 steht.
Auch funktionierende Lösungen kann man hinterfragen.

VolkerL

Hallo,

Ihr habt beide recht, das war irgendwie "doppelt gemoppelt"  :)  von mir.

Ich lösche den dummy Trocken und das notify für Trocken, passe alles andere an und versuche damit mal mein Glück.

Das mit dem watchdog, dass er nicht nach 15 Minuten "kein Regen" den Mäher wieder losschickt, könnte doch auch daran liegen, dass er während der laufenden 15 Minuten, jedes mal, wenn die Wetterstation ausgelesen wird, wieder neu gestartet wird, da das notify wieder (im Moment bei mir noch) ein "Trocken on" rausgibt und das dadurch nicht als zusammenhängende Zeit ansieht.

@rabehd: das mit dem Zeitverzug bis zur Regenerkennung ist unkritisch, da der Gardena-Mäher grundsätzlich auch bei Regen mähen kann/darf, ich das aber nicht unbedingt möchte.

Gruß

Volker
Raspberry PI mit fhem 5.8, COC & HM-CFG-LAN für Homematic & CUL für FS20

CoolTux

Zitat von: VolkerL am 22 August 2017, 14:14:37
Das mit dem watchdog, dass er nicht nach 15 Minuten "kein Regen" den Mäher wieder losschickt, könnte doch auch daran liegen, dass er während der laufenden 15 Minuten, jedes mal, wenn die Wetterstation ausgelesen wird, wieder neu gestartet wird, da das notify wieder (im Moment bei mir noch) ein "Trocken on" rausgibt und das dadurch nicht als zusammenhängende Zeit ansieht.

Ich denke eher nicht. Bin mir da aber unsicher. Was Du machen kannst ist, Readings die Du von Deiner Wetterstation tatsächlich brauchst in event-on-change-readings ein zu tragen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rabehd

ZitatReadings die Du von Deiner Wetterstation tatsächlich brauchst in event-on-change-readings ein zu tragen.

Auch mein erster Gedanke
Auch funktionierende Lösungen kann man hinterfragen.

VolkerL

Das habe ich jetzt mal alles geändert und beobachte alles mal.

Danke
Raspberry PI mit fhem 5.8, COC & HM-CFG-LAN für Homematic & CUL für FS20

VolkerL

Hallo,

So, ich habe das isRaining in der Wetterstation als event-on-change-reading eingetragen und seitdem funktioniert der watchdog korrekt und zeigt auch nach der eingestellten Zeit TRIGGERED an.  (zumindest wenn man es per Hand testet) Die unnötigen Dinge habe ich raus geschmissen.

Das der watchdog wd_Regen_on schon immer funktioniert hat, hängt damit zusammen, dass dort die Zeit auf 1 Minute eingestellt ist und zwischen zwei Aktualisierungen der Wetterstation die Zeitspanne  größer als 1 Minute ist.

Ich denke bei Regen funktioniert es genauso.

Gruß
Volker
Raspberry PI mit fhem 5.8, COC & HM-CFG-LAN für Homematic & CUL für FS20