Weishaupt Warmwasser-Aufbereitung per Knopfdruck

Begonnen von MuellerMichael, 15 Juli 2020, 09:26:22

Vorheriges Thema - Nächstes Thema

MuellerMichael

Guten Tag,

ich habe eine Weishaupt(Dimplex Technik)Wärmepumpe und vermisse die Funktion, dass Sie auf Knopfdruck/Web-Interface kein Warmwasser aufbereiten kann.
Ich habe gesehen, es ist möglich mit dem NWPM Modul und pCOWeb eigene HTML/JS anzulegen.

Mein Plan eine HTML Seite anzulegen, die auf Knopfdruck die minimale Wassertemperatur (minimum Temperaturwert während der Sperrzeit) auf die Solltemperatur setzt.
Frage 1: Weiß jemand, woher ich rausfinde welcher Index die Variable hat? Gibt es dafür eine Übersicht?

Anschließend würde ich mit einem JavaScript Timer nach 2h den Wert wieder zurücksetzen. Nachteil ist eben, dass der Browser solange geöffnet sein muss.
Gibt es auch eine Möglichkeit so ein Scheduler auch auf den Webserver auszulagern?

Danke und Grüße

oniT

#1
Hallo,

hier mal ein Vorschlag. So habe ich es gelöst.

- eine Warmwassersperre von 13:30 bis 11:30 fest hinterlegt - Zeit 1
- eine Warmwassersperre von 00:00 bis 23:59 fest hinterlegt - Zeit 2

Benötige ich einmal außerhalb der Sperre eine Warmwasserbereitung, setze ich den Button einmalig auf "Nein". Ist die Warmwasserbereitung bis zur hinterlegten Solltemperatur abgeschlossen, setzt sich die Sperre automatisch wieder zurück auf Zeit 1. 

Das ganze ist mit zwei DOIF und einem dummy umgesetzt. Wie die Werte aus der NWPM gelesen und geschrieben werden steht im Wiki.

https://wiki.fhem.de/wiki/Dimplex_W%C3%A4rmepumpenmanager


defmod doif_hotwater_block DOIF (["$SELF:mybutton: Ja"])\
(set dimhp_trigger_function 7)\
(set dimhp_trigger_sunday 0,\
set dimhp_trigger_monday 0,\
set dimhp_trigger_tuesday 0,\
set dimhp_trigger_wednesday 0,\
set dimhp_trigger_thursday 0,\
set dimhp_trigger_friday 0,\
set dimhp_trigger_saturday 0)\
DOELSEIF (["$SELF:mybutton: Nein"])\
(set dimhp_trigger_function 7)\
(set dimhp_trigger_sunday 1,\
set dimhp_trigger_monday 1,\
set dimhp_trigger_tuesday 1,\
set dimhp_trigger_wednesday 1,\
set dimhp_trigger_thursday 1,\
set dimhp_trigger_friday 1,\
set dimhp_trigger_saturday 1,\
set dummy_doif_hotwater_block_auto 1)\
DOELSEIF (["$SELF:mybutton: Zeit_1"])\
(set dimhp_trigger_function 7)\
(set dimhp_trigger_sunday 2,\
set dimhp_trigger_monday 2,\
set dimhp_trigger_tuesday 2,\
set dimhp_trigger_wednesday 2,\
set dimhp_trigger_thursday 2,\
set dimhp_trigger_friday 2,\
set dimhp_trigger_saturday 2)\
DOELSEIF (["$SELF:mybutton: Zeit_2"])\
(set dimhp_trigger_function 7)\
(set dimhp_trigger_sunday 3,\
set dimhp_trigger_monday 3,\
set dimhp_trigger_tuesday 3,\
set dimhp_trigger_wednesday 3,\
set dimhp_trigger_thursday 3,\
set dimhp_trigger_friday 3,\
set dimhp_trigger_saturday 3)\
attr doif_hotwater_block alias Warmwasser Sperre
attr doif_hotwater_block cmdState Ja|Nein|Zeit_1|Zeit_2
attr doif_hotwater_block do always
attr doif_hotwater_block event-on-change-reading .*
attr doif_hotwater_block group Einstellungen
attr doif_hotwater_block readingList mybutton
attr doif_hotwater_block setList mybutton:Ja,Nein,Zeit_1,Zeit_2
attr doif_hotwater_block wait 0,5,5:0,5,5:0,5,5:0,5,5
attr doif_hotwater_block webCmd mybutton



defmod doif_hotwater_block_auto DOIF ([dummy_doif_hotwater_block_auto:state] == 1 and [dim_dhw_temperature:temperature] >= [dim_dhwset_temperature:temperature])(set doif_hotwater_block mybutton Zeit_1, set dummy_doif_hotwater_block_auto 0)
attr doif_hotwater_block_auto group Warmwasser
attr doif_hotwater_block_auto wait 30



defmod dummy_doif_hotwater_block_auto dummy
attr dummy_doif_hotwater_block_auto group Warmwasser


Gruß,
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

oniT

Ergänzung, im Wiki stehen doch nicht die Zugriffe auf die Sperrzeiten. Hier noch die notwendigen Register:


defmod dimhp_trigger_monday ModbusRegister 0 5075
attr dimhp_trigger_monday IODev HeatPumpServer
attr dimhp_trigger_monday event-on-change-reading .*
attr dimhp_trigger_monday plcDataType INT
attr dimhp_trigger_monday registerType Holding



