FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: h-man-kl am 27 Mai 2019, 14:35:05

Titel: Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 27 Mai 2019, 14:35:05
Hallo zusammen,
endlich habe ich mal wieder etwas Zeit für fhem - und natürlich gleich ein Problem.

Meine Gartenbewässerung soll mit folgendem doif gesteuert werden:


([09:30|Mo Mi Fr] and [d_48h.kein.Regen] eq "on") (set 04.06.SW4.02_Sw_01 on-for-timer 600)


Also Mo Mi Fr um 9:30 wenn es 48h nicht geregnet hat. Ob es JETZT regnet sagt mir meine Homematic Wetterstation mit dem Reading isRaining. Das kann ich auch abfragen und nutzen.
Wie aber bekomme ich den dummy d_48h.kein.Regen für 48h auf off? Mit set off-for-timer 172800 geht es leider nicht, da geht der state immer direkt auf off.

Wie macht ihr das so? Habt ihr eine Idee für mich?
Vielen Dank und Gruß
Michael
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: amenomade am 27 Mai 2019, 15:03:58
define set48h DOIF ([Wetterstation:isRaining] ne "yes") (set d_48h.kein.Regen on) DOELSE (set d_48h.kein.Regen off)
attr set48h wait 172800:0

Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 27 Mai 2019, 15:06:00
na das ging ja schnell und einfach.... ich werde es direkt mal testen
DANKE!
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Per am 27 Mai 2019, 15:16:34
Oder ohne extra Dummy:

define d_48h.kein.Regen DOIF ([Wetterstation:isRaining] ne "yes") ()
DOELSE ()
attr d_48h.kein.Regen wait 172800:0
attr d_48h.kein.Regen cmdState yes|no
[/quote]
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 27 Mai 2019, 15:20:05
Danke.
Ich warte mal den nächsten Regenschauer ab ob das erste klappt. Danach teste ich noch die 2. Variante
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: amenomade am 27 Mai 2019, 15:48:13
Zitat von: Per am 27 Mai 2019, 15:16:34
Oder ohne extra Dummy:

define d_48h.kein.Regen DOIF ([Wetterstation:isRaining] ne "yes") ()
DOELSE ()
attr d_48h.kein.Regen wait 172800:0
attr d_48h.kein.Regen cmdState yes|no


Das erinnert mich was... ;)
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Christoph Morrison am 27 Mai 2019, 21:43:34
Zitat von: Per am 27 Mai 2019, 15:16:34
Oder ohne extra Dummy:

define d_48h.kein.Regen DOIF ([Wetterstation:isRaining] ne "yes") ()
DOELSE ()
attr d_48h.kein.Regen wait 172800:0
attr d_48h.kein.Regen cmdState yes|no


Was passiert wenn innerhalb der 48h FHEM neu gestartet wird? Der Timer ist dann weg, oder?
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Damian am 27 Mai 2019, 22:25:38
Zitat von: Christoph Morrison am 27 Mai 2019, 21:43:34
Was passiert wenn innerhalb der 48h FHEM neu gestartet wird? Der Timer ist dann weg, oder?

Wait-Timer sind nach dem Neustart immer weg und müssen neu gesetzt werden.


Alternative:

DOIF ([09:30|Mo Mi Fr] and [?Wetterstation:isRaining] ne "yes"  and [?Wetterstation:isRaining:sec] > 172800) (set 04.06.SW4.02_Sw_01 on-for-timer 600)

attr do always


Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Per am 28 Mai 2019, 11:37:25
Das ist ja noch viel besser!

PS: das :sec in Form von ([:sec] < 3600 ) habe ich gleich mal statt eines separaten Watchdogs verwendet. Macht mein DOIF gleich irgendwie einfacher ;)
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 03 Juni 2019, 06:19:30
Hallo,
ich wollte nochmal Rückmeldung geben:
Dass der waitfor beim reboot zurückgesetzt wird ist in meinem Fall nicht so tragisch. Auf jeden fall hat es funktioniert!

Vielen Dank!

Gruß
H-Man
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 04 Juni 2019, 12:57:10
Hallo zusammen,
ich versteh das nicht.
Gestern hat es geregnte, meine HomeMatic Wetterstation ist bei isRaining auf 1 egsprungen - soweit so gut.
mein DOIF mit dem Inhakt
([Wetterstation:isRaining] eq 0) (set d_48h.kein.Regen on) DOELSE (set d_48h.kein.Regen off)

hat aber nicht geschaltet => mein dummy steht nach wie vor auf on  :-(

Kann mir jemand den fehler sagen - Danke!
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Per am 04 Juni 2019, 14:02:18
Zitat von: h-man-kl am 04 Juni 2019, 12:57:10Kann mir jemand den fehler sagen - Danke!
Poste ein List, dann sieht man mehr.
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 05 Juni 2019, 06:09:38
Wetterstation:
Internals:
   CHANGED   
   DEF        4B0FE3
   FUUID      5c44ac25-f33f-627b-a449-909319ad03cf9617
   HmUART_01_MSGCNT 8784
   HmUART_01_RAWMSG 05000047AF86704B0FE300000000995A19980000418125
   HmUART_01_RSSI -71
   HmUART_01_TIME 2019-06-05 06:06:34
   HomeMatic_MSGCNT 7161
   HomeMatic_RAWMSG E4B0FE3,0000,1482C42C,FF,FFAE,AE86704B0FE300000000995A19980000418123
   HomeMatic_RSSI -82
   HomeMatic_TIME 2019-06-05 06:04:08
   IODev      HmUART_01
   LASTInputDev HmUART_01
   MSGCNT     15945
   NAME       Wetterstation
   NOTIFYDEV  global
   NR         764
   NTFY_ORDER 50-Wetterstation
   STATE      T: 15.3 H: 90 W: 0 R: 1932.84 IR: 0 WD: 325 WDR: 0 S: 129 B: 37
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:AF - t:70 s:4B0FE3 d:000000 00995A19980000418125
   protLastRcv 2019-06-05 06:06:34
   protRcv    8792 last_at:2019-06-05 06:06:34
   rssi_at_HmUART_01 cnt:8784 min:-80 max:-68 avg:-72.01 lst:-71
   rssi_at_HomeMatic cnt:7161 min:-105 max:-79 avg:-86.08 lst:-82
   READINGS:
     2019-05-20 14:13:17   Activity        alive
     2017-05-29 10:27:58   CommandAccepted yes
     2017-04-18 16:38:25   D-firmware      1.6
     2017-04-18 16:38:25   D-serialNr      NEQ0343849
     2017-05-29 10:27:58   PairedTo        0x1511AB
     2017-05-29 10:12:52   R-burstRx       off
     2017-04-18 16:40:13   R-pairCentral   0x1511AB
     2017-05-29 10:12:53   R-stormLowThresh 5
     2017-05-29 10:12:53   R-stormUpThresh 20
     2017-05-29 10:12:53   R-sunThresh     50
     2017-05-29 10:12:53   R-windSpeedRsltSrc max
     2017-05-29 10:27:58   RegL_00.        01:00 02:01 0A:15 0B:11 0C:AB 18:00 00:00
     2017-05-29 10:27:59   RegL_01.        05:32 06:14 07:05 0A:01 00:00
     2019-06-05 06:06:34   battery         ok
     2019-06-05 06:06:34   brightness      37
     2019-06-05 06:06:34   humidity        90
     2019-06-05 06:06:34   isRaining       0
     2019-06-05 06:06:34   rain            1932.84
     2019-06-05 06:06:34   state           T: 15.3 H: 90 W: 0 R: 1932.84 IR: 0 WD: 325 WDR: 0 S: 129 B: 37
     2019-06-05 06:06:34   sunshine        129
     2019-06-05 06:06:34   temperature     15.3
     2019-06-05 06:06:34   windDirRange    0
     2019-06-05 06:06:34   windDirection   325
     2019-06-05 06:06:34   windSpeed       0
   helper:
     HM_CMDNR   175
     mId        00AE
     peerFriend peerAct,peerVirt
     peerOpt    1p:THSensor,4:THSensor,p:THSensor
     regLst     0,1,1p,4p
     rxType     140
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +4B0FE3,00,00,00
       nextSend   1559707594.67571
       rxt        2
       vccu       VCCU
       p:
         4B0FE3
         00
         00
         00
       prefIO:
         HmUART_01
     mRssi:
       mNo        AF
       io:
         HmUART_01:
           -69
           -69
         HomeMatic:
           -82
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rssi:
       at_HmUART_01:
         avg        -72.0145719489979
         cnt        8784
         lst        -71
         max        -68
         min        -80
       at_HomeMatic:
         avg        -86.0854629241727
         cnt        7161
         lst        -82
         max        -79
         min        -105
     shadowReg:
     tmpl:
Attributes:
   IODev      HmUART_01
   IOgrp      VCCU:HmUART_01
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   event-on-change-reading temperature
   expert     2_raw
   firmware   1.6
   group      Klima
   model      HM-WDS100-C6-O-2
   msgRepeat  1
   peerIDs    00000000,
   room       Außenbereich,Garten,Wetter & Verkehr,_CUL_HM
   serialNr   NEQ0343849
   subType    THSensor


dummy:

Internals:
   CFGFN     
   DEF        00000FFFFF FF F0
   FUUID      5cebc00f-f33f-627b-5b87-b811a18b9d783cf9
   IODev      FS20.Cube
   NAME       d_48h.kein.Regen
   NR         15248
   STATE      on
   TYPE       IT
   XMIT       00000fffff
   XMITdimdown 00
   XMITdimup  00
   XMIToff    f0
   XMITon     ff
   CODE:
     1          00000fffff
   READINGS:
     2019-05-27 12:53:46   protocol        V1
     2019-05-29 14:57:39   state           on
Attributes:
   IODev      FS20.Cube
   devStateIcon on:rc_GREEN off:rc_RED
   group      Klima
   room       Garten,d_dumm


bin gespannt was man daraus lesen können soll....

Gruß
H-Man
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: CoolTux am 05 Juni 2019, 06:21:26
event-on-change-reading temperature

Eindeutiger geht es nicht. Kein Event für isRaining
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: amenomade am 05 Juni 2019, 13:40:07
Gut, dass Du ein "list" von Wetterstation gepostet hast. Damit konnte CoolTux sofort einen Fehler finden.

Aber eigentlich war ein "list" des DOIF gemeint. Falls es nach Korrektur von event-on-change-reading immer noch nicht geht, dann bitte auch ein "list" des DOIFs, wenn er deiner Meinung nach nicht im richtigen Zustand ist.

Zitatbin gespannt was man daraus lesen können soll....
In einem "list" sieht man viel mehr als mit einem Copy/Paste des define Befehls:
- man sieht alle Attribute (wie z.B. ein falsches event-on-change-readings, das Ereignisse verhindert). Insbesondere wichtig bei einem DOIF.
- man sieht die Readings und wann die letztens aktualisiert worden sind
- man sieht die Internals, die auch das Verhalten des Devices erklären
- und man sieht alle Helpers

Bei einem DOIF kann man dann sofort sehen, was der Zustand ist, wovon er getriggert wurde, welche Bedingungen waren dabei wahr oder falsch.

Fazit: ein "list" wird nicht umsonst von denjeningen angefordert, die versuchen, dir zu helfen: aus einem list "soll" man viel debug Information auslesen können. Deswegen bei Problemen bitte immer ein "list" der betroffenen Devices posten statt nur:
([09:30|Mo Mi Fr] and [d_48h.kein.Regen] eq "on") (set 04.06.SW4.02_Sw_01 on-for-timer 600)
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 05 Juni 2019, 16:01:57
:-)
na klar.... CoolTux... wer sonst :-)

