Rollladensteuerung mit Astrofunktion

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
marbo80
Beiträge: 7
Registriert: 30.07.2015, 08:24

Rollladensteuerung mit Astrofunktion

Beitrag von marbo80 » 14.10.2016, 22:02

Hallo zusammen,

ich würde gerne meine Rollläden gerne mittels der Astrofunktion steuern. Ich möchte dass der Rollladen 1 Stunde nach Sonnenuntergang herunter fährt und 1 Stunde vor Sonnenaufgang wieder rauffährt. Da ich das mit mehreren Rollläden machen will brauch ich noch eine Verzögerung um ein paar Sekunden. Ich habe versucht dafür einen Code zu schreiben aber der Compiler meckert über die 60 Minuten und verzögert um 10 Sekunden. WIe muss ich unten stehenden Code ändern dass das Programm wie gewünscht funktioniert. Vielen Dank im voraus.

Code: Alles auswählen

GETCCUSysVar("Gast",Gaestezimmer,"xxx.xxx.xxx.xx")
wenn Uhrzeit >  (Sonnenuntergang + 60Minuten) und Gaestezimmer = "nichtanwesend" DANN
Rollladen_Arbeitszimmer1OG runterfahren verzögert um 10 Sekunden
endewenn
wenn Uhrzeit > Sonnenaufgang- 60Minuten und Gaestezimmer = "nichtanwesend" DANN
Rollladen_Arbeitszimmer1OG rauffahren verzögert um 10 Sekunden
endewenn

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 35 Mal

Re: Rollladensteuerung mit Astrofunktion

Beitrag von Familienvater » 15.10.2016, 10:06

Hi,

geh weg von der WebUI, sowohl was Systemvariablen angeht, als auch die Denke.

Du kannst Dir in HPCL z.B. Schalter-Objekte anlegen, die keinen Bezug zu einer Hardware haben, um irgendwelche Gästezimmer belegt/frei Stati zu switchen, den Status kannst Du per WebserverCL, VisuWin, oder Apps schalten, die direkt mit der Exec-Engine "sprechen".

Dann erstellst Du dir zwei einfache Objekte vom Typ Makro, eins für Rolladen Hoch, das bekommt in der Zeittabelle einen Eintrag, jeden Tag um 3 Uhr (je nachdem wo Du wohnst, und der früheste Sonnenaufgang ist, muss diese Zeit evtl. noch früher sein), und in das Makro kommt folgendes:

Code: Alles auswählen

// Ist jemand da?
wenn swGast ausgeschaltet dann
  // Nein, direkt aus dem Makro raus, nichts mehr weiter
  verlassen
endewenn

// Wenn wir an diese Stelle kommen, ist jemand da, und es mitten in der Nacht

// Wir brauchen eine Variable uhrVar vom Typ Uhr
// Zeit bis zum Sonnenaufgang berechnen
uhrVar := SONNENAUFGANG - UhrzeitSekunde
// Zeit um die gewünschten Minuten etc. nach vorne verschieben:
uhrVar := uhrVar - "01:00:00"
// Jetzt die Zeit bis zum frühen Sonnenaufgang vertrödeln
warte(uhrVar)

// Verzögerung für die Funkhygiene (hätte man auch schon vorher bei dem Warte mit berücksichtigen/reinrechnen können)
warte("00:00:10")

Rollladen_Arbeitszimmer1OG rauffahren
Soetwas ähnliches für das Rauffahren, wobei hier direkt täglich SU in die Zeittabelle eingegeben werden kann:

Code: Alles auswählen

// Ist jemand da?
wenn swGast ausgeschaltet dann
  // Nein, direkt aus dem Makro raus, nichts mehr weiter
  verlassen
endewenn

// Wenn wir an diese Stelle kommen, ist jemand da, und es ist Sonnenuntergang

// jetzt noch ein bisschen Zeit vertrödeln, bis es 60 Minuten nach Sonnenuntergang ist
warte("01:00:00")

// Verzögerung für die Funkhygiene (hätte man auch schon vorher bei dem Warte mit berücksichtigen können)
warte("00:00:10")
Rollladen_Arbeitszimmer1OG runterfahren
Das ist die "einfachste" Möglichkeit, die nur dann Probleme macht, wenn die EE zwischen 3 Uhr und SA bzw. SU und SU+60 Min neu gestartet wird, weil z.B. ein neues Projekt eingespielt wird, dann fehlt der initiale Trigger um das Makro anzuschieben.

Was nicht berücksichtigt ist, wenn Du den swGast tagsüber änderst, dann ging morgens das Rollo hoch, aber abends nicht mehr runter, bzw. es ist morgens nicht hochgegangen, würde aber abends runtergehen.

Es gibt noch jede Menge andere Möglichkeiten das zu lösen, aber diese hier sollte jeder verstehen, und es ist die mit Abstand "ressourcenschonendste", weil dazu z.B. kein Makro 1438 mal im Minutentakt sinnlos startet.

Der Familienvater

Antworten

Zurück zu „homeputer CL“