Praxis – Funk-Thermostat FS20 STR

Das folgende Beispiel zeigt, wie man einen Badheizkörper mit zusätzlicher E-Heizung regelt.

Aufgabe:
In der Zwischenheizperiode, wenn die Zentralheizung nicht in Betrieb ist,
soll das Bad morgens auf eine angenehme Temperatur gebracht werden.

Lösung:
In dem Skript „Einstellungen“ wird per Hand die Heizperiode ausgewählt,
die vorher im Skript „Konstanten“ definiert worden sind.
Das Funk-Thermostat (bitte Bedienungsanleitung lesen!) setzt “ im Heizbetrieb die Variable auf „False",
wenn die gewählte Temperatur erreicht wurde und auf „True“ bei einer Unterschreitung (Hysterese beachten).
Die Funkbefehle werden mindestens alle 8 Minuten wiederholt.
An die Steckdose wird ein Einschaltbefehl von 10 Minuten gesendet. Dies geschieht aus Sicherheitsgründen:
sollte die Funkübertragung ausfallen, so schaltet sich die Steckdose automatisch ab.
Befindet sich der Thermostat im manuellen Betrieb, so können die Schaltzeiten im Skript angegeben werden.
Im Automatik-Betrieb sind die Vergleiche: (time() > $time_xxx) wegzulassen.

Vorraussetzung:
Für den FS20 STR muss ein „FS20 RX“ und für Steckdose ein „FS20 TX“ Modul in den
Instances eingefügt werden – siehe Bild.
Die beiden Geräte müssen unterschiedliche Adressen besitzen, weil die Steuerung indirekt
– also über ein IP-Symcon Skript – erfolgt.

Bezugsquelle:
ELV / FS20 STR / Best-Nr.: ##-562-16 / € 35,-
ELV / FS20 ST-2 / Best-Nr.: ##-577-89 / € 20,-

<?
/*
*******************************
 IP-SYNCOM Event Scripting
*******************************
*/
//File: Einstellungen.ips.php
// (C) by CSS/MST Mai 2005
include("Scripts/Konstanten.ips.php");

// $heizperiode_sommer / $heizperiode_winter / $heizperiode_zwischen
$heizperiode = $heizperiode_zwischen;

?>
<?
/*
*******************************
 IP-SYNCOM Event Scripting
*******************************
*/
//File: Konstanten.ips.php

// siehe Bedienungsanleitung > Regenmelder
$regenmelder_faktor = 0.37; //0.37mm pro Wippe

// Heizperiode: 1 = Sommer / 2 = Winter / 3 = Zwischenzeit
$heizperiode_sommer = 1;
$heizperiode_winter = 2;
$heizperiode_zwischen = 3;
?>
<?
/*
*******************************
 IP-SYNCOM Event Scripting
*******************************
*/
//File: Bad.ips.php
// (C) by CSS/MST Mai 2005
// Trigger: IN_Thermostat_Bad
include("Scripts/Einstellungen.ips.php");

$time_von = mktime( 5, 30, 0, date("m"), date("d"), date("Y"));         // 5:30 Uhr / täglich
$time_bis = mktime( 9, 0, 0, date("m"), date("d"), date("Y"));          // 9:00 Uhr / täglich

If (($heizperiode == $heizperiode_zwischen) && (time() > $time_von) && (time() < $time_bis)) {  // Zwischen - Heiz - Periode
   $an_aus = getValueBoolean("IN_Thermostat_Bad");
   if ($an_aus == True) {
      FS20_SwitchDuration(62023, True, 600); // für 10 Minuten An
      // und bei Unterbrechung der Funkverbindung automatisch ausschalten!
   } else {
      $status = GetValueBoolean("IN_Thermostat_Bad");
      if ($status == True) {                             // nur wenn das Gerät an ist dann ausschalten
         FS20_SwitchMode(62023, False);                  // Aus
      }
   }
// } else { > hier kann ein Skript für die Zentralheizung stehen
}
?>

PS:
Die im o.g. Skript verwendete Instance–ID muß für Ihre Umgebung angepasst werden.
Benutzen Sie die Tastenkombination CTRL + I um InstanceID Selector zu öffnen und wählen Sie die entsprechende Instance aus.
Bei Fragen, Unklarheiten, Anregungen usw. bitte hier posten!

Da ich noch nicht so viel Erfahrung mit dem IPS Produkt habe, möchte ich eine Frage zum Script eine Frage los werden (ist aber glaube ich für alle Scripte gleich).

Wie wird das Script angesteuert ? Klar es wird über die Variable getriggert, aber wie werden die Wiederholungen realisiert ? Muß das über den Timer Wizzard geschehen ? Oder wie wird im Prinzip die Schleife realisiert ?:confused:

Ihr seht, eine Frage eines blutigen Anfängers.

Ansonsten großes Lob für das Forum.:rolleyes:

Gruß
Klausi

Hallo Klausi,

das Funk-Thermostat selber „hält die Schleife am Leben“, indem es alle paar Minuten den Status sendet.
Dieser ist in dem RX-Modul der Variablen „IN_Thermostat_Bad“ zugeordnet, die wiederum das Skript triggert.

Gleiches Prinzip wie hier: http://www.ipsymcon.de/forum/showthread.php?t=590
(hier bedeutet das: wenn keine Funksignale (Temperatur) mehr empfangen werden, geht die Steckdose (Heizung) aus)

Gruß MST