FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bugster_de am 14 August 2013, 08:46:31

Titel: $month im Perlcode
Beitrag von: bugster_de am 14 August 2013, 08:46:31
Hi Leute,

gestern wollte ich die Rolladensteuerung noch auf die Sommermonate begrenzen. Also flugs folgendes in meinen Perlcode eingetragen:

if( ( $month < 4 ) && ( $month > 10 ) ) {
   return;
}


Und siehe da, im Log file steh $month: global symbol requires explicit ....
Sprich die Variable $month ist nicht definiert.

Wie komme ich denn bei FHEM an z.B. den aktuellen Monat in einer Perlfunktion? Muß ich das jedesmal mittels localtime(time); raus suchen?

Hinweis: ich möchte an meine Perlfunktion keinen Parameter übergeben.
Titel: Aw: $month im Perlcode
Beitrag von: MisterEltako am 14 August 2013, 09:12:30
Hi!

Die Antwort hast du dir ja selbst schon gegeben....:-) Entweder als Parameter oder über localtime-Variante.

MfG, MisterEltako.
Titel: Aw: $month im Perlcode
Beitrag von: betateilchen am 14 August 2013, 09:28:18
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

Dann hast Du alles, was Du vielleicht irgendwann brauchst :)
Titel: Aw: $month im Perlcode
Beitrag von: ph1959de am 14 August 2013, 09:32:05
... und dann vielleicht auch noch das "&&" gegen ein "||" tauschen (oder auf >=4 / <=10 prüfen; dass der Monat kleiner als 4 und gleichzeitig größer als 10 ist, dürfte relativ selten im Jahr vorkommen :-) )
Titel: Aw: $month im Perlcode
Beitrag von: bugster_de am 14 August 2013, 09:48:02
Danke für eure schnellen Antworten.

ZitatDie Antwort hast du dir ja selbst schon gegeben....:-)
Stimmt. Ich dachte halt vielleicht hat FHEM die aktuellen Daten bereits auf irgendwelchen Variablen liegen. Aber dann mach ich das mittels localtime(time);
Titel: Aw: $month im Perlcode
Beitrag von: betateilchen am 14 August 2013, 10:05:51
Zitat von: ph1959de schrieb am Mi, 14 August 2013 09:32(oder auf >=4 / <=10 prüfen;

if( $month ~~ [4..10] )

wäre doch wohl das einfachste, um "Sommer" festzustellen.

Oder noch einfacher: In localtime steckt ja auch das Sommerzeit-Flag...
Titel: Antw:Aw: $month im Perlcode
Beitrag von: SimonHipp am 01 März 2023, 14:24:48
Zitat von: betateilchen am 14 August 2013, 09:28:18
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

Dann hast Du alles, was Du vielleicht irgendwann brauchst :)
wo muss das dann rein?
Ich verzweifle gerade an der Monatsabfrage.
Danke!
Titel: Antw:Aw: $month im Perlcode
Beitrag von: decaflo am 02 März 2023, 18:00:54
Zitat von: SimonHipp am 01 März 2023, 14:24:48
Ich verzweifle gerade an der Monatsabfrage.

Achtung: $mon ist bei localtime 0..11, d.h. Januar ist 0!

Möglicherweise ist das der Grund für Deine Verzweiflung :)
Titel: Antw:Aw: $month im Perlcode
Beitrag von: betateilchen am 02 März 2023, 18:10:51
Zitat von: SimonHipp am 01 März 2023, 14:24:48
wo muss das dann rein?

Das ist perl code, der muss halt da hin, wo Du etwas damit bewerkstelligen möchtest.

Zitat von: SimonHipp am 01 März 2023, 14:24:48
Ich verzweifle gerade an der Monatsabfrage.

Ich verzweifle an Deinem Beitrag. Beschreibe doch einfach mal, was Du machen möchtest, dann kann man Dir besser helfen.