Adventskranzbeleuchtung

Begonnen von Starkstrombastler, 27 November 2015, 21:32:20

Vorheriges Thema - Nächstes Thema

Starkstrombastler

Hier ein Codeschnipsel für jeden, der gerne seinen Adventskranz mit der richtigen Anzahl Kerzen beleuchten will.

Die Sub Advent() gibt positive Werte für die Zeit vom 1. Advent bis zum 6. Januar zurück. Für die übrige Zeit negative Wert (Anzahl Tage bis zum 1. Advent).
Für die Zeit bis zum 24.12. ergibt Advent() die Anzahl Kerzen. Danach erhöht sich der Wert bis auf 6.

Time::Local wird benötigt.
#~~~~~~~~~~~~~~~~~~~Adventszeit~~~~~~~~~~~~~~~~~~~~~~~
# Rückgabewert:
# ...
# Freitag vor dem 1. Advent = -1
# Samstag vor dem 1. Advent = -2
# von Sonntag, 1. Advent bis zum Samstag vor dem 2. Advent = 1
# ...
# von Sonntag, 4. Advent bis zum nächsten Samstag  = 4
# ...
# 31. Dezember = 5
# 1 bis 6. Januar = 6
# 7. Januar = - 327
# ...
#
sub Advent()
{
my $K;
my ($nowSek, $nowMin, $nowStunden, $nowMTag, $nowMonat,$nowJahr, $nowWTag, $nowJTag)=localtime(time());

if( $nowJTag < 6 ) {$K=6;}
else {
my ($Sek, $Min, $Stunden, $MTag, $Monat, $Jahr, $WTag, $JTag)=localtime(timelocal(0,0,0,24,11,$nowJahr));
$K=$nowJTag - ($JTag - 21 - $WTag);
if ($K >= 0) {$K += 7; $K = int($K/7);}
}
return($K);
}
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Markus

Danke!
Hab es geklaut :D
was hast du in deiner .cfg definiert?

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Starkstrombastler

Zitat von: Markus am 08 Dezember 2015, 11:46:23
was hast du in deiner .cfg definiert?
Mangels passender Hardware habe ich noch nichts realisiert.
Wir haben jetzt einen Adventskranz mit echten Kerzen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Markus

Ja wir auch :-(
Aber ich möchte es für die Weihnachtsbeleuchtung verwenden hab zur zeit eine eigene .holliday Datei aber deine Lösung gefällt mir besser!

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

WarLord

Hi

erstmal danke für den Code.

ich bräuchte etwas hilfe beim übergeben des Wertes an einem dummy. Hab etz schon viel probiert aber irgendwie mags nicht hinhauen.
könnte mir da evtl jemand unter die arme greifen?
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

Starkstrombastler

Zum Ausprobieren, hier eine einfache Umsetzung der Adventskranzbeleuchtung. Das Notify wird vom Dämmerungssensor getriggert.

define nAdventskranz notify M_Daemmerung.* {my $K=Advent();
if ($EVENT eq "off") {$K=4;}
if ($K<5)
{
if ($K>0){fhem "set Kerze_1 $EVENT";}
if ($K>1){fhem "set Kerze_2 $EVENT";}
if ($K>2){fhem "set Kerze_3 $EVENT";}
if ($K>3){fhem "set Kerze_4 $EVENT";}
}
}

IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

WarLord

Danke dafür, aber ich bräuchte den wert von $K in einem dummy das ich im floorplan den entsprechenden kranz anzeigen kann.
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

Markus

#7
Du kannst doch aus Kerze_1 bis 4 dummys machen müssen ja keine Aktoren sein.
oder willst du nur einen Dummy haben der 4 states haben kann dann probier doch sowas


{
if ($K>0){fhem "set Kranz 1";}
if ($K>1){fhem "set Kranz 2";}
if ($K>2){fhem "set Kranz 3";}
if ($K>3){fhem "set Kranz 4";}
}
}



Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

WarLord

#8
Hi

hat so wunderbar geklappt! Danke nochmal.
Aber der dummy liefert mir komischerweise immer noch 5 müsste er nicht schon im minus sein?
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

Starkstrombastler

Die Sub Advent() liefert bei mir aktuell -324.
Wie sieht dein Dummy aus?
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

WarLord

Hi

danke für die antwort aber habs grad hinbekommen.

Hatte nie definiert was er machen soll wenn die adventszeit rum ist. er hatte immer im dummy den letzten wert.

nun gehts
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten