Makro läuft nicht

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Makro läuft nicht

Beitrag von tsa » 18.02.2010, 09:01

Sorry Peter,

ich hab KEIN Problem mit Dir. Ich habe nur ein Problemchen mit Deiner "Informationspolitik" :wink: - obwohl ich auch bemerke, dass Du Dich bemühst.
Versuche Dich doch mal in die Lage eines Helfers zu versetzen, der Dein System und die ganzen Hintergründe nicht kennt - und auf jeden "Strohalm" angewiesen ist.

Nun zu Deinen Fragen:

Objekt Sonnenuhr
Wenn man in einem Makro einen Zeitvergleich macht muss man Sorge dafür tragen, dass das Makro auch GENAU zu diesem Zeitpunkt ausgeführt wird (zumindest wenn der Vergleich mit einem "=" stattfindet).
Das geht, wie Du es gemacht hast, mit einem Zeitintervall - oder noch besser, wenn das Makro wirklich nur zu ganz bestimmten Zeitpunkten etwas tun soll (so wie bei Dir nur zu den Sonnenzeiten), über die Zeittabelle des Makros. Dazu kannst Du in dieser Tabelle anstatt der zwei Stellen für die Stunden auch einfach ein SU oder ein SA eintragen.
Wenn die Option "Ausführung bei Änderung" aktiviert ist, wird das Makro immer dann ausgeführt, wenn sich der Wert des Objekts ändert. Egal ob der Wert über einen Funkempfang (wenn es ein Sensor ist) oder über eine Zuweisung innerhalb eines anderen Makros geändert wird. Es müsste also "JEMAND" genau zu den Sonnenzeiten den WERT DIESES MAKROS ändern. Allerdings ist dein Objekt Sonnenuhr vom Typ Makro und besitzt gar keinen Wert -> geht also nicht!

Lampe über Zeitprogramm
Das ist ein wenig komplexer - ich bastle Dir mal ein kleines Skript dazu - nachher...

Gruss
Thomas

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Makro läuft nicht

Beitrag von tsa » 18.02.2010, 10:28

So, hier zum Thema "Lampe über Zeitprogramm und Bewegungsmelder":

Das Makro des Bewegungsmelders:

Code: Alles auswählen

**! ============================================================
**! OBJEKT MeinBewegungsmelder
**! ============================================================
**! OBJEKT-TYP              : EAGeraet
**! BEZEICHNUNG             : MeinBewegungsmelder
**! STARTWERT               : 
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : nein
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI EMPFANG  : ja
**! 
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------


MAKRO STARTEN MeineLampe
WARTE("00:20:00")
MeinBewegungsmelder := AUS
MAKRO STARTEN MeineLampe
Und hier das Makro für den Aktor (Lampe):

Code: Alles auswählen

**! ============================================================
**! OBJEKT MeineLampe
**! ============================================================
**! OBJEKT-TYP              : EAGeraet
**! BEZEICHNUNG             : MeineLampe
**! STARTWERT               : 
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : jede Minute
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI ÄNDERUNG : nein
**! 
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------
**! Einschaltbedingung  Schalter


** ############################################
** ######## ZEITSCHALTUNG REALISIEREN #########
** ############################################
Einschaltbedingung := AUS
WENN Uhrzeit ZWISCHEN "06:00:00" UND "07:30:00"
DANN
  Einschaltbedingung := AN
ENDEWENN

WENN Uhrzeit ZWISCHEN "20:00:00" UND "23:00:00"
DANN
  Einschaltbedingung := AN
ENDEWENN

** WENN Uhrzeit ZWISCHEN ...
** WENN Uhrzeit ZWISCHEN ...
** WENN Uhrzeit ZWISCHEN ...


** ############################################
** ######## BEWEGUNGSMELDER ABFRAGEN ##########
** ############################################
WENN MeinBewegungsmelder EINGESCHALTET
DANN
  Einschaltbedingung := AN
ENDEWENN


