Rolladensteuerung
Verfasst: 7. Apr 2021, 10:04
Hallo _Cyber_,
Hier mal Dein Code etwas formatierter, weil, bei "letscontrolit" ist bei mir kein BBCode erlaubt.
Hier mal ein Rolladen bei mir. Werde es auch mal mit Variablen machen, was das Ganze natürlich mächtig verkürzen wird
Gruß Martin
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