Intelligente structure

Begonnen von schalkan56, 10 August 2014, 19:29:47

Vorheriges Thema - Nächstes Thema

schalkan56

Hallo liebe Gemeinde,

habe für meine Fs20 -Display FB folgenden Code geschrieben :
Kanal4_wz_alle_lampen {


if (Value("wz_stehlampe") eq "on") { goto runterdim; }
if (Value("wz_stehlampe") eq "off") { goto hochdim; }
if (Value("wz_stehlampe") ne "on" && Value("wz_stehlampe") ne "off") { goto stopseq;}


goto end;

runterdim:

      fhem ("set wz_stehlampe 0 0 10");
     fhem("set dummy_wz_stehlampe runterdim");

goto end;

hochdim:
fhem ("set wz_stehlampe 20");
      fhem ("set wz_stehlampe 100 0 10");
     fhem("set dummy_wz_stehlampe hochdim");
   
goto end;


stopseq:

    if (Value("Kanal1_wz_stehlampe") eq "dimupdown" && Value("dummy_wz_stehlampe") eq "stopseq")  { goto stopnachrunterdim; }
    if (Value("Kanal1_wz_stehlampe") eq "dimupdown" && Value("dummy_wz_stehlampe") eq "hochseq1")  { goto stopnachhochdim; } 
if (Value("dummy_wz_stehlampe") eq "stopseq") { goto stopnachhochdim;}
if (Value("dummy_wz_stehlampe") eq "hochseq1") { goto stopnachrunterdim;} 
if (Value("dummy_wz_stehlampe") eq "hochdim") { fhem ("set wz_stehlampe stop"); fhem("set dummy_wz_stehlampe stopseq"); }   
if (Value("dummy_wz_stehlampe") eq "runterdim") { fhem ("set wz_stehlampe stop"); fhem("set dummy_wz_stehlampe hochseq1"); } 

     
goto end;

stopnachhochdim:
fhem ("set wz_stehlampe 0 0 10");
     fhem("set dummy_wz_stehlampe runterdim");
goto end;

stopnachrunterdim:
fhem ("set wz_stehlampe 100 0 10");
     fhem("set dummy_wz_stehlampe hochdim");
goto end;

test:
fhem("set dummy_wz_stehlampe test");


end:
     
}


Soll heissen, dass ich mit einem kurzen Tastendruck den dimmer hoch, stoppen und wieder runterdimmen kann. Jetzt möchte ich 2 Dekcenlampen und eine Stehlampe in einer structure zusammenfassen. Diese structure soll mit einem ähnlichen Code gedimmt werden. Problem ist, das eine structure normalerweise keinen "state" hat. Kann man diesen irgendwie zuweisen? Also wenn Lampe 1 = off, Lampe 2 = off -> structure = off ???

Brockmann

Zitat von: schalkan56 am 10 August 2014, 19:29:47
Problem ist, das eine structure normalerweise keinen "state" hat. Kann man diesen irgendwie zuweisen? Also wenn Lampe 1 = off, Lampe 2 = off -> structure = off ???
Wie kommst Du denn darauf? Das ist doch gerade der Sinn (oder zumindest Teil davon) einer structure. Man kann über das Attribut clientstatebehaviour sogar festlegen, wie der Status genau aussehen soll. Wenn Du da absolute nimmst, sollte das von Dir gewünschte Verhalten eintreten ("wenn Lampe 1 = off, Lampe 2 = off -> structure = off").