FHEM Forum

FHEM => Automatisierung => Thema gestartet von: holfmink am 18 August 2014, 21:16:27

Titel: Rolladensteuerung mit Azimuth und Zeit
Beitrag von: holfmink am 18 August 2014, 21:16:27
Hallo,
ich bin neu hier im Forum und habe bei der Rolladenautomatisierung folgendes Problem das die 99_utilstest_azimuth nicht zwischen 12 und 7 Uhr morgens die Beschattung abschaltet, hier die Datei:


package main;
use strict;
use warnings;
use POSIX;
sub
utilstest_azimuth_Initialize($$)
{
  my ($hash) = @_;
}
sub
Wetterregelung_Sonne_Ost($){
    my ($Aktorname) = @_;
    my $now = time();
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($now);
    my $hm = sprintf("%%02d:%%02d", $hour, $min);
    if ( $hm gt "07:00" && $hm lt "12:00") {
     if (Value("Beschattung_Sonne") eq "aktiv"){
        my $azimuth= ReadingsVal("YahooWetter","azimuth","999");
        my $Sonne= ReadingsVal("YahooWetter","condition","kein Wert");
         if (($azimuth > 150)){
           fhem ("set $Aktorname 100");
           Log 1,"Rolladen wird geöffnet Beschattung nicht mehr nötig.";
        }  elsif (($azimuth >= 70) && (($Sonne eq "sonnig") || ($Sonne eq "teilweise wolkig") || ($Sonne eq "überwiegend wolkig")) && (Value("$Aktorname")!=1)){
           fhem("set $Aktorname 20");
           Log 1, "Beschattungsposition wird angefahren.";
         }  elsif (($azimuth==999) || ($Sonne eq "kein Wert")) {
           Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert, $azimuth, $Sonne,";
         }
     }
  }
}
1;


aufgerufen wird  sie mit der azimuth.cfg:


#   hier Sonne   
define Beschattung_Sonne dummy
attr Beschattung_Sonne room Buero
attr Beschattung_Sonne setList state:aktiv,passiv
define Beschattung_Buero_Sonne notify YahooWetter {Wetterregelung_Sonne_Ost("CUL_HM_blindActuator_1963DA")}
attr Beschattung_Buero_Sonne room Buero
define Beschattung_xxx_Sonne notify YahooWetter {Wetterregelung_Sonne_Ost("CUL_HM_blindActuator_1B7128")}
attr Beschattung_Jan_Sonne room Zimmer_Jan


und diese ist in der fhem.cfg mit include eingebunden. Heute abend bekam ich wieder die Meldung; Rolladen wird geöffnet Beschattung nicht mehr nötig.
Der Rolladen ging daraufhin hoch.

Bin für jeden Hinweis dankbar.

Danke.
Titel: Antw:Rolladensteuerung mit Azimuth und Zeit
Beitrag von: Loredo am 28 August 2014, 14:26:05
Warum nutzt du nicht das http://fhem.de/commandref_DE.html#Twilight Modul?
Titel: Antw:Rolladensteuerung mit Azimuth und Zeit
Beitrag von: juppzupp am 28 August 2014, 15:04:34
eine zeile :


define kueche_azi_rollo notify myTwilight:azimuth.* IF ([myTwilight:azimuth] gt "170" and [myTwilight:azimuth] lt "273") (set testrollo on) ELSE (set testrollo off)
Titel: Antw:Rolladensteuerung mit Azimuth und Zeit
Beitrag von: Damian am 31 August 2014, 12:51:46
Zitat von: juppzupp am 28 August 2014, 15:04:34
eine zeile :


define kueche_azi_rollo notify myTwilight:azimuth.* IF ([myTwilight:azimuth] gt "170" and [myTwilight:azimuth] lt "273") (set testrollo on) ELSE (set testrollo off)


Hier wird allerdings alle paar Minuten (bei jedem Senden des Twilight-Moduls) unnötig der Rollladen geschaltet. Dann schon besser als Einzeiler so:

define kueche_azi_rollo DOIF ([myTwilight:azimuth] > 170 and [myTwilight:azimuth] < 273) (set testrollo on) DOELSE (set testrollo off)


So wird jeweils nur einmal on bzw. off geschaltet.

Edit: Man kann das Ganze auch leicht mit Zeitvorgaben verknüpften z. B.:

define kueche_azi_rollo DOIF ([myTwilight:azimuth] > 170 and [myTwilight:azimuth] < 273 and [07:00-12:00]) (set testrollo on) DOELSE (set testrollo off)


Gruß

Damian



Titel: Antw:Rolladensteuerung mit Azimuth und Zeit
Beitrag von: juppzupp am 31 August 2014, 13:20:58
Jein ;-)
HM jalousie Aktoren als Voraussetzung:
Bei on/off (bzw. 0/100) würde jedes mal gesendet werden.
Bei werten dazwischen nicht.
Filterstate im device müsste auch on/off filtern.

Aber jetzt, wo DOIF eingecheckt ist, muss man (ich) sich(mich) wohl damit auseinandersetzen.
Tolle Erweiterung, ein test damit läuft schon!(entprellen eines Regensensor)