defmod dimhp_trigger_tuesday ModbusRegister 0 5076
attr dimhp_trigger_tuesday IODev HeatPumpServer
attr dimhp_trigger_tuesday event-on-change-reading .*
attr dimhp_trigger_tuesday plcDataType INT
attr dimhp_trigger_tuesday registerType Holding



defmod dimhp_trigger_wednesday ModbusRegister 0 5077
attr dimhp_trigger_wednesday IODev HeatPumpServer
attr dimhp_trigger_wednesday event-on-change-reading .*
attr dimhp_trigger_wednesday plcDataType INT
attr dimhp_trigger_wednesday registerType Holding



defmod dimhp_trigger_thursday ModbusRegister 0 5078
attr dimhp_trigger_thursday IODev HeatPumpServer
attr dimhp_trigger_thursday event-on-change-reading .*
attr dimhp_trigger_thursday plcDataType INT
attr dimhp_trigger_thursday registerType Holding



defmod dimhp_trigger_friday ModbusRegister 0 5079
attr dimhp_trigger_friday IODev HeatPumpServer
attr dimhp_trigger_friday event-on-change-reading .*
attr dimhp_trigger_friday plcDataType INT
attr dimhp_trigger_friday registerType Holding



defmod dimhp_trigger_saturday ModbusRegister 0 5080
attr dimhp_trigger_saturday IODev HeatPumpServer
attr dimhp_trigger_saturday event-on-change-reading .*
attr dimhp_trigger_saturday plcDataType INT
attr dimhp_trigger_saturday registerType Holding



defmod dimhp_trigger_sunday ModbusRegister 0 5074
attr dimhp_trigger_sunday IODev HeatPumpServer
attr dimhp_trigger_sunday event-on-change-reading .*
attr dimhp_trigger_sunday plcDataType INT
attr dimhp_trigger_sunday registerType Holding



defmod dimhp_trigger_function ModbusRegister 0 5065
attr dimhp_trigger_function IODev HeatPumpServer
attr dimhp_trigger_function event-on-change-reading .*
attr dimhp_trigger_function group Raumregelung
attr dimhp_trigger_function plcDataType INT
attr dimhp_trigger_function registerType Holding


Ich hoffe ich habe nichts vergessen.

Gruß,
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

MuellerMichael

#3
Hallo Tino,

Danke erstmal  :), bin mit dem FHEM noch nicht so vertraut.

interessant das war Idee 2, ich dachte die minimal Temperatur hoch setzen wäre einfacher und nachdem erreichen der Solltemperatur einfach wieder zurücksetzen oder denkst du das ist komplizierter? Warum benötigst du Sperre 2?
Was ich noch nicht verstanden habe, wie wird das ganze getriggert?

Weißt du auch wie man im Bash eine Variable auslesen und schreiben kann?


oniT

Hallo Michael,

Zitat
ich dachte die minimal Temperatur hoch setzen wäre einfacher und nachdem erreichen der Solltemperatur einfach wieder zurücksetzen oder denkst du das ist komplizierter?
Das verändern der minimalen Temperatur ist auch ein Ansatz und wird auch funktionieren. Ich hatte nur meine Umsetzung aufgeschrieben, da ich den einen Multiplexer für das Triggern der Räume sowieso benötige, da ich die Raumtemperaturregelung über die Schnittstelle realisiert habe.
Zitat
Warum benötigst du Sperre 2?
Die setze ich wenn ich im Sommer in den Urlaub fahre. Die Regelung kann dies nicht unterscheiden und würde im Sommer unter gewissen Außentemperaturen heizen. Wobei das bei Raumregelung nicht passieren wird.
Auf alle Fälle bleibt so der Betriebsmodus Sommer und zusätzlich eine Warmwasser Sperre.
Zitat
Was ich noch nicht verstanden habe, wie wird das ganze getriggert?
Na eigentlich triggerst du und schaltest mit einem Button oder wie in dem Beispiel über ein Dropdownfeld auf "Nein" und somit werden die fest hinterlegten Sperrzeiten auf "Nein" gestellt, also keine Sperre. Anschließend beginnt die Warmwasserbereitung. Das Zurücksetzen folgt über den Trigger von der Warmwassertemperatur. Warmwassertemperatur >= Warmwassersolltemperatur. Ab diesem Zeitpunkt setzt das DOIF den Wert wieder auf das was du willst. In dem Fall auf Zeit 1. Warum habe ich das so gemacht? Ich habe eine PV Anlage dran hängen. Ab einem gewissen Ertrag wird die Warmwassersperre aufgehoben. So, jetzt kann es aber auch sein, dass zu wenig Ertrag ist und somit greift dann die Sperre Zeit 1 und es wird dann spätestens zu diesem Zeitpunkt eine Warmwasserbereitung durchgeführt. Egal halt ob Ertrag da war (dann ist es ja schon warm) oder es wird halt durchgeführt da bis zu diesem Zeitpunkt nichts passiert ist. Im Normalfall (also je nach Nutzerverhalten) reicht ja eine Warmwasserladung pro Tag aus. Zumindest bei uns und da duschen trotzdem 4 Leute täglich :)
Zitat
Weißt du auch wie man im Bash eine Variable auslesen und schreiben kann?
Nein damit kenne ich mich nicht aus.

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP