Hauptmenü

IF DOIF abfragen

Begonnen von stefan-dd, 10 Juli 2017, 20:01:26

Vorheriges Thema - Nächstes Thema

stefan-dd

Ich habe mit folgender Abfrage ein Problem. Es sollen die beiden DOIF abgefragt werden, stehen beide auf cmd_2 soll der if Zweig verarbeitet werden.
Irgendwie hängt es an der doppelten Abfrage?

if(Value("Beschattung_sued:state") eq "cmd_2" && Value("Beschattung_sued70:state") eq "cmd_2")

Was mache ich falsch?

CoolTux

Bitte ein list vom gesamten DOIF

list ist ein FHEM Befehl
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

stefan-dd

Habe den Fehler gefunden. Den DOIF Positionen hatte ich Namen zugeordnet, diese muss ich abfragen. Statt cmd_2 -> öffnen.

rabehd

Ich hätte da mal in die Commadref geschaut  :(

ZitatUm auf die Gerätestati/Attribute zuzugreifen benutzen Sie bitte die folgenden Funktionen:

    Value(<devicename>)
    gibt den Status eines Gerätes zurück (entsprechend dem Ausdruck in Klammern, den Sie beim List-Befehl sehen).

    OldValue(<devicename>)
    OldTimestamp(<devicename>)
    gibt den vorherigen Wert/Zeitstempel des Gerätes zurück.

    ReadingsVal(<devicename>,<reading>,<defaultvalue>)
    Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt von "list device" angezeigt wird)

state ist ein Reading, also ReadingsVal.
STATE wiederrum wird mit Value abgefragt.

Den Syntax Value(device:Reading) kemne ich nicht. Vielleicht funktionert er?
Eine einfache Prüfung wäre (Value("Beschattung_sued:state") im Log auszugeben, dann wüßte man ob das passt.

Auch funktionierende Lösungen kann man hinterfragen.