[erledigt] bei doif mit blindheit geschlagen - was übersehe ich?

Begonnen von the ratman, 08 Dezember 2019, 08:45:43

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

ich hab ein eigentlich recht simples doif, dass mit 3 lampen und 1 pumpe per zeit schalten soll.
die zeiten kommen aus einem reading. ein paar rechnungen mach ich gleich im doif selber. da ist nichts dabei, was ich so nicht schon x mal gemacht hätte.

nun schalten mir aber die lampen nicht einach zu ihren zeiten ein oder aus, sondern immer ein, sobald die an-zeit erreicht ist.
was überseh ich bei diesem eigentlich idioten einfachen doif?

Internals:
   DEF        ( ## lichtautomatik L an - 01
[?$SELF:lichtL_auto] eq "an" and [$SELF:lichtL_an]
)
( set HUEDevice13 on )

DOELSEIF

( ## lichtautomatik L aus - 02
[?$SELF:lichtL_auto] eq "an" and [$SELF:lichtL_aus]
)
( set HUEDevice13 off )

DOELSEIF

( ## lichtautomatik M an - 03
[?$SELF:lichtM_auto] eq "an" and [$SELF:lichtM_an]
)
( set HUEDevice11 on )

DOELSEIF

( ## lichtautomatik M aus - 04
[?$SELF:lichtM_auto] eq "an" and [$SELF:lichtM_aus]
)
( set HUEDevice11 off )

DOELSEIF

( ## lichtautomatik R an - 05
[?$SELF:lichtR_auto] eq "an" and [$SELF:lichtR_an]
)
( set HUEDevice10 on )

DOELSEIF

( ## lichtautomatik R aus - 06
[?$SELF:lichtR_auto] eq "an" and [$SELF:lichtR_aus]
)
( set HUEDevice10 off )


## WASSERZUFLUSS


DOELSEIF

( ## wasserautomatik an - 07
[?$SELF:wasser_auto] eq "an" and [[$SELF:wasser_an]-[$SELF:wasser_aus],+[$SELF:wasser_takt]]
)
( set HUEDevice12 on-for-timer [$SELF:wasser_sek] )


## SEKUNDEN RECHNEN


