Seite 1 von 2
Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 15. Mär 2020 12:43
von denni
Hallo zusammen,
ich habe eine Wandthermostat HMIP-WTH-2 (Firmware 2.6.0) mit OH 2.5 und einer CCU3 im Einsatz. Aktuell scheitere ich noch an der Urlaubs/Party-Funktion im BasicUI zu integrieren. Im Internet und hier im Forum konnte ich nach der Suche zu meinem Thema keine Informationen finden. Deshalb bräuchte ich ein paar Tipps von euch wie eine Integration der Urlaubs/Party-Funktion im BasicUI für mein Homematic IP Wandthermostat möglich wäre.
Im HomematicIP CCU3 sieht die Funktion wie folgt aus:
Party-Urlaubsmodus.JPG
In Openhab 2.5 - Paper UI unter CONTROL:
PaperUI-Control.JPG
Ich hatte in anderen Threads gelesen, dass bei Homematic "Classic" einige die Urlaubsfunktion so in die Sitemap integriert haben:
Code: Alles auswählen
Switch item=WHmIPZimmerThermostat_ControlMode label="Modus" icon=heating mappings=[0=Auto, 1=Manu, 3=Urlaub]
-->Diese Methode funktionert aber bei meinem Homematic IP Wandthermostat nicht. Er schaltet (obwohl der Urlaubbutton als gedrückt erscheint) den Wandthermostat nicht auf Urlaubsmodus um.
Wenn ich über das
PaperUI Control die Party Time End bzw. Party Time Start umstelle kann ich es erreichen, dass mein Wandthermostat auf Urlaubsmodus geht. Allerdings weis ich nicht wie man diese Datumseinstellung über die Sitemap für das BasicUI darstellt.
Hat jemand eine Idee wie sich die Urlaubsfunktion möglichst geschickt intergrieren lässt? ggf. Reicht es mir auch aus, wenn ich nur den Urlaubsmodus auf unbestimmte Zeit aktivieren könnte.
Optional: Wie kann man die Party Time End bzw. Party Time Start über die Sitemap abbilden, so dass eine Eingabe eines Datum möglich wird?
Ich bin für jeden Rat/Idee offen.
Danke euch und Gruß
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 15. Mär 2020 14:34
von violine21
Hier mal der Auszug aus der Beschreibung der Homematic-IP Devices:
WTH2.gif
Der Button hat nur lesenden Charakter, dient also nur der Rückmeldung.
Zur Aktivierung musst Du als Start das aktuelle Datum/Uhrzeit senden und als Ende ein x-beliebiges Datum/Uhrzeit in der Zukunft.
Das ganze dann in einer Rule gekoppelt an einen Button.
Ob es die Möglichkeit gibt, in der Sitemap einen Text ein zu geben, der ja auch noch auf seine korrekte Syntax geprüft werden muss, weiss ich nicht.
Du könntest höchstens über einzelne Hoch-Runter-Felder in der Sitemap ein Datum zusammen stellen und den Inhalt dann an die CCU per Button senden.
Hier mal ein Zitat von Udo aus einem kürzlich behandeltem Beispiel:
openHAB sieht keine Möglichkeit vor, Datum oder Zeitwerte direkt in die UI einzugeben. Um dies zu umgehen, ist es üblich, für jede Stelle ein eigenes Item anzulegen, welches man dann mit setpoint in Schritten verstellen kann.
Grob braucht es eine Rule, welche bei Änderung des DateTime Items daraus die einzelnen Felder extrahiert und in die verschiedenen einzelnen Items ablegt. In einer weiteren Rule wird auf die Eingaben in der UI reagiert und das DateTime Item entsprechend angepasst und an die Logo! gesendet.
Im englischen Forum gibt s einen hervorragenden Artikel zu dem Thema DateTime Conversion:
https://community.openhab.org/t/datetim ... sion/54266
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 15. Mär 2020 20:13
von denni
Hallo violine21,
danke für deine Antwort. In der Zwischenzeit konnte ich mit deinem Input sehr gut etwas anfangen.
//EDIT:
Ich werde ein Item mit drei fest eingestellten Zeitfenstern verwenden ( 2 Stunden, 2 Tage, 2 Wochen).
Diese Information verarbeitet in einer Rule und kann dies dann an den HMIP-WTH-2 senden.
Sobald ich den Code geschrieben habe werde ich nochmal hier schreiben.
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 25. Mär 2020 16:17
von denni
Hallo zusammen,
anbei mein Entwurf der Rule. Leider geht der WTH-2 mit SendCommand oder postUpdate nicht in den Urlaubszustand. Es wird zwar der Wert in die Variable geschrieben. der WTH-2 springt aber nicht in den Urlaubsmodus (Koffersymbol wird nicht angezeigt).
Code: Alles auswählen
rule "Verarbeitung Urlaubszeit für Heizungs-Shutdown"
when
Item VACATIONMerker received update
then
if (VACATIONMerker.state == 0) {
logInfo("Debug", "State has been set OFF")
}
if (VACATIONMerker.state == 1) {
logInfo("Debug", "Urlaub für 2h")
//Zieluhrzeit ermitteln:
var int hour = now.getHourOfDay()
val String actuelDayTime1 = now.toString("yyyy_MM_dd' 'HH:mm")
logInfo("Debug", "Aktueller Tag und Uhrzeit (mit Minuten) : " + actuelDayTime1)
val actuelDayTime_modifiedEnd = actuelDayTime1.replace(" " + hour.toString() ," " + (hour + 2).toString())
logInfo("Debug", "Ermittelte Endzeit bei 2h Urlaub: " + actuelDayTime_modifiedEnd)
//Test ob Urlaubsmodus mit Übergabe Werte funktioniert:
sendCommand(SHmIPZimmerThermostat_PartyTimeStart, "2020_03_25 16:00")
sendCommand(SHmIPZimmerThermostat_PartyTimeEnd, "2020_03_25 18:00")
//Auch mit postUpdate geht es nicht
//SHmIPZimmerThermostat_PartyTimeStart.postUpdate("2020_03_25 16:00")
//SHmIPZimmerThermostat_PartyTimeEnd.postUpdate("2020_03_25 18:00")
}
if (VACATIONMerker.state == 2) {
logInfo("Debug", "Urlaub für 2T")
}
if (VACATIONMerker.state == 3) {
logInfo("Debug", "Urlaub für 2W")
}
end
In der CCU3 sieht man auch, dass der Zustand nicht vollständig angenommen wurde:
CCU3 Screenshot - Urlaubsmodus nur halb aktiv.JPG
Wenn ich die Werte aber manuell über das Control-Panel übergebe, funktioniert das Vorgehen und der WTH-2 nimmt den Urlaubsmodus an.
Worin könnte der Fehler bei der Übergabe der Werte liegen? Muss ich den Übergabestring noch speziell Formatieren, was das Control-Panel für mich indirekt bei manueller Eingabe macht?
ControlPanel.JPG
Sofern ich die Befehltsübergabe in der Rule gelöst bekomme, kann ich dann die anderen IF vervollständigen. Denke dass ich dann nicht mehr weit vom Ziel weg bin.
Danke euch Gruß Denni
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 25. Mär 2020 19:34
von violine21
Hallo,
in dem o.a. Code ist ein kleiner Fehler:
Code: Alles auswählen
//Test ob Urlaubsmodus mit Übergabe Werte funktioniert:
sendCommand(SHmIPZimmerThermostat_PartyTimeStart, "2020_03_25 16:00")
sendCommand(SHmIPZimmerThermostat_PartyTimeEnd, "2020_03_25 18:00")
Das müsste so heissen:
Code: Alles auswählen
//Test ob Urlaubsmodus mit Übergabe Werte funktioniert:
SHmIPZimmerThermostat_PartyTimeStart.sendCommand("2020_03_25 16:00")
SHmIPZimmerThermostat_PartyTimeEnd.sendCommand("2020_03_25 18:00")
Probier mal, was dann passiert.
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 25. Mär 2020 20:31
von udo1toni
Was für einen Itemtyp verwendest Du denn? Ich würde hier DateTime erwarten, dort muss das Datum aber anders übergeben werden.
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 25. Mär 2020 20:45
von violine21
udo1toni hat geschrieben: ↑25. Mär 2020 20:31
Was für einen Itemtyp verwendest Du denn? Ich würde hier DateTime erwarten, dort muss das Datum aber anders übergeben werden.
Laut Homematic-Beschreibung sollte es ein STRING sein (Auszug hatte ich oben schon gepostet)
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 25. Mär 2020 21:25
von denni
violine21 hat geschrieben: ↑25. Mär 2020 19:34
Das müsste so heissen:
Code: Alles auswählen
//Test ob Urlaubsmodus mit Übergabe Werte funktioniert:
SHmIPZimmerThermostat_PartyTimeStart.sendCommand("2020_03_25 16:00")
SHmIPZimmerThermostat_PartyTimeEnd.sendCommand("2020_03_25 18:00")
Ich habe es ausprobiert. Gleicher Fehler wie oben beschrieben. Das Item ist ein String.
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 26. Mär 2020 06:59
von denni
Wenn man den WTH-2 (mit Firmware 2.6.0) genauer beobachtet, geht er direkt nach diesem Kommando für eine halbe Sekunde in den Koffermodus. Springt aber dann sofort wieder zurück in "Manu".
Nach der Übergabe von...
SHmIPZimmerThermostat_PartyTimeEnd.sendCommand("2020_03_26 10:00")
....stellt zuerst auf "2020_03_26 10:00" und ändert er selbst auf einen Wert von "1999_11_30 00:00" um. Warum weis ich nicht.
Ich werde seinen normalen Einstellprozess nochmal genauer beobachten. Also wenn ich den Urlaubsmodus über die CCU3 einstelle.
Re: Urlaubsmodus für HMIP-WTH-2 in OH 2.5 Sitemap integrieren
Verfasst: 26. Mär 2020 18:42
von violine21
Ich habe mal einen meiner WTH-2 in OH eingebunden. Thing per PaperUI angelegt und dann mit VSC die Items generieren lassen.
Das bietet der WTH-2 mir an:
Code: Alles auswählen
Number EGWohnzimmerWandthermostat0RSSI "Rssi" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#RSSI"}
Switch EGWohnzimmerWandthermostat0UNREACH "Unreach" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#UNREACH"}
String EGWohnzimmerWandthermostat0FIRMWARE "Firmware" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#FIRMWARE"}
String EGWohnzimmerWandthermostat0DELETEDEVICEMODE "Delete device mode" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#DELETE_DEVICE_MODE"}
Switch EGWohnzimmerWandthermostat0UPDATEPENDING "Update pending" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#UPDATE_PENDING"}
Switch EGWohnzimmerWandthermostat0CONFIGPENDING "Config pending" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#CONFIG_PENDING"}
Switch EGWohnzimmerWandthermostat0DUTYCYCLE "Duty cycle" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#DUTY_CYCLE"}
Number EGWohnzimmerWandthermostat0OPERATINGVOLTAGE "Operating voltage" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#OPERATING_VOLTAGE"}
Switch EGWohnzimmerWandthermostat0INSTALLTEST "Install test" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#INSTALL_TEST"}
Number EGWohnzimmerWandthermostat0SIGNALSTRENGTH "Signalstärke" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#SIGNAL_STRENGTH"}
Switch EGWohnzimmerWandthermostat0LOWBAT "Niedriger batteriestatus" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#LOW_BAT"}
String EGWohnzimmerWandthermostat0OPERATINGVOLTAGESTATUS "Operating voltage status" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#OPERATING_VOLTAGE_STATUS"}
Number EGWohnzimmerWandthermostat0RSSIPEER "Rssi peer" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#RSSI_PEER"}
Number EGWohnzimmerWandthermostat0RSSIDEVICE "Rssi device" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#RSSI_DEVICE"}
Switch EGWohnzimmerWandthermostat0DELETEDEVICE "Delete device" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:0#DELETE_DEVICE"}
String EGWohnzimmerWandthermostat1DURATIONUNIT "Duration unit" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#DURATION_UNIT"}
Number EGWohnzimmerWandthermostat1SETPOINTMODE "Set point mode" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#SET_POINT_MODE"}
Number:Temperature EGWohnzimmerWandthermostat1SETPOINTTEMPERATURE "Set point temperature" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#SET_POINT_TEMPERATURE"}
Number EGWohnzimmerWandthermostat1BOOSTTIME "Boost time" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#BOOST_TIME"}
Number EGWohnzimmerWandthermostat1HUMIDITY "Humidity" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#HUMIDITY"}
Number:Temperature EGWohnzimmerWandthermostat1PARTYSETPOINTTEMPERATURE "Party set point temperature" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#PARTY_SET_POINT_TEMPERATURE"}
Number:Temperature EGWohnzimmerWandthermostat1CONTROLDIFFERENTIALTEMPERATURE "Control differential temperature" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#CONTROL_DIFFERENTIAL_TEMPERATURE"}
String EGWohnzimmerWandthermostat1ACTUALTEMPERATURESTATUS "Actual temperature status" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#ACTUAL_TEMPERATURE_STATUS"}
Number EGWohnzimmerWandthermostat1CONTROLMODE "Control mode" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#CONTROL_MODE"}
String EGWohnzimmerWandthermostat1PARTYTIMEEND "Party time end" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#PARTY_TIME_END"}
String EGWohnzimmerWandthermostat1HEATINGCOOLING "Heating cooling" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#HEATING_COOLING"}
Switch EGWohnzimmerWandthermostat1FROSTPROTECTION "Frost protection" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#FROST_PROTECTION"}
Number EGWohnzimmerWandthermostat1DURATIONVALUE "Duration value" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#DURATION_VALUE"}
Switch EGWohnzimmerWandthermostat1SWITCHPOINTOCCURED "Switch point occured" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#SWITCH_POINT_OCCURED"}
Switch EGWohnzimmerWandthermostat1BOOSTMODE "Boost mode" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#BOOST_MODE"}
Number EGWohnzimmerWandthermostat1QUICKVETOTIME "Quick veto time" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#QUICK_VETO_TIME"}
String EGWohnzimmerWandthermostat1HUMIDITYSTATUS "Humidity status" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#HUMIDITY_STATUS"}
String EGWohnzimmerWandthermostat1PARTYTIMESTART "Party time start" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#PARTY_TIME_START"}
Switch EGWohnzimmerWandthermostat1PARTYMODE "Party mode" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#PARTY_MODE"}
Number EGWohnzimmerWandthermostat1ACTIVEPROFILE "Active profile" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#ACTIVE_PROFILE"}
String EGWohnzimmerWandthermostat1WINDOWSTATE "Window state" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#WINDOW_STATE"}
Number:Temperature EGWohnzimmerWandthermostat1ACTUALTEMPERATURE "Actual temperature" {channel="homematic:HmIP-WTH-2:3014F711A0001F98A9AA0B0E:000A98A9A74163:1#ACTUAL_TEMPERATURE"}
Wobei nur diese Items in Frage kommen:
Code: Alles auswählen
Number:Temperature EGWohnzimmerWandthermostat1PARTYSETPOINTTEMPERATURE "Party set point temperature"
String EGWohnzimmerWandthermostat1PARTYTIMEEND "Party time end"
String EGWohnzimmerWandthermostat1PARTYTIMESTART "Party time start"
Switch EGWohnzimmerWandthermostat1PARTYMODE "Party mode"
Das
"1999_11_30 00:00"
sieht aus wie Werkseinstellung. Das ist für ihn der Beginn seiner Zeitrechnung.
Kann es sein, das Du Start- und Endzeit, sowie die Temperatur gleichzeitig (3 send.Commands) hintereinander absetzen musst?