programmierung mit verzögerung

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
gerald_d
Beiträge: 132
Registriert: 13.07.2008, 13:06

programmierung mit verzögerung

Beitrag von gerald_d » 13.07.2008, 13:48

hallo,

ich bin neu in diesem forum, lese aber schon einige zeit sehr interessiert mit.

vielleicht könnt ihr mir bei folgendem problem helfen.
ich möchte gerne wenn ich den taster1 kurz betätige den aktor1 für 2 sekunden schalten und
nach 30 minuten nochmals den aktor1 für 2 sekunden schalten.

den ersten schaltvorgang hab ich ohne probleme gelöst, jedoch die wartezeit von 30 minuten
bring ich einfach nicht hin, bzw. hab ich keine ahnung wie ich es machen soll.

danke im voraus

MHE
Beiträge: 87
Registriert: 13.06.2008, 11:46
Wohnort: Deutschland

Re: programmierung mit verzögerung

Beitrag von MHE » 13.07.2008, 15:56

Hallo das geht z.B.so

wenn Taster ist gleich "kurz" dann
mach_hier_was mit aktor1
wenn-Block-Ende

wenn Stoppuhr(Taster1.ct) groesser "00:30:00" dann
mach_hier_was mit aktor1
wenn-Block-Ende

------------------
Ausführung alle Minute. Geht NICHT über Mitternacht
Taster1.ct ist die Uhr die bei jedem Objekt ab der letzten Betätigung anläuft.
Stopuhr vergleicht diesen Wert mit den 30 Minuten. NUR innerhalb eines Tages. Also ab 23:31:00 geht das nicht mehr.
Gruss
M. Helbig

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

Re: programmierung mit verzögerung

Beitrag von buempi » 14.07.2008, 21:12

Hallo zusammen

Ich glaube nicht, dass das ganz so abläuft, wie Gerald es sich wünscht. Wenn das Makro alle 30 Minuten abläuft, bleibt die erste WENN-Bedingung ewig erfüllt und wird also alle 30 Minuten ausgeführt, auch wenn schon lange nicht mehr gedrückt wurde. Nach 30 Minuten ist das Problem nicht gelöst, denn Stoppuhr(Taster1.ct) ist dann immer > "00:30:00" und beide WENN-Bedingungen werden jede halbe Stunde ausgeführt.

Ich würde das so schreiben, auch wenn es Leute gibt, die - zu Unrecht - der WARTE()-Anweisung nicht ganz trauen:

Code: Alles auswählen

wenn Taster ist gleich "kurz" dann
   Aktor1 ...schalten für "00:00:02"
   warte("00:30:00")
   Aktor1 ...schalten für "00:00:02"
wenn-Block-Ende
Dann nur "Ausführen bei Empfang" - KEINEN Ausführungsintervall.

Viele Grüsse
Bümpi

gerald_d
Beiträge: 132
Registriert: 13.07.2008, 13:06

Re: programmierung mit verzögerung

Beitrag von gerald_d » 15.07.2008, 14:46

danke für die hilfe,
ich werde das mit dem warten mal testen.

lg
gerald

MHE
Beiträge: 87
Registriert: 13.06.2008, 11:46
Wohnort: Deutschland

Re: programmierung mit verzögerung

Beitrag von MHE » 15.07.2008, 14:47

Hallo Bümpi,

da hast Du aber wirklich Recht - das war ne Dauerschleife!

Gruss
M. Helbig

gerald_d
Beiträge: 132
Registriert: 13.07.2008, 13:06

Re: programmierung mit verzögerung

Beitrag von gerald_d » 15.07.2008, 15:16

hallo bümpi,

ich hätte das schon mal so gehabt, jedoch hab ich bei mir nur die option "ausführen bei änderung"
hab ich da was falsch gemacht??

danke
gerald

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

Re: programmierung mit verzögerung

Beitrag von buempi » 15.07.2008, 15:28

Hallo Gerald

Ich bin von der "FHZ-Abteilung". Vielleicht sind die Bezeichnungen bei Homeputer CL anders. Wichtig ist, dass das Makro im TASTER steht; nicht etwa im Aktor! Wenn's beim Taster "Ausführen bei Änderung" heisst (es also kein "Ausführen bei Empfang" gibt), aktivierst du diese Option.

Viele Grüsse
Bümpi

gerald_d
Beiträge: 132
Registriert: 13.07.2008, 13:06

Re: programmierung mit verzögerung

Beitrag von gerald_d » 17.07.2008, 17:24

danke bümpi,

das "ausführen bei empfang" war das zauberwort.
jetzt funktioniert es super.

danke nachmal

gerald_d
Beiträge: 132
Registriert: 13.07.2008, 13:06

Re: programmierung mit verzögerung

Beitrag von gerald_d » 17.07.2008, 21:18

hallo,

jetzt hab ich doch noch eine frage.
ich hoffe ich kann das jetzt auch richtig beschreiben.
ich habe 2 skirpt's.
wenn Taster1 ist gleich "kurz" dann
Aktor1 ...schalten für "00:00:02"
warte("00:30:00")
Aktor1 ...schalten für "00:00:02"
wenn-Block-Ende

wenn Taster2 ist gleich "kurz" dann
Aktor1 ...schalten für "00:00:02"
wenn-Block-Ende

wie kann ich es machen das wenn taster1 betätigt wurde, der "warten" vorgang
abgebrochen wird.
reicht es wenn ich taster2 betätige?

danke
gerald

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

Re: programmierung mit verzögerung

Beitrag von buempi » 18.07.2008, 06:59

Hallo Gerald

Du musst das zweite Script im Objekt Taster2 hinterlegen und wie folgt erweitern:

Code: Alles auswählen

wenn Taster2 ist gleich "kurz" dann
   Aktor1 ...schalten für "00:00:02"
   Taster1.Abbruch := 1
   Starte(Taster1)
wenn-Block-Ende
Im Taster1 musst du eine Variable vom Typ Zahl "Abbruch" und Startwert 0 definieren. Ganz am ANFANG des Makros fügst du zusätzlich folgendes ein:

Code: Alles auswählen

wenn Abbruch = 1 dann
   Abbruch := 0
   verlassen
endewenn
Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer CL“