FHEM Forum

FHEM => fhem-users => Thema gestartet von: ArminK am 23 November 2012, 09:49:05

Titel: Hilfe - if macht nicht das was es soll (oder ich bin zu doof, was wahrscheinlicher ist)
Beitrag von: ArminK am 23 November 2012, 09:49:05
                                                           

Hallo zusammen,

habe folgendes notify in fhem.cfg:
define act_k_tuer1_stat notify k_tuer1_stat {\
 if ("%" eq "on") {\
          fhem(Log 3, "Status k_tuer1_stat ist on");;\
    if ($value{sa_7} eq "off") {\
               fhem("set sa_7 on")\
        }\
    if ($value{xx_hof} eq "off") {\
               fhem("set xx_hof on")\
        }\
   }\
   else {\
          fhem(Log 3, "Status k_tuer1_stat ist off");;\
    if ($value{sa_7} eq "on") {fhem("set sa_7 off")};;\
    if ($value{k_tuer1_stat} eq "off" && $value{k_tuer2_stat} eq "off" &&
$value{g_tor_stat} eq "off") {\
          fhem(Log 3, "Summenstatus hof ist off");;\
         fhem(Log 3, "Status xx_hof ist $value{xx_hof}");;\
        if ("$value{xx_hof}" ne "off") {fhem("set xx_hof off")};;\
      }\
   }\
}

Ins Log wird aber das geschrieben:

2012.11.23 09:36:25 3: Status k_tuer1_stat ist off
2012.11.23 09:36:25 3: Summenstatus hof ist off
2012.11.23 09:36:25 3: Status xx_hof ist off
2012.11.23 09:36:25 2: dummy set xx_hof off

2012.11.23 09:36:25 2: dummy set xx_hof off

Jetzt meine Frage: warum setzt fhem xx_hof auf off obwohl xx_hof schon off
ist? Hab es anstatt mit ne auch schon mit eq "on" probiert - gleiches Spiel!

Bin mal gespannt ob jemand weiß was da bei mir quer läuft. Vielen Dank
schon mal im Vorraus!

Gruss aus Heidelberg
Armin

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Hilfe - if macht nicht das was es soll (oder ich bin zu doof, was wahrscheinlicher ist)
Beitrag von: Guest am 23 November 2012, 10:22:11
Originally posted by: <email address deleted>

Ich habe mit der syntax value(...) auch so meine Probleme und verwende
statt dessen ReadingsVal(...)

Letzteres finde ich "logischer" und entspricht wohl auch der zukünftigen
Vorstellung von Rudolf, wie es implementiert sein soll.

Also

  if (ReadingsVal("sa_7","state","") eq "on") {fhem("set sa_7 off")};;\


Probier mal aus... :-)
VG
Ralf

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Hilfe - if macht nicht das was es soll (oder ich bin zu doof, was wahrscheinlicher ist)
Beitrag von: ArminK am 23 November 2012, 15:58:01
                                                           

Danke für den (leider erfolglosen) Tip!
Ich habe jetzt mal alles auf ReadingsVal umgestellt also sieht das in der
fhem.cfg so aus:

define act_k_tuer1_stat notify k_tuer1_stat {\
 if ("%" eq "on") {\
          fhem(Log 3, "Status k_tuer1_stat ist on");;\
    if (ReadingsVal("sa_7","state","") eq "off") {\
               fhem("set sa_7 on")\
        }\
    if (ReadingsVal("xx_hof","state","") eq "off") {\
               fhem("set xx_hof on")\
        }\
   }\
   else {\
          fhem(Log 3, "Status k_tuer1_stat ist off");;\
    if (ReadingsVal("sa_7","state","") eq "on") {fhem("set sa_7 off")};;\
    if (ReadingsVal("k_tuer1_stat","state","") eq "off" &&
ReadingsVal("k_tuer2_stat","state","") eq "off" &&
ReadingsVal("g_tor_stat","state","") eq "off") {\
              fhem(Log 3, "Summenstatus hof ist off");;\
         fhem(Log 3, "Status xx_hof ist");;\
         fhem(Log 3, ReadingsVal("xx_hof","state",""));;\
        if (ReadingsVal("xx_hof","state","") eq "on") {fhem("set xx_hof
off")};;\
      }\
   }\
}

Effekt hat es alerdings keinen, meine Variable xx_hof wird immer noch auf
off gesetzt obwohl sie schon den state off hat (und das sogar zweimal
hintereinander (siehe log unten). Kann es damit zusammenhängen, dass XX_hof
kein echtes Gerät ist sondern nur eine Variable, also dummy?
Ich verstehe es echt nicht, Du?

Hier das Log:

2012.11.23 15:51:05 3: Status k_tuer1_stat ist off
2012.11.23 15:51:05 3: Summenstatus hof ist off
2012.11.23 15:51:05 3: Status xx_hof ist
2012.11.23 15:51:05 3: off
2012.11.23 15:51:05 2: dummy set xx_hof off
2012.11.23 15:51:05 2: dummy set xx_hof off
2012.11.23 15:53:01 2: dummy set xx_dachfenster off
2012.11.23 15:53:05 3: Status k_tuer1_stat ist off
2012.11.23 15:53:05 3: Summenstatus hof ist off
2012.11.23 15:53:05 3: Status xx_hof ist
2012.11.23 15:53:05 3: off
2012.11.23 15:53:05 2: dummy set xx_hof off
2012.11.23 15:53:06 2: dummy set xx_hof off


Grüße
Armin

Am Freitag, 23. November 2012 10:22:12 UTC+1 schrieb dou...@m1n1.de:
>
>
>
> Ich habe mit der syntax value(...) auch so meine Probleme und verwende
> statt dessen ReadingsVal(...)
>
> Letzteres finde ich "logischer" und entspricht wohl auch der zukünftigen
> Vorstellung von Rudolf, wie es implementiert sein soll.
>
> Also
>
>   if (ReadingsVal("sa_7","state","") eq "on") {fhem("set sa_7 off")};;\
>
>
> Probier mal aus... :-)
> VG
> Ralf
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com