Hallo,
ich habe ein Makro zur Dimmersteuerung welches über einen längeren Zeitraum mit "WARTE"-Phasen abläuft.
z.B.
Dimmer := 50
WARTE ("01:00:00")
Dimmer := 40
WARTE ("01:00:00")
Dimmer := 30
usw.
Nun möchte ich eben diesen Dimmer auch z.B. mit einem Bewegungssensor ansteuern. Wenn ich im Bewegungssensor angebe, dass der Dimmer bei erkannter Bewegung für 2 Minuten auf 70% gehen soll, dann geht dies soweit, aber nach 2 Minuten geht der Dimmer auf 0% und der o.g. Zeitablauf ist abgebrochen. Ich würde aber gerne auf den zuletzt aktiven Dimmwert zurückspringen, wenn möglich den o.g. zeitablauf auch beibehalten. Über "ABFRAGE(Dimmer)" und eine Variable "V_Dimmwert" um z.B. im Bewegungssensor mit
Dimmer := 70
WARTE ("00:02:00")
Dimmer := V_Dimmwert
den Effekt zu erzielen hatt ich auch keinerlei Erfolg, ebenso nicht mit ALTE STUFE welche ja nur den letzten Wert "vor" dem Ausschalten speichert.
Hat hier irgendjemand eine geniale Idee?
Liebe Grüße aus dem Süden,
Jürgen
Dimmersteuerung
Moderator: Co-Administratoren
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Dimmersteuerung
Hallo Jürgen und willkommen im Forum
Deine Angaben sind widersprüchlich: Wenn das erste Makro im Zeitpunkt, wo der Bewegungsmelder auslöst, bereits läuft, läuft es weiter und schaltet so vielleicht schon nach ein paar Sekunden auf z.B. 30. In diesem Fall ist es nicht möglich, dass der Dimmer für 2 Minuten auf 70 schaltet, wie du schreibst.
Man muss also auf alle Fälle verhindern, dass das erste Makro bei Bewegung weiterläuft. Ein anderes Makro kann man aber nur starten, nicht beenden. Es braucht also den Umweg über eine Variable im anderen Makro; nennen wir sie "NichtStarten" vom Typ Zahl und Startwert 0 und fügen folgendes ganz am Anfang der ersten Makros ein:
Im Makro Bewegungsmelder dann:
Damit beginnt aber das erste Makro ganz oben, also mit 50.
Möchtest du, dass dieses Makro wirklich da weitermacht, wo es durch die Bewegung unterbrochen wurde; also dann z.B. von 70 direkt auf 10 schaltet? Auch das wäre möglich, indem man den Dimmerwert jedes Mal in eine Variable schreibt und dann über das Abfragen dieser Variable und GEHEZU an den richtigen Ort springt. Aus meiner Sicht macht das aber keinen Sinn, wohl weil ich die speziellen Bedürfnisse ja nicht kenne.
Es hätte ausserdem zur Folge, dass das Makro über die Fernbedienung, in der es jetzt wohl steht, nicht mehr neu gestartet werden könnte. Es würde immer dort weitermachen, wo es unterbrochen wurde.
Das müsste man dann wiederum dadurch verhindern, dass man das Makro "ausquartiert" und in der FB den gespeicherten Wert zuerst mit 50 überschreibt.
Solltest du bei der Umsetzung Probleme haben, helfe ich dir gerne auch dabei.
Viele Grüsse
Bümpi
Deine Angaben sind widersprüchlich: Wenn das erste Makro im Zeitpunkt, wo der Bewegungsmelder auslöst, bereits läuft, läuft es weiter und schaltet so vielleicht schon nach ein paar Sekunden auf z.B. 30. In diesem Fall ist es nicht möglich, dass der Dimmer für 2 Minuten auf 70 schaltet, wie du schreibst.
Man muss also auf alle Fälle verhindern, dass das erste Makro bei Bewegung weiterläuft. Ein anderes Makro kann man aber nur starten, nicht beenden. Es braucht also den Umweg über eine Variable im anderen Makro; nennen wir sie "NichtStarten" vom Typ Zahl und Startwert 0 und fügen folgendes ganz am Anfang der ersten Makros ein:
Code: Alles auswählen
wenn NichtStarten = 1 dann
verlassen
endewenn
Code: Alles auswählen
AnderesMakro.NichtStarten := 1
aufrufen(AnderesMakro)
Dimmer := 70
WARTE("00:02:00")
AnderesMakro.NichtStarten := 0
starte(AnderesMakro)
Möchtest du, dass dieses Makro wirklich da weitermacht, wo es durch die Bewegung unterbrochen wurde; also dann z.B. von 70 direkt auf 10 schaltet? Auch das wäre möglich, indem man den Dimmerwert jedes Mal in eine Variable schreibt und dann über das Abfragen dieser Variable und GEHEZU an den richtigen Ort springt. Aus meiner Sicht macht das aber keinen Sinn, wohl weil ich die speziellen Bedürfnisse ja nicht kenne.
Es hätte ausserdem zur Folge, dass das Makro über die Fernbedienung, in der es jetzt wohl steht, nicht mehr neu gestartet werden könnte. Es würde immer dort weitermachen, wo es unterbrochen wurde.
Das müsste man dann wiederum dadurch verhindern, dass man das Makro "ausquartiert" und in der FB den gespeicherten Wert zuerst mit 50 überschreibt.
Solltest du bei der Umsetzung Probleme haben, helfe ich dir gerne auch dabei.
Viele Grüsse
Bümpi