HmIP-eTRV - Wie richtig einbinden?

Hi Marc,

kann ich gern machen, bin noch auf Arbeit und morgen leider den ganzen Tag unterwegs, aber am Sonntag kann ich das hier mal alles posten!

Gruß Heiko

Klar kein Stress deswegen…

Danke…:slight_smile:

Hi Marc,

jetzt wie versprochen meine Vorgehensweise, Einstellungen und Scripte. Ich habe das mal für mich selber aufgeschrieben mit der Hoffnung Du kannst das auch verstehen :wink: Bei Fragen einfach melden!

Allgemeine Vorgehensweise:

  1. Auspacken
  2. WebUI der CCU aufrufen und „Gerät anlernen“ aktivieren
  3. Batterie am Gerät aktivieren
  4. CCU - Raum & Gewerk zuordnen, Firmware prüfen (derzeit beide 2.0.2)
  5. Verknüpfung an der CCU vornehmen (siehe Direktverknüpfung)
  6. Wochenprogramm in der CCU für beide Geräten identich hinterlegen
  7. Homematik Konfigurator von IPS aufrufen und Instanzen der Kanäle erstellen
  8. Gruppieren unterhalb einer Dummy Instance
  9. Profile und Scripte korrekt einstellen
  10. Visualisierung gruppieren und austauschen (von einem existierenden Raum nehmen, kopieren und Links austauschen)

Direktverknüpfung

• Wandthermostat Kanal 1 mit Heizkörperthermostat Kanal 6 (1 <=> 6)
• Wandthermostat Kanal 2 mit Heizkörperthermostat Kanal 5 (2 <=> 5)
• Wandthermostat Kanal 3 mit Heizkörperthermostat Kanal 3 (3 <=> 3)

Stellantrieb HmIP-eTRV(-2)

PROFILE:
• Profil von 0:LOW_BAT auf ~Battery gesetzt
• Profil von 1:WINDOW_STATE auf HM.Window (eigenes Profil) gesetzt
• Profil von 1:VIEW_STATE von ~Intensity.100 auf HM.VentileState (eigenes Profil) geändert
• Profil von 1:ACTIVE_PROFILE auf HM.ActiveProfile (eigenes Profil) gesetzt
• Profil von 1:BOOST_MODE auf ~Switch gesetzt
• Profil von 1:SET_POINT_MODE auf HM.ControlMode (eigenes Profil) gesetzt
• Profil von 1:SET_POINT_TEMPERATURE auf HM.Temperature (eigenes Profil) gesetzt

SCRIPTE:
• Aktion von 1:ACTIVE_PROFIL auf Script „Steuerung\Heizung\Steuerung\Active Profile“
• Aktion von 1:BOOST_MODE auf Script „Steuerung\Heizung\Steuerung\Boost Mode“
• Aktion von 1:SET_POINT_MODE" auf Script „Steuerung\Heizung\Steuerung\Control Mode“
• Aktion von 1:SET_POINT_TEMPERATURE auf Script „Steuerung\Heizung\Steuerung\Set Temperature“

LOGGING:
• Variable 1:LEVEL aktivieren

Wandthermostat HmIP-WTH-2

PROFILE:
• Profil von 0:LOW_BAT auf ~Battery gesetzt
• Profil von 1:WINDOW_STATE auf HM.Window (eigenes Profil) gesetzt
• Profil von 1:ACTIVE_PROFILE auf HM.ActiveProfile (eigenes Profil) gesetzt
• Profil von 1:BOOST_MODE auf ~Switch gesetzt
• Profil von 1:SET_POINT_MODE auf HM.ControlMode (eigenes Profil) gesetzt
• Profil von 1:SET_POINT_TEMPERATURE auf HM.Temperature (eigenes Profil) gesetzt

SCRIPTE:
• Aktion von 1:ACTIVE_PROFIL auf Script „Steuerung\Heizung\Steuerung\Active Profile“
• Aktion von 1:BOOST_MODE auf Script „Steuerung\Heizung\Steuerung\Boost Mode“
• Aktion von 1:SET_POINT_MODE" auf Script „Steuerung\Heizung\Steuerung\Control Mode“
• Aktion von 1:SET_POINT_TEMPERATURE auf Script „Steuerung\Heizung\Steuerung\Set Temperature“

LOGGING:
• Variable 1:ACTUAL_TEMPERATUR aktivieren
• Variable 1:HUMIDITY aktivieren
• Variable 1:SET_POINT_TEMPERATUR aktivieren

Scripte:

  • Script „Active Profile“ für’s Setzen des Wochenprogreammes (1-3)
<?
################################################################################
# Script:	HomeMatic.ActiveProfile.ips.php
# Version:	1.0
# Author:	Heiko Wilknitz (@pitti)
#
# Aktiviert ein Wochenprogramm folgender Thermostate:
# 	- HmIP-WTH-2
# 	- HmIP-eTRV
# 	- HmIP-eTRV-2
#
# ----------------------------- Konfiguration ----------------------------------
#
# HM.ActiveProfile (1 = Arbeitswoche, 2 = Urlaub, 3 = Aus)
$min = 1;
$max = 3;
#
# ----------------------------------- ID´s -------------------------------------
#
#
################################################################################

if ($_IPS['SENDER'] == "WebFront") {
	$pid = IPS_GetParent($_IPS['VARIABLE']);
	if($_IPS['VALUE'] >= $min and $_IPS['VALUE'] <= $max) {
		$ret = HM_WriteValueInteger($pid, "ACTIVE_PROFILE", $_IPS['VALUE']);
	}
}

################################################################################
?>

  • Script „Boost Mode“ für’s Ein/Ausschalten des Boost-Modus (true/false)

