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
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 :)
---
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) }
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
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)
Perfekt, geprüft und Fehlermeldung bleibt aus ;)
Danke dir