Problem mit der Rollladensteuerung

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

Vorheriges Thema - Nächstes Thema

Dennis D.

also genau an dem "fehlerhaften" Syntax scheint es zu liegen. Egal wie ich es versuche, ich bekomme ständig Fehlermeldungen bzgl. des Syntax.

Des weiteren habe ich noch ne Frage zu "isday": Wann wechselt diese Variable denn ihren Status. Bei Sunset verwende ich ja "HORIZON=-3" also müsste ich ja irgendwo einstellen, dass isday entsprechend um die korrekte zeit auf "nein" oder was auch immer gesetzt wird.
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

Puschel74

Hallo,

die Fehlermeldungen wären interessant ;-) Aber ok.

define Rollo_runter_prüfen notify Rollo_runter_prüf:zu.* {
my $now=sprintf("%%02d:%%02d",$hour,$min);
my $Griff =ReadingsVal("EZ_Fenstergriff","State","offen");
if($now >= "17:00" && $now <="22:00" && $Griff eq "zu") {
if (!isday()) {
fhem ("set Rollo zufahren");
}
}
if($now > "22:00" && $Griff eq "zu") {
fhem ("set Rollo zufahren");
}
}


Versuchen wirs mal so rum ;-)
Einfach in die Def kopieren und das Regexp anpassen auf :zu.*
Und im zweiten notify auch noch das regexp anpassen auf EZ_Fenstergriff:zu.*
So. Und nächstes Mal bitte die Fehlermeldung posten ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

Sorry! Klar, ohne die Fehlermeldung ist das was schwierig.

Ich habe jetzt noch mal das von dir eingefügt und die Device-Namen angepasst. Mit dem Regexp anpassen habe ich aber jetzt nicht so ganz verstanden *rotwerd*. Bei mir sieht das jetzt in der .cfg so aus:


define EZ_Jalousie_runter1 at *{sunset("HORIZON=-4",0,'17:00','22:00')} trigger EZ_Jalousie_runter_pruef zu
attr EZ_Jalousie_runter1 alias Jalousie Sunset Trigger
attr EZ_Jalousie_runter1 group Jalousien
attr EZ_Jalousie_runter1 room Esszimmer
define EZ_Jalousie_runter2 notify EZ_Fensterdrehgriff:.zu* trigger EZ_Jalousie_runter_pruef zu
attr EZ_Jalousie_runter2 alias Jalousie Fensterdrehgriff Trigger
attr EZ_Jalousie_runter2 group Jalousien
attr EZ_Jalousie_runter2 room Esszimmer

define EZ_Jalousie_runter_pruef notify EZ_Jalousie_runter_pruef:zu.* {
my $now=sprintf("%%02d:%%02d",$hour,$min);
my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","offen");
if($now >= "17:00" && $now <="22:00" && $Griff eq "zu") {
if (!isday()) {
fhem ("set EZ_Jalousie geschlossen");
}
}
if($now > "22:00" && $Griff eq "zu") {
fhem ("set EZ_Jalousie geschlossen");
}
}
attr EZ_Jalousie_runter_pruef alias Jalousie schließen nach pruefung
attr EZ_Jalousie_runter_pruef group Jalousien
attr EZ_Jalousie_runter_pruef room Esszimmer


Wenn ich ein rereadcfg im Web-Interface eingebe, bekomme ich folgende Meldungen:

Unknown command my, try help
Unknown command my, try help
Unknown command if($now, try help
Unknown command if, try help
Unknown command fhem, try help
Unknown command }, try help
Unknown command }, try help
Unknown command if($now, try help
Unknown command fhem, try help
Unknown command }, try help
Unknown command }, try help
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.

Habs glaube ich. Habe den Code dahingehend geändert:

define EZ_Jalousie_runter_pruef notify EZ_Jalousie_runter_pruef:zu.* {\
   my $now=sprintf("%%02d:%%02d",$hour,$min);;\
   my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","offen");;\
      if($now >= "17:00" && $now <="22:00" && $Griff eq "zu") {\
      if (!isday()) {\
         fhem ("set EZ_Jalousie geschlossen");;\
      }\
   }\
   if($now > "22:00" && $Griff eq "zu") {\
      fhem ("set EZ_Jalousie geschlossen");;\
   }\
}

Semikolon durch Doppel-Semikolon ersetzt und hinter jeden Zeilenumbruch nen Backslash. Obs funktioniert weiß ich zwar noch nicht, aber es kommen keine Fehlermeldungen mehr *g*.
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

Puschel74

Hallo,

ok wenn du die .cfg direkt editierst - hast du ja nicht verraten (meine ich) und meine Glaskugel hat noch Urlaub ;-)

Ich bin (fälschlicherweise) von mir ausgegangen.

Ich geb gern in die Befehlszeile von fhem

