Dimplex HeatPump LS 8 AS + NWPM Integration using MODBUS TCP

Hi There,

another project to share :slight_smile:

obrázok

I have managed to use NWPM module (https://dimplex.atlassian.net/wiki/spaces/DW/pages/2862383109/NWPM#Beschreibung-und-Download-PlugIn) with WPM 2006 Plus controller to control my Dimplex LS 8 AS Heat Pump throught MODBUS protocol.

You have to configure your NWPM plugin module to use ModBus TCP:

  1. login to pcoWEB → preferences → network → firmware → opens new dialog window
  2. switch to ModBus TCP tab at new opened window and enable: ModBus TCP Status → Enable, ModBus TCP Port → 502 (I have used 1.5.x Map mode)
  3. Submit

Create modbus.yaml:

- name: dimplex
  type: tcp
  host: 192.168.1.xx ##Your NWPM module IP address here
  port: 502
  delay: 5
  timeout: 5
  sensors: ## Ordered by modbus address
    - name: Dimplex Mode
      slave: 1
      address: 5007
      scan_interval: 5
      input_type: input
    - name: Dimplex Smart Grid
      slave: 1
      address: 5167
      scan_interval: 5
      input_type: input
    - name: Dimplex Parallel Displacement
      slave: 1
      address: 5002
      scan_interval: 5
      input_type: input

modify configuration.yaml to include modbus.yaml and create Heating mode selection list:

modbus: !include modbus.yaml

input_select:
  heatpump_mode:
    name: Heatpump Mode
    options:
      - "Summer"
      - "Auto"
      - "Holiday"
      - "Party"
      - "Heat gen 2"
    icon: mdi:home-thermometer

Modify your automations.yaml to simplify Dimplex Modbus registry settings for heating modes:

- id: '1713981187327'
  alias: set_heatpump_mode
  description: Nastav mod TC Dimplex
  trigger:
  - platform: state
    entity_id:
    - input_select.heatpump_mode
  condition: []
  action:
  - service: modbus.write_register
    data:
      address: 5007
      hub: dimplex
      slave: 1
      value: '{{ state_attr(trigger.entity_id,''options'').index(states(trigger.entity_id))
        }}'

- id: '1714546261857'
  alias: act_heatpump_mode
  description: refresh heatpump mode input_select
  trigger:
  - platform: state
    entity_id:
    - sensor.dimplex_mode
  condition: []
  action:
  - service: input_select.select_option
    data:
      entity_id: input_select.heatpump_mode
      option: '{{ state_attr(''input_select.heatpump_mode'',''options'') [states(trigger.entity_id) | int] }}'
  mode: single

To reach other setings / registers, just follow this dimplex wiki guide:
https://dimplex.atlassian.net/wiki/spaces/DW/pages/3021504513/Modbus+TCP+Anbindung

2 Likes

Does anybody know how to use Dimplex Smart Grid settings to integrate with FVE production and avoid consuption of electricity when not producing green power? :slight_smile:
Any hint would be appreciated, thanks.

hi @jmnemonicj ,

followed all your instructions. but I am missing how I can add the pump to a dashboard or do something else.
do I miss something here?

@jmnemonicj I try to do this via EPEX plugin. when prices are negative I think green power is overwhelming.

What do you mean to add pump to dashboard?

You have to add the items you’ve already created, forex. the following as stated at my example before:

input_select.heatpump_mode

or one of the modbus items you created:

Dimplex Smart Grid
Dimplex Parallel Displacement

like these ones:

and my actual modbus.yaml:


name: dimplex
  type: tcp
  host: 192.168.1.xx # type your nwpm module local ip address
  port: 502
  delay: 0
  timeout: 5
  sensors: ## Ordered by modbus address
    - name: Dimplex Mode
#      slave: 1
      address: 5007
      scan_interval: 10
      input_type: input
    - name: Dimplex Smart Grid
#      slave: 1
      address: 5167
      scan_interval: 10
      input_type: input
    - name: Dimplex Parallel Displacement
#      slave: 1
      address: 5002
      scan_interval: 10
      input_type: input
    - name: Dimplex Hot Water target Temp
#      slave: 1
      address: 5022
      scan_interval: 10
      input_type: input
    - name: Dimplex Max temperature
#      slave: 1
      address: 5088
      scan_interval: 10
      input_type: input
    - name: Dimplex temperature hot water
#      slave: 1
      address: 30
      scan_interval: 10
      input_type: input
      unit_of_measurement: C
      unique_id: Dimplex_hot_water_temp
      scale: .1
      precision: 1
    - name: Dimplex temperature hot water target
#      slave: 1
      address: 40
      scan_interval: 10
      input_type: input
      unit_of_measurement: C
      unique_id: Dimplex_hot_water_target_temp
      scale: .1
      precision: 1

I meant how to control the pump to start the heating “right now”.
I haven’t found Modbus register to modify for the purpose.

1 Like

Does this instruction work for WPM 2004 Plus controller too??

It should, if you have modbus connection ready (forex. NWMP card + configuration as stated before). You just may need to update modbus addresses in modbus.ymal script, if diiffers from wpm2006 (check your WPM2004 guide).