Hauptmenü

(Erledigt) DOIF negieren

Begonnen von misux, 16 Mai 2022, 14:56:04

Vorheriges Thema - Nächstes Thema

misux

Hi

Ich habe ein einfaches DOIF wo ich eine Bedingung negieren möchte:

([ChrissiHandy] eq "absent" and [geofancy:currLoc_Chrissi] eq "Zuhause" and [?ChrissiDummy] eq "present")
(set ChrissiDummy absent)


Ich würde gerne das Zuhause negieren sodas er immer triggert sobald [geofancy:currLoc_Chrissi] eq "nicht Zuhause" ist...

Ist es mit einem einfachen ! vor dem Zuhause erledigt?
Irgendwie scheint es nicht zu funktionieren...

rabehd

([ChrissiHandy] eq "absent" and [geofancy:currLoc_Chrissi] ne "Zuhause" and [?ChrissiDummy] eq "present")
(set ChrissiDummy absent)


Wie wäre das?
Auch funktionierende Lösungen kann man hinterfragen.

misux

Hmm... habe davon in der Commandref gelesen, habs nur nicht kapiert..

Warum gibt es denn ein "!" zum negieren?

Hmm... Teste mal des "ne" aus. vielen Dank!

Sany

ZitatHmm... habe davon in der Commandref gelesen, habs nur nicht kapiert..

Warum gibt es denn ein "!" zum negieren?

das ist ja nicht unbedingt fhem, sondern Perl, weshalb Du darüber in der commandref eher keine erschöpfenden Erklärungen findest.

Kurzversion:
Vergleich in Perl:
Zahlen in den Variablen $a und $b:
$a == $b (ist gleich?)  (Aufpassen: $a = $b ist eine Zuweisung von $b nach $a, also nach der Zeile ist $a das gleiche wie $b)
$a != $b (ist Nicht gleich?)

Strings/Buchstaben in den Variablen c$ und $d:
$c eq $d (equal, ist gleich?)
$c ne $d (not equal, ist Nicht gleich?)

Langversion: Eingabe von Perl Vergleich Operator compare sollte Dich auf gefühlt ausreichend Seiten führen, wo das bis ins letzte bit erklärt ist.

viel Erfolg!


Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

misux

Klasse! Vielen Dank für die Erklärung!

Das funtzt!  ;D