Hauptmenü

Wakeup mit Wifilight

Begonnen von Nathaniel143, 25 Januar 2016, 16:01:18

Vorheriges Thema - Nächstes Thema

Nathaniel143

Einen schönen Guten Tag , ich hab schon einiges mitgelesen was das oben genannte Thema betrifft hab auch schon rum probiert bekomme es aber nicht wirklich hin . Meine Milight Lampen funktionieren soweit aber das mit diesem Wakeup-Light versteh ich nicht ich hoffe ihr könnt mir da helfen. Ich habe die  Wakeup.pl in 99_MyUtils eingefügt und sobald ich auf speichern gehen kommt das :

Global symbol "$dauer" requires explicit package name at ./FHEM/99_myUtils.pm line 42. Global symbol "@lichter" requires explicit package name at ./FHEM/99_myUtils.pm line 44. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 46. Global symbol "$gesamtdauersek" requires explicit package name at ./FHEM/99_myUtils.pm line 63. Global symbol "$dauer" requires explicit package name at ./FHEM/99_myUtils.pm line 63. Global symbol "$dauerfarben" requires explicit package name at ./FHEM/99_myUtils.pm line 65. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 66. Global symbol "$dauerfarben" requires explicit package name at ./FHEM/99_myUtils.pm line 67. Global symbol "$anteiligedauer" requires explicit package name at ./FHEM/99_myUtils.pm line 70. Global symbol "$gesamtdauersek" requires explicit package name at ./FHEM/99_myUtils.pm line 70. Global symbol "$dauerfarben" requires explicit package name at ./FHEM/99_myUtils.pm line 70. Global symbol "$gesamtdauersek" requires explicit package name at ./FHEM/99_myUtils.pm line 72. Global symbol "$dauerfarben" requires explicit package name at ./FHEM/99_myUtils.pm line 72. Global symbol "$anteiligedauer" requires explicit package name at ./FHEM/99_myUtils.pm line 72. Global symbol "@lichter" requires explicit package name at ./FHEM/99_myUtils.pm line 75. Global symbol "@lichter" requires explicit package name at ./FHEM/99_myUtils.pm line 82. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 90. Global symbol "@lichter" requires explicit package name at ./FHEM/99_myUtils.pm line 91. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 94. Global symbol "$anteiligedauer" requires explicit package name at ./FHEM/99_myUtils.pm line 94. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 94. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 96. Global symbol "$anteiligedauer" requires explicit package name at ./FHEM/99_myUtils.pm line 96. Global symbol "@farben" requires explicit package name at ./FHEM/99_myUtils.pm line 96.

Die WakeUp.pl sieht so aus :
# Sonnenaufgangssimulation für bis zu 4 Devices
# Author : Sandra Ohmayer (http://www.animeschatten.net)
# Aufruf: wakeUp(<Zeit in Minuten>,"<Devicename>"),wakeUp(<Zeit in Minuten>,"<Devicename1>","<Devicename2>") ...

sub
wakeUp {
# Dauer in Minuten (minimum 4 min)
local $dauer = $_[0];
# Initialisiern des Lichterarrays
local @lichter = ($_[1],$_[2],$_[3],$_[4]);

local @farben = (
["240,100,2",20],
["240,100,5",20],
["240,100,8",20],
["210,100,10",30],
["190,100,12",1],
["90,100,14",1],
["70,100,16",1],
["10,100,24",2],
["30,100,40",30],
["40,100,60",30],
["45,100,80",30],
["50,100,100",30],
["50,0,28",5],
["50,0,80",30]
);

local $gesamtdauersek = $dauer*60;

local $dauerfarben = 0;
foreach my $farbe ( @farben ) {
$dauerfarben+=$farbe->[1];
}

local $anteiligedauer = $gesamtdauersek/$dauerfarben;

Log3 (undef, 3, "WakeUp: start, angegebene Gesamtdauer in Sekunden $gesamtdauersek, Dauer Farben $dauerfarben, Anteil $anteiligedauer");

# Ausschalten der Lampen (Schalter - off)
foreach my $licht ( @lichter ) {
if(defined $licht) {
fhem("set $licht off");
}
}

# Dunkelblau als Startfarbe (Schalter - on)
foreach my $licht ( @lichter ) {
if(defined $licht) {
fhem("set $licht on 240,100,0");
}
}

# Durchlauf der Farbsimulation
my $i = 0;
foreach my $farbe ( @farben ) {
foreach my $licht ( @lichter ) {
if(defined $licht) {
if($i == 0) {
fhem("set $licht HSV ".($farben[$i][0])." ".ceil($anteiligedauer*($farben[$i][1])));
} else {
fhem("set $licht HSV ".($farben[$i][0])." ".ceil($anteiligedauer*($farben[$i][1]))." q");
}
}
}
$i++;
}
}


