HmIP-eTRV - Wie richtig einbinden?

Hallo Heiko,

vielen Dank für das Teilen des Skriptes… Dies hat mir den richtigen Denkanstoß gegeben :slight_smile:

Gruß
Sebastian

Ich habe da offensichtlich noch eine Verständnislücke bei Homematic: Es gibt eine Device Documentation und kleine Bedienungsanleitungen, aber wo ist die Stelle wo beschrieben ist, welche Variable funktionell was macht? Manches erscheint selbst erklärend, aber nur die reine Nennung des Variablennames und die Auflistung verschiedener Zustände erklärt doch nicht viel.

Das ist leider nicht dokumentiert von EQ3.
Michael

Wie man in den Screenshots sehen kann, habe ich den HmIP-eTRV-2 mit der Firmware 2.02. In der Doku ist bei der Version des Gerät z.B. die Variable „CONTROL_MODE“ und weitere enthalten. In IPS fehlt die aber. Wenn ich die Foreneinträge richtig lese, dann haben andere Anwender den Parameter bei sich gehabt.

MR_20180929_065633.jpg

Der Datenpunkt CONTROL_MODE ist nur zum Schreiben und kann nicht gelesen werden (da steht nur write in der Doku), somit legt IPS keine Variable an.
Brauch auch nicht, du kannst dennoch einfach mit HM_WriteValueInteger auf CONTROL_MODE einen neuen Wert übergeben.
Michael

Das verursacht leider einen Fehler den ich bis jetzt nicht nachlesen/nachvollziehen kann.

MR_20180929_173638.jpgMR_20180929_173656.jpg

Leerzeichen oder Zeilenumbrüche außerhalb der PHP-Tags.
Michael

Das habe ich verstanden. Allerdings fehlen auch Variablen die „read-write“ sind. Kann ich die auch selbst auslesen?
Aus dem Modul „MAINTENANCE_BAT_BL“ z.B. GLOBAL_BUTTON_LOCK, ENABLE_ROUTING,LOCAL_RESET_DISABLED

Habe jetzt nicht die Liste der Datenpunkte zur Hand.
Aber das sieht eher aus wie Parameter und nicht wie Datenpunkte.
Die können nur über die CCU eingestellt werden.
Michael

Für mich sieht das alles gleich aus; steht überall Parameter dran (auch bei denen die im IPS auftauchen).

Nein, da sind Überschriften welche du wohl übersehen hast:


Conig Parameter sind keine Datenpunkte und auch keine Variablen in IPS.
Und du kannst sie auch nicht mit Boardmitteln direkt aus IPS verändern.
Michael

Ich verstehe das leider noch nicht so ganz. Es sind doch alles Parameter. Oder sind nicht alle über die Schnittstelle ansprechbar?

Conig Parameter sind keine Datenpunkte und auch keine Variablen in IPS.
Und du kannst sie auch nicht mit Boardmitteln direkt aus IPS verändern.

Liest sich fast so, als ob da doch was möglich ist.

Ich hatte angedacht das Wochenprogramm nicht in der CCU2 festzulegen, sondern in IPS. Zumindest anzeigen würde ich die Werte gerne.

Nein das sind keine Datenpunkte (IPS-Variablen) das sind Parameter (einstellbare Konfiguration).
Eventuell hilft dies; ob es mit HmIP auch läuft kann ich aber nicht sagen.
Heizkörperthermostat Heizprogramme per WebFront einstellen
Michael

Hallo Zusammen,
ich habe das Ventil im eigenen Automatik-Betrieb im Test laufen, d.h. das Ventil hat 22,5°C eingestellt bekommen und regelt allein (nicht per IPS).
Wie man auf den Grafiken gut sehen kann, macht das Ventil trotzdem noch „weit“ auf, obwohl die Solltemperatur mehr als 1 Grad überschritten ist. Für meine Begriffe müsste es sogar schließen, bis die Solltempertur erreicht wurde. - Kommt das noch? Oder ist die eigene Regelung des Ventils so mies?

Hi Heiko,

ich bin grad auch dabei die HmIP-WTH-2 ins Webfront zu integrieren…

Kannst Du mir hier mal deine Lösung zur Verfügung stellen… Dann muss ich mir nicht alle Gedanken machen, die Du Dir wahrscheinlich auch gemacht hast. ;-)))

Danke im Voraus…

Marc

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:

Hier bitte: