Dimmersteuerung

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
JHH
Beiträge: 9
Registriert: 20.09.2009, 21:28
Wohnort: Wilder Süden

Dimmersteuerung

Beitrag von JHH » 28.09.2009, 20:06

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
> 200 Devices, Homeputer CLX, CL-Box, CCU, 5x LAN

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Dimmersteuerung

Beitrag von buempi » 29.09.2009, 08:07

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:

Code: Alles auswählen

wenn NichtStarten = 1 dann
   verlassen
endewenn
Im Makro Bewegungsmelder dann:

Code: Alles auswählen

AnderesMakro.NichtStarten := 1
aufrufen(AnderesMakro)

Dimmer := 70
WARTE("00:02:00")

AnderesMakro.NichtStarten := 0
starte(AnderesMakro)
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

Antworten

Zurück zu „homeputer CL“