Mehrere Programme in einem Makro

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Mehrere Programme in einem Makro

Beitrag von chris4934 » 07.11.2009, 16:37

Guten Abend,

ich habe ein Problem mit dem ich einfach nicht weiterkomme.
Vermutlich mache ich irgendwas falsch, deshalb ersuche ich euch, einen kurzen Blick auf mein erstelltes Makro zu werfen.

Code: Alles auswählen

//dummy

wenn FB_Auto_rechte_Taste_1 = "kurz" und Var_Alarm_Extern = "an" dann

  Jtron_Extern einschalten
  warte 1 Sekunden
  Jtron_Extern einschalten
  warte 1 Sekunden
  Jtron_Extern ausschalten
  warte 1 Sekunden
  Jtron_Extern ausschalten
  Var_Alarm_Extern setzen auf "aus"
endewenn

//FB Auto Garagentor BMW öffnen

wenn Garagentor_BMW_Status = "geschlossen" und FB_Auto_rechte_Taste_1 = "lang" und Var_Anwesenheit = "an" dann

  Garagentor_BMW einschalten
  warte 1 Sekunden
  Garagentor_BMW einschalten
  warte 1 Sekunden
  Garagentor_BMW ausschalten
  warte 1 Sekunden
  Garagentor_BMW ausschalten
wenn-Block-Ende

//FB Auto Heimkehr durch Türl ,2

wenn FB_Auto_rechte_Taste_1 = "kurz" dann

  Tuerloeffner einschalten
  warte 1 Sekunden
  Tuerloeffner einschalten
  warte 1 Sekunden
  Tuerloeffner ausschalten
  warte 1 Sekunden
  Tuerloeffner ausschalten
  Var_Anwesenheit setzen auf "an"
wenn-Block-Ende

