FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Phlox am 01 November 2022, 11:20:25

Titel: fhem if bei Durchlauf der fhem.cfg
Beitrag 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.

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

Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: betateilchen am 01 November 2022, 11:33:22
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.
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: JoWiemann am 01 November 2022, 11:59:19
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
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Phlox am 01 November 2022, 12:07:24
@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
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Sailor am 01 November 2022, 15:05:36
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
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Wernieman am 01 November 2022, 15:26:47
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 ....
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: betateilchen am 01 November 2022, 16:15:48
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
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Wernieman am 01 November 2022, 18:46:07
Stimmt ... aber das "die" ist trotzdem "böse" ...
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: betateilchen am 01 November 2022, 19:10:58
das macht man halt so an der Elbe...  8)
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Phlox am 01 November 2022, 19:34:02
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.
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: betateilchen am 01 November 2022, 19:35:27
Du brauchst den Thread nicht zu schließen, aber Du könntest im ersten Beitrag den Titel ändern und "gelöst" davorschreiben.
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Wernieman am 01 November 2022, 20:54:18
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)
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: Sailor am 02 November 2022, 07:28:30
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
Titel: Antw:fhem if bei Durchlauf der fhem.cfg
Beitrag von: JoWiemann am 02 November 2022, 07:30:54
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