FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Starkstrombastler am 27 November 2015, 21:32:20

Titel: Adventskranzbeleuchtung
Beitrag von: Starkstrombastler am 27 November 2015, 21:32:20
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);
}
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Markus am 08 Dezember 2015, 11:46:23
Danke!
Hab es geklaut :D
was hast du in deiner .cfg definiert?

Gruß Markus
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Starkstrombastler am 08 Dezember 2015, 23:18:23
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.
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Markus am 08 Dezember 2015, 23:24:53
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
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: WarLord am 12 Dezember 2015, 11:29:44
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?
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Starkstrombastler am 13 Dezember 2015, 12:18:52
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";}
}
}

Titel: Antw:Adventskranzbeleuchtung
Beitrag von: WarLord am 13 Dezember 2015, 14:17:35
Danke dafür, aber ich bräuchte den wert von $K in einem dummy das ich im floorplan den entsprechenden kranz anzeigen kann.
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Markus am 13 Dezember 2015, 19:42:20
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
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: WarLord am 08 Januar 2016, 15:58:49
Hi

hat so wunderbar geklappt! Danke nochmal.
Aber der dummy liefert mir komischerweise immer noch 5 müsste er nicht schon im minus sein?
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: Starkstrombastler am 08 Januar 2016, 23:52:04
Die Sub Advent() liefert bei mir aktuell -324.
Wie sieht dein Dummy aus?
Titel: Antw:Adventskranzbeleuchtung
Beitrag von: WarLord am 09 Januar 2016, 10:36:06
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