WiP: ASC Schattierungsübersicht

Begonnen von gestein, 17 Juni 2022, 15:57:07

Vorheriges Thema - Nächstes Thema

gestein

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

ch.eick

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
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

gestein

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

ch.eick

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
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Markus

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
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

ch.eick

#5
Hallo,
hier ist auch noch ein Thread zur Beschattung mit einer Frage zum ASC_ExternalTrigger.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick