MQTT publish nur nach Sonnenaufgang bis Sonnenuntergang

Begonnen von Alex_S, 13 Juli 2023, 07:47:54

Vorheriges Thema - Nächstes Thema

Beta-User

Mach bitte noch die äußeren Klammern weg. Scheint hier zwar nicht falsch zu sein, ist m.E. aber unsauber und daher in der jetzigen Form (noch) kein gutes Beispiel.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

Die Klammern sind an dieser Stelle völlig in Ordnung.

Hör doch mal auf, die Leute unnötig zu verwirren, insbesondere, wenn Du oben noch mit "Welpenschutz" argumentierst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

expression={::isday()?'OK':undef}....damit keine Verwirrung entsteht zur Klarstellung, welches Klammerpaar m.E. unnötig ist.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

#18
Das habe ich schon verstanden, aber Du hast trotzdem nicht grundsätzlich Recht.

Der Ausdruck

(main::isday())?'OK':''

ist lediglich eine Kurzform von

(main::isday() == 1)?'OK':''

was wiederum eine Kurzform ist von

if (main::isday() == 1) {
return 'OK';
} else {
return '';
}

Weder in der zweiten oder in der dritten Variante würde man auf die Klammern verzichten.

Dass man in der ersten Variante die Klammern (ausnahmsweise) weglassen darf (!), macht ihre Verwendung noch lange nicht falsch.

Für Anfänger ist es eine einfache Regel, sich zu merken, dass man logische Vergleiche in eine Klammer packt. Wenn man das konsequent tut, hat man es an vielen weiteren Stellen, wo man vielleicht komplexere Vergleiche hat, erheblich einfacher.

Soviel von meiner Seite zum Thema "Welpenschutz".
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

ZitatDass man in der ersten Variante die Klammern (ausnahmsweise) weglassen darf (!), macht ihre Verwendung noch lange nicht falsch.
Es ist nicht "ausnahmsweise", es hat was mit der Auswertereihenfolge der Operatoren zu tun: https://www.mathe2.uni-bayreuth.de/perl/GK/skalareDaten.htm#Rangfolge_der_Operatoren
Ob man zusaetziche Klammer verwendet, weil man unsicher ist, ist mAn Geschmacksache.
Man sollte es mit den Klammern nur nicht uebertreiben, weil es dann unleserlich wird.
Und sowas haben wir hier in etlichen Beispielen gesehen, z.Bsp. Perl-Anweisungen jeweils in {} einzuschliessen, statt sie durch ; zu trennen.

betateilchen

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