Allgemein
IPSenhanced ist ein Modul zur Steuerung der FHZ Module. Derzeit ist nur das FHT80b Thermostat verwirklicht. (FS20 sind in Planung.)
Damit ist die Portierung meiner eFHT Bricks für die IP-Symcon V1.x abgeschlossen.
Folgende Funktionalitäten stellt das Modul zur Verfügung.
- Nutzung der Komfort-,Absenk- und Fenstertemperatur
- Nutzung der Party-/Urlaubsfunktion
- Nutzung des Wochenprogrammes
- Initalisierung von FHT80b Modulen, auch automatisch (Thema: Einschlafen der FHT Thermostate)
- Emulierung von Fenstersensoren von Fremdherstellern
Download und Installation
Die Installation gliedert sich wie für alle IPSLibrary Module in 3 Teile:
- Download
- Konfiguration
- Installation
Download und Installation können entweder manuell mit dem IPSModuleManager gemacht werden oder man verwendet das IPSModuleManagerGUI Modul.
Konfiguration
Konfiguration:
Im File IPSenhancedFHZ_Configuration.inc.php werden die FHZ Devices und weitere Konfigurationsschalter definiert.
Ausgabe von Änderungen an den Statusvariablen
Durch Angabe von TRUE werden die Änderungen an den Statusvariablen (von IPS) in den IPSLogger geschrieben. Damit sind alle Änderungen (Anforderungen) betroffen die an das Device von IP-Symcon gesendet werden.
define ('c_eFHZ_debug_logging', false);
Ausgabe von Änderungen an den Statusvariablen
Durch Angabe von TRUE werden die Änderungen an den Statusvariablen (vom Device) in den IPSLogger geschrieben. Damit sind alle Änderungen (Antworten) betroffen die von IP-Symcon empfangen werden.
define ('c_eFHZ_debug_logging', false);
Eingestellte Sprache
Die für eFHZ eingestellte Sprache. Derzeit sind für DEUTSCH und ENGLISCH Sprachdateien enthalten. Voreingestellte Sprache: DEUTSCH
Die Sprachdateien berücksichtigen nicht nur die Ausgaben im IPSLogger sondern auch die Benennung der Statusvariablen. Dafür ist es notwendig die Sprache vor der Installation des Modules anzugeben.
define ('c_eFHZ_language', "DE");
Sollten weitere Sprachen notwendig werden, bitte diese an mich per PN Spawn schicken. Für Erstellung einer Sprachdatei: Kopieren der Datei: IPSenhancedFHZ_Language_DE.inc.php (Ornder: IPSLibrary/app/hardware/IPSenhancedFHZ Umbenennen der Datei: IPSenhancedFHZ_Language_XX.inc.php (XX=Sprachkürzel)
FTDI-Instanz
Notwendige Angabe: Falls keine gültige Angabe einer Objekt-ID vorhanden ist, wird die Installation abgebrochen. Über diese FTDI Instanz wird die Kommunikation (Lesend und Schreibend) durchgeführt.
define ('c_eFHZ_FTDIfhzID', 52744);
Autoinitialisierung des FHT80b
Durch Angabe von TRUE wird bei Empfangsausfall, das betreffende FHT80b neu initialisiert. Danach werden alle aktuellen Werte und Sollwerte (inkl. Wochenprogramm) an IPS übetragen.
define ('c_eFHZ_autoinit', true);
Konfiguration der FHT80b’s
Die Konfiguration der FHT80b ist in Arrays einzuarbeiten.
function IPSenhancedFHZ_GetFHZConfiguration() { return array( 7346 => array( c_Property_eFHZ_Type => c_Type_eFHZ_FHT80b, c_Property_eFHZ_Name => 'eFHT80b_Kueche', c_Property_eFHZ_Description => 'Küche', c_Property_eFHZ_Leap => true, c_Property_eFHZ_windowemulate => true, c_Property_eFHZ_windowsensors => array (41110=>false), ), ); }
Parameter:
c_Property_eFHZ_Type:
c_Type_eFHZ_FHT80b —> für FHT80b (derzeit NUR FHT80b möglich)
c_Property_eFHZ_Name:
Name des Device —> ist Name des Dummy-Modules in IPS
c_Property_eFHZ_Description:
Beschreibung
c_Property_eFHZ_Leap:
Schaltjahr —> bei älteren FHT gibt es einen Bug bei Schaltjahren Mit der Angabe TRUE wird der Schaltjahrfix angewendet. Thema:Schaltjahr-Bug bei FHT80b
c_Property_eFHZ_windowemulate:
Fensteremulierung —> Umstellung der FHT auf Fenstertemperatur bei Verwendung mit Sensoren von Fremdherstellern.
c_Property_eFHZ_windowsensors:
Fenstersensoren —> Objekt-ID des Sensors => Umkehrung der Eingangsfunktion FALSE:Fenster offen ist TRUE TRUE:Fenster offen ist FALSE
Synchronisierung der Aktoren
Für die Synchronisierung der Statusvariablen ist eine RegisterVariable Instanz vorgesehen. Das Installation und Einstellung wird durch eine Installationsroutine erledigt.
Weiterführende Links
GUI
Bei IPSenhancedFHZ ist keine Möglichkeit für eine Bedienung über WebFront’s oder MobileGUI vorhanden bzw. vorgesehen. Derzeit bin ich eher dafür ein eigenes Heizungsmodul (z.B: IPSHeating) zu entwickeln. Dann können auch andere Hardware Thermostate und eben auch das IPSenhancedFHZ über IPSComponent (von Brownson) verwendet werden.
API Funktionen
Durch das Inkludieren des IPSenhancedFHZ API Scripts stehen alle Funktionen von IPSenhancedFHZ zur Verfügung:
IPSUtils_Include ('IPSenhancedFHZ.inc.php', 'IPSLibrary::app::hardware::IPSenhancedFHZ'); $device = new IPSenhancedFHZ(12345); // Ansteuerung des Modules mit der eFHZ Instanz $device->sFHZ_SetDateAndTime();
Es gibt drei Arten von Methoden:
- Single-Methoden : Präfix „sFHZ_„
Der Befehl wird sofort nach Aufruf an das betreffende Gerät geleitet.
- Puffer-Methoden : Präfix „bFHZ_„
Der Befehl wird erst nach Aufruf von bFHT_SendTo an das betreffende Gerät geleitet. Damit ist es möglich, alle Befehle die Puffermethoden enthalten zu sammeln und als ein einziges Kommando an das Device zu senden.
- Variablen-Methoden : Präfix „vFHZ_„
Mit den Variablenmethoden können die Zusände/Statusvariablen (aktuelle) ausgelesen werden.
Zusätzlich wird bei den Singlemethoden und Puffermethoden eine Anforderung an das Device gesendet um eine Rückmeldung der eingestellten Werte (Register) des Devices zu erhalten.
Single-Methoden
sFHZ_SetDateAndTime($timestamp=0)
Zweck:
Setzen von Datum und Zeit im FHT80b.
Übergaben:
(integer)$timestamp => UNIX Zeitstempel – Bei Angabe von 0 oder Fehlen wird die aktuelle Zeit herangezogen.
Sonstiges:
Der Schaltjahrbug wird dabei berücksichtigt.
sFHT_Init()
Zweck:
Initialisierung des FHT80b
sFHT_SetWeekProgram($Day,$Von1=false,$Bis1=false,$Von2=false,$Bis2=false)
Zweck:
Setzen des Wochenprogrammes für den angegebenen Wochentages
Übergaben:
(integer)$Day => Wochentag Bereich 0 bis 6 (wie in PHP angegeben)
(string)$Von1 => Beginn Zeitfenster 1 : Format „01:00“
(string)$Bis1 => Ende Zeitfenster 1 : Format „02:00“
(string)$Von2 => Beginn Zeitfenster 2 : Format „11:00“
(string)$Bis2 => Ende Zeitfenster 2 : Format „12:00“
Puffer-Methoden
bFHT_ClrBuffer()
Zweck:
Löschen des Übertragungspuffer im eFHZ
bFHT_RclActualState()
Zweck:
Anforderung zum Senden der aktuellen Werte im FHT80b (FHT –> IPS)
bFHT_RclTargetState()
Zweck:
Anforderung zum Senden der Sollwerte im FHT80b (FHT –> IPS)
bFHT_RclWeekProgram($Day=7)
Zweck:
Anforderung zum Senden des Wochenprogrammes im FHT80b (FHT –> IPS)
bFHT_SetTemperature($value)
Zweck:
Setzen der Solltemperatur im FHT80b
bFHT_SetSunTemperature($value)
Zweck:
Setzen der Komfortemperatur im FHT80b
bFHT_SetLunaTemperature($value)
Zweck:
Setzen der Absenktemperatur im FHT80b
bFHT_SetWindTemperature($value)
Zweck:
Setzen der Fenstertemperatur im FHT80b
bFHT_SetTemperatureByWindowMode($mode=false)
Zweck:
Setzen der Solltemperatur mit der Fenstertemperatur im FHT80b (=Aktivierung des emulierten Fenstermodus)
bFHT_SetMode($Mode)
Zweck:
Setzen des manuellen Modus, Automatikmodus, Party- oder Urlaubsfunktion
bFHT_SendTo($ClrBuffer=true)
Zweck:
Übertragung aller Befehle die im eFHZ Puffer gesammelt wurde.
Variablen-Methoden
vFHT_GetActualTemperature()
Zweck:
Rückgabe der aktuellen Temperatur
vFHT_GetTemperature()
Zweck:
Rückgabe der Solltemperatur
pre> vFHT_GetSunTemperature() </pre> Zweck:
Rückgabe der Komfortemperatur
vFHT_GetLunaTemperature()
Zweck:
Rückgabe der Absenkemperatur
vFHT_GetWindTemperature()
Zweck:
Rückgabe der Fensteremperatur
vFHT_GetMode()
Zweck:
Rückgabe des aktuellen Modus
vFHT_DecodeWeekProgram($Day,$request=false)
Zweck:
Umwandlung des Wochenprogrammes in eine lesbare Form (ARRAY)
Genauere Beschreibung der einzelnen Funktionen findet sich im Include File von IPSenhancedFHZ (zu finden unter „…/IP-Symcon/scripts/IPSLibrary/app/hardware/IPSenhancedFHZ/IPSenhancedFHZ_Device.class.php“)
Callback Funktionen
Todo …