DOELSEIF ( [$SELF:wasser_dauer] )   ( setreading $SELF wasser_sek {([$SELF:wasser_dauer]*60)} ) ## - 08
DOELSEIF ( [$SELF:wasser_stunden] ) ( setreading $SELF wasser_takt {(([$SELF:wasser_stunden]*60)*60)} ) ## - 09
   FUUID      5d9349b2-f33f-0f9e-18ed-b22408af72e0517d
   MODEL      FHEM
   NAME       doif_hydro01_logik
   NOTIFYDEV  doif_hydro01_logik,global
   NR         312
   NTFY_ORDER 50-doif_hydro01_logik
   STATE      cmd_3
   TYPE       DOIF
   VERSION    20672 2019-12-06 21:05:57
   Helper:
     DBLOG:
       hydro01_lichtL:
         logdb:
           TIME       1575789779.83671
           VALUE      -10
       hydro01_lichtM:
         logdb:
           TIME       1575789779.55715
           VALUE      -10
       hydro01_lichtR:
         logdb:
           TIME       1575789779.57763
           VALUE      -10
       hydro01_wasser:
         logdb:
           TIME       1575789779.82853
           VALUE      -10
   OLDREADINGS:
   READINGS:
     2019-12-08 08:45:06   cmd             3
     2019-12-08 08:45:06   cmd_event       doif_hydro01_logik
     2019-12-08 08:45:06   cmd_nr          3
     2019-12-08 08:33:47   e_doif_hydro01_logik_lichtL_an 08:00
     2019-12-08 08:44:23   e_doif_hydro01_logik_lichtL_aus 18:00
     2019-12-08 08:33:48   e_doif_hydro01_logik_lichtM_an 08:00
     2019-12-08 08:44:21   e_doif_hydro01_logik_lichtM_aus 18:00
     2019-12-08 08:33:52   e_doif_hydro01_logik_lichtR_an 08:00
     2019-12-08 08:44:20   e_doif_hydro01_logik_lichtR_aus 18:00
     2019-12-08 08:44:49   e_doif_hydro01_logik_wasser_dauer 30
     2019-12-08 08:44:45   e_doif_hydro01_logik_wasser_stunden 2
     2019-12-08 08:33:47   lichtL_an       08:00
     2019-12-08 08:44:23   lichtL_aus      18:00
     2019-12-08 08:44:27   lichtL_auto     aus
     2019-12-08 08:33:48   lichtM_an       08:00
     2019-12-08 08:44:21   lichtM_aus      18:00
     2019-12-08 08:44:29   lichtM_auto     an
     2019-12-08 08:33:52   lichtR_an       08:00
     2019-12-08 08:44:20   lichtR_aus      18:00
     2019-12-08 08:44:32   lichtR_auto     aus
     2019-12-08 08:30:25   mode            enabled
     2019-12-08 08:45:06   state           cmd_3
     2019-12-08 08:44:36   timer_01_c07    09.12.2019 08:00:00
     2019-12-08 08:44:41   timer_02_c07    08.12.2019 18:00:00
     2019-12-08 08:44:41   timer_03_c07    08.12.2019 10:44:41
     2019-12-08 08:44:36   wasser_an       08:00
     2019-12-08 08:44:41   wasser_aus      18:00
     2019-12-08 08:44:52   wasser_auto     aus
     2019-12-08 08:44:49   wasser_dauer    30
     2019-12-08 08:44:49   wasser_sek      1800
     2019-12-08 08:44:45   wasser_stunden  2
     2019-12-08 08:44:45   wasser_takt     7200
   Regex:
     accu:
     cond:
       doif_hydro01_logik:
         0:
           lichtL_an  ^doif_hydro01_logik$:^lichtL_an:
         1:
           lichtL_aus ^doif_hydro01_logik$:^lichtL_aus:
         2:
           lichtM_an  ^doif_hydro01_logik$:^lichtM_an:
         3:
           lichtM_aus ^doif_hydro01_logik$:^lichtM_aus:
         4:
           lichtR_an  ^doif_hydro01_logik$:^lichtR_an:
         5:
           lichtR_aus ^doif_hydro01_logik$:^lichtR_aus:
         6:
         7:
           wasser_dauer ^doif_hydro01_logik$:^wasser_dauer:
         8:
           wasser_stunden ^doif_hydro01_logik$:^wasser_stunden:
     itimer:
       doif_hydro01_logik:
         itimer:
           wasser_an  ^doif_hydro01_logik$:^wasser_an:
           wasser_aus ^doif_hydro01_logik$:^wasser_aus:
           wasser_takt ^doif_hydro01_logik$:^wasser_takt:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtL_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtL_an')
     1          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtL_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtL_aus')
     2          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtM_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtM_an')
     3          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtM_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtM_aus')
     4          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtR_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtR_an')
     5          ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtR_auto') eq "an" and ::ReadingValDoIf($hash,'doif_hydro01_logik','lichtR_aus')
     6          ::ReadingValDoIf($hash,'doif_hydro01_logik','wasser_auto') eq "an" and ::DOIF_time($hash,0,1,$wday,$hms)
     7           ::ReadingValDoIf($hash,'doif_hydro01_logik','wasser_dauer')
     8           ::ReadingValDoIf($hash,'doif_hydro01_logik','wasser_stunden')
   days:
   do:
     0:
       0           set HUEDevice13 on
     1:
       0           set HUEDevice13 off
     2:
       0           set HUEDevice11 on
     3:
       0           set HUEDevice11 off
     4:
       0           set HUEDevice10 on
     5:
       0           set HUEDevice10 off
     6:
       0           set HUEDevice12 on-for-timer [doif_hydro01_logik:wasser_sek]
     7:
       0           setreading doif_hydro01_logik wasser_sek {([doif_hydro01_logik:wasser_dauer]*60)}
     8:
       0           setreading doif_hydro01_logik wasser_takt {(([doif_hydro01_logik:wasser_stunden]*60)*60)}
     9:
   helper:
     DEVFILTER  ^global$|^doif_hydro01_logik$
     NOTIFYDEV  global|doif_hydro01_logik
     event      wasser_dauer: 30
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   
     timerevent wasser_dauer: 30
     timerevents
     timereventsState
     triggerDev
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
     2          ::DOIF_time($hash,0,1,$wday,$hms)
   intervaltimer:
     0          2
     1          2
   localtime:
     0          1575874800
     1          1575824400
     2          1575798281
   readings:
     all         doif_hydro01_logik:lichtL_an doif_hydro01_logik:lichtL_aus doif_hydro01_logik:lichtM_an doif_hydro01_logik:lichtM_aus doif_hydro01_logik:lichtR_an doif_hydro01_logik:lichtR_aus doif_hydro01_logik:wasser_dauer doif_hydro01_logik:wasser_stunden
   realtime:
     0          08:00:00
     1          18:00:00
     2          10:44:41
   time:
     0          [doif_hydro01_logik:wasser_an]
     1          [doif_hydro01_logik:wasser_aus]
     2          +[doif_hydro01_logik:wasser_takt]
   timeCond:
     0          6
     1          6
     2          6
   timer:
     0          0
     1          0
     2          0
   timers:
     6           0  1  2
   trigger:
   triggertime:
     1575798281:
       localtime  1575798281
       hash:
     1575824400:
       localtime  1575824400
       hash:
     1575874800:
       localtime  1575874800
       hash:
   uiState:
   uiTable:
Attributes:
   alias      hydrokultor 1 automatik
   do         always
   group      helferchen
   icon       helper_doif
   readingList lichtL_an
lichtL_aus
lichtL_auto
lichtM_an
lichtM_aus
lichtM_auto
lichtR_an
lichtR_aus
lichtR_auto
wasser_an
wasser_aus
wasser_stunden
wasser_dauer
wasser_auto
   room       hydroponik
   setList    lichtL_an
lichtL_aus
lichtL_auto
lichtM_an
lichtM_aus
lichtM_auto
lichtR_an
lichtR_aus
lichtR_auto
wasser_an
wasser_aus
wasser_auto
wasser_an
wasser_aus
wasser_stunden
wasser_dauer
wasser_auto

bin schon neugierig, würüber wir gleich herzlich lachen werden *g*
→do↑p!dnʇs↓shit←

amenomade

[$SELF:lichtL_an]
Wenn das eine Eventsteuerung sein soll, dann
[$SELF:"lichtL_an"] oder
["$SELF:lichtL_an"] oder... abhängig vom tatsächlichen Event
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

eigentlich gehts noch dem bspl.:define di_light DOIF ([08:00]) (set switch on) DOELSEIF ([10:00]) (set switch off)nur, dass die zeit halt von dem reading $SELF:lichtM_an kommt

[$SELF:"lichtM_an"] schaut schon mal besser aus - zumindest schaltet er nicht bei jedem doif checkall wieder ein.

hast du da zufällig den richtigen link zur ref noch rum liegen - diese anführungsstriche geschichte ist mir bei zeiten echt neu - muß ich wo überlesen haben.
→do↑p!dnʇs↓shit←

amenomade

Sorry... übersehen.
Ich dachte $SELF:lichtM_an wäre so ein Knopf zum Schalten.
Wenn es eine Zeit ist, musst Du so schreiben:
[[$SELF:lichtL_an]]

Siehe https://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

fux, du warst schneller - hab eben den compi aufgedreht um genau das zu testen *g*
danke aber trotzdem!

tatsache ist wieder mal: ich war blöd - immerhin steuer ich genau auf die art auch z.b. meinen saugbot. hätts nur abschreiben müssen.
→do↑p!dnʇs↓shit←