Man kann doch grundsätzlich mehrere "Programme" in einem Makro durchführen lassen, oder liege ich da falsch ?
So wie im oberen Beispiel dargestellt, wird die erste wenn Bedingung (unter //dummy) einwandfrei durchgeführt.
Bei Var_Alarm_Extern handelt es sich um eine Variable, erstellt unter Objekte.
Geschaltet wird jeweils ein 4-fach Schaltaktor (pot.freie Kontakte).

Wird diese komplette wenn Bedingung ganz nach unten verschoben, wird sie nicht mehr ausgeführt bei Tastendruck auf die Fernbedienung.
Woran kann das liegen ? Was mache ich falsch ?

Code: Alles auswählen

//FB Auto Garagentor BMW öffnen

wenn Garagentor_BMW_Status = "geschlossen" und FB_Auto_rechte_Taste_1 = "lang" und Var_Anwesenheit = "an" dann

  Garagentor_BMW einschalten
  warte 1 Sekunden
  Garagentor_BMW einschalten
  warte 1 Sekunden
  Garagentor_BMW ausschalten
  warte 1 Sekunden
  Garagentor_BMW ausschalten
wenn-Block-Ende

//FB Auto Heimkehr durch Türl ,2

wenn FB_Auto_rechte_Taste_1 = "kurz" dann

  Tuerloeffner einschalten
  warte 1 Sekunden
  Tuerloeffner einschalten
  warte 1 Sekunden
  Tuerloeffner ausschalten
  warte 1 Sekunden
  Tuerloeffner ausschalten
  Var_Anwesenheit setzen auf "an"
wenn-Block-Ende

//dummy

wenn FB_Auto_rechte_Taste_1 = "kurz" und Var_Alarm_Extern = "an" dann

  Jtron_Extern einschalten
  warte 1 Sekunden
  Jtron_Extern einschalten
  warte 1 Sekunden
  Jtron_Extern ausschalten
  warte 1 Sekunden
  Jtron_Extern ausschalten
  Var_Alarm_Extern setzen auf "aus"
endewenn
PS.: Bitte nicht durch das doppelte Ein- und Ausschalten irreführen lassen, dient nur als Sicherheit bei Funkstörungen.

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

PeterM
Beiträge: 761
Registriert: 14.10.2008, 10:15
System: Alternative CCU (auf Basis OCCU)
Wohnort: Walldorf/Baden
Danksagung erhalten: 2 Mal

Re: Mehrere Programme in einem Makro

Beitrag von PeterM » 07.11.2009, 17:16

Moin Chris,

kann das evtl. an den Anweisungen "wenn-Block-Ende" liegen?
Da kommen zwar keine Systaxfehler, aber in der Doku ist nur "endewenn" beschrieben...

Viele Grüsse,
Peter

chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Re: Mehrere Programme in einem Makro

Beitrag von chris4934 » 07.11.2009, 17:22

Hallo Peter,

gerade noch mal auf endewenn geändert, leider keine Besserung :cry:

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

PeterM
Beiträge: 761
Registriert: 14.10.2008, 10:15
System: Alternative CCU (auf Basis OCCU)
Wohnort: Walldorf/Baden
Danksagung erhalten: 2 Mal

Re: Mehrere Programme in einem Makro

Beitrag von PeterM » 07.11.2009, 17:28

Hallo Chris,

hast du denn in einem der anderen Aktoren/Variablen noch Makros, die evtl. deine Variable "Var_Alarm_Extern" umdübeln, oder den Taster "FB_Auto_rechte_Taste_1" resetten?
Ansonsten habe ich erst mal auch keine Idee :(

Viele Grüsse,
Peter

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

Re: Mehrere Programme in einem Makro

Beitrag von buempi » 07.11.2009, 17:37

Hallo Chris

Du hast in der Fernbedienung wohl eine Reset-Zeit von 3 Sekunden. Bis das Makro sich nach unten durchgekämpft und 3x eine Sekunde gewartet hat, ist die FB schon zurückgesetzt...also nicht mehr "kurz".

Viele Grüsse
Bümpi

chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Re: Mehrere Programme in einem Makro

Beitrag von chris4934 » 07.11.2009, 17:38

Hab soeben die Var_Alarm_Extern rausgenommen, trotzdem wird nicht geschaltet. :?

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Re: Mehrere Programme in einem Makro

Beitrag von chris4934 » 07.11.2009, 17:46

Hallo Bümpi,

genau das wars ! Du bist mein Idol, vielen Dank ! :D

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Re: Mehrere Programme in einem Makro

Beitrag von chris4934 » 07.11.2009, 22:08

Ich hätte da noch eine Frage bzgl. Programmablauf.

Die einzelnen Programme werden doch nacheinander abgearbeitet.
Wenn nun in einem Programm eine längere "warte" Phase verwendet wird, werden die nachfolgenden Programme erst nach Ablauf dieser "warte" Phase ausgeführt.

Kann man diesen Umstand nur durch eine zusätzliche, vorher aufgerufene Variable umgehen, oder gibts da noch eine andere Lösung ?

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

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

Re: Mehrere Programme in einem Makro

Beitrag von buempi » 08.11.2009, 05:58

Hallo Chris

Es sind ja nicht mehrere Programme, die da ablaufen, sondern ein einziges Programm (in Homeputer Makro genannt), das hier ausgeführt wird. Es enthält lediglich mehrere WENN-Blöcke, die natürlich übersprungen werden, wenn die Bedingung nicht zutrifft.

Wie in jeder Programmiersprache, wird auch in Homeputer ein Makro von oben nach unten abgearbeitet. Jedenfalls im Normalfall, wenn man nicht durch Sprunganweisungen (GEHEZU) z.B. einen Programmteil auslässt, wiederholt usw.

Soll nun eine Fernbedienung z.B. mehrere Vorgänge auslösen, kann man einen Programmteil, in welchem keine WARTE() vorkommt, an den Anfang nehmen. Kommen aber in beiden Programmteilen WARTE() vor, behilft man sich damit, dass man in der Fernbedienung ganz am Anfang ein

Code: Alles auswählen

Starte(AnderesMakro)
einträgt.

Den ersten Programmteil belässt man dann in der Fernbedienung, den zweiten verschiebt man ins andere Makro. Die beiden Makros laufen dann parallel zueinander, und die darin enthaltenen WARTE() beeinflussen sich nicht mehr gegenseitig.

Viele Grüsse
Bümpi

chris4934
Beiträge: 366
Registriert: 07.03.2009, 10:25
Wohnort: Wien Umgebung

Re: Mehrere Programme in einem Makro

Beitrag von chris4934 » 08.11.2009, 08:40

Guten Morgen Bümpi,

klappt wie immer perfekt, danke ! :)

MfG
chris
Mit freundlichen Grüßen
Chris

CCU3, 110 Geräte, Homeputer CL

Antworten

Zurück zu „homeputer CL“