Gibt es nicht am Freitag !$wday == 5

Begonnen von heinzfo, 20 Juli 2016, 18:22:16

Vorheriges Thema - Nächstes Thema

heinzfo

Hallo

In einem notify wollte ich , nicht am Freitag !$wday == 5 verwenden.
Ein Test zeigt das es so nicht geht.

Gibt es einen anderen Weg?

Grüße
Heinz

Otto123

#1
!($wday == 5)
Also zumindest denke ich so, erst vergleichen dann negieren. Oder passiert das ohne Klammern auch?

Funktioniert bei mir {!($wday == 5)} liefert 1 in der Kommandozeile {!($wday == 3)} liefert null - es ist Mittwoch  8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

betateilchen

!$wday negiert bereits den Wert, der in der Variablen steckt. An 6 von 7 Tagen wird daraus also eine Null. Und diese 0 wird danach gegen 5 verglichen... Super clever  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

heinzfo

Es passiert ohne Klammer auch.
Ja klar, habe es auch mit 3 Mittwoch getestet, letztendlich soll es der Freitag sein.
!= wie ist das gemeint?

Notify wird am Mittwoch ausgeführt, dass wollte ich nicht!
(!$we || !$wday == 3) && {...}

Notify wird auch am Mittwoch ausgeführt, das ist in Ordnung.
(!$we || !$wday == 5) && {...}





JoWiemann

Lies doch bitte noch mal den Beitrag von Betateilchen und achte auf die Bindung der Operatoren:

!variable ist an variable gebunden
!() an den Ausdruck in der Klammer

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

heinzfo

Ich habe das getestet, löst auch am Mittwoch aus!
Was mache ich falsch?

*23:00:00 {if (!$we || !($wday == 3)) { fhem "set LenovoYoga2Pro screen off" }}

Otto123

Du änderst plötzlich Deine Aufgabe ohne zu beschreiben was Du willst!?
(!$we || !($wday == 3))

Nicht am Wochenende oder nicht am Mittwoch --> 1 oder 0 --> ist 1
Was willst Du erreichen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

heinzfo

Wieder was gelernt, so geht es jetzt!

*23:00:00 {if (!$we && !($wday == 3)) { fhem "set LenovoYoga2Pro screen off" }}

Danke Euch!

igami

Zitat von: heinzfo am 20 Juli 2016, 21:33:53
!= wie ist das gemeint?
Es gibt noch mehr Vergleichsoperatoren als ==
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

JoWiemann

Und ergibt sich aus der "Übersetzung":

! dedeutet "Nicht"
= bedeutet "Gleich"

Ergibt : nicht gleich, oder ungleich :-)



Grüße Jörg

Gesendet von iPad mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

heinzfo

Zitat von: JoWiemann am 21 Juli 2016, 08:46:10
Und ergibt sich aus der "Übersetzung":

! dedeutet "Nicht"
= bedeutet "Gleich"

Ergibt : nicht gleich, oder ungleich :-)



Grüße Jörg

Gesendet von iPad mit Tapatalk
Ja, so geht es auch hab's getestet, muss aber in Klammern stehen.
($wday != 5)

Gesendet von meinem GT-I9505 mit Tapatalk


JoWiemann

Ja, auch hier gilt: Es gibt halt Bindungsregeln, wie in der Mathematik: Punkt vor Strich, Links nach Rechts.
Durch Klammern werden die Bindungsregeln übersteuert: Erst Klammern, dann ..


Grüße Jörg

Gesendet von iPad mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Bei mehr als zwei Vergleichsgrößen gilt: lieber ein Paar Klammern zuviel als ein Paar zuwenig  8)
Und die Sprache der LOGIK bezieht sich auf die EINS/WAHR und nicht auf die NULL.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

marvin78

Hm. Das mit den Klammern würde ich so nicht unterschreiben. Zu viele Klammern verwirren nur und machen das Debugging schwer. Man sollte verstehen, was man da tut, dann weißt man auch, wie man klammern muss. Am besten hilft hier, die Bedingungen in einen Satz mit bekannten Elementen umzuwandeln, dann kommt man relativ schnell auf die richtige Logik.