Hier mal Dein Code etwas formatierter, weil, bei "letscontrolit" ist bei mir kein BBCode erlaubt.
Code: Alles auswählen
on ControlZ3 do // Zimmer 3
//control?cmd=event,ControlZ3=0
Let,4,%eventvalue% // var4 neue position
if [VAR#4] > 0 and [VAR#4] < 100 // Abfrage ob im gültigen Bereich
//open/close percent
Let,5,(20/100)*[VAR#4] // Var5 ="Höhe" in sekunden
Let,6,(20/100)*[Z3#S] // Var6 =aktuelle Pos. in Dev. Z3#S
if [VAR#6] > [VAR#5] // dann öffnen
// open a bit
Let,7,[VAR#6]-[VAR#5] // Var7= Laufzeit
logentry,Z3_o_secs=[VAR#7] //
delay,250 // Wozu Verzögerung?
LongPulse,2,0,[VAR#7] //PWR // Relais 1 Power für Laufzeit einschalten
LongPulse,26,0,[VAR#7] // Jalousie 1 einschalten mit Relais 2 (hoch)
gpio,25,1 // Relais 3 bleibt aus Jal nach oben für Laufzeit
LongPulse,33,0,[VAR#7] // Jalousie 2 einschalten mit Relais 4 (hoch)
gpio,32,1 // Relais 5 bleibt aus Jal nach oben für Laufzeit
endif
if [VAR#6] < [VAR#5] // schließen
//close a bit
Let,7,[VAR#5]-[VAR#6] // Var7= Laufzeit
logentry,Z3_c_secs=[VAR#7]
delay,250
LongPulse,2,0,[VAR#7] //PWR // Relais 1 Power für Laufzeit einschalten
LongPulse,26,0,[VAR#7] // Jalousie 1 einschalten mit Relais 2 (hoch)
LongPulse,25,0,[VAR#7] // Jalousie 1 Richtung nach unten mit Relais 3
LongPulse,33,0,[VAR#7] // Jalousie 2 einschalten mit Relais 4 (hoch)
LongPulse,25,0,[VAR#7] // Jalousie 2 Richtung nach unten mit Relais 5
LongPulse,32,0,[VAR#7]
endif
else
if [VAR#4] = 0 // wenn <=0 odr >=100
logentry,Z3_o_comp
delay,250
LongPulse,2,0,20 //PWR // Relais 1 Power einschalten
LongPulse,26,0,20 // Jalousie 1 komplett hoch
gpio,25,1
LongPulse,33,0,20 // Jalousie 2 komplett hoch
gpio,32,1
endif
if [VAR#4] = 100 // Poition 100 = geschlossen
logentry,Z3_c_comp
delay,250
LongPulse,2,0,20 //PWR // Alles runter
LongPulse,26,0,20
LongPulse,25,0,20
LongPulse,33,0,20
LongPulse,32,0,20
endif
if [VAR#4] = 101 // Für besondere Zwecke
//special state
endif
if [VAR#4] = 102 // Für besondere Zwecke
//special state
endif
if [VAR#4] = 103 // Für besondere Zwecke
//special state
endif
endif
TaskValueSet,4,3,[VAR#4] // Dev. Z3#S aktuelle Position
endon
Code: Alles auswählen
on BefJalLinks do // control?cmd=event,BefJalLinks=0
TaskValueSet 11,1,%eventvalue% // Gewünschte Position
if [JalPos#istlinks] >%eventvalue% // Abfrage: Wenn hoch
TaskValueSet 11,1,[JalPos#istlinks]-%eventvalue% // dann aktuelle Position - neue Position = Neue Laufzeit in Dev 11,1
Longpulse,16,1,[Bef_JalPos#blinks] // Relais 1 Nach oben Laufzeit von Dev. 11,1
endif
if [JalPos#istlinks] <%eventvalue% // Das gleiche nach unten
TaskValueSet 11,1,%eventvalue%-[JalPos#istlinks]
Longpulse,5,1,[Bef_JalPos#blinks] // Relais 2
endif
if %eventvalue% =0 // Wenn Pos 0 dann 25s nach oben (damit wieder definierte 0-Position
Longpulse,16,1,25
endif
TaskValueSet 12,1,%eventvalue% // Dev 12,1 jetzt aktuelle Position (JalPos#istlinks)
endon