Fehlt da noch was oder hab ich was vergessen ?
Vielen dank noch mal

Nathaniel143

Kommando zurück :-) . Das mit den Fehlermeldungen hab ich in den Griff bekommen ,die sind jetzt weg . Jetzt das nächste Problem wie programmiere ich jetzt meinen Wecker das das ganze auch funktioniert ?

Nathaniel143

Einen schönen guten Abend ,ist den keiner da der mir weiterhelfen kann .Hab nämlich wieder die oben genannten Fehlermeldung und bekomme es einfach nicht zum laufen .Habe den Thread zu diesem Thema schon mittlerweile rauf und runter gelesen und komme einfach nicht drauf.
:'(

Mit freundlichen Grüßen

bm7777

Nicht local @lichter sondern my @lichter.

Hier mal meine funktionierende

sub
Sonnenaufgang {
# Dauer in Minuten (minimum 4 min)
my $dauer = $_[0];
# Initialisiern des Lichterarrays
my @lichter = ($_[1],$_[2],$_[3],$_[4]);

my @farben = (
        ["26,3,94",10],
        ["70,12,244",10],
["151,12,244",10],
["244,12,140",10],
["244,12,66",10],
["244,120,12",10],
["244,229,12",10],
["237,244,176",10],
["255,255,255",10],
);

my $gesamtdauersek = $dauer*60;

my $dauerfarben = 0;
foreach my $farbe ( @farben ) {
$dauerfarben+=$farbe->[1];
}

my $anteiligedauer = $gesamtdauersek/$dauerfarben;

Log3 (undef, 3, "WakeUp: start, angegebene Gesamtdauer in Sekunden $gesamtdauersek, Dauer Farben $dauerfarben, Anteil $anteiligedauer");

# Ausschalten der Lampen (Schalter - off)
foreach my $licht ( @lichter ) {
if(defined $licht) {
fhem("set $licht off");
}
}

# Durchlauf der Farbsimulation
my $i = 0;
foreach my $farbe ( @farben ) {
foreach my $licht ( @lichter ) {
if(defined $licht) {
if($i == 0) {
fhem("set $licht RGB ".($farben[$i][0])." ".ceil($anteiligedauer*($farben[$i][1])));
} else {
fhem("set $licht RGB ".($farben[$i][0])." ".ceil($anteiligedauer*($farben[$i][1]))." q");
}
}
}
$i++;
}
}


Was für einen Wecker benutzt du denn ?
Raspberry Pi Mod. B
CUL-Stick V3.4

Nathaniel143

Erstmal vielen vielen dank ,jetzt bekomme ich wenigstens keine Fehler mehr  ;D
Momentan hab ich nur ein Dummy mit dem ich das ganze versuche einzuschalten der dann ein Event mit :
dummy set Sonnenaufgang on
schickt.

Das Notify ist dieses :
Sonnenaufgang:on  {Sonnenaufgang("4,ez_stehlampe")}

Nur anscheinend hab ich da immer noch irgendwo einen Fehler drin .

Denn Wecker wollte ich später dann mit wakeuptimer1 machen .

LG

Nathaniel143


herrmannj

Wäre es nicht einfacher das über ein "at" zu machen und die Queue zu nutzen ?

*06:00:00 set kizi.bett.led HSV 240,100,0; set kizi.bett.led HSV 240,20,80 600 q; set kizi.bett.led HSV 0,20,80 120 q; set kizi.bett.led HSV 0,80,100 120 q; set kizi.bett.led HSV 55,40,100 300 q; set kizi.bett.led HSV 55,0,100 300 q

vg
joerg

Nathaniel143

Super ,vielen Dank :-) Das funktioniert sogar sehr gut .