Hallo,
ich habe mal meine gesammelten DOIF-Kenntnisse zusammengekratzt und mir eine Übersicht zu den Schattierungsparametern von ASC gebaut.
Die einzelnen Werte kann man auch ändern.
Leider klappt das ja nicht mehr mit einer einfachen readingsGroup (oder zumindest schaffe ich es nicht).
Momentan werden die Parameter noch nicht in die Devices zurückgeschrieben, aber das sollte kein großes Thema sein.
Mir geht es eher darum Eure Meinung zu hören und Kommentare/Verbesserungen zu bekommen.
Was könnte man wie besser machen?
Kann man z.B. das Widget "textFieldNL" kürzer machen?
lg, Gerhard
edit: Anbei noch bei Bild davon
defmod di_ASC_shading DOIF subs {\
\
push (@{$_shutters},["Rollo.GZ"]);; ## Gästezimmer\
push (@{$_shutters},["Rollo.KZ"]);; ## Kinderzimmer\
push (@{$_shutters},["Rollo.SZ"]);; ## Schlafzimmer\
push (@{$_shutters},["Rollo.WZ.Kueche"]);; ## in der Küche\
push (@{$_shutters},["Rollo.WZ.StiegeRechts"]);; ## \
push (@{$_shutters},["Rollo.WZ.StiegeLinks"]);; ## \
push (@{$_shutters},["Rollo.WZ.StiegeMitte"]);; ##\
\
sub getValues() {\
for (my $i=0;;$i<@{$_shutters};;$i++) {\
set_Reading ("$_shutters[$i][0]_InOutAzimuth_In",::ascAPIget("ShadingAzimuthLeft","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_InOutAzimuth_Out",::ascAPIget("ShadingAzimuthRight","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_ShadingMode",::ascAPIget("ShadingMode","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_Min_OutsideTemperature",::ascAPIget("ShadingMinOutsideTemperature","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_MinMax_Elevation_Min",::ascAPIget("ShadingMinElevation","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_MinMax_Elevation_Max",::ascAPIget("ShadingMaxElevation","$_shutters[$i][0]"));; \
set_Reading ("$_shutters[$i][0]_StateChange_Sunny",::ascAPIget("ShadingStateChangeSunny","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_StateChange_Cloudy",::ascAPIget("ShadingStateChangeCloudy","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_ShadingWaitingPeriod",::ascAPIget("ShadingWaitingPeriod","$_shutters[$i][0]"));;\
set_Reading ("$_shutters[$i][0]_ShuttersPlace",::ascAPIget("ShuttersPlace","$_shutters[$i][0]"));;\
my @times = split /-/, ::ascAPIget("ShadingBetweenTheTime","$_shutters[$i][0]");;\
set_Reading ("$_shutters[$i][0]_ShadingBetweenTheTime1",$times[0]);;\
set_Reading ("$_shutters[$i][0]_ShadingBetweenTheTime2",$times[1]);;\
} \
}\
}\
\
{ if(["$SELF:reread"]) {\
getValues();;\
}\
}\
\
{ if(["$SELF:saveToDev"]) {\
for (my $i=0;;$i<@{$_shutters};;$i++) {\
}\
}\
}\
\
init {\
getValues();;\
}
attr di_ASC_shading room Filelogs
attr di_ASC_shading setList reread:noArg saveToDev:noArg
attr di_ASC_shading uiTable {\
## ToDo\
## save to devices-Button einbauen\
## aus http://192.168.0.117:8083/fhem?detail=di_LogFiles\
##\
package ui_Table;;;;\
$SHOWNOSTATE=1;;;;\
$ATTRIBUTESFIRST=1;;;;\
\
$TPL{selectMode}="select,absent,always,off,home";;\
$TPL{selectPlace}="select,window,terrace,awning";;\
$TPL{knob}="knob,thickness:.3,bgColor:#808080,fgColor:#FFA500,min:0,max:360,width:40,height:40,step:5,angleArc:270,angleOffset:225,displayInput:true";;\
$TPL{knob2}="knob,thickness:.3,bgColor:#808080,fgColor:#FFA500,min:0,max:90,width:40,height:40,step:5,angleArc:270,angleOffset:225,displayInput:true";;\
$TPL{text}="textFieldNL";;\
$TPL{time}="time";;\
}\
\
## Template für ein Rollo\
DEF TPL_shutter("<a href=fhem?detail=$1>".::AttrVal("$1","alias","$1")."</a>"|WID([$SELF:$1_ShadingMode],$TPL{selectMode})|WID([$SELF:$1_ShuttersPlace],$TPL{selectPlace})|WID([$SELF:$1_InOutAzimuth_In],$TPL{knob})." ".WID([$SELF:$1_InOutAzimuth_Out],$TPL{knob})|WID([$SELF:$1_MinMax_Elevation_Min],$TPL{knob2})." ".WID([$SELF:$1_MinMax_Elevation_Max],$TPL{knob2})|WID([$SELF:$1_StateChange_Sunny],$TPL{text})." ".WID([$SELF:$1_StateChange_Cloudy],$TPL{text})|WID([$SELF:$1_ShadingWaitingPeriod],$TPL{text})|WID([$SELF:$1_ShadingBetweenTheTime1],$TPL{time})." ".WID([$SELF:$1_ShadingBetweenTheTime2],$TPL{time}))\
\
## Tabellendefinition\
$TR{1} = "class='even' style='font-weight:bold'";;;;\
$TC{0} = "align='left' vertical-align='middle'";;;;\
$TC{1..7} = "align='middle' vertical-align='middle'";;;;\
\
"<b>ASC-Shading parameters</b> <a href='/fhem?cmd.$SELF=set $SELF reread&'>reread</a> <a href='/fhem?cmd.$SELF=set $SELF saveToDev&'>saveToDev</a> <small>attributes of devices will be changed. Use 'save' in fhem to make them permanent.</small>"<\
"<b>Rollo</b>"|"<b>Modus</b>"|"<b>Place</b>"|"<b>Azimuth</b><br>In Out"|"<b>Elevation</b><br>Min Max"|"<b>StateChange</b><br>Sunny Cloudy"|"<b>ShadingWaitingPeriod</b>"|"<b>ShadingBetweenTheTime</b>"\
FOR(::devspec2array("NAME=Rollo..Z.*"),TPL_shutter($_))
attr di_ASC_shading verbose 1
Hallo, das sieht sehr schön aus.
Irgendwo hatte ich aber doch die Reading Groups gefunden. Was soll da jetzt nicht mehr gehen?
Beim down_early habe ich insbesondere noch Perl Berechnungen drin, da ich zwischen Sommer und Winter automatisch unterscheide, damit die Jahres End Beleuchtung auch zur Geltung kommt.
VG
Christian
Hallo Christian,
Na schau, damit hätte ich jetzt nicht gerechnet.
Ich habe zwar viel gesucht, aber nur Fragen danach gefunden.
Freut mich aber, wenn es trotzdem auch mit einer readingsGroup geht.
Ich wollte immer die 2 Werte bei Azimuth etc. getrennt einstellen.
Aber klar, geht es auch so.
Wie immer gibt es viele Wege.
Man muss nur drauf kommen.
Lg, Gerhard
Zitat von: gestein am 18 Juni 2022, 16:28:59
Hallo Christian,
Na schau, damit hätte ich jetzt nicht gerechnet.
Ich habe zwar viel gesucht, aber nur Fragen danach gefunden.
Freut mich aber, wenn es trotzdem auch mit einer readingsGroup geht.
Ich wollte immer die 2 Werte bei Azimuth etc. getrennt einstellen.
Aber klar, geht es auch so.
Wie immer gibt es viele Wege.
Man muss nur drauf kommen.
Lg, Gerhard
Ich werde den Weg mit dem DOIF aber trotzdem verfolgen, weil ich da schon viele Devices mit steuere und das uitable ziemlich gut finde.
Bei den Rollos war ich schon zwei Jahre nicht mehr dran, wenn es einmal läuft, dann läuft's...
Falls jemand in die RG schauen möchte, dann bitte einfach melden. Ich möchte diesen Thread nicht entern :-)
VG
Christian
Zitat von: gestein am 17 Juni 2022, 15:57:07
Momentan werden die Parameter noch nicht in die Devices zurückgeschrieben, aber das sollte kein großes Thema sein.
Hast du da schon ein Beispiel ?
Gefällt mir sehr gut Danke
Gruß Markus
Hallo,
hier ist auch noch ein Thread (https://forum.fhem.de/index.php/topic,128321.msg1230006.html#msg1230006) zur Beschattung mit einer Frage zum ASC_ExternalTrigger.
VG
Christian