** ############################################
** ###### UND JETZT DIE LAMPE SCHALTEN ########
** ############################################
WENN Einschaltbedingung = AN
DANN
  WENN MeineLampe AUSGESCHALTET
  DANN
    MeineLampe EINSCHALTEN
    WARTE("00:00:01")
    SENDEWERT(MeineLampe)
    WARTE("00:00:01")
    SENDEWERT(MeineLampe)
  ENDEWENN
SONST
  WENN MeineLampe EINGESCHALTET
  DANN
    MeineLampe AUSSCHALTEN
    WARTE("00:00:01")
    SENDEWERT(MeineLampe)
    WARTE("00:00:01")
    SENDEWERT(MeineLampe)
  ENDEWENN
ENDEWENN
Gruss
Thomas

PS: Es würde auch "kürzer" gehen, aber ich dachte bei mehr Übersichlichkeit kannst Du es besser nachvollziehen :)

ph35708
Beiträge: 46
Registriert: 24.12.2008, 01:55

Re: Makro läuft nicht

Beitrag von ph35708 » 18.02.2010, 17:01

Hallo
Thomas erst mal wieder besten Dank.
habe mir dein Skript gerade mal bei einer schönen Tasse Kaffee mit durch den Kopf gehen lassen da muss man ja ganz schön quer und um die Ecke denken!
das wird wohl noch einiger Fragen bedürfen bis ich da richtig auf dem Pferd sitze!
M.f.G.
Peter aus dem schönen 3 Ländereck Hesse, Rheinland-Pfalz und Nordrhein-Westfalen
HPCL4.0,CCU2 mit FW 2.13.7,1FHZ2000,zur zeit am umstellen von FS20 Auf HomeMatic

ph35708
Beiträge: 46
Registriert: 24.12.2008, 01:55

Re: Makro läuft nicht

Beitrag von ph35708 » 22.02.2010, 19:19

Hallo
Es ist soweit brauch mal wieder ein bisschen Hilfe!!!
Ich möchte gerne mein Makro Sonnenuhr

Code: Alles auswählen

**! ============================================================
**! OBJEKT Sonnenschaltuhr
**! ============================================================
**! OBJEKT-TYP              : Makro
**! BEZEICHNUNG             : Sonnenschaltuhr
**! STARTWERT               : 
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : jede Minute
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI ÄNDERUNG : nein
**! 
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------


wenn Uhrzeit = SONNENAUFGANG dann
   SU_Gaube_1Stock ausschalten
endewenn
wenn Uhrzeit = SONNENAUFGANG dann
   SU_Windfang ausschalten
endewenn
wenn Uhrzeit = SONNENUNTERGANG dann
   SU_Gaube_1Stock einschalten
endewenn
wenn Uhrzeit = SONNENUNTERGANG dann
   SU_Windfang einschalten
endewenn

um das hoch dimmen einer Lampe erweitern.
Da man meines erachtens nur über die Anweisungen
warte 00:05:00
Dimmer:= 4
warte 00:05:00
Dimmer:= 6
und so weiter
langsam auf oder abgedimmt werden kann klapp das ja nicht mit meinem Makro da ich ja AUSFÜHRUNGSINTERVALL : jede Minute einstellen müsste würde ja nur Gaube oder Windfang geschaltet und die Wartezeit nie erreicht.Ich denke ich brauch dazu 3 Makros!
1. Makro Sonnenuhr Ausführungsintervall 1 minute
Wenn Uhrzeit = SU dann
Sonnenuntergang starten
Endewenn
Wenn Uhrzeit = SA dann
Sonnenaufgang starten
Endewenn

2. Makro Sonnenuntergang Ausführung bei Änderung
Lampen werden eingeschaltet und
Dimmer alle 5 minuten 1 Stufe hochgedimmt

3. Makro Sonnenaufgang Ausführung bei Änderung
Lampen werden ausgeschaltet und
Dimmer abgedimmt
M.f.G.
Peter aus dem schönen 3 Ländereck Hesse, Rheinland-Pfalz und Nordrhein-Westfalen
HPCL4.0,CCU2 mit FW 2.13.7,1FHZ2000,zur zeit am umstellen von FS20 Auf HomeMatic

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

Re: Makro läuft nicht

Beitrag von buempi » 22.02.2010, 19:48

Hallo Peter

Dein Konzept würde funktionieren. Aber: Warum ein Makro jede Minute ablaufen lassen, wenn nur 2x am Tag was zu tun ist? Einfach in den Zeittabellen der beiden "Sonnenzeiten-Makros" die Ausführung auf täglich/SA bzw. SU legen! - Thomas hat das doch auch schon vorgeschlagen...

Und: Die Makros sollten nicht Sonnenaufgang und Sonnenuntergang heissen. Das sind Bezeichnungen von Homeputer-Funktionen, und du riskierst so ernsthafte Probleme. Also lieber z.B. MakroSA oder so was.

Noch zum eingestellten Makro: Du musst nicht für jede einzelne Anweisung einen eigenen WENN-Block machen. Du kannst alles zusammenfassen, was z.B. bei Sonnenaufgang ablaufen soll:

Code: Alles auswählen

wenn Uhrzeit = SONNENAUFGANG dann
   SU_Gaube_1Stock ausschalten
   SU_Windfang ausschalten
endewenn
wenn Uhrzeit = SONNENUNTERGANG dann
   SU_Gaube_1Stock einschalten
   SU_Windfang einschalten
endewenn
Viele Grüsse
Bümpi

ph35708
Beiträge: 46
Registriert: 24.12.2008, 01:55

Re: Makro läuft nicht

Beitrag von ph35708 » 22.02.2010, 21:18

buempi hat geschrieben:Hallo Peter

Dein Konzept würde funktionieren. Aber: Warum ein Makro jede Minute ablaufen lassen, wenn nur 2x am Tag was zu tun ist? Einfach in den Zeittabellen der beiden "Sonnenzeiten-Makros" die Ausführung auf täglich/SA bzw. SU legen! - Thomas hat das doch auch schon vorgeschlagen...

Und: Die Makros sollten nicht Sonnenaufgang und Sonnenuntergang heissen. Das sind Bezeichnungen von Homeputer-Funktionen, und du riskierst so ernsthafte Probleme. Also lieber z.B. MakroSA oder so was.

Noch zum eingestellten Makro: Du musst nicht für jede einzelne Anweisung einen eigenen WENN-Block machen. Du kannst alles zusammenfassen, was z.B. bei Sonnenaufgang ablaufen soll:

Code: Alles auswählen

wenn Uhrzeit = SONNENAUFGANG dann
SU_Gaube_1Stock ausschalten
SU_Windfang ausschalten
endewenn
wenn Uhrzeit = SONNENUNTERGANG dann
SU_Gaube_1Stock einschalten
SU_Windfang einschalten
endewenn
Viele Grüsse
Bümpi
Hallo Bümpi
Das mit den Wenn-Blocks habe ich schon so gemacht, hatte das alte Makro noch mal als Beispiel hergenommen.
Aber kannst Du das mit, die Ausführung auf täglich/SA bzw. SU legen, etwas genauer beschreiben (für Doofe) vielleicht ein kleines Bespiel das hab ich bis jetzt nicht verstanden!
M.f.G.
Peter aus dem schönen 3 Ländereck Hesse, Rheinland-Pfalz und Nordrhein-Westfalen
HPCL4.0,CCU2 mit FW 2.13.7,1FHZ2000,zur zeit am umstellen von FS20 Auf HomeMatic

ph35708
Beiträge: 46
Registriert: 24.12.2008, 01:55

Re: Makro läuft nicht

Beitrag von ph35708 » 22.02.2010, 23:19

Alles zurück jetzt hab ich es begriffen!!!??? :o :o :o :o :o
Das man in der Zeit-Tabelle SA oder SU eintragen kann das war doch sehr schwer verständlich. :roll: :wink: :roll: :wink:
M.f.G.
Peter aus dem schönen 3 Ländereck Hesse, Rheinland-Pfalz und Nordrhein-Westfalen
HPCL4.0,CCU2 mit FW 2.13.7,1FHZ2000,zur zeit am umstellen von FS20 Auf HomeMatic

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“