[Gelöst] at mit 2 if-Bedinungen funktioniert nicht

Begonnen von Cobra, 28 Juni 2025, 10:29:36

Vorheriges Thema - Nächstes Thema

Cobra

Hey zusammen, ich stehe aktuell auf dem Schlauch wo ich den Fehler machen

Ich habe 2 AT-Befehle mit je 2 if-Bedinungen.


Einmal soll etwas am Wochenende ausgeführt werden
*09:00:00 {
if ($we && ReadingsVal("Beetsensor","humidity-humidity",0) < 75) {
fhem ("set HUEDevice35 on-for-timer 900");
}
}

Einmal etwas unter der Woche
*08:00:00 {
if (!($we) && ReadingsVal("Beetsensor","humidity-humidity",0) < 75) {
fhem ("set HUEDevice35 on-for-timer 900");
}
}


Wochenende klappt, beim Code für "unter der Woche" kommt beim Ausführen im Log
AT_BeetbewaesserungMorgensWerktag: Unknown command {
if, try help.
Unknown command }
}

, try help.


Unterschied ist nur die Uhrzeit wann der Befehl ausgeführt werden soll und eben die Bedingung ob Wochenende ist oder nicht.
Wo hab ich da was falsch gemacht?

Grüße
Cobra
FHEM in Docker auf Synology, CCU3,
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki

betateilchen

Kommt drauf an, wo Du das eingegeben hast.

Aber

*08:00:00 { if (!$we && ReadingsVal("Beetsensor","humidity-humidity",0) < 75) { fhem ("set HUEDevice35 on-for-timer 900") } }
funktioniert bei mir einwandfrei. (Beachte die weggelassenen Klammern um $we und den weggelassenen Strichpunkt - beides ist überflüssig)


Offtopic: man könnte übrigens beide at auch zu einem einzigen kombinieren :)


---
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#2
Zitat von: Cobra am 28 Juni 2025, 10:29:36Unterschied ist nur die Uhrzeit wann der Befehl ausgeführt werden soll und eben die Bedingung ob Wochenende ist oder nicht.

Die Uhrzeit hängt vom Wochenende ab.

Zitat von: betateilchen am 28 Juni 2025, 11:28:07Offtopic: man könnte übrigens beide at auch zu einem einzigen kombinieren

defmod d1 at *08:00:00 { my $s=$we?3600:0.1;; fhem ("sleep $s;; set HUEDevice35 on-for-timer 900") if (ReadingsVal("Beetsensor","humidity-humidity",0) < 75) }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Cobra

Sry vergessen zu erwähnen, hab das aus nem List rauskopiert aus dem DEF-Bereich

Hier das komplette List

Internals:
   CFGFN     
   COMMAND    {
if (!($we) && ReadingsVal("Beetsensor","humidity-humidity",0) < 75) {
fhem ("set HUEDevice35 on-for-timer 900");
}
}

   DEF        *08:00:00 {
if (!($we) && ReadingsVal("Beetsensor","humidity-humidity",0) < 75) {
fhem ("set HUEDevice35 on-for-timer 900");
}
}

   FUUID      6859c359-f33f-9b38-8058-20b4c5ea3107668a
   NAME       AT_BeetbewaesserungMorgensWerktag
   NR         4101
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 08:00:00
   TIMESPEC   08:00:00
   TRIGGERTIME 1751176800
   TRIGGERTIME_FMT 2025-06-29 08:00:00
   TYPE       at
   eventCount 1
   READINGS:
     2025-06-28 08:00:00   state           Next: 08:00:00
   hmccu:
Attributes:
   room       System->Timer

Werd die Klammern um das $we entfernen und den Strichpunkt mal weglassen und schauen ob er dann am Montag auslöst.
Danke erst einmal für die Hilfe und ein schönes Wochenende
Grüße
Cobra
FHEM in Docker auf Synology, CCU3,
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki

betateilchen

Zitat von: Cobra am 28 Juni 2025, 11:37:49und schauen ob er dann am Montag auslöst.

Ob Dein at syntaktisch richtig ist, kannst Du auch heute schon prüfen.
Dafür kannst Du das at mit "set AT_BeetbewaesserungMorgensWerktag execNow" manuell starten.
Wenn keine Fehlermeldung kommt, ist alles ok.

Übrigens: "Werktag" beinhaltet nach deutschem Recht immer auch den Samstag, es sei denn der Samstag ist ein gesetzlicher Feiertag  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Cobra

Perfekt, geprüft und Fehlermeldung bleibt aus   ;)

Danke dir
FHEM in Docker auf Synology, CCU3,
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki