Thread zum Wiki-Artikel "Dimplex Wärmepumpenmanager"

Begonnen von oniT, 31 Januar 2015, 14:40:49

Vorheriges Thema - Nächstes Thema

oniT

Hallo willyk,

ok, wenn ich das richtig lese funktioniert alles bis auf die Rücklaufsolltemperatur.
Zitat
Wo gibts die Rücklaufsolltemperatur?
Diese habe ich für die H-Software im Moment auch nicht. Sollte man vielleicht einmal erfragen.

Ansonsten musst Du nur eines beachten, Register stehen für Analog- und Integerwerte (z.B. Temperaturen), Coil stehen für die Digitalwerte (z.B. Mischer-, Pumpen-, Verdichterausgänge).

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

willyk

Zitat von: oniT am 10 Dezember 2015, 21:00:16
... bis auf die Rücklaufsolltemperatur.Diese habe ich für die H-Software im Moment auch nicht.

Hast du sie für die J-Software? Da kann ich sie auch nicht finden. Und warum steht "0 53" im Wiki?

Gruss
willyk
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

oniT

Hallo willyk,

ja ich habe die J-Software. Ich habe die Rücklaufsolltemperatur erfragt, ferndiagnose@dimplex.de, steht im Dimplex Wiki ganz unten unter Kontakt. Ich habe inziwischen für die H Software die Temperatur ebenfalls erfragt. Register 28. Somit musst Du die 0 53 gegen 0 28 ändern, dann sollte es funktionieren.


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

willyk

Hallo tino,

ich möchte gerne die Sperr und Absenkzeiten anzeigen und ändern können. Wie kann ich denn das hinkriegen?

Problem ist, dass laut http://www.dimplex.de/wiki/index.php/NWPM_Modbus_TCP zuerst eine Adresse umgeschaltet werden muss, damit die entsprechenden Werte abgerufen werden:

*Programmierhinweis!
Um einen Absenk- oder Anhebwert für den 1.Heizkreis zu ändern, wird auf die Adresse 192 (Modbus IP 5065) der Wert 1 für Absenkung bzw. 2 für Anhebung gesendet.


Beim Setzen eines Wertes ist das relativ einfach: zuerst das Register 5065 auf 1 setzen, dann die gewünschten Werte setzen.

Aber: Wie mache ich das beim Abrufen?

define dim_time_hourstart1 ModbusRegister 0 5066

holt den Inhalt des Registers 5066, dieser hängt aber vom Register 5065 ab. Wie kann ich das Register 5065 so setzen, dass es je nach updateintervall automatisch gesetzt wird?

Danke + Gruss
willy
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

hf007

Hallo,

versuche auch gerade die LWP an FHEM anzubinden.
das Meiste läuft inzwischen auch (Temperaturen etc.) Bis auf Status/Stör und Sperrmeldungen.
bei dim_status_heatpump
erhalte ich bei den readings immer folgende Meldung
Status Error evaluating dim_status_heatpump userReading Status: syntax error at (eval 448) line 1, near "4) "  2016-03-02 22:00:17

an was könnte das liegen?

mfg
hf

oniT

Hallo hf,

ich würde sagen es ist ein Sytaxfehler. Poste doch mal den Code vom userReading.

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

hf007

#36
Hallo Tino,

danke. Es war in der Tat ein Syntaxfehler. Hatte beim Anpassen eine Klammer vergessen. Jetzt gehts.
Hab die Register an die J Software angepasst und auch einige Werte sind bei mir anders. z.B. ist "AUS" bei mir 0
Hab noch ein Problem mit mehrfach geloggten Zuständen trotz event-on-change-reading
Der Status sieh bei mir so aus:

Mär Do 20:32 Status: Warmwasser
Mär Do 20:15 Status: Heizen
Mär Do 19:02 Status: Heizen
Mär Do 17:30 Sperre: Systemkontrolle
Mär Do 17:30 Status: Abtauen
Mär Do 17:03 Status: Aus
Mär Do 16:57 Status: Heizen
Mär Do 15:51 Status: Heizen
Mär Do 13:00 Status: Aus
Mär Do 11:30 Sperre: Systemkontrolle
Mär Do 11:30 Status: Abtauen
Mär Do 11:18 Status: Aus
Mär Do 11:06 Status: Heizen
Mär Do 10:24 Status: Heizen
Mär Do 10:22 Status: Aus
Mär Do 09:37 Status: Aus
Mär Do 09:34 Status: Aus
Mär Do 09:31 Status: Aus
Mär Do 09:29 Status: Aus
Mär Do 09:27 Status: Aus

An was könnte sowas liegen?
Mein FHEM läuft auf einem Pi der ersten Generation und die Auslastung ist jetzt relativ hoch. Ist das Normal mit den Modulen?

Gruß, hf

oniT

Zitat von: hf007 am 03 März 2016, 20:53:51
Hallo Tino,

danke. Es war in der Tat ein Syntaxfehler. Hatte beim Anpassen eine Klammer vergessen. Jetzt gehts.
Hab die Register an die J Software angepasst und auch einige Werte sind bei mir anders. z.B. ist "AUS" bei mir 0
Hab noch ein Problem mit mehrfach geloggten Zuständen trotz event-on-change-reading
Der Status sieh bei mir so aus:
Mär Do 20:32 Status: Warmwasser
Mär Do 20:15 Status: Heizen
Mär Do 19:02 Status: Heizen
Mär Do 17:30 Sperre: Systemkontrolle
Mär Do 17:30 Status: Abtauen
Mär Do 17:03 Status: Aus
Mär Do 16:57 Status: Heizen
Mär Do 15:51 Status: Heizen
Mär Do 13:00 Status: Aus
Mär Do 11:30 Sperre: Systemkontrolle
Mär Do 11:30 Status: Abtauen
Mär Do 11:18 Status: Aus
Mär Do 11:06 Status: Heizen
Mär Do 10:24 Status: Heizen
Mär Do 10:22 Status: Aus
Mär Do 09:37 Status: Aus
Mär Do 09:34 Status: Aus
Mär Do 09:31 Status: Aus
Mär Do 09:29 Status: Aus
Mär Do 09:27 Status: Aus

An was könnte sowas liegen?
Mein FHEM läuft auf einem Pi der ersten Generation und die Auslastung ist jetzt relativ hoch. Ist das Normal mit den Modulen?

Gruß, hf

Hallo hf,

zunächst, die Reihenfolge ist in der Tat unlogisch. Hast Du alle Werte schon auf die J-Software angepasst?

Mär Do 19:02 Status: Heizen
Mär Do 17:30 Sperre: Systemkontrolle
Mär Do 17:30 Status: Abtauen
Mär Do 17:03 Status: Aus


So etwas kann nicht sein. Nach Aus kann nicht Abtauen kommen und dann Systemkontrolle. Systemkontrolle kommt während des Betriebs nicht und Abtauen nach Start ist auch nicht möglich. Ich denke da passt noch etwas nicht.

Hast Du überall Event-on-change-reading drin? Oder liegt es wirklich nur an doppelt vorhandenen Einträgen? Poste doch mal den gesamten Code von der Statusabfrage.

Auslastung ist eine gute Frage. Sicherlich kommt es darauf an wie viele Werte und wie häufig Du diese abfragst. Ich habe damit keine Probleme und habe noch 3 weitere Modbus TCP Geräte am Beaglebone hängen. Wie das bei Pi 1 ist, da kenne ich mich nicht so 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

hf007

#38
Hallo Tino,

hatte doch nicht alle Werte angepasst. Wollte mal nur die vermeintlich Wichtigen für die ersten Versuche nehmen.
Mir ist immer noch nicht klar welche man wirklich braucht. Vielleicht kann man die nicht dekodierten Werte einfach so anzeigen? Hab das aber noch nicht hinbekommen.
Mir ist auch nicht klar warum der Status 1 und 2 bei der J Software HEIZEN bedeutet. Macht die Pumpe da jeweils etwas anderes? Muss ich das unterscheiden?


########################################################
##  Register Statusmeldung definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_status_heatpump ModbusRegister 0 43
attr dim_status_heatpump IODev HeatPumpServer
attr dim_status_heatpump event-on-change-reading .*
attr dim_status_heatpump plcDataType INT
attr dim_status_heatpump registerType Holding
attr dim_status_heatpump room Dimplex
attr dim_status_heatpump updateInterval 00:01:00
attr dim_status_heatpump userReadings Status {((ReadingsVal($name,"state","") == 0) ? "Aus":(ReadingsVal($name,"state","") == 1) ? "Heizen":(ReadingsVal($name,"state","") == 2) ? "Heizen":(ReadingsVal($name,"state","") == 4) ? "Warmwasser":(ReadingsVal($name,"state","") == 10) ? "Abtauen":(ReadingsVal($name,"state","") == 11) ? "Durchflussüberwachnung":"")}

########################################################
##  Register Sperrmeldungen definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_block_heatpump ModbusRegister 0 59
attr dim_block_heatpump IODev HeatPumpServer
attr dim_block_heatpump event-on-change-reading .*
attr dim_block_heatpump plcDataType INT
attr dim_block_heatpump registerType Holding
attr dim_block_heatpump room Dimplex
attr dim_block_heatpump updateInterval 00:01:00
attr dim_block_heatpump userReadings Sperre {((ReadingsVal($name,"state","") == 0) ? "":(ReadingsVal($name,"state","") == 7) ? "EVU-Sperre ":(ReadingsVal($name,"state","") == 9) ? "Hochdruck":(ReadingsVal($name,"state","") == 10) ? "Niederdruck":(ReadingsVal($name,"state","") == 11) ? "Durchfluss":(ReadingsVal($name,"state","") == 36) ? "Pumpenvorlauf":(ReadingsVal($name,"state","") == 38) ? "Netzbelastung":(ReadingsVal($name,"state","") == 12) ? "Sanftanlasser":(ReadingsVal($name,"state","") == 39) ? "Schaltspielsperre":"")}

########################################################
##  Register Störmeldungen definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_fault_heatpump ModbusRegister 0 42
attr dim_fault_heatpump IODev HeatPumpServer
attr dim_fault_heatpump event-on-change-reading .*
attr dim_fault_heatpump plcDataType INT
attr dim_fault_heatpump registerType Holding
attr dim_fault_heatpump room Dimplex
attr dim_fault_heatpump updateInterval 00:01:00
attr dim_fault_heatpump userReadings Störung {((ReadingsVal($name,"state","") == 0) ? "":(ReadingsVal($name,"state","") == 6) ? "Frostschutz":(ReadingsVal($name,"state","") == 15) ? "Durchfluss":(ReadingsVal($name,"state","") == 14) ? "Motorschutz Primär":(ReadingsVal($name,"state","") == 16) ? "!Warmwasser":(ReadingsVal($name,"state","") == 3) ? "!Last Verdichter":(ReadingsVal($name,"state","") == 4) ? "!Codierung":(ReadingsVal($name,"state","") == 5) ? "Niederdruck":(ReadingsVal($name,"state","") == 6) ? "!Frostschutz":(ReadingsVal($name,"state","") == 17) ? "!Hochdruck":(ReadingsVal($name,"state","") == 23) ? "!Temperatur Differenz":(ReadingsVal($name,"state","") == 15) ? "!Durchfluss":"")}


Wie bekommt man vernünftige Zeilenumbrüche in die cfg. Dateien?

Meine Wärmemengen stimmen auch nicht wirklich. Da habe ich in Deinem Beispielcode aber nichts angepasst. Hab aber deutlich kleiner Werte als beim Web Server

Gruß
Hans

oniT

Hallo Hans,

Zitat
Mir ist immer noch nicht klar welche man wirklich braucht. Vielleicht kann man die nicht dekodierten Werte einfach so anzeigen?
Dies ist abhängig vom Typ der Wärmepumpe. Alle kann ich zwar auch nicht zuordnen, aber bei einer Luft/Wasser-Wärmepumpe gibt es zumindest Abauten, Durchflussüberwachung, Pumpenvorlauf.

Zitat
Mir ist auch nicht klar warum der Status 1 und 2 bei der J Software HEIZEN bedeutet. Macht die Pumpe da jeweils etwas anderes? Muss ich das unterscheiden?
Nein, Heizen ist Heizen. Warum es dafür 2 Werte gibt, da habe ich keine Ahnung.

Also wenn Du die J-Software hast, dann müssen die Werte im userReading angepasst werden. Dies hattest Du auch schon zum Teil getan. Ich habe es mal der Übersichtlichkeit der Reihenfolge nach geändert

########################################################
##  Register Statusmeldung definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_status_heatpump ModbusRegister 0 43
attr dim_status_heatpump userReadings Status {((ReadingsVal($name,"state","") == 0) ? "Aus":(ReadingsVal($name,"state","") == 1) ? "Heizen":(ReadingsVal($name,"state","") == 2) ? "Heizen":(ReadingsVal($name,"state","") == 4) ? "Warmwasser":(ReadingsVal($name,"state","") == 15) ? "Schaltspielsperre":(ReadingsVal($name,"state","") == 16) ? "Mindeststandzeit":(ReadingsVal($name,"state","") == 17) ? "Netzbelastung":(ReadingsVal($name,"state","") == 18) ? "Durchflussüberwachung":(ReadingsVal($name,"state","") == 21) ? "Abtauen":"undefiniert")}

########################################################
##  Register Sperrmeldungen definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_block_heatpump ModbusRegister 0 59
attr dim_block_heatpump userReadings Sperre {((ReadingsVal($name,"state","") == 0) ? "":(ReadingsVal($name,"state","") == 5) ? "Warmwasser Nacherwärmung ":(ReadingsVal($name,"state","") == 6) ? "Systemkontrolle":(ReadingsVal($name,"state","") == 7) ? "EVU-Sperre":(ReadingsVal($name,"state","") == 9) ? "Hochdruck":(ReadingsVal($name,"state","") == 10) ? "Niederdruck":(ReadingsVal($name,"state","") == 11) ? "Durchfluss":(ReadingsVal($name,"state","") == 12) ? "Sanftanlasser":(ReadingsVal($name,"state","") == 36) ? "Pumpenvorlauf":(ReadingsVal($name,"state","") == 37) ? "Mindeststandzeit":(ReadingsVal($name,"state","") == 38) ? "Netzbelastung":(ReadingsVal($name,"state","") == 39) ? "Schaltspielsperre":"undefiniert")}

########################################################
##  Register Störmeldungen definieren
##  Erstellt........: 04.01.2016
##  Geändert........:
########################################################
define dim_fault_heatpump ModbusRegister 0 42
attr dim_fault_heatpump userReadings Störung {((ReadingsVal($name,"state","") == 0) ? "":(ReadingsVal($name,"state","") == 3) ? "Last Verdichter":(ReadingsVal($name,"state","") == 5) ? "Niederdruck":(ReadingsVal($name,"state","") == ) ? "Frostschutz":(ReadingsVal($name,"state","") == 14) ? "Motorschutz Primär":(ReadingsVal($name,"state","") == 15) ? "Durchfluss":(ReadingsVal($name,"state","") == 16) ? "Warmwasser":(ReadingsVal($name,"state","") == 17) ? "Hochdruck":(ReadingsVal($name,"state","") == 23) ? "Temperatur Differenz":"undefiniert")}

und am Ende ein "undefiniert" angehängt. Dies kommt dann wenn ein Wert kommt der nicht angelegt ist. Eventuell macht es auch Sinn, den Wert ausgegeben zu lassen, dann kann man in der Übersicht nachsehen um welche Meldung es sich gehandelt hat.


