Hallo miteinander,
ich verwende die Jalousienmodule recht ausgiebig in unserem Haus http://www.sonnenhaus-landsham.de/ (http://www.sonnenhaus-landsham.de/), war aber mit der Funktion von blind_night nicht so ganz glücklich. Insbesondere hat mich gestört, dass blind_night für die laufende Nacht abbricht, wenn einmal eine Handbetätgung passiert ist.
Hier der Quellcode meines Moduls. Es fällt in den Automatikmodus zurück, sobald die Frist für die Handbedienung abgelaufen ist (in meinem Fall sind das zwei Stunden ...). Vielleicht hilfts ja jemandem.
Gruß
Wolfii
FUNCTION_BLOCK blind_night
VAR_INPUT
UP, DN : BOOL;
S_IN : BYTE;
pi, ai : BYTE;
E_night : BOOL := TRUE;
E_day : BOOL := TRUE;
dtin : DT;
sunrise, sunset : TOD;
END_VAR
VAR_INPUT CONSTANT
sunrise_offset : TIME;
sunset_offset : TIME;
night_position : BYTE := 0;
night_angle : BYTE := 0;
END_VAR
VAR_OUTPUT
QU, QD : BOOL;
status : BYTE;
po, ao : BYTE;
END_VAR
VAR
night : BOOL;
last_night, last_day : DATE;
END_VAR
IF up AND dn THEN
IF (DT_TO_TOD(dtin) > sunset + sunset_offset) AND e_night THEN
(* enable night *)
night := TRUE;
ELSIF (DT_TO_TOD(dtin) > sunrise + sunrise_offset) AND night AND e_day THEN
(* disable night *)
night := FALSE;
END_IF;
ELSE
IF (DT_TO_TOD(dtin) > sunrise + sunrise_offset AND DT_TO_TOD(dtin) < sunset + sunset_offset) THEN
night := FALSE;
END_IF
END_IF
(* shade at night only in auto mode and enable = true *)
IF UP AND DN AND night THEN
status := 141;
po := night_position;
ao := night_angle;
QU := UP;
QD := DN;
ELSE
QU := UP;
QD := DN;
po := pi;
ao := ai;
status := s_in;
END_IF;
Hey,
das ist cool, genau das hab ich noch gesucht!
Warte immer noch auf die Weiterentwicklung der Jalousiemodule, mal sehen da tut sich sicher noch was. Automatische Beschattung etc.....