Problem mit der Rollladensteuerung

Begonnen von Dennis D., 03 Januar 2013, 21:21:02

Vorheriges Thema - Nächstes Thema

ole30419

Hallo, leider sehen ich hier nicht ganz durch :-((

Habe zum Testen mal die Zeit im "define KU_Roll_runter1 at *11:15 set KU_Roll_runter_pruef open" fest auf 11:15 Uhr eingestellt. Ich bekomme im eventMonitor immer
Zitat2013-05-05 11:15:00 dummy KU_Roll_runter_pruef closed
2013-05-05 11:15:00 Global global DELETED KU_Roll_runter1
2013-05-05 11:15:00 Global global DEFINED KU_Roll_runter1

Egal on der "KU_Fenster_Sensor"  open oder closed ist.

Ich habe mir noch mal den Code von Dennis D. angeschaut und ich sehen keine Fehler zu meine umgeschrieben Code. oder ????

@MisterEltako
Zitatif($now gt "17:00" && $now lt "22:00"...
das wahr`s leider nicht .....
MfG Ole

ole30419

Habe eben noch mal den "eventMap" von "open closed" auf "on off" getauscht das hat aber nicht`s geändert.
bekomme immer noch im eventMonitor
Zitat2013-05-05 12:05:00 dummy KU_Roll_runter_pruef off
2013-05-05 12:05:00 Global global DELETED KU_Roll_runter1
2013-05-05 12:05:00 Global global DEFINED KU_Roll_runter1
define KU_Roll_runter_pruef dummy
attr KU_Roll_runter_pruef alias Rollladen Trigger Pruefung
attr KU_Roll_runter_pruef eventMap on off

define KU_Roll_runter1 at *12:05 set KU_Roll_runter_pruef on
attr KU_Roll_runter1 alias Rollladen Kueche schliessen
attr KU_Roll_runter1 room Sever_Raum

define KU_Roll_runter2 notify KU_Fenster_Sensor:closed.* set KU_Roll_runter_pruef on
attr KU_Roll_runter2 alias Rolladen Fensterdrehgriff Pruefung

define KU_Roll_runter_pruef2 notify KU_Roll_runter_pruef:on.* {\
   my $now=sprintf("%%02d:%%02d",$hour,$min);;\
       if($now >= "17:00" && $now <="22:00" && (Value("Hell") eq "Nein") && (Value("KU_Fenster_Sensor") eq "closed")) {\
         fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;}\
    if($now > "22:00" && (Value("KU_Fenster_Sensor") eq "closed")) {\
       fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;}\
fhem ("set KU_Roll_runter_pruef off");;}
attr KU_Roll_runter_pruef2 alias Rollladen schliessen nach Pruefung
MfG Ole

MisterEltako

Hi!

Probiere die aus:

define KU_Roll_runter_pruef dummy
attr KU_Roll_runter_pruef eventMap on off

define KU_Roll_runter1 at *12:05 set KU_Roll_runter_pruef on

define KU_Roll_runter2 notify KU_Fenster_Sensor:closed.* set KU_Roll_runter_pruef on

define KU_Roll_runter_pruef2 notify KU_Roll_runter_pruef:on.* {\
   my $Zustand =Value("KU_Fenster_Sensor");;\
   Log 3, "Stunde: $hours, Fenstersensor: $Zustand";;\
   if(($hours >= 17) && ($hours <= 22) && (Value("KU_Fenster_Sensor") eq "closed") && (Value("Hell") eq "Nein")) {\
           if (defined($defs{KU_Roll_verzoegert})){fhem('delete KU_Roll_verzoegert')};;\
           fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;\
           Log 3, "Rollo wird zugefahren 1.Variante";;\
       }\
       if ((($hours > 22) || ($hours < 7)) && (Value("KU_Fenster_Sensor") eq "closed")) {\
        if (defined($defs{KU_Roll_verzoegert})){fhem('delete KU_Roll_verzoegert')};;\
           fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;\
           Log 3, "Rollo wird zugefahren 2.Variante";;\
       }\
       fhem ("set KU_Roll_runter_pruef off");;\
}

[/color]
MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Dennis D.

Zitat von: MisterEltako schrieb am Sa, 04 Mai 2013 10:20if($now >= "17:00" && $now <="22:00"...

müsste das nicht:

if($now gt "17:00" && $now lt "22:00"...

lauten?

Jep, das ist korrekt. Habe das bei mir auch schon seit einiger Zeit auf gt, lt, eq, und so umgeschrieben, da es sonst zu "fehlermeldungen" im Log kommt. Es funktioniert zwar dennoch, aber <,>,= nimmt man glaub ich im Perlsyntax nur für Zahlen. Mit "17:00" hat man jedoch nen String und Strings werden wohl mit gt,lt,eq,ne verglichen. Korrigier mich einer, wenn ich falsch liege.

Bei mir siehts so aus:


EZ_Jalousie_runter_pruef:on.* {
   my $now=sprintf("%%02d:%%02d",$hour,$min);
       if($now ge "17:00" && $now le"22:00" && (Value("Hell") eq "Nein") && (Value("EZ_Fensterdrehgriff") eq "zu")) {
         fhem ("define EZ_Jalousie_verzoegert at +00:01:00 set EZ_Jalousie runter");}
    if($now gt "22:00" && (Value("EZ_Fensterdrehgriff") eq "zu")) {
       fhem ("define EZ_Jalousie_verzoegert at +00:01:00 set EZ_Jalousie runter");}
fhem ("set EZ_Jalousie_runter_pruef off");}


@ole:

Hast Du auch den Dummy "Hell" definiert? Dieser wird ja in dem Notify auch abgefragt. Wenn Du ihn nicht definiert hast leg einfach

define Hell dummy


Der Dummy wird bei mir durch zwei at's geschaltet:


define Sonnenaufgang at *{sunrise("HORIZON=-4",0,,)} set Hell Ja
define Sonnenuntergang at *{sunset("HORIZON=-4",0,,)} set Hell Nein


Viele Grüße,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

ole30419

Hallo,

ja Super habe mir den Log eintragen noch eine Fehler bei mir gefunden. Denn mit "$hours" konnte FHEM nicht`s anfangen habe es in "$hour" geändert und schon stand im Log die "Stunde".
Und mit dem  "define Hell dummy", das habe ich wohl nicht richtig mitbekommen und nachgeholt.
Nach dem ersten Test hat sich der Küchen Rollladen auch schon nach "1.Variante" selbständig geschlossen. Super und Danke !!!!
define Hell dummy
attr Hell eventMap ja nein
define Sonnenaufgang at *{sunrise("HORIZON=-4",0,,)} set Hell Ja
define Sonnenuntergang at *{sunset("HORIZON=-5",0,,)} set Hell Nein

define KU_Roll_runter_pruef dummy
attr KU_Roll_runter_pruef eventMap on off

define KU_Roll_runter1 at *{sunset("HORIZON=-5",300,"17:00","22:00")} set KU_Roll_runter_pruef on

define KU_Roll_runter2 notify KU_Fenster_Sensor:closed.* set KU_Roll_runter_pruef on

define KU_Roll_runter_pruef2 notify KU_Roll_runter_pruef:on.* {\
   my $Zustand =Value("KU_Fenster_Sensor");;\
   my $Zustandhell =Value("Hell");;\
   Log 3, "Stunde: $hour, noch Hell drausen:$Zustandhell, Fenstersensor: $Zustand";;\
   if(($hour >= 17) && ($hour <= 22) && (Value("KU_Fenster_Sensor") eq "closed") && (Value("Hell") eq "Nein")) {\
           if (defined($defs{KU_Roll_verzoegert})){fhem('delete KU_Roll_verzoegert')};;\
           fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;\
           Log 3, "Rollo wird zugefahren 1.Variante";;\
       }\
       if ((($hour > 22) || ($hour < 7)) && (Value("KU_Fenster_Sensor") eq "closed")) {\
        if (defined($defs{KU_Roll_verzoegert})){fhem('delete KU_Roll_verzoegert')};;\
           fhem ("define KU_Roll_verzoegert at +00:01:00 set KU_Roll zu");;\
           Log 3, "Rollo wird zugefahren 2.Variante";;\
       }\
       fhem ("set KU_Roll_runter_pruef off");;\
}
MfG Ole

AK-868

Hallo zusammen,

ich hab die Zeilen mal kopiert und meine Sachen angepasst.

Jetzt passiert folgendes das er der Ansicht ist, es ist dunkel, um 17:25 Uhr? oO

Wie oft wird geprüft ob es hell ist? Wie funktioniert das überhaupt alles...

Ich wäre dankbar wenn sich jemand 2-3min Zeit nimmt und mir das erklärt. Oder sagt wo ich es lesen kann. In der Anfänger Abteilung ;)

Vielen Dank.

Hardware FHEM:
Neue Fritzbox 7390 keine Labor von AVM
Konfigurationsadapter Lan
Funk-Schließerkontaktschnittstellen
Funk-Fenster/Türkontakt
Funk-Schaltaktoren UP ein und zweifach
Funk-Jalousieaktoren
Funk-Rauchmelder


Dennis D.

Hallo AK-868,

hilfreich wäre es, wenn Du deine Konfiguration bzgl. der Rolladen hier posten würdest. Die Glaskugel offenbart ohne diese Info leider nicht, warum deine Rolladen bereits um 17:25 Uhr runterfahren. ;-)

Folgendes zur Funktion. Jedenfalls, so wie ich es bisher interpretiert habe. Sollte ich irgendwo irren, bitte ich darum mich zu berichtigen.

Im Grunde wird nicht "geprüft" ob es hell ist, sondern die Funktion "sunset" bzw. "sunrise" ist eine Art astronomischer Kalender bei dem der Zeitpunkt des Sonnenauf- und untergangs berechnet werden. Bei welchem Grad an Dämmerung geschaltet werden soll, kann man durch die Variable HORIZON, NAUTIC, CIVIL, u.s.w. groß einstellen. Die Feineinstellung kann man mittels der Zahl hinter dem "=" vornehmen. Als Beispiel (Werte müssen nicht stimmen): Besagt HORIZON den Zeitpunkt, an dem die Sonne sich am Horizont befindet, so bedeutet "HORIZON=-4" das sich die Sonne 4 Grad unter dem Horizont befindet und es somit noch nicht so hell ist.
1 Grad entsprechen dabei ungefähr 6 Minuten, glaub ich.

Im Endeffekt ist die Funktion Sunrise/Sunset eine Variable für eine Uhrzeit.

Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Dennis D.

Zitat von: ole30419 schrieb am Di, 07 Mai 2013 22:24Hallo,

define KU_Roll_runter1 at *{sunset("HORIZON=-5",300,"17:00","22:00")} set KU_Roll_runter_pruef on

Hi ole,

wofür stehen denn die "300" in dem sunset-string???

Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

AK-868

Die 300 sind ein Delay von 300sec.

@ Dennis D.

Ich hab den Quelltext wie oben kopiert nur Namen der Sensoren und Aktoren getauscht. Und das Wort "zu" gegen "off" getauscht.

Jetzt aktuell ist er der Ansicht es ist noch Hell draussen. Wer weiß was passiert wenn ich jetzt das Fenster öffne und wieder zu mache...

Hardware FHEM:
Neue Fritzbox 7390 keine Labor von AVM
Konfigurationsadapter Lan
Funk-Schließerkontaktschnittstellen
Funk-Fenster/Türkontakt
Funk-Schaltaktoren UP ein und zweifach
Funk-Jalousieaktoren
Funk-Rauchmelder


MisterEltako

Habt ihr latitude und longitude richtig eingegeben?

Ansonsten einfach mit HORIZON=-2 oder CIVIL oder REAL testen.

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

AK-868

Gestern hat es geklappt, waere moeglich das die fritzbox eine falsche Uhrzeit hatte?


Das wuerde das verhalten klaeren...

Kann mir evtl jemand erklaeren wie das programm im detail funktioniert?


was wann wo passiert genau passiert... Ich meine das ich noch massive defiziete habe was das angeht.


Dafuer waere ich sehr dankbar.

mfg ak-868
Hardware FHEM:
Neue Fritzbox 7390 keine Labor von AVM
Konfigurationsadapter Lan
Funk-Schließerkontaktschnittstellen
Funk-Fenster/Türkontakt
Funk-Schaltaktoren UP ein und zweifach
Funk-Jalousieaktoren
Funk-Rauchmelder