Hallo!
Ich habe da ein Problem mit einem DOIF.
Und zwar geht es darum, das ich den Kalender nutze, um meinen Adventsbeleuchtung zu steuern.
Im Device "BW_Feiertag" steht im Staus z.B. "URLAUB, 1.Advent"
Nun möchte ich, das mein Rolladen im Schlafzimmer um 21:30 Uhr dann zu geht, wenn Advent auf ja steht, Frühschuicht auf Früh und BW_Feiertag NICHT auf Urlaub steht.
Dazu habe ich die folgende Zeile gebastelt:
DOELSEIF ([21:30] and [?advent] eq "ja" and [BW_Feiertag] ne "URLAUB" and [?Schicht_dummy] eq "Frueh") (set sz_Weihnacht off)
Problem bei der Zeile ist jetzt, das diese nur Ausgeführt wird, wenn im Device "BW_Feiertag" im Status NUR "URLAUB" steht. Steht noch ein weiter Feiertag wie z.B. "1. Advent" dabei, triggert die Doif Zeile, was sie ja nicht soll.
Wie bekomme ich das richtig hin?
Zitat von: Toto1973 am 30 November 2020, 10:30:22
Hallo!
Ich habe da ein Problem mit einem DOIF.
Und zwar geht es darum, das ich den Kalender nutze, um meinen Adventsbeleuchtung zu steuern.
Im Device "BW_Feiertag" steht im Staus z.B. "URLAUB, 1.Advent"
Nun möchte ich, das mein Rolladen im Schlafzimmer um 21:30 Uhr dann zu geht, wenn Advent auf ja steht, Frühschuicht auf Früh und BW_Feiertag NICHT auf Urlaub steht.
Dazu habe ich die folgende Zeile gebastelt:
DOELSEIF ([21:30] and [?advent] eq "ja" and [BW_Feiertag] ne "URLAUB" and [?Schicht_dummy] eq "Frueh") (set sz_Weihnacht off)
Problem bei der Zeile ist jetzt, das diese nur Ausgeführt wird, wenn im Device "BW_Feiertag" im Status NUR "URLAUB" steht. Steht noch ein weiter Feiertag wie z.B. "1. Advent" dabei, triggert die Doif Zeile, was sie ja nicht soll.
Wie bekomme ich das richtig hin?
probiere mal:
DOELSEIF ([21:30] and [?advent] eq "ja" and substr([BW_Feiertag],0,6) ne "URLAUB" and [?Schicht_dummy] eq "Frueh") (set sz_Weihnacht off)
Nur mal zum Verständnis, finde es auf die Schnelle nicht, was bewirkt der Befehl substr([BW_Feiertag],0,6) ne "URLAUB"
?
Ich werde testen und Bescheid geben.
substr([BW_Feiertag],0,6) ne "URLAUB"
substr -> Teilstring
Anfangen bei 0
Länge: 6
Heißt: "schneidet" die ersten 6 Zeichen aus einem String...
Was ist "auf die Schnelle"?
Google: "Perl substr" -> https://perldoc.perl.org/functions/substr
Gruß, Joachim
Vielen Dank!
So wie das aussieht, klappt das Ganze so. Mal warten, ob es auf dauer funktioniert.
Zitat von: Toto1973 am 01 Dezember 2020, 23:49:36
Vielen Dank!
So wie das aussieht, klappt das Ganze so. Mal warten, ob es auf dauer funktioniert.
Naja, solange halt URLAUB wenn vorhanden immer vorne dran steht...
Wenn das auch mal "durcheinander" sein kann, dann wird es wohl eher auch mal nicht gehen... ;)
Gruß, Joachim
Ja, das ist richtig!
Seltsamerweise steht "URLAUB" immer vorne, egal was ich sonst in den Kalender eintrage. Von daher sollte es so funktionieren!
Ansonsten geht auch
[BW_Feiertag] =~ "URLAUB"
Dann ist die Reihenfolge egal.
Da du eh eine Zeit als Trigger hast, würde ich aber [?BW_Feiertag] schreiben.