Hallo,
ich suche schon lange nach einer Möglichkeit folgendes Problem zu lösen.
Mein floorplan sollte jedes Monat anders aussehen (im Dezember z.B. soll die Weihnachtsbeleuchtung zu sehen sein im Juli natürlich nicht, sondern eher der Mähroboter)
Bis jetzt habe ich das immer manuell gelöst, indem ich in der fhem.cfg #include juli.cfg oder #include dezember.cfg auskommentiert habe.
Kann ich das automatisieren, indem ich einen Dummy "aktueller_Monat" abfrage und beim Start der fhem.cfg dieser Dummy abgefragt wird....kommt dabei 07 raus, soll include Juli.cfg durchgeführt werden.
Also bei jedem Start der fhem.cfg sollte je nach Monat eine include Monat.cfg durchgeführt werden.
Ich bräuchte also ein IF in der fhem.cfg ohne "at" und ohne "notify" , geht das?
Oder habt ihr eine bessere Idee, damit ich diese manuelle Implementierung durch auskommentieren der include Monat.cfg automatisieren kann?
Vielen Dank für eure Hilfe, bin für jeden Hinweis dankbar.
Phlox
Zitat von: Phlox am 01 November 2022, 11:20:25
Ich bräuchte also ein IF in der fhem.cfg ohne "at" und ohne "notify" , geht das?
Nein.
Zitat von: Phlox am 01 November 2022, 11:20:25
Oder habt ihr eine bessere Idee, damit ich diese manuelle Implementierung durch auskommentieren der include Monat.cfg automatisieren kann?
Per crontab auf Betriebsystemebene die jeweilige Monatsdatei am Monatsanfang nach "monat.cfg" kopieren (oder per symbolischem Link verfügbar machen) und in der FHEM Konfiguration diesen fixen Namen verwenden.
Du könntest ja allgemein ein include monat.cfg definieren. Mit einem at kopierst Du über ein qx(cp monatsdatei.cfg monat.cfg -f) den aktuellen Monat auf die zu includierende cfg. Dann noch einen Fhem Neustart.
Grüße Jörg
@betateilchen
danke, super Idee, guter Ausgangspunkt...
@JoWiemann
danke, das ist die Idee weiterverbessert...und man bleibt in fhem...
Vielen lieben Dank euch beiden, ich probiers gleich aus....ich habe mich so auf eine IF Abfrage innerhalb fhem.cfg versteift, dass ich gar nicht auf diesen Schleichweg gekommen bin...danke danke danke
Grüße
Phlox
Nachtrag:
es funktioniert bestens
Moin Phlox
Zitat von: Phlox am 01 November 2022, 11:20:25
Hallo,
ich suche schon lange nach einer Möglichkeit folgendes Problem zu lösen.
Mein floorplan sollte jedes Monat anders aussehen (im Dezember z.B. soll die Weihnachtsbeleuchtung zu sehen sein im Juli natürlich nicht, sondern eher der Mähroboter)
Bis jetzt habe ich das immer manuell gelöst, indem ich in der fhem.cfg #include juli.cfg oder #include dezember.cfg auskommentiert habe.
Also ich habe nicht wirklich den Sinn verstanden, warum man beim Wechsel des FloorPlan - Hintergrundbilds gleich die fhem.cfg swappen muss.
Warum kein "at" um Mitternacht definieren
Der Code sinngemäß:
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
$Jahrestag+=1;
if ($Jahrestag < 79) {
File::Copy::rmscopy("/opt/fhem/www/images/default/fp_Winter.png", /opt/fhem/www/images/default/fp_Floorplan.png) or die $!;
fhem("set WEB rereadicons");
}
if ($Jahrestag >= 79 && $Jahrestag < 172) {
File::Copy::rmscopy("/opt/fhem/www/images/default/fp_Fruehling.png", /opt/fhem/www/images/default/fp_Floorplan.png) or die $!;
fhem("set WEB rereadicons");
}
if ($Jahrestag >= 172 && $Jahrestag < 266) {
File::Copy::rmscopy("/opt/fhem/www/images/default/fp_Sommer.png", /opt/fhem/www/images/default/fp_Floorplan.png) or die $!;
fhem("set WEB rereadicons");
}
if ($Jahrestag >= 266 && $Jahrestag < 355) {
File::Copy::rmscopy("/opt/fhem/www/images/default/fp_Herbst.png", /opt/fhem/www/images/default/fp_Floorplan.png) or die $!;
fhem("set WEB rereadicons");
}
if ($Jahrestag >= 355) {
File::Copy::rmscopy("/opt/fhem/www/images/default/fp_Winter.png", /opt/fhem/www/images/default/fp_Floorplan.png) or die $!;
fhem("set WEB rereadicons");
}
Gruß
Sailor
Habe nur ein paar Fragen:
1. Warum Jahrestag und nicht mMonat als Entscheidungsgrundlage?
2. Ist "die" wirklich richtig hier? Dann schmiert FHEM bei Problemen gleich richtig ab ....
Zitat von: Wernieman am 01 November 2022, 15:26:47
1. Warum Jahrestag und nicht mMonat als Entscheidungsgrundlage?
Vielleicht, weil man jahreszeitenbezogen umstellen möchte und nicht monatsweise?
Tag #79 = 20.März
Stimmt ... aber das "die" ist trotzdem "böse" ...
das macht man halt so an der Elbe... 8)
Danke für eure Antworten, wie bereits geschrieben funktioniert das Ganze mit qx und mit shutdown restart hervorragend....Hintergrundbild bleibt natürlich immer gleich, ist ja mein Haus und Hof Grundriss....es wird da einiges an Aktoren geändert...im Sommer ist das ganze Gardenazeugs sichtbar, dann kommen poolpumpen und im Winter das ganze Heizungszeugs und die Weihnachtsbeleuchtung....da ist kein Platz für alles auf einmal....
Wegen meiner darf der Thread als gelöst geschlossen werden....oder muss ich das irgendwo schließen?
Danke nochmals an alle, ihr habt mir schnell und präzise geholfen.
Du brauchst den Thread nicht zu schließen, aber Du könntest im ersten Beitrag den Titel ändern und "gelöst" davorschreiben.
Zitat von: betateilchen am 01 November 2022, 19:10:58
das macht man halt so an der Elbe... 8)
So weit von der Elbe weg wohne ich jetzt auch nicht ..... nur etwas die Fußkillometer rauf ;o)
Moinsen
Zitat von: betateilchen am 01 November 2022, 19:10:58
das macht man halt so an der Elbe... 8)
Jaja, das war ja auch nur ein Beispiel aus der Huefte geschossen.
Mann sollte selbstverständlich
eval {}; anstelle von
die verwenden!
:P
Gruss
Sailor
Zitat von: Sailor am 02 November 2022, 07:28:30
Mann sollte selbstverständlich eval {}; anstelle von die verwenden!
Habe ich gerade dem Universum mitgeteilt. Also, dass es den Programm Code für mein Leben entsprechend anpasst. ;)
Grüße Jörg