DANKE!

kleines reading große Wirkung. Ich hab mal das isRaining ergänzt. Mal sehen ob es nun geht.
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 06 Juni 2019, 07:57:08
PERFEKT!

Heute Nacht hat es geregnet und mein DOIF hat genau das gemacht was es soll. Mal sehen ob es in zwei Tagen wieder zurückspringt... sofern es trocken bleibt

Gruß
H-Man
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Bartimaus am 06 Juni 2019, 08:32:25
Der Tip mit dem Event-on-Change-reading von CoolTux ist super... da ging bei mir gerade ein ganzer Kronleuchter an... danke dafür !!

Ich lasse meine Beregnung nachts ab 04:00 Uhr laufen.
Dann hat sich der Boden von der Hitze des Vortags abgekühlt, die Chance das Fußgänger von meiner Vorgartenberegnung mitgewässert werden ist geringer, und an sonnigen Tagen wird bei uns um 09:30 Uhr das meiste Wasser schon verdunstet sein, bevor es in den Boden eindringt....  just my 2cents
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Christoph Morrison am 06 Juni 2019, 10:32:26
Zitat von: Bartimaus am 06 Juni 2019, 08:32:25
Ich lasse meine Beregnung nachts ab 04:00 Uhr laufen.

Ich beneide dich. Unsere Nachbarsprinzessin hört die Grillen husten und sogar das sehr leise Klacken eines Gardena-Rasensprengers - vor 7 an Werktagen und 9 am Wochenende ist da nix. Am liebsten hätte sie es, wenn wir wie alle Idioten in der Nachbarschaft brav am frühen Abend anmachen, wo der Boden schön warm ist und die Sonne noch knallt.

