FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AET_FHEM am 06 Oktober 2015, 11:48:09

Titel: mehrere Abfragen mit if
Beitrag von: AET_FHEM am 06 Oktober 2015, 11:48:09
Hallo,

kann ich mit if mehrere kombonenten abfragen?

zB.: habe ich 3 XBMC´s am laufen und einen bewegungs melder --> jetzt will ich wenn eine bewegung stat findet "motion" abfragen welcher XBMC an ist (das mach ich mit Ping und present und absent => das klappt auch)

=> Aufgabenstellung
wenn motion => dann
- if XBMC1 => present => set bla bla
- if XBMC2 => present => set bla bla
- if XBMC3 => present => set bla bla
--> wenn XBMC1 oder 2 nicht online ist sollte das trotzdem funktunieren ...

Ich habe mir das so vorgestellt  ;D :
define nfy_CAM_I_motion notify DY_CAM_I:motion {\
if ( Value("pc1") ne "absent") {fhem ("set XBMC1 addon script.CAM_I id 1")\
if ( Value("pc2") ne "absent") {fhem ("set XBMC2 addon script.CAM_I id 1")\
if ( Value("pc3") ne "absent") {fhem ("set XBMC3 addon script.CAM_I id 1")\
}

--> klappt leider nicht => ich habe die klammern schon umgestellt und geändert nur bekomm ich das nicht hin ... :o
Titel: Antw:mehrere Abfragen mit if
Beitrag von: Wuppi68 am 06 Oktober 2015, 12:29:09

dann sollte es schon funktionieren ....

Zitat=> Aufgabenstellung
wenn motion => dann
- if XBMC1 => present => set bla bla
- if XBMC2 => present => set bla bla
- if XBMC3 => present => set bla bla

--> wenn XBMC1 oder 2 nicht online ist sollte das trotzdem funktunieren ...

Ich habe mir das so vorgestellt  ;D :
define nfy_CAM_I_motion notify DY_CAM_I:motion {\
if ( Value("pc1") ne "absent") {fhem ("set XBMC1 addon script.CAM_I id 1")\
if ( Value("pc2") ne "absent") {fhem ("set XBMC2 addon script.CAM_I id 1")\
if ( Value("pc3") ne "absent") {fhem ("set XBMC3 addon script.CAM_I id 1")\
}


define nfy_CAM_I_motion notify DY_CAM_I:motion {
if ( Value("pc1") ne "absent") fhem ("set XBMC1 addon script.CAM_I id 1");
if ( Value("pc2") ne "absent") fhem ("set XBMC2 addon script.CAM_I id 1");
if ( Value("pc3") ne "absent") fhem ("set XBMC3 addon script.CAM_I id 1");
}

Code für die WebUI
Titel: Antw:mehrere Abfragen mit if
Beitrag von: AET_FHEM am 06 Oktober 2015, 16:01:26
Hey Wuppi

danke für die guten Tipps habe die COnfig erstmal umgestellt das mit der Formatierung der Gänsefüschen passiert wenn man in Word versucht die Cods zu schreiben :-(

hab dein Vorschlag getestet leider ohne erfolg im Log steht:
return value: Unknown command {
if, try help.
Unknown command if, try help.
Unknown command if, try help.
Unknown command }
Titel: Antw:mehrere Abfragen mit if
Beitrag von: Wuppi68 am 06 Oktober 2015, 22:24:50
paste das mal so in den DEF Abschnitt in der WebUI ...


define nfy_CAM_I_motion notify DY_CAM_I:motion {
  if ( Value("pc1") ne "absent") fhem ("set XBMC1 addon script.CAM_I id 1");
  if ( Value("pc2") ne "absent") fhem ("set XBMC2 addon script.CAM_I id 1");
  if ( Value("pc3") ne "absent") fhem ("set XBMC3 addon script.CAM_I id 1");
}


der Coe sieht auf den ersten Blick gleich aus, es ist aber jetzt ein Leerzeichen nach der Klammer auf (also 2 vor dem if :-) )
Titel: Antw:mehrere Abfragen mit if
Beitrag von: AET_FHEM am 07 Oktober 2015, 16:05:35
Hallo Wuppi

--> geht immer noch nicht im Log steht
PERL WARNING: Bareword found where operator expected at (eval 9297) line 4, near ") fhem"
2015.10.07 16:02:01 3: eval: {
  if ( Value("pc1") ne "absent") fhem ("set XBMC1 0815");
  if ( Value("pc2") eq "absent") fhem ("set XBMC2 0815");
  if ( Value("pc3") ne "absent") fhem ("set XBMC3 0815");


return value: syntax error at (eval 9297) line 2, near ") fhem "
syntax error at (eval 9297) line 3, near ") fhem "
syntax error at (eval 9297) line 4, near ") fhem "

--> kann doch nicht so schwehr sein ...
Titel: Antw:mehrere Abfragen mit if
Beitrag von: Wuppi68 am 07 Oktober 2015, 18:03:45
geb mal bitte

{Value("pc")}

in die Ausführungszeile ein oder dem Telnet Prompt ein

klappt das?, weil bei mir funktioniert folgender Part im DEF Teil der GUI Problemlos

hm.remote.1.2
{
  if (ReadingsVal("hm.motion.1", "brightness", "50") < 40)
    { fhem "set hm.dim.1 12"  }
   else
    { fhem "set hm.dim.1 off" }
  if (ReadingsVal("harmony.hub.1", "activity", "undefined") eq  "TV")
    { fhem "set harmony.hub.1 off"}
  else
    { fhem "set harmony.hub.1 activity TV"}
}
Titel: Antw:mehrere Abfragen mit if
Beitrag von: AET_FHEM am 07 Oktober 2015, 18:57:38
so geht's nicht {Value sondern { fhem

AKT
{
  if (Value("pc1") ne "absent")
   { fhem "set XBMC1 $EVENT"}
  if (Value("pc2") eq "on")
   { fhem "set XBMC2 $EVENT"}
  if (Value("pc3") ne "absent")
   { fhem "set XBMC3 $EVENT"}
}

--> Super Danke, dein Part hat mich auf die Idee gebracht :-)