<?
################################################################################
# Script: 	HomeMatic.BoostMode.ips.php
# Version:	1.0
# Author:	Heiko Wilknitz (@pitti)
#
# Schaltet einen der folgenden Thermostate in den Boost Modus.
# 	- HmIP-WTH-2
# 	- HmIP-eTRV
# 	- HmIP-eTRV-2
# ----------------------------- Konfiguration ----------------------------------
#
#
# ----------------------------------- ID´s -------------------------------------
#
#
################################################################################

if ($_IPS['SENDER'] == "WebFront") {
	$pid = IPS_GetParent($_IPS['VARIABLE']);
	$ret = HM_WriteValueBoolean($pid, "BOOST_MODE", $_IPS['VALUE']);
}

################################################################################
?>

  • Script „Control Mode“ für’s Setzen des Stell-Modus (0:Auto; 1:Manual; 2:Holiday/Party)

<?
################################################################################
# Script: 	HomeMatic.ControlMode.ips.php
# Version:	1.0
# Author:	Heiko Wilknitz (@pitti)
#
# Aktiviert den Steuerungsmodus eines der folgenden Thermostate.
# 	- HmIP-WTH-2
# 	- HmIP-eTRV
# 	- HmIP-eTRV-2
#
# ----------------------------- Konfiguration ----------------------------------
#
# CONTROL_MODE (0:Auto, 1:Manual, 2:Holiday / Party, 3:keine Funktion)
$min = 0;
$max = 3;
#
# ----------------------------------- ID´s -------------------------------------
#
#
################################################################################

if ($_IPS['SENDER'] == "WebFront") {
	$pid = IPS_GetParent($_IPS['VARIABLE']);
	if($_IPS['VALUE'] >= $min and $_IPS['VALUE'] <= $max) {
		$ret = HM_WriteValueInteger($pid, "CONTROL_MODE", $_IPS['VALUE']);
	}
}

################################################################################
?>

  • Script „Set Temperature“ für’s Setzen der Soll-Temperatur (4,5:Aus; 5-30°C; 30,5:Ein)

<?
################################################################################
# Script: 	HomeMatic.SetPointTemperature.ips.php
# Version:	1.1
# Author:	Heiko Wilknitz (@pitti)
#
# Steuert die Temperatur folgender Thermostate:
# 	- HmIP-WTH-2
# 	- HmIP-eTRV
# 	- HmIP-eTRV-2
#
# ------------------------------ Changelog -------------------------------------
#
# 04.08.2018 - Initalversion (v1.0)
# 03.01.2019 - VoiceControl/Alexa hinzugefügt (v1.1)
#
# ----------------------------- Konfiguration ----------------------------------
#
$min = 4.5;		// = AUS|OFF
$max = 30.5;	// = EIN|ON
#
################################################################################

//IPS_LogMessage("HM.SetPointTemperature", "Sender: ".$_IPS['SENDER'].", Variable: ".$_IPS['VARIABLE'].", Value: ".$_IPS['VALUE']); 

if (($_IPS['SENDER'] == "WebFront") or ($_IPS['SENDER'] == "VoiceControl")) {
	$pid = IPS_GetParent($_IPS['VARIABLE']);
	// Secrurity Check
	if($_IPS['VALUE'] < $min) $_IPS['VALUE'] = $min;
	if($_IPS['VALUE'] > $max) $_IPS['VALUE'] = $max;      
	// vorher sichergehen das man im manuellen Modus ist?
	if($_IPS['VALUE'] == $min or $_IPS['VALUE'] == $max) {      
			$ret = HM_WriteValueInteger($pid, "CONTROL_MODE", 1);
			$ret = HM_WriteValueFloat($pid, "SET_POINT_TEMPERATURE", $_IPS['VALUE']);
	}
	// Normale Temperaturschaltung
	if($_IPS['VALUE'] > $min and $_IPS['VALUE'] < $max) {      
		$ret = HM_WriteValueFloat($pid, "SET_POINT_TEMPERATURE", $_IPS['VALUE']);
	}
}

################################################################################
?>

Profile:

Auflistung entsprechend folgender Ausgabe:


$profil = IPS_GetVariableProfile("<Profilname>");
foreach($profil['Associations'] as $key => $arr) {
	echo 'array('.$arr['Value'].', \''.$arr['Name'].'\', \''.$arr['Icon'].'\', '.$arr['Color'].'),'.PHP_EOL;
}

HM.Window
array(0, ‚Geschlossen‘, ‚Window-100‘, 65280),
array(1, ‚Geöffnet‘, ‚Window-0‘, 16711680),

HM.ActiveProfile
array(1, ‚Arbeitswoche‘, ‚‘, -1),
array(2, ‚Zuhause‘, ‚‘, -1),
array(3, ‚Aus‘, ‚‘, -1),

HM.ControlMode
array(0, ‚Automatisch‘, ‚‘, 255),
array(1, ‚Manuell‘, ‚‘, 255),
array(2, ‚Urlaub / Party‘, ‚‘, 255),

HM.Temperature
array(4,5, ‚Aus‘, ‚‘, -1),
array(5, ‚%0.1f °C‘, ‚‘, -1),
array(30,5, ‚Ein‘, ‚‘, -1),

Um den Urlaub/PartyModus habe ich mich noch nicht gekümmert. Kommt aber irgendwann auch noch.
Derzeit arbeite ich noch an den Wochenprofilen per WebUI steuern => LINK

Aussehen tut das bei mir dann so:

Viel Erfolg
Heiko

Super, danke. Damit komme ich klar. Ich gucke dann mal, ob ich schneller mit dem Urlaubsmodus bin, dann stell ich ihn dir zur Verügung :stuck_out_tongue_winking_eye: