Makrobeispiel: FHT80 Komforttemperatur zeitgesteuert

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

Moderator: Co-Administratoren

Antworten
fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Makrobeispiel: FHT80 Komforttemperatur zeitgesteuert

Beitrag von fsommer1968 » 04.04.2012, 21:12

Über die Zeittabelle der FHT80 lassen sich für jeden Tag zwei Zeiträume für die Komforttemperatur einstellen. Über die" Koffer" bzw. "Urlaubsfunktion" lässt sich für einen bestimmten Zeitraum die Absenktemperatur einstellen.
Ich habe für die Heizungsregelung im Badezimmer eine Möglichkeit gesucht, am Vorabend möglichst einfach für den nächsten Tag voreinstellen zu können, wann die Heizung auf Komforttemperatur schalten soll. Die Zeittabelle ist keine Alternative, weil jeden Tag zu einem anderen Zeitpunkt die Heizung einschalten soll, und ich keinen Bildschirm zur zentralen Überwachung der Hausautomation betreibe. Die Bedienung der Zeittabelle am Raumregler ist indiskutabel - jedenfalls für häufige Änderungen.
Herausgekommen ist nun ein Script, mit welchem man über die Temperatureinstellung des betroffenen Raumreglers im Badezimmer einstellen kann, wann am nä. Morgen sich die Heizung einschalten soll.

Die Bedienung funktioniert so:
im Normalfall ist die Heizung im Bad auf "Absenktemperatur (18 Grad) und Automatikbetrieb ist eingeschaltet. Nur aus dieser Betriebseinstellung heraus kann man das "Scheduling" aktivieren.
Wenn die Heizung, sagen wir, um 06:30 auf Komforttemperatur schalten soll, muß am Raumregler im Badezimmer auf "manuell" geschaltert werden und sofort die Temperatureinstellung 6,5 Grad eingestellt werden. Das Script für den Regler "Badezimmer" erkennt diese Änderung (von Automatikbetrieb nach Manuell und gleichzeitig Temperaturänderung von 18 Grad auf "irgendwas") als Triggerbedingung für ein Scheduling. Das Script liest die Temperatureinstellung (hier 6,5 Grad) und baut daraus eine brauchbare Uhrzeit welche im Script "Badezimmerscheduler" herangezogen wird, um mithilfe einer Warteanweisung solange zu warten, bis es 06:30 ist um dann die Heizung auf Komforttemperatur zu schalten.

Das Script für den Raumregler:

Code: Alles auswählen

**! ============================================================
**! OBJEKT Badezimmer
**! ============================================================
**! OBJEKT-TYP              : FHT80b-Raumregler
**! BEZEICHNUNG             : Badezimmer
**! STARTWERT               : -99
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : nein
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI ÄNDERUNG : ja
**!
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------
**! modus_alt           Zahl                -1
**! schedsynchron       Zahl                0
**! solltemp_alt2       Zahl                -1,0

warte("00:00:10")

** Makro ueberwacht Änderung Solltemperatur und Modus
** Wenn gleichzeitig Solltemp geändert wird von Absenktemperatur und Modus von autom. auf manuell geht
** wird von Scheduling ausgegangen und die neue Solltemperatur als Wartezeit angenommen
** wenn auf Komforttemperatur geschaltet wird, Uhrzeiten zwischen 00:30 und 05:30 werden durch
**  Temperaturen zwischen 24,5 Grad und 29,5 Grad dargestellt.
**  Bsp.: Vorher: Solltemp = Absenktemperatur, Modus == automatisch
**       Jetzt:  Solltemp = 24,5Grad, Modus == manuell
**       Ergebnis: Um (29,5 - 24) == 05:30Uhr wird auf Komforttemperatur geschaltet
**       Vorher: Solltemp = Absenktemperatur, Modus == automatisch
**       Jetzt:  Solltemp = 6,0Grad, Modus == manuell
**       Ergebnis: Um 6,0 == 06:00Uhr wird auf Komforttemperatur geschaltet
**       Wenn Scheduling erkannt und eingestellt wurde, wird wieder auf die Absenktemperatur geschaltet
**       Scheduling kann gelöscht werden, indem Scheduling auf 30Grad gestellt wird
wenn schedsynchron = 1 dann
     schedsynchron := 0
     Badezimmer := solltemp_alt2
endewenn

wenn solltemp_alt2 gleich Absenktemperatur und Modus gleich 1 und modus_alt gleich 0 dann
    ** Scheduling erkannt
    schedsynchron := 1
    Badezimmerscheduler.wartezeit := Badezimmer
    makro starten Badezimmerscheduler
    Modus := modus_alt
** eigentlich sollte das Script nur bis hierhin kommen, weil ein Änderung autom. das Script wieder startet
    Badezimmer := solltemp_alt2
    verlassen
endewenn

badezimmer.solltemp_alt2 := badezimmer
badezimmer.modus_alt := badezimmer.modus
Das Script zum Schedulen:

Code: Alles auswählen

**! ============================================================
**! OBJEKT Badezimmerscheduler
**! ============================================================
**! OBJEKT-TYP              : Makro
**! BEZEICHNUNG             : Badezimmerscheduler
**! STARTWERT               :
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : nein
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI ÄNDERUNG : nein
**!
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------
**! wartezeit           Zahl                -1,0
**! startzeit           Uhr                 00:00:00
**! wartezeit_h         Uhr                 00:00:00


wenn wartezeit gleich 30,0 dann
   BadSchedZeit := "Aus"
   verlassen
endewenn

wenn wartezeit groesser 24,0 dann
   wartezeit := wartezeit - 24,0
endewenn

wartezeit_h := "00:30:00"
wartezeit := 2* wartezeit * wartezeit_h
wartezeit_h := wartezeit
BadSchedZeit := wartezeit_h

startzeit := wartezeit_h - uhrzeit

warte(startzeit)
Badezimmer := Badezimmer.Komforttemperatur
BadSchedZeit := "Aus"

Das Objekt BadSchedZeit dient nur zur Visualisierung für Debugzwecke

Code: Alles auswählen

**! ============================================================
**! OBJEKT BadSchedZeit
**! ============================================================
**! OBJEKT-TYP              : Zeichen
**! BEZEICHNUNG             : Heizung Bad einschalten
**! STARTWERT               : "Aus"
**! ------------------------------------------------------------
**! AUSFÜHRUNGSINTERVALL    : nein
**! AUSFÜHRUNG BEI EINGABE  : nein
**! AUSFÜHRUNG BEI ÄNDERUNG : nein
**!
**! ============================================================
**! VARIABLENDEFINITIONEN
**! ============================================================
**! NAME                TYP                 STARTWERT
**! ------------------------------------------------------------
**

Hier ist ein Auszug aus dem Protokoll für die Temperatureinstellung des Raumreglers:
  • 04.04.2012/11:13:28 -> 11,5
    04.04.2012/11:13:40 -> 11,5 << man Einstellung Heizung um 11:30 einschalten (dass gleichzeitig von "Automatik" auf "Manuell" geschaltet wurde sieht man hier nicht)
    04.04.2012/11:13:40 -> 18,0 << autom. Rückstellung auf vorher eingestellte Temperatur (Absenktemperatur)
    04.04.2012/11:30:34 -> 30,0 << Hier hat sich per Scheduler die Heizung eingeschaltet
    04.04.2012/11:50:44 -> 18,0 << Hier wurd die Heizung wieder (manuell) auf Absenktemperatur geschaltet
    ......
    04.04.2012/20:29:47 -> 18,0
    04.04.2012/20:41:20 -> 21,0 << Temperatur auf 21 Grad bedeutet um 21:00 Heizung auf Komforttemperatur (wie oben passiert das nur wenn gleichzeit von "Automatik" auf "Manuell" gewechselt wurde)
    04.04.2012/20:41:31 -> 21,0
    04.04.2012/20:41:31 -> 18,0 << Rückstellen auf Absenktemp. bis Zeitpunkt erreicht ist
    04.04.2012/21:01:01 -> 30,0 << Heizung wurde per Scheduler eingeschaltet

F.Sommer
Zuletzt geändert von fsommer1968 am 05.04.2012, 20:52, insgesamt 2-mal geändert.

dondaik
Beiträge: 12929
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

Re: Makrobeispiel: FHT80 Komforttemperatur zeitgesteuert

Beitrag von dondaik » 04.04.2012, 21:36

top idee !!!
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

Antworten

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