This commit is contained in:
Marc Hoppe
2016-03-27 17:24:12 +02:00
parent e88e701a59
commit 8a8a64cd91

View File

@@ -16,7 +16,6 @@ use constant {
STATE_SCHLITZ => 3,
};
my @rolls = (
{ roll => "wohn.rollTerrR", dir=>"W", typ=>"n", temp=>"tempWohn", tempS=>21, win=>"wohn.fenTerr", state=>STATE_IDLE, },
{ roll => "wohn.rollTerrL", dir=>"W", typ=>"n", temp=>"tempWohn", tempS=>21, win=>"", state=>STATE_IDLE, },
@@ -29,15 +28,9 @@ my @rolls = (
{ roll => "bad.roll", dir=>"S", typ=>"n", temp=>"tempBad", tempS=>23, win=>"", state=>STATE_IDLE, },
{ roll => "schlaf.rollWeg", dir=>"S", typ=>"s", temp=>"tempSchlaf", tempS=>18, win=>"", state=>STATE_IDLE, },
{ roll => "schlaf.rollStr", dir=>"O", typ=>"s", temp=>"tempSchlaf", tempS=>18, win=>"wohn.fenTerr", state=>STATE_IDLE, },
);
#my %rollStates = (
# lastWeatherCode => 0,
# lastWaetherCodeTime => 0,
# timerNum => 0,
# );
);
# in dieser Reihenfolge fahren
my @rollHoch = (
"bad.roll",
"arb.rollWeg",
@@ -48,8 +41,7 @@ my @rollHoch = (
"wohn.rollSofa",
"wohn.rollTerrL",
"wohn.rollTerrR"
);
);
my @rollRunter = (
"wohn.rollTerrR",
@@ -63,36 +55,43 @@ my @rollRunter = (
"bad.roll",
"schlaf.rollWeg",
"schlaf.rollStr"
);
);
# Bei Weckzeit auf Schlitz
my @rollWeck = (
"schlaf.rollWeg",
"schlaf.rollStr"
);
);
my @rollTest = (
"wohn.rollTerrR"
);
);
my @rollSchlaf = (
"schlaf.rollWeg",
"schlaf.rollStr"
);
);
my @rollArb = (
"arb.rollTerr",
"arb.rollWeg",
);
);
#------------------------------------------
my $tc=0;
my @blocktime=localtime;
my $blocktimerRunning=0;
sub myfhem($) {
#------------------------------------------
sub myfhemcmd($) {
#Log 1, "@_";
fhem("@_");
}
#------------------------------------------
sub RollCheckSkip($$)
{
my($cmd, $roll) = @_;
@@ -107,14 +106,18 @@ sub RollCheckSkip($$)
return $skip
}
#------------------------------------------
sub RollCmd($$$)
{
my ($cmd, $roll, $delay) = @_;
if(RollCheckSkip($cmd, $roll)==0) {
myfhem ("define r".int(rand(10000))." at +".$delay." set ".$roll." ".$cmd);
myfhemcmd ("define r".int(rand(10000))." at +".$delay." set ".$roll." ".$cmd);
}
}
#------------------------------------------
sub RollGroup(\@$$)
{
my ($rolls, $cmd, $delay) = @_;
@@ -141,21 +144,22 @@ sub RollGroup(\@$$)
}
}
if($skip==0) {
myfhem ("define r".$i." at +".$t." set ".$r." ".$cmd);
myfhemcmd ("define r".$i." at +".$t." set ".$r." ".$cmd);
}
$i=$i+1;
}
}
#------------------------------------------
sub RollTest() {
&RollGroup(\@rollTest, "closes", 1);
}
#------------------------------------------
sub RollAll($$) {
# Log 1, "################";
my ($cmd, $delay) = @_;
# Log 1, "c:$cmd d:$delay";
# &RollGroup(\@rollAlle, $cmd, $delay);
if($cmd eq "closes") {
&RollGroup(\@rollRunter, $cmd,$delay);
}
@@ -164,20 +168,23 @@ sub RollAll($$) {
}
}
#------------------------------------------
sub RollWeck($) {
my ($delay) = @_;
&RollGroup(\@rollWeck, "up 5", $delay);
myfhem("define weckwachat at +03:00:00 set wach 1");
myfhemcmd ("define weckwachat at +03:00:00 set wach 1");
# myfhem("set wach 1");
}
#------------------------------------------
sub Dbg($) {
Log 1,$_[0];
Log3 "Roll", 1, $_[0];
}
#------------------------------------------
sub RollRunterSchlitz($;$) {
my ($roll, $delay) = @_;
$delay ||= 0;
@@ -189,10 +196,12 @@ sub RollRunterSchlitz($;$) {
my $i=$tc++;
Dbg("RollChg: $roll - runter schlitz($delay)\n");
myfhem("define r".$i." at +".$t." set ".$roll." closes");
myfhem("define ru".$i." at +".$t2." set ".$roll." up 6");
myfhemcmd("define r".$i." at +".$t." set ".$roll." closes");
myfhemcmd("define ru".$i." at +".$t2." set ".$roll." up 6");
}
#------------------------------------------
sub RollHoch($;$) {
my ($roll, $delay) = @_;
$delay ||= 0;
@@ -202,9 +211,11 @@ sub RollHoch($;$) {
my $i=$tc++;
Dbg("RollChg: $roll - hoch($delay)\n");
myfhem("define r".$i." at +".$t." set ".$roll." opens");
myfhemcmd("define r".$i." at +".$t." set ".$roll." opens");
}
#------------------------------------------
sub RollRunter($;$) {
my ($roll, $delay) = @_;
$delay ||= 0;
@@ -214,9 +225,11 @@ sub RollRunter($;$) {
my $i=$tc++;
Dbg("RollChg: $roll - runter($delay)\n");
myfhem("define r".$i." at +".$t." set ".$roll." closes");
myfhemcmd("define r".$i." at +".$t." set ".$roll." closes");
}
#------------------------------------------
sub IsSunny($) {
my ($wett)=@_;
if($wett==30 || $wett==31 || $wett==32 || $wett==33 || $wett==34 || $wett==35 || $wett==36) { # sonnig, heiter, heiss
@@ -225,6 +238,8 @@ sub IsSunny($) {
return(0);
}
#------------------------------------------
sub IsLater($) {
my($t)=@_;
#Dbg("Islater:$t");
@@ -236,7 +251,7 @@ sub IsLater($) {
return(0);
}
#------------------------------------------
# Nach dem Wechsel auf !sonne noch 2Std warten
sub IsWetterSonneWait($) {
@@ -268,8 +283,10 @@ sub IsWetterSonneWait($) {
return(0);
}
#------------------------------------------
sub RollCheck() {
# Dbg("RollCheck\n");
#Dbg("RollCheck\n");
my $temp=20;
my $r;
my $i=0;
@@ -384,6 +401,7 @@ sub RollCheck() {
} # for
}
#------------------------------------------
sub Untoggle($) {
my ($obj) = @_;