Hallo,
ich habe die 'Beschattung' aus https://wiki.fhem.de/wiki/DOIF/Automatisierung als Vorlage für eine Jalousie-Steuerung genommen.
define TagNacht dummy
attr TagNacht room TEST
attr TagNacht webCmd on:off
#
define JAL_Archiv FS20 c573 50
attr JAL_Archiv IODev MapleCUL_0_868
attr JAL_Archiv devStateIcon auf:fts_shutter_10@green zu:fts_shutter_100@green .*:fts_shutter_50@green
attr JAL_Archiv eventMap /off:zu/off-for-timer 10:halb/on:auf/
attr JAL_Archiv group JALOUSIE
attr JAL_Archiv model fs20rsu
attr JAL_Archiv room TEST
attr JAL_Archiv webCmd auf:halb:zu
#
# Jalousie-Steuerung --------------------------------------------------------------------------------------------------------
#
define di_jalousie DOIF subs {\
@{$_params}= qw(Szene TagNachtSensor Rollladen runter hoch von bis Status aktiv);;\
## Definition einzelner Datensätze pro Szene, Szenen können zeilenweise gelöscht bzw. hinzugefügt werden\
\
push (@{$_sc},[qw(Archiv TagNacht JAL_Archiv zu auf 7:00 22:00 off auto )]);;\
\
if ($::init_done) { ## Bei Änderung der Definition werden alle erfoderlichen Readings erstellt und vorbelegt\
fhem("deletereading $SELF .*");; ## alle Readings des Moduls löschen\
set_State("initialized");; ## Status setzen\
for (my $i=0;;$i < @{$_sc};;$i++) {\
for (my $j=6;;$j < @{$_sc[$i]};;$j++) { ## für Parameter 7 bis 10 Readings anlegen\
set_Reading ($_sc[$i][0].".".$_params[$j],$_sc[$i][$j]);;\
}\
}\
}\
}\
## Definition des Templates namens TPL_shutter, Parameter: \
## $1:Szenenname, $2:TagNacht, $3:Rollläden, $4:runter, $5:hoch, $6:von, $7:bis, $8:Status, $9:aktiv \
DEF TPL_shutter ( \
shutter_$1 { \
if ($9 eq "auto") { ## wenn Szene im 'auto'-Modus\
## Wenn Tag/Nacht on, innerhalb des Zeitfensters und der Rollläden noch nicht heruntergefahren wurden\
if ([$2] eq "on" and [$6-$7] and get_Reading("$3") eq "off") { \
fhem_set("$3 $4");; ## Rollläden herunterfahren (zu/off)\
set_State("Szene: $1 $4");; ## Status setzen\
set_Reading("$1.Status","on",1);; ## Status für Szene im Reading ablegen\
\
} elsif ([$2] eq "off" and get_Reading("$3") eq "on") { \
fhem_set("$3 $5");; ## Rollläden hochfahren (auf/on)\
set_State("Szene: $1 $5");; ## Status mit letzer Szene belegen\
set_Reading("$1.Status","off",1);;## Status für Szene im Reading ablegen\
}\
} \
\
}\
) ## Ende der Templatedefinition\
\
## Generierung der Steuerung pro Szene mit Hilfe des obigen Templates\
FOR (@{$_sc},TPL_shutter($_$1,$_$2,$_$3,$_$4,$_$5,[$SELF:$_$1.von],[$SELF:$_$1.bis],$_$1.Status,[$SELF:$_$1.aktiv]))
attr di_jalousie alias Jalousie-Steuerung
attr di_jalousie room TEST
attr di_jalousie uiTable { package ui_Table;;\
$TC{1..10}="style='padding-left: 10px;; padding-right: 10px;; padding-top: 3px;; padding-bottom: 3px;;' align='center'";;\
}\
## Überschrift der Parameter\
"Szene"|"Tag/Nacht"|"von"|"bis"|"Status"|"aktiv"\
\
## Pro Datensatz einer Szene wird eine Zeile mit Werten und Widgets generiert\
FOR (@{$VAR{sc}},"$_$1"|icon([$_$2:state],"weather_night\@green","weather_sun\@yellow")|WID([$SELF:$_$1.von],"select,6:00,7:00,8:00,9:00,10:00")|WID([$SELF:$_$1.bis],"select,16:00,17:00,18:00,19:00,20:00,21:00,22:00")|icon([$SELF:$_$1.Status],"fts_shutter_10","fts_shutter_90").substr(::ReadingsTimestamp("$SELF","$_$1.Status",0),11,5)|WID([$SELF:$_$1.aktiv],"select,auto,off") )
#
#
# Ende Jalousie-Steuerung ---------------------------------------------------------------------------------------------------
#
In der Visualisierung von JAL_Archiv kann ist den Zustand erkennen. Wie kann ich nun diesen Status in die Steuerung übernehmen? Es sollen somit JAL_Archiv.state mit Archiv.Status vereint werden - oder besser eine gemeinsame Status-Variable verwendet werden.
Ingo
Zur Veranschauung habe ich noch mal einen Screeenshot angehängt. Hat keiner eine Idee, die Statusausgabe zu syncronisieren?