Sollte das Thema schon irgendwo behandelt worden sein, seht es mir bitte nach, aber da es hier weitestgehend um Sonderzeichen geht, könnte ich nur schwer suchen und habe nichts gefunden.
Bei Zeitspannen kann man bei Bedingungen auslösen mit z.B. [8:00-12:00] oder eben NICHT innerhalb der Zeitspanne mit z.B.![8:00-12:00].
Bei $we bedeutet !$we KEIN Wochenende/Feiertag
Das finde ich sehr nützlich und vereinfacht die Eingabe von Bedingungen sehr.
Ist es möglich, die Abfrage von Dummies wie z.B. [Anwesend] auch entsprechend zu vereinfachen, also statt [Anwesend] ne "true" kurz ![Anwesend] zuschrieben, das würde die Eingabe wiederum sehr verkürzen und vereinfachen. Gerade bei der Abfrage mehrerer Bedingungen.
Sollte das nicht möglich sein, könnte man das ggf als Verbesserungsvorschlag aufnehmen.
[Bedingung] könnte schalten auf übliche Werte wie true, wahr, ja oder 1
![Bedingung] auf alles andere oder eben auf false, falsch, nein oder 0
Danke und Grüße
Tobster
Verstehe ich nicht.
Anwesenheit wird doch abgefragt in Form von
Device:Wert eq 'present'
Dem zu Folge wäre unwahr
Device:Wert ne 'present' oder eben
Device:Wert eq 'absent'
Also entweder verstehe ich Dein Anliegen nicht oder Du hast Dich da in was vertan.
Zitat von: Tobster1977 am 07 Dezember 2018, 12:10:25
Sollte das Thema schon irgendwo behandelt worden sein, seht es mir bitte nach, aber da es hier weitestgehend um Sonderzeichen geht, könnte ich nur schwer suchen und habe nichts gefunden.
Bei Zeitspannen kann man bei Bedingungen auslösen mit z.B. [8:00-12:00] oder eben NICHT innerhalb der Zeitspanne mit z.B.![8:00-12:00].
Bei $we bedeutet !$we KEIN Wochenende/Feiertag
Das finde ich sehr nützlich und vereinfacht die Eingabe von Bedingungen sehr.
Ist es möglich, die Abfrage von Dummies wie z.B. [Anwesend] auch entsprechend zu vereinfachen, also statt [Anwesend] ne "true" kurz ![Anwesend] zuschrieben, das würde die Eingabe wiederum sehr verkürzen und vereinfachen. Gerade bei der Abfrage mehrerer Bedingungen.
Sollte das nicht möglich sein, könnte man das ggf als Verbesserungsvorschlag aufnehmen.
[Bedingung] könnte schalten auf übliche Werte wie true, wahr, ja oder 1
![Bedingung] auf alles andere oder eben auf false, falsch, nein oder 0
Danke und Grüße
Tobster
Die Verneinung mit ! ist nicht DOIF-spezifisch, sondern ein Bestandteil von Perl.
[Anwesend] ist dann wahr, wenn in Anwesend etwas ungleich Null ist oder nicht leer ist.
Damit ist ![Anwesend] wahr, wenn in Anwesend 0 drin steht oder gar nichts (leer).
[Anwesend] ne "true" entspricht dann, !([Anwesend] eq "true"). Neben ! kennt Perl auch den Operator
not.
Also, was geht oder wie es geht, hat weniger mit DOIF zu tun, als viel mehr mit Perl und da kann man nicht dran rütteln.
Es geht mir um die Vereinfachung.
Z. B. bei meinen Rollläden fahre ich sie auf 50%, wenn einer von meinen 3 Dummies Beschattung, Blickschutz oder Regenschutz "on" ist.
Schreibweise derzeit:
(([Beschattung] eq "on") or ([Blickschutz] eq " on") or ([Regenschutz] eq " on")) ...
DOLESEIF
(([Beschattung] eq "off") and ([Blickschutz] eq " off") and ([Regenschutz] eq " off")) ...
...
Schöner wäre
([Beschattung] or [Blickschutz] or [Regenschutz])
DOELSEIF
(![Beschattung] and![Blickschutz] and![Regenschutz])
...
Anmerkung: Aufgrund weiterer Bedingungen wäre ein einfaches DOELSE nicht möglich
Hoffe, mein Anliegen ist jetzt klarer ;)
@Damian:
Dann würde mein Anliegen klappen, wenn ich statt on /off 0/1 verwende?
Danke schon einmal.
Zitat von: Tobster1977 am 07 Dezember 2018, 12:45:06
Es geht mir um die Vereinfachung.
Z. B. bei meinen Rollläden fahre ich sie auf 50%, wenn einer von meinen 3 Dummies Beschattung, Blickschutz oder Regenschutz "on" ist.
Schreibweise derzeit:
(([Beschattung] eq "on") or ([Blickschutz] eq " on") or ([Regenschutz] eq " on")) ...
DOLESEIF
(([Beschattung] eq "off") and ([Blickschutz] eq " off") and ([Regenschutz] eq " off")) ...
...
Schöner wäre
([Beschattung] or [Blickschutz] or [Regenschutz])
DOELSEIF
(![Beschattung] and![Blickschutz] and![Regenschutz])
...
Anmerkung: Aufgrund weiterer Bedingungen wäre ein einfaches DOELSE nicht möglich
Hoffe, mein Anliegen ist jetzt klarer ;)
Das kannst du über das Attribut DOIF_Readings abdecken:
attr DOIF_Readings Beschattung:[Beschattung] eq "on",Regenschutz:[Regenschutz] eq " on")
Damit kann man im DOIF angeben:
DOIF ([$SELF:Baschattung] or [$SELF:Regenschutz])...
oder z. B.
DOIF (![$SELF:Baschattung] and ![$SELF:Regenschutz])...
oder z. B.
DOIF (!([$SELF:Baschattung] or [$SELF:Regenschutz]))...
Oder wie du schon selbst festgestellt hast: einfach 0 bzw. 1 in jeweiligen Dummy ablegen, dann braucht man den Umweg über DOIF_Readings nicht.
Super, danke