FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: en-trust am 03 Juli 2019, 10:11:51

Titel: Sonnenschutz fährt willkürlich
Beitrag von: en-trust am 03 Juli 2019, 10:11:51
Folgendes habe ich anhand der Temperatur eingestellt. Allerdings bei 19 Grad max. Temperatur fährt das Rollo dennoch zu. Warum ? Alle 10min, vermutlich wegen dem do always, geht fhem alle 3 doif durch und färt das Rollo jeweils auf 20, 5 oder hoch.

Listauszug...

Internals:
   DEF        ([SH.Beschattung.OnOff] eq "on" and ([Wetter_Pro:fc0_tempMax] > 22 and [Wetter_Pro:fc0_tempMax] < 25) and [SZ.Jalousie.Links:pct] > 20 or [SZ.Jalousie.Rechts:pct] > 50)
(set SZ.Jalousie.Links 20,set SZ.Jalousie.Rechts 50,set PushMessenger msg 'Sonnenschutz aktiviert' 'Die Jalousien (SZ) wurden auf 20:50 gesetzt.')
DOELSEIF ([SH.Beschattung.OnOff] eq "on" and [Wetter_Pro:fc0_tempMax] >= 25 and [SZ.Jalousie.Links:pct] > 5 or [SZ.Jalousie.Rechts:pct] > 10)
(set SZ.Jalousie.Links 5,set SZ.Jalousie.Rechts 10,set PushMessenger msg 'Sonnenschutz aktiviert' 'Die Jalousien (SZ) wurden auf 5:10 gesetzt.')
DOELSE (set SZ.Jalousie.Links 100,set SZ.Jalousie.Rechts 100,set PushMessenger msg 'Sonnenschutz dektiviert' 'Die Jalousien (SZ) wurden wieder hochgefahren.')
   FUUID      5ccbe8a7-f33f-e9d9-4bad-0c2654dcba0bd97d
   MODEL      FHEM
   NAME       SH.Beschattung.On
   NR         1273
   NTFY_ORDER 50-SH.Beschattung.On
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1562141114.02054
           VALUE      1
       cmd_event:
         logdb:
           TIME       1562141114.02054
           VALUE      Wetter_Pro
       cmd_nr:
         logdb:
           TIME       1562141114.02054
           VALUE      1
       mode:
         logdb:
           TIME       1562140903.84434
           VALUE      enabled
       state:
         logdb:
           TIME       1562141114.02054
           VALUE      cmd_1
   READINGS:
     2019-07-03 10:05:33   Device          SZ.Jalousie.Links
     2019-07-03 10:05:13   cmd             1
     2019-07-03 10:05:13   cmd_event       Wetter_Pro
     2019-07-03 10:05:13   cmd_nr          1
     2019-07-03 10:05:13   e_Wetter_Pro_fc0_tempMax 19
     2019-07-03 10:01:43   mode            enabled
     2019-07-03 10:05:13   state           cmd_1
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'SH.Beschattung.OnOff','STATE') eq "on" and (::ReadingValDoIf($hash,'Wetter_Pro','fc0_tempMax') > 22 and ::ReadingValDoIf($hash,'Wetter_Pro','fc0_tempMax') < 25) and ::ReadingValDoIf($hash,'SZ.Jalousie.Links','pct') > 20 or ::ReadingValDoIf($hash,'SZ.Jalousie.Rechts','pct') > 50
     1          ::InternalDoIf($hash,'SH.Beschattung.OnOff','STATE') eq "on" and ::ReadingValDoIf($hash,'Wetter_Pro','fc0_tempMax') >= 25 and ::ReadingValDoIf($hash,'SZ.Jalousie.Links','pct') > 5 or ::ReadingValDoIf($hash,'SZ.Jalousie.Rechts','pct') > 10
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: Otto123 am 03 Juli 2019, 10:18:26
Hi,

ganz einfach: wenn dieser Ausdruck wahr ist or [SZ.Jalousie.Rechts:pct] > 50 ist der gesamte Ausdruck wahr.

Du musst klammern :) und dies beachten https://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity

Also das Verhalten ist nicht willkürlich sondern (un)gewollt.  ;)

Gruß Otto
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: en-trust am 05 Juli 2019, 10:43:50
Jo, die klammer habe ich ganz übersehen. Danke.
Ich habe es noch etwas optimiert. Denn gestern hat fhem einfach die Jalousie nach 19 bewegt obwohl Beschattung auf off stand.

([09:00-19:00] and [SH.Beschattung.OnOff] eq "on" and ([Wetter_Pro:fc0_tempMax] > 22 and [Wetter_Pro:fc0_tempMax] < 25) and ([SZ.Jalousie.Links:pct] > 20 or [SZ.Jalousie.Rechts:pct] > 50))
(set SZ.Jalousie.Links 20,set SZ.Jalousie.Rechts 50,set PushMessenger msg 'Sonnenschutz aktiviert' 'Die Jalousien (SZ) wurden auf 20:50 gesetzt.')
DOELSEIF ([09:00-19:00] and [SH.Beschattung.OnOff] eq "on" and [Wetter_Pro:fc0_tempMax] >= 25 and ([SZ.Jalousie.Links:pct] > 5 or [SZ.Jalousie.Rechts:pct] > 10))
(set SZ.Jalousie.Links 5,set SZ.Jalousie.Rechts 10,set PushMessenger msg 'Sonnenschutz aktiviert' 'Die Jalousien (SZ) wurden auf 5:10 gesetzt.')
DOELSEIF ([09:00-19:00] and [SH.Beschattung.OnOff] eq "on" and [Wetter_Pro:fc0_uv] > 7)
(set SZ.Jalousie.Links 50,set SZ.Jalousie.Rechts 65)
DOELSE (set SZ.Jalousie.Links 100,set SZ.Jalousie.Rechts 100,set PushMessenger msg 'Sonnenschutz dektiviert' 'Die Jalousien (SZ) wurden wieder hochgefahren.')
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: CoolTux am 05 Juli 2019, 11:04:50
Schau Dir mal AutoShuttersControl an.

https://forum.fhem.de/index.php/topic,99980.0.html
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: en-trust am 09 Juli 2019, 15:25:13
AutoShuttersControl gleicht mir für den ersten Blick nach einer Studienaufgabe ;)

Im Prinzip wären hier dann ja die Befehle ASC_Shading_Angle_Left,... Aber was hat es mit dem Vorlaufwinkel auf sich und wie berechnet man den ?
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: CoolTux am 09 Juli 2019, 15:54:45
Vorlauf ist nichts weiter wie der Winkel ab dem die Sonne an fängt ein zu fallen

Also bei 180 Fensterstand fängt die Sonne bei 140 an rein zu scheinen. Wäre also ein Vorlaufwinkel von 40. Beim Nachlauf dann genau so.


Grüße
Titel: Antw:Sonnenschutz fährt willkürlich
Beitrag von: Prof. Dr. Peter Henning am 11 Juli 2019, 04:29:49
ZitatAutoShuttersControl gleicht mir für den ersten Blick nach einer Studienaufgabe
Nicht doch. Die sind schon noch etwas fortgeschrittener...

LG

pah