</rant>
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Bartimaus am 06 Juni 2019, 10:34:17
Isch 'abe gar kaine Gardena-Regner Signor.... sondern Rainbird, und der ist absolut lautlos...
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Christoph Morrison am 06 Juni 2019, 10:35:50
Zitat von: Bartimaus am 06 Juni 2019, 10:34:17
Isch 'abe gar kaine Gardena-Regner Signor.... sondern Rainbird, und der ist absolut lautlos...

Stell dir die Laustärke ungefähr so vor, als würdest du eine dicke Tafel Schokolade brechen ...
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Bartimaus am 06 Juni 2019, 10:36:57
Bau Dir die Versenkregner ein, dann sucht sich die Prinzessin am nächsten Tag nen Wolf
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: doesel am 06 Juni 2019, 11:59:04
Rainbird Versenkregner kann ich auch nur Empfehlen, habe ich auch vor zwei Jahren im Rasen verbuddelt. Tatsächlich fast lautlos.
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 14 Juni 2019, 11:28:51
Hallo,
leider scheint da immernoch etwas nicht gelkappt zu haben.... :-(

bei den letzten Regenschauern wurde immer wieder der Timer verlängert, was mir auch als logisch erscheint. Zuletzt wurde am 12.6. um 10:41 der timer neu geschrieben, demnach hätte heute um 10:41 geschaltet werden müssen. Leider ist mein dummy immernoch auf "off" und das doif steht beim cmd2

Internals:
   DEF        ([Wetterstation:isRaining] < 1) (set d_48h.kein.Regen on) DOELSE (set d_48h.kein.Regen off)
   FUUID      5cebb297-f33f-627b-895b-78ee0bf456b99236
   MODEL      FHEM
   NAME       di_es.regnet
   NR         1361
   NTFY_ORDER 50-di_es.regnet
   STATE      cmd_2
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-06-14 11:21:02   Device          Wetterstation
     2019-06-11 01:37:57   cmd             2
     2019-06-11 01:37:57   cmd_event       Wetterstation
     2019-06-11 01:37:57   cmd_nr          2
     2019-06-12 10:41:05   e_Wetterstation_isRaining 0
     2019-06-05 07:42:57   mode            enabled
     2019-06-11 01:37:57   state           cmd_2
     2019-06-12 10:41:05   wait_timer      14.06.2019 10:41:05 cmd_1 Wetterstation
   Regex:
     accu:
   attr:
     wait:
       0:
         172800
       1:
         0
   condition:
     0          ::ReadingValDoIf($hash,'Wetterstation','isRaining') < 1
   devices:
     0           Wetterstation
     all         Wetterstation
   do:
     0:
       0          set d_48h.kein.Regen on
     1:
       0          set d_48h.kein.Regen off
   helper:
     event      temperature: 17.8
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev Wetterstation
     triggerEvents:
       temperature: 17.8
     triggerEventsState:
       temperature: 17.8
   internals:
   itimer:
   perlblock:
   readings:
     0           Wetterstation:isRaining
     all         Wetterstation:isRaining
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      Sonne oder Regen?
   devStateIcon cmd_2:weather_rain_light cmd_1:weather_sun
   group      Klima
   icon       helper_doif
   room       Garten,_doif
   wait       172800:0


Hat jemand ne Idee? So komplex ist das doif doch garnicht.


PS: Ich hab auch Rainbird Versenkregner :-)
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: frober am 14 Juni 2019, 12:02:01
Wenn ich keinen Denkfehler habe...

Du schaltest, wenn es nicht regnet deinen Dummy auf on (es regnet nicht) und nach 24h auf off (es regnet). Müsste anders herum sein.

Ich würde dies verständlicher definieren.
Wenn es regnet >Dummy "Regen ja" nach 24h "Regen nein" > beregnen
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Per am 14 Juni 2019, 13:04:06
Warum nimmst du nicht die elegante Lösung von Damian?
Zitat von: Damian am 27 Mai 2019, 22:25:38
DOIF ([09:30|Mo Mi Fr] and [?Wetterstation:isRaining] ne "yes"  and [?Wetterstation:isRaining:sec] > 172800) (set 04.06.SW4.02_Sw_01 on-for-timer 600)
Wobei ich es für Abbruch bei Regen dahingehend erweitern würde:
DOIF ([09:30|Mo Mi Fr] and [?Wetterstation:isRaining] ne "yes"  and [?Wetterstation:isRaining:sec] > 172800)
   (set 04.06.SW4.02_Sw_01 on-for-timer 600)
DOELSEIF ([Wetterstation:isRaining] eq "yes" and [04.06.SW4.02_Sw_01] ne "off")
   (set 04.06.SW4.02_Sw_01 off)
DOELSEIF  ([09:29|Mo Mi Fr])

Letzte Zeile statt do always, kann je nach Wetter ein paar Schaltvorgänge sparen.
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 14 Juni 2019, 14:15:54
@frober:
Ich wollte eine Anzeige, die mir zeigt obe in den letzten 24 NICHT geregnet hat und ich hatte am Anfang etwas zu kompliziert um die Ecke gedacht.

@Per:
warum ich das von Damian nicht nehme? - ich wollte mein eigens gerne am laufen haben.
Auch wenn ich noch nicht verstanden habe warum es nicht geschaltet hat werde ich jetzt mal die Lösung probieren. Danke
Ist halt schon komisch, dass mir cmd1 angezeigt wird wenn ich auf set ... checkall klicke.
Naja Versuch macht kluch

Gruß
H-Man
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: frober am 14 Juni 2019, 17:12:02
Dein doif setzt den Timer wenn es NICHT regnet zurück, also dummy on (cmd1) und nach 48h auf off (cmd2).

Wenn mehrere Regenschauer waren, wie du schreibst, dann passierte bei Regen nichts, nach dem Regen wurde der Timer zurückgesetzt.

Probiere  israining = 1


Nachtrag: vergiss es, ich habe den Timer falsch interpretiert
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: h-man-kl am 24 Juni 2019, 12:42:26
Hallo zusammen,
ich habe mein DOIF

([Wetterstation:isRaining] eq "0") (set d_48h.kein.Regen on) DOELSE (set d_48h.kein.Regen off)

immer noch nicht ans laufen bekommen, dabei ist das doch nur eine Zeile :-(
...und werde wohl jetzt doch das andere Beispiel testen.
Aber kann mir zum besseren Verständnis mal jemand sagen was die "?" vor Wetterstation sollen und was es mit dem "sec" aufsich haben soll?
Die Homematic Wetterstation kann nur isRaining 1 oder 0
DOIF ([09:30|Mo Mi Fr] and [?Wetterstation:isRaining] ne "yes"  and [?Wetterstation:isRaining:sec] > 172800) (set 04.06.SW4.02_Sw_01 on-for-timer 600)

Danke!
Titel: Antw:Zeitproblem bei automatischer Bewässerung
Beitrag von: Ellert am 24 Juni 2019, 15:09:41
Wenn Du in der Direkthilfe zu DOIF nach Fragezeichen oder [? und :sec suchst, dann findest Du die Erklärungen.

Die Direkthilfe findest in der Detailansicht unter dem Link Device specific help.