define EZ_Jalousie_runter_pruef notify EZ_Jalousie_runter_pruef:zu.* {

ein und bearbeite dann entsprechend die DEF des notify.

Da brauchst du nichts schützen und doppeln, das übernimmt fhem für dich.
Aber wenn schonmal keine Fehlermeldungen kommen ist das ja schonmal nicht schlecht.

Wenn jetzt der Rollladen noch tut was er machen soll dann wäre das ja top.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

Hallo,

ja, bin absoluter Newbie und hab mich wohl etwas überstürzt rein geworfen. Habe nun erstmal das einsteiger Tutorial gelesen und da ist mir so einiges klar geworden. leider funktioniert es immer noch nicht, aber bevor ich hier wieder was poste, werde ich erst mal die Logs lesen und abwarten bis mein Fenstergriff Sensor da ist (habe aktuell ja nur nen Dummy angelegt).

Vielen Dank fürs erste. Gebe Bescheid, wenn es läuft (oder nicht).

Grüße
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

Puschel74

Hallo,

naja, du kannst den Code doch schon testen.
Den Rollladen kannst du ja schon hoch und runter fahren oder?
Wenn ja dann sollte ein

set <DummyFenstergriff> zu
trigger EZ_Jalousie_runter_pruef zu

zumindest schonmal das notify ausführen lassen und wenn dein Dummy Fenstergriff zu
meldet sollte der Rollladen abends schonmal runter fahren.
Die Zeiten kannst du ja noch variieren damit das ganze auch Tagsüber funktioniert - zum testen.

Grüße

P.S.: Ich lauf auch nicht jedesmal ins Obergeschoss und mach das Fenster auf wenn ich einen
Codeschnipsel teste - das lässt sich mit dem trigger schön von der Tastatur aus erledigen ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

irgendwie will es noch nicht.

habe nun folgenden code:


define EZ_Jalousie_runter_pruef dummy
attr EZ_Jalousie_runter_pruef eventMap on off
attr EZ_Jalousie_runter_pruef alias Jalousie Trigger
attr EZ_Jalousie_runter_pruef group Jalousien
attr EZ_Jalousie_runter_pruef room Esszimmer

define EZ_Jalousie_runter1 at *{sunset("HORIZON=-4",0,'17:00','22:00')} trigger EZ_Jalousie_runter_pruef on
attr EZ_Jalousie_runter1 alias Jalousie Sunset Prüfung
attr EZ_Jalousie_runter1 group Jalousien
attr EZ_Jalousie_runter1 room Esszimmer

define EZ_Jalousie_runter2 notify EZ_Fensterdrehgriff:off.* trigger EZ_Jalousie_runter_pruef on
attr EZ_Jalousie_runter2 alias Jalousie Fensterdrehgriff Prüfung
attr EZ_Jalousie_runter2 group Jalousien
attr EZ_Jalousie_runter2 room Esszimmer

define EZ_Jalousie_runter_pruef2 notify EZ_Jalousie_runter_pruef:on.* {\
   my $now=sprintf("%%02d:%%02d",$hour,$min);;\
   my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on");;\
      if($now >= "17:00" && $now <="22:00" && $Griff eq "off") {\
      if (!isday()) {\
         fhem ("set EZ_Jalousie runter");;\
      }\
   }\
   if($now > "22:00" && $Griff eq "off") {\
      fhem ("set EZ_Jalousie runter");;\
   }\
}
attr EZ_Jalousie_runter_pruef2 alias Jalousie schließen nach Prüfung
attr EZ_Jalousie_runter_pruef2 eventMap off
attr EZ_Jalousie_runter_pruef2 group Jalousien
attr EZ_Jalousie_runter_pruef2 room Esszimmer


Wenn ich ins log schaue, setzt er beim schließen des Fenstergriffs (setzen auf "off") den Dummy "EZ_Jalousie_runter_pruef" auf "off":

2013-01-07_11:26:32 EZ_Fensterdrehgriff off
2013-01-07_11:26:32 EZ_Jalousie_runter_pruef on

Schaue ich ins WebInterface, dann steht der State des "EZ_Jalousie_runter_pruef" aber noch auf off. Entsprechend wird "EZ_Jalousie_runter_pruef2" nicht getriggert und der restliche Code nicht ausgeführt.
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

Puschel74

Hallo,

evtl. nur halb gedacht von mir aber

define EZ_Jalousie_runter1 at *{sunset("HORIZON=-4",0,'17:00','22:00')} trigger EZ_Jalousie_runter_pruef on
sollte heissen
define EZ_Jalousie_runter1 at *{sunset("HORIZON=-4",0,'17:00','22:00')} set EZ_Jalousie_runter_pruef on
und nach erfolgter Prüfung muss noch ein
my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on");;\
      if($now >= "17:00" && $now <="22:00" && $Griff eq "off") {\
      if (!isday()) {\
         fhem ("set EZ_Jalousie runter;; set EZ_Jalousie_runter_pruef off");;\
       }\
   }\
   if($now > "22:00" && $Griff eq "off") {\
      fhem ("set EZ_Jalousie runter;; set EZ_Jalousie_runter_pruef off");;\
   }\
}

damit beim nächsten on dieses auch erkannt werden kann.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

Tante Edith fehlt ganz arg @Martin ^^

Das

define EZ_Jalousie_runter2 notify EZ_Fensterdrehgriff:off.* trigger EZ_Jalousie_runter_pruef on
sollte auch so
define EZ_Jalousie_runter2 notify EZ_Fensterdrehgriff:off.* set EZ_Jalousie_runter_pruef on
aussehen.

Nu sollte es aber klappen (jetzt haben wir ja bald alle Varianten durch ;-) ).

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

Nun funktioniert es schon was besser. Allerdings geht "EZ_Jalousie_runter_pruef" nun nicht aus. Aus dem Log geht auch nicht hervor, dass "EZ_Jalousie_runter_pruef2" ausgeführt wird. Kann das daran liegen, dass die Routine

$Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on")

nicht auslesen kann, da der Fenstergriff ja noch ein "Dummy" ist?

PS: Ja die edit-Funktion vermisse ich hier auch :-)
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

Puschel74

Hallo,

wenn du die Uhrzeiten und Bedingungen so wie im Code dargestellt
auch in der .cfg hast kann ja nichts passieren ;-)
Wir haben vor 17:00 Uhr also darf ja der Rollladen garnicht runter fahren.
Oder hab ich was verpasst??
Stell mal von 17 Uhr auf 11 Uhr oder 12 Uhr - so das die Bedingunge erfüllt ist
nach x Uhr (jetzt) und vor 22 Uhr (also jetzt) und Griff zu = wahr
dann müsste der Rollladen runter fahren.

Da, in diesem Fall jetzt, beide Abfragen false liefern wird auch EZ_Jalousie_runter_pruef
nicht zurück gesetzt da garnicht abgefragt wird.
Ok. Das muss auch noch rein.

my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on");;\
      if($now >= "17:00" && $now <="22:00" && $Griff eq "off") {\
      if (isday()) {\          
         fhem ("set EZ_Jalousie runter;; set EZ_Jalousie_runter_pruef off");;\
       }\
   if($now > "22:00" && $Griff eq "off") {\
      fhem ("set EZ_Jalousie runter;; set EZ_Jalousie_runter_pruef off");;\
   }\
  fhem ("set EZ_Jalousie_runter_pruef off");;\
}


Ich hoffe die Stelle ist richtig und jetzt musst du auch aus !isday() ein isday()
machen sonst trifft auch diese Prüfung nicht zu.


Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

manchmal sieht man den wald vor lauter bäumen nicht. dennoch, auch nach der änderung funktioniert es nicht. langsam verzeifel ich. von der logik her passt doch nun alles.


define EZ_Jalousie_runter_pruef2 notify EZ_Jalousie_runter_pruef:on.* {\
   my $now=sprintf("%%02d:%%02d",$hour,$min);;\
   my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on");;\
      if($now >= "11:00" && $now <="22:00" && $Griff eq "off") {\
#      if (!isday()) {\
      if (isday()) {\
         fhem ("set EZ_Jalousie runter ;; set EZ_Jalousie_runter_pruef off");;\
      }\
#   }\
   if($now > "22:00" && $Griff eq "off") {\
      fhem ("set EZ_Jalousie runter ;; set EZ_Jalousie_runter_pruef off");;\
   }\
fhem ("set EZ_Jalousie_runter_pruef off");;\
}
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

Puschel74

Hallo,

dir fehlt eine schliessende Klammer ;-)
Sollte aber auch im Logfile stehen.

Das letzte "set ... off" müssen wir fhem noch schmackhaft machen.
Spätestens wenn du die Uhrzeit wieder auf 17 Uhr änderst hast du zwischen
00:00 Uhr und 16:59 das Problem das der Befehl nicht ausgeführt wird da
wir um z.b. 10 Uhr ja ausserhalb der Zeit sind.

Also muss


define EZ_Jalousie_runter_pruef2 notify EZ_Jalousie_runter_pruef:on.* {\
   my $now=sprintf("%%02d:%%02d",$hour,$min);;\
   my $Griff =ReadingsVal("EZ_Fensterdrehgriff","State","on");;\
      if($now >= "11:00" && $now <="22:00" && $Griff eq "off") {\
      if (isday()) {\
         fhem ("set EZ_Jalousie runter");;\
      }\
   }\
   if($now > "22:00" && $Griff eq "off") {\
      fhem ("set EZ_Jalousie runter");;\
   }\
  fhem ("set EZ_Jalousie_runter_pruef off");;\
}


Da ich vorhin einige Klammern geklaut habe hier nochmal das ganze notify.
Die 2 ("set ... off") sollten wir uns sparen können da das letzte
fhem ("set ... off")
in jedem Fall ausgeführt werden sollte wenn das notify aufgerufen wird.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

Jetzt sind wir soweit, dass er "EZ_Jalousie_runter_pruef" kurz ein und wieder ausschaltet (im WebInterface nicht sichtbar). Den Part dazwischen - das runterfahren - übergeht er nach wie vor.

2013.01.07 12:46:56 2: dummy set EZ_Fensterdrehgriff off
2013.01.07 12:46:56 2: dummy set EZ_Jalousie_runter_pruef on
2013.01.07 12:46:56 2: dummy set EZ_Jalousie_runter_pruef off

Aber so langsam wird es ja was. *g*
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