Wie elegant DoIf saisonabhängig aktivieren bzw. deaktivieren?

Begonnen von teufelchen, 08 Februar 2019, 12:39:01

Vorheriges Thema - Nächstes Thema

teufelchen

Hallo,

ich habe einige schaltbare Steckdosen, die Saisonabhängig mit unterschiedlichen DoIf verscheidenes Schaltverhalten ausführen.

Eine Außensteckdose schaltet im Sommer einen Springbrunnen ein, wenn es hell ist und Jemand zu Hause ist.
Die gleiche Steckdose schaltet im Winter eine Weihnachtsbeleuchtung die wenn es dunkel ist angeht.

Gelöst habe ich dies mit zwei unabhängigen DoIf Defenitionen.

Nun suche ich eine elegante Lösung zwichen den beiden DoIf zu wechseln.
Meine zwei Lösungsansätze:
- per Handt mit Set DoIf xyz disable die nichtbenötigenten zu deaktivieren
- eine Dummyvariable definieren und im das DoIf als Bedinung mit einbauen
Ich finde beides aber nicht wirklich gut.

Hat Jemand eine andere Idee?

Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

r00t2

FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

teufelchen

Hallo,

wie ich die beiden Lösungsansätze umsetze weiß ich.
Deine Links sind für den zeiten Ansatz (eine Dummyvariable definieren und im das DoIf als Bedinung mit einbauen) passend.

Meine Frage ist aber ob es eleganter als meine zwei Ideen geht.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

r00t2

Was genau gefällt Dir denn nicht an Deinen beiden angedachten Lösungen?

Ich finde z. B. das mit dem Dummy eine gute Sache, da man den global verwenden kann.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

teufelchen

Meine DoIf sind teilweise sehr verschachtelt und die zuätzliche Bedingung macht es nicht übersichtlicher.

Bevor ich anfange umzuändern wollte ich mal hören ob es nicht vielleicht bessere Möglichkeiten gibt, die ich nicht kenne oder übersehen habe.

Mein Favorit ist momentan, einen Dummy zu definieren und über ein Notify dann alle DoIf auf Disable bzw. Enable und Initialize zu setzen.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

r00t2

Wenn der Code in der Def zu unübersichtlich wird, kann es auch helfen diesen in ein eigenes Modul "auszulagern".

99_myUtils.pm wäre da so ein Kandidat => https://wiki.fhem.de/wiki/99_myUtils_anlegen
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)