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?
Suchfunktion nutzen! :)
Das => https://forum.fhem.de/index.php/topic,55564.0.html
In Verbindung mit dem => https://wiki.fhem.de/wiki/Dummy#Jahreszeiten
Könnte schon mal was bringen.
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.
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.
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.
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