Hallo,
ich habe mir im letzten Winter eine Routine gebastelt, die den Fensterzustand mit den Schaltzeiten darstellt. Jeweils 2 Buttuns stellen "geöffnet,am,ab Uhrzeit" und "geschlossen,am,ab" dar. Gleichzeitig habe ich nach einem erneuten Öffnen des geschlossenen Fensters mir ein mail mit den dargestellten Zeiten geschickt.
Der Hintergrund: Es war der ersten Winter im neuen "Klimahaus" und ich wollte das Lüftungsverhalten mit den Wärmekurven abgleichen.
Seit einigen Monaten läuft die Routine. Es gibt jedoch Zeitprobleme.
Jetzt wollte ich die Codezeilen in ein Makro überführen, scheitere aber grandios an der Auführung. Ich bitte um Hilfe.
Vorgaben des Beispiels:
F61ID ID für Button offenF6 = 6. Fenster, 1 = Buttun Geoffnet, unter F61 werden abgeleitet:
_STAT = Zustand des Fensters ,Auf/Zu = Zustand der GA
var = der gespeicherte Zustand des offenen Fensters
F61IDTEXT = $$c1400 = Displaytext
F62ID ID für Button geschlossen var = der gespeicherte Zustand des geschlossenen Fensters
Konfig3ID = Seiten-ID
"OG_SUED_FK_-5/4/4" = GA des Kontaktes
$OG-SUED$ = Hilfstext für die E-Mail
Derzeitige Sourcelösung:
initGA("OG_SUED_FK_-5/4/4")
if change("OG_SUED_FK_-5/4/4") then F61ID_STAT = "OG_SUED_FK_-5/4/4"b01 endif
if (F61ID_STAT==EIN and F61IDvar==EIN and F62IDvar==EIN) then \\
mailText=convert(F61IDTEXT,$$c1400); \\
sendmail($xyz@hartxy.de$,mailText,mailText); \\
F61IDTEXT = $$c1400; \\ pdisplay(F61ID,LEERTEXT,WINDOW,DISPLAY,GREY,Konfig 3ID);pdisplay(F62ID,LEERTEXT,WINDOW,DISPLAY,GREY,K onfig3ID); \\
F61IDvar=AUS; F62IDvar=AUS \\
endif
if (F61ID_STAT==EIN and F61IDvar==AUS) then \\
pdisplay(F61ID,settime(),WINDOW,DISPLAY,GREEN,Konf ig3ID); \\
F61IDvar=EIN; F61IDTEXT = $OG-Süd Auf: $ + convert(settime(),$$) \\
endif
if (F61ID_STAT==AUS and F62IDvar==AUS and F61IDvar==EIN) then \\
pdisplay(F62ID,settime(),WINDOW,DISPLAY,GREEN,Konf ig3ID); \\
F62IDvar=EIN; F61IDTEXT = F61IDTEXT+ $ Zu: $ + convert(settime(),$$) \\
endif
Die Variablen sind zentral angelegt. In Verbindung mit dem Regensensor oder "Außer Haus"-Signals soll nach ein Warnsystem realisiert werden.
Problem der Lösung:
Alle If- Abfragen werden bei jedem Zyklus durchlaufen.
In einem Versuch den Code in ein Makro zu packen und den gesamten Ablauf mit einem if event(GA) then {
} endif
zu optimieren, scheitere ich leider (noch?).
//FensterStatus(F61ID,F62ID,Konfig3ID,"OG_SUED_FK_-5/4/4",$OG-SUED$) // Fensterkontakt OG-SUED
Vielleicht gelingt es mir nach einigen Tips aus dem erlauchten Kreis der EIB-Gurus!
Für jeden Hinweis bin ich dankbar und bedanke mich schon einmal vorab.
Grüsse aus Bayern
Wolfgang
ich habe mir im letzten Winter eine Routine gebastelt, die den Fensterzustand mit den Schaltzeiten darstellt. Jeweils 2 Buttuns stellen "geöffnet,am,ab Uhrzeit" und "geschlossen,am,ab" dar. Gleichzeitig habe ich nach einem erneuten Öffnen des geschlossenen Fensters mir ein mail mit den dargestellten Zeiten geschickt.
Der Hintergrund: Es war der ersten Winter im neuen "Klimahaus" und ich wollte das Lüftungsverhalten mit den Wärmekurven abgleichen.
Seit einigen Monaten läuft die Routine. Es gibt jedoch Zeitprobleme.
Jetzt wollte ich die Codezeilen in ein Makro überführen, scheitere aber grandios an der Auführung. Ich bitte um Hilfe.
Vorgaben des Beispiels:
F61ID ID für Button offenF6 = 6. Fenster, 1 = Buttun Geoffnet, unter F61 werden abgeleitet:
_STAT = Zustand des Fensters ,Auf/Zu = Zustand der GA
var = der gespeicherte Zustand des offenen Fensters
F61IDTEXT = $$c1400 = Displaytext
F62ID ID für Button geschlossen var = der gespeicherte Zustand des geschlossenen Fensters
Konfig3ID = Seiten-ID
"OG_SUED_FK_-5/4/4" = GA des Kontaktes
$OG-SUED$ = Hilfstext für die E-Mail
Derzeitige Sourcelösung:
initGA("OG_SUED_FK_-5/4/4")
if change("OG_SUED_FK_-5/4/4") then F61ID_STAT = "OG_SUED_FK_-5/4/4"b01 endif
if (F61ID_STAT==EIN and F61IDvar==EIN and F62IDvar==EIN) then \\
mailText=convert(F61IDTEXT,$$c1400); \\
sendmail($xyz@hartxy.de$,mailText,mailText); \\
F61IDTEXT = $$c1400; \\ pdisplay(F61ID,LEERTEXT,WINDOW,DISPLAY,GREY,Konfig 3ID);pdisplay(F62ID,LEERTEXT,WINDOW,DISPLAY,GREY,K onfig3ID); \\
F61IDvar=AUS; F62IDvar=AUS \\
endif
if (F61ID_STAT==EIN and F61IDvar==AUS) then \\
pdisplay(F61ID,settime(),WINDOW,DISPLAY,GREEN,Konf ig3ID); \\
F61IDvar=EIN; F61IDTEXT = $OG-Süd Auf: $ + convert(settime(),$$) \\
endif
if (F61ID_STAT==AUS and F62IDvar==AUS and F61IDvar==EIN) then \\
pdisplay(F62ID,settime(),WINDOW,DISPLAY,GREEN,Konf ig3ID); \\
F62IDvar=EIN; F61IDTEXT = F61IDTEXT+ $ Zu: $ + convert(settime(),$$) \\
endif
Die Variablen sind zentral angelegt. In Verbindung mit dem Regensensor oder "Außer Haus"-Signals soll nach ein Warnsystem realisiert werden.
Problem der Lösung:
Alle If- Abfragen werden bei jedem Zyklus durchlaufen.
In einem Versuch den Code in ein Makro zu packen und den gesamten Ablauf mit einem if event(GA) then {
} endif
zu optimieren, scheitere ich leider (noch?).
//FensterStatus(F61ID,F62ID,Konfig3ID,"OG_SUED_FK_-5/4/4",$OG-SUED$) // Fensterkontakt OG-SUED
Vielleicht gelingt es mir nach einigen Tips aus dem erlauchten Kreis der EIB-Gurus!
Für jeden Hinweis bin ich dankbar und bedanke mich schon einmal vorab.
Grüsse aus Bayern
Wolfgang
Kommentar