Module – IPSenhancedFHZ

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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define ('c_eFHZ_debug_logging', false);
define ('c_eFHZ_debug_logging', false);
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define ('c_eFHZ_debug_logging', false);
define ('c_eFHZ_debug_logging', false);
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define ('c_eFHZ_language', "DE");
define ('c_eFHZ_language', "DE");
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define ('c_eFHZ_FTDIfhzID', 52744);
define ('c_eFHZ_FTDIfhzID', 52744);
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define ('c_eFHZ_autoinit', true);
define ('c_eFHZ_autoinit', true);
define ('c_eFHZ_autoinit',     true);

Konfiguration der FHT80b’s

Die Konfiguration der FHT80b ist in Arrays einzuarbeiten.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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),
),
);
}
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), ), ); }
	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

IPSLibrary Main Thread

IPSLibrary Diskussions Thread

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
IPSUtils_Include ('IPSenhancedFHZ.inc.php', 'IPSLibrary::app::hardware::IPSenhancedFHZ');
$device = new IPSenhancedFHZ(12345); // Ansteuerung des Modules mit der eFHZ Instanz
$device->sFHZ_SetDateAndTime();
IPSUtils_Include ('IPSenhancedFHZ.inc.php', 'IPSLibrary::app::hardware::IPSenhancedFHZ'); $device = new IPSenhancedFHZ(12345); // Ansteuerung des Modules mit der eFHZ Instanz $device->sFHZ_SetDateAndTime();
    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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sFHZ_SetDateAndTime($timestamp=0)
sFHZ_SetDateAndTime($timestamp=0)
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sFHT_Init()
sFHT_Init()
sFHT_Init()

Zweck:

Initialisierung des FHT80b

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sFHT_SetWeekProgram($Day,$Von1=false,$Bis1=false,$Von2=false,$Bis2=false)
sFHT_SetWeekProgram($Day,$Von1=false,$Bis1=false,$Von2=false,$Bis2=false)
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_ClrBuffer()
bFHT_ClrBuffer()
bFHT_ClrBuffer()

Zweck:

Löschen des Übertragungspuffer im eFHZ

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_RclActualState()
bFHT_RclActualState()
bFHT_RclActualState()

Zweck:

Anforderung zum Senden der aktuellen Werte im FHT80b (FHT –> IPS)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_RclTargetState()
bFHT_RclTargetState()
bFHT_RclTargetState()

Zweck:

Anforderung zum Senden der Sollwerte im FHT80b (FHT –> IPS)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_RclWeekProgram($Day=7)
bFHT_RclWeekProgram($Day=7)
bFHT_RclWeekProgram($Day=7)

Zweck:

Anforderung zum Senden des Wochenprogrammes im FHT80b (FHT –> IPS)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetTemperature($value)
bFHT_SetTemperature($value)
bFHT_SetTemperature($value)

Zweck:

Setzen der Solltemperatur im FHT80b

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetSunTemperature($value)
bFHT_SetSunTemperature($value)
bFHT_SetSunTemperature($value)

Zweck:

Setzen der Komfortemperatur im FHT80b

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetLunaTemperature($value)
bFHT_SetLunaTemperature($value)
bFHT_SetLunaTemperature($value)

Zweck:

Setzen der Absenktemperatur im FHT80b

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetWindTemperature($value)
bFHT_SetWindTemperature($value)
bFHT_SetWindTemperature($value)

Zweck:

Setzen der Fenstertemperatur im FHT80b

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetTemperatureByWindowMode($mode=false)
bFHT_SetTemperatureByWindowMode($mode=false)
bFHT_SetTemperatureByWindowMode($mode=false)

Zweck:

Setzen der Solltemperatur mit der Fenstertemperatur im FHT80b (=Aktivierung des emulierten Fenstermodus)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SetMode($Mode)
bFHT_SetMode($Mode)
bFHT_SetMode($Mode)

Zweck:

Setzen des manuellen Modus, Automatikmodus, Party- oder Urlaubsfunktion

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
bFHT_SendTo($ClrBuffer=true)
bFHT_SendTo($ClrBuffer=true)
bFHT_SendTo($ClrBuffer=true)

Zweck:

Übertragung aller Befehle die im eFHZ Puffer gesammelt wurde.

Variablen-Methoden

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_GetActualTemperature()
vFHT_GetActualTemperature()
vFHT_GetActualTemperature()

Zweck:

Rückgabe der aktuellen Temperatur

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_GetTemperature()
vFHT_GetTemperature()
vFHT_GetTemperature()

Zweck:

Rückgabe der Solltemperatur
pre> vFHT_GetSunTemperature() </pre> Zweck:

Rückgabe der Komfortemperatur

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_GetLunaTemperature()
vFHT_GetLunaTemperature()
vFHT_GetLunaTemperature()

Zweck:

Rückgabe der Absenkemperatur

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_GetWindTemperature()
vFHT_GetWindTemperature()
vFHT_GetWindTemperature()

Zweck:

Rückgabe der Fensteremperatur

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_GetMode()
vFHT_GetMode()
vFHT_GetMode()

Zweck:

Rückgabe des aktuellen Modus

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vFHT_DecodeWeekProgram($Day,$request=false)
vFHT_DecodeWeekProgram($Day,$request=false)
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 …