Zitat
Wie bekommt man vernünftige Zeilenumbrüche in die cfg. Dateien?
Bei einem Zeilenumbruch muss ein \ gesetzt werden. Denke ich zumindest. Ich trage nie mehr was von Hand in die .cfg ein. Mir hat es deswegen einmal die gesamte .cfg zerschossen. Seitdem definiere ich nur noch über die Kommandozeile und dann entsprechend in den Eigenschaften.

Zitat
Meine Wärmemengen stimmen auch nicht wirklich. Da habe ich in Deinem Beispielcode aber nichts angepasst. Hab aber deutlich kleiner Werte als beim Web Server
Stimmt die Wärmemenge in der Web Oberfläche mit den Werten im Display vom Regler?

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

hf007

Hallo Tino,

jetzt funktionierts. Hab mir statt dem undefiniert die Werte anzeigen lassen und dann entsprechend im userReading angepasst (z.B. Pumpenvorlauf)
die Wärmemenge stimmt auch. Hatte leider nur die einzelnen Register angezeigt und nicht das userReading. Die Umweltenergie scheint bei der J Software nicht zu gehen?

Die Filelogs erscheinen bei mir immer gang oben im Raum Dimplex. Meine fhem Kenntnisse reichen nicht sie ans Ende vom Raum zu sortiern :-(

Gruß, hf

oniT

Hallo Hans,

Zitat
Die Umweltenergie scheint bei der J Software nicht zu gehen?
Korrekt, diese gibt es erst ab irgend einer L-Softwareversion.

Zitat
Die Filelogs erscheinen bei mir immer gang oben im Raum Dimplex. Meine fhem Kenntnisse reichen nicht sie ans Ende vom Raum zu sortiern :-(
Das Sortieren geht, so meine ich, ja nur innerhalb einer Gruppe. Somit hast Du ja nur zwei Möglichkeiten. Entweder einen eigenen Raum den Filelogs spendieren oder eine eigene Gruppe irgendwas mit "Z" am Anfang.

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

hf007

Hallo Tino,

in dem Logfile tauchen einige Fehlermeldungen auf.

2016.03.08 21:34:32 3: dim_dhwpump_output: I/O device is HeatPumpServer
Argument "00:01:00" isn't numeric in addition (+) at ./FHEM/37_ModbusCoil.pm line 381, <> line 240.
2016.03.08 21:34:32 0: HourCounter hourcounter_dhwpump_output Define.228 parameters: hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off
2016.03.08 21:34:32 3: dim_auxiliarypump_output: I/O device is HeatPumpServer
Argument "00:01:00" isn't numeric in addition (+) at ./FHEM/37_ModbusCoil.pm line 381, <> line 262.
2016.03.08 21:34:32 0: HourCounter hourcounter_auxiliarypump_output Define.228 parameters: hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off


Sie Urscahen die im 37_ModbusCoil.pm zu suchen?

Gruß, hf


oniT

Hallo Hans,

Zitat

2016.03.08 21:34:32 3: dim_dhwpump_output: I/O device is HeatPumpServer
Argument "00:01:00" isn't numeric in addition (+) at ./FHEM/37_ModbusCoil.pm line 381, <> line 240.
2016.03.08 21:34:32 0: HourCounter hourcounter_dhwpump_output Define.228 parameters: hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off
2016.03.08 21:34:32 3: dim_auxiliarypump_output: I/O device is HeatPumpServer
Argument "00:01:00" isn't numeric in addition (+) at ./FHEM/37_ModbusCoil.pm line 381, <> line 262.
2016.03.08 21:34:32 0: HourCounter hourcounter_auxiliarypump_output Define.228 parameters: hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off


ich habe eine Vermutung. Es könnte sein, dass ChrisD die Zeitangaben aus ModbusRegister nicht in die ModbusCoil übernommen hat. Bitte trage einmal beim Attribut updateInterval statt 00:01:00 die Zeit 60 für 60 Sekunden ein und sieh mal ob die Fehlermeldung damit weg ist.

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

hf007

Hallo Tino,

das wars. Fehlermeldungen sind weg.

Gruß, hf