mit "get" Wert auslesen und in einer If Schleife verarbeiten

Begonnen von sceadm, 24 November 2013, 20:43:06

Vorheriges Thema - Nächstes Thema

sceadm

Hallo in die Runde,

fhem> {fhem("get DM500 power")}
off
fhem> {if({fhem("get DM500 power")} == "off") {fhem("{Log 1, 'Status ist OFF'}")}}

Aber es wird aber kein  Log geschrieben. Die Bedingung "gleich off" schein nicht zu greifen. Nur die Frage warum nicht, wenn doch ein "get DM500 power" ein off liefert.

Modul 70_ENIGMA2.pm

Internals:
   CFGFN      /opt/fhem/FHEM/enigma2.cfg
   CHANGED   
   DEF        192.168.178.38 80 60
   INTERVAL   60
   NAME       DM500
   NR         142
   STATE      off
   TYPE       ENIGMA2
   Readings:
     2013-11-24 19:42:30   acg             0
     2013-11-24 19:42:30   apid            -
     .
     . 
     .
     2013-11-24 19:42:30   pmtpid          -
     2013-11-24 19:42:29   power           off

Icebear

Hi,

{if (ReadingsVal("DM5000","power","nix") eq "off") {....}}

ReadingsVal liest den wert aus, falls kein Wert vorhanden wird in diesem fall "nix" zurückgegeben



Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

sceadm

sieht nicht nur schöner aus, sondern funktioniert auch.

Danke

Rohan

Hi,

nur für's nächste Mal und damit du auch den Grund kennst...

Zitat von: sceadm am 24 November 2013, 21:12:00... funktioniert auch.

Ja, denn Werte wie "off", "on" usw. (also Strings/Zeichenketten) vergleicht man mit 'eq' (= equal => gleich) bzw. 'ne' (= not equal => ungleich) statt wie bei Zahlen per '==' bzw. '!='.


if({fhem("get DM500 power")} == "off")


hätte also lauten müssen


if({fhem("get DM500 power")} eq "off")


(unterstellt, dass sonstige Fehler latürnich nicht vorhanden sind ;) ).

In diese "Pfütze" tappe ich aber auch noch ab und zu rein ;)

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor