[GELÖST] Wie geht die Zwiebel weg?

Begonnen von chq, 05 März 2019, 19:21:22

Vorheriges Thema - Nächstes Thema

chq

Hallo,

hab hier ein perlbasiertes DOIF, bei dem mir eine Zwiebel angezeigt wird (siehe Bild). Per Mouseover kann ich über der Zwiebel ( :P ) jedoch bereits ein "idle" erkennen, was auch dem momentanen "state" entspricht. "cmdState" kann ja leider in diesem Fall leider nicht "wie bei einem normal DOIF" gesetzt werden.

Gruß Chris

Das "list":

Internals:
   DEF        ## ==eq !=ne <lt >gt le<= ge>=

## trigger perl ss setzt sonnenstand disable auf idle zurück

## {if([10:00]) {fhem("set HM_rolloEsszimmer pct 10")}} ## schlecht
## {if([10:00]) {fhem_set("HM_rolloEsszimmer pct 10")}} ## gut
## {if([10:00]) {set_Reading("doifState","fhemCmd")}} ## Reading im selben Device ändern, ohne dass Events erzeugt werden

{if (fhem("uptime raw") > 12 ) ## Mit Versatz starten, um eintreffende Meldungen der CCU2 zu ignorieren
{

{if([":fhemCmd"] or ([HM_rolloEsszimmer:""] and [?HM_rolloEsszimmer:control] <= "20")) ## 16.5 Bei fhemCmd, oder wenn morgens händisch erstmalig am Tag der Rollo betätigt wird
{set_State("running"); ## Ersatz für cmdState
set_Reading("doifState","running");
set_Exec("fhemCmdTimer",41,'set_Reading("doifState","idle")')} ## def. Zeit das doifState auf fhemCmd setzen.

elsif([HM_rolloEsszimmer:""] and get_Reading("doifState") eq "idle" and [?HM_rolloEsszimmer:control] > "20") ## 16.5
{set_State("sonnenstDisabled"); ## Ersatz für cmdState
set_Reading("doifState","sonnenstDisabled");
fhem_set("perlSonnenstand disable")}}

{if([23:59] or ["^perl$:^ss$"]) ## "trigger perl ss"
{set_State("idle"); ## Ersatz für cmdState
set_Reading("doifState","idle");
fhem_set("perlSonnenstand enable")}} ## Um 23:59 Uhr: perlSonnenstand aktivieren, da sich perlSonnenstand um 0:00 Uhr selber auf "idle" zurücksetzt.

}
}
   FUUID      5c7e4478-f33f-b9fb-79dd-e240eeeeeb5890a8
   MODEL      Perl
   NAME       perl
   NR         68
   NTFY_ORDER 50-perl
   STATE      idle
   TYPE       DOIF
   VERSION    18706 2019-02-23 21:48:22
   READINGS:
     2019-03-05 19:14:50   block_01        executed
     2019-03-05 19:14:50   doifState       idle
     2019-03-05 19:10:36   mode            enabled
     2019-03-05 19:14:50   state           idle
     2019-03-05 19:10:36   timer_01_c01    05.03.2019 23:59:00
   Regex:
     accu:
     cond:
       :
         0:
           ":fhemCmd" :fhemCmd
           "^perl$:^ss$" ^perl$:^ss$
   condition:
     0          if (fhem("uptime raw") > 12 )  {

{if(::EventDoIf('',$hash,'fhemCmd',0) or (::EventDoIf('HM_rolloEsszimmer',$hash,'',1) and ::ReadingValDoIf($hash,'HM_rolloEsszimmer','control') <= "20"))  {set_State("running");  set_Reading("doifState","running");
set_Exec("fhemCmdTimer",41,'set_Reading("doifState","idle")')} 
elsif(::EventDoIf('HM_rolloEsszimmer',$hash,'',1) and get_Reading("doifState") eq "idle" and ::ReadingValDoIf($hash,'HM_rolloEsszimmer','control') > "20")  {set_State("sonnenstDisabled");  set_Reading("doifState","sonnenstDisabled");
fhem_set("perlSonnenstand disable")}}

{if(::DOIF_time_once($hash,0,$wday) or ::EventDoIf('^perl$',$hash,'^ss$',0))  {set_State("idle");  set_Reading("doifState","idle");
fhem_set("perlSonnenstand enable")}} 
}

   days:
   devices:
     0           HM_rolloEsszimmer
     all         HM_rolloEsszimmer
   helper:
     event      ss
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev perl
     triggerEvents:
       ss
       idle
       doifState: idle
       block_01: executed
     triggerEventsState:
       ss
       idle
       doifState: idle
       block_01: executed
   internals:
   intervalfunc:
   itimer:
   localtime:
     0          1551826740
   perlblock:
     0         
   readings:
   realtime:
     0          23:59:00
   time:
     0          23:59:00
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   trigger:
     all         HM_rolloEsszimmer
   triggertime:
     1551826740:
       localtime  1551826740
       hash:
   uiState:
   uiTable:
Attributes:
   alias      doif_SonnenstandPerl
   stateFormat state
So einfach wie möglich, so kompliziert wie nötig

chq

#1
Device gelöscht und neu angelegt- selbes Problem.  :-\

Edit: Oh je- ich hab die Lösung. Das DOIF darf nicht "perl" heissen.  ::) Da muss man auch erstmal draufkommen- hilfe! :-\
So einfach wie möglich, so kompliziert wie nötig