nic6911/ESP32_Modbus_Module

Incorrect data reported from Wavin AHC 9000 with the modbus module.

Closed this issue · 1 comments

I'm using your ESP32 Modbus Module that I recently purchased, I hooked it up to a Wavin AHC 9000 ventillation system after I had followed your guide on YouTube on flashing the module for the Wavin AHC 9000. The module is working great, but there are some discrepancies in the data that's being reported from the ventillation system.

There are 6 channels configured in the Wavin unit.

01: Living Room
03: Master Bedroom
04: Entrance
05: Bedroom 1
06: Bedroom 2
07: Bathroom

The first three issues I encountered are the following:

  • Channel 07 reports the temperature as 0 °C. (The thermostat shows the correct temp for the room that it is in)
  • Channel 06 is reporting the current temperature for Channel 07. (The thermostat shows the correct temp for the room that it is in)
  • Channel 07 reports 0% as the thermostat battery status.

I replaced the batteries in the thermostat for Channel 07 and then I noticed that the battery status for the Channel 07 thermostat is reported as the battery status for the Channel 04 thermostat.

I'm a bit baffled by this, I'm not sure if this might be an issue with the way I did setup/configure the module or if this might be something in the Wavin unit itself.

Any thoughts on this?

ESPHome_wavin.log

Here's the YAML that I used to build the firmware and flash the modbus module with.

########################################################################################
#                                                                                      #
#      WAVIN AHC-9000 FLOOR HEATING CONTROLLER SOFTWARE FOR HOME ASSISTANT             #
#                                                                                      #   
#        Code developed by : Heine Koldbro Madsen and Samuel Sieb 2021                 #
#                                                                                      #
# https://github.com/heinekmadsen/esphome_components/tree/main/components/wavinAhc9000 #    
#                                                                                      #
# Hardware by : Mogens Groth Nicolaisen https://github.com/nic6911/Wavin-AHC-9000-mqtt #
#                                                                                      #
########################################################################################
 
 
########################################################################################
#                      CONFIGURATION PART OF YOUR CHOICE :)                            #
########################################################################################

substitutions:
  # UNIQUE NAME FOR THE DEVICE
  device: wavin # Case sensitive!!!
  name: "Wavin AHC 9000"  # "Friendly name" - not case sensitive!!!
  
  # CHANNEL friendly names (If using spaces remember to add ")
  channel_01_friendly_name: "Living Room"
  channel_02_friendly_name: "Channel 02"
  channel_03_friendly_name: "Master Bedroom"
  channel_04_friendly_name: "Entrance"
  channel_05_friendly_name: "Bedroom 1"
  channel_06_friendly_name: "Bedroom 2"
  channel_07_friendly_name: "Bathroom"
  channel_08_friendly_name: "Channel 08"
  channel_09_friendly_name: "Channel 09"
  channel_10_friendly_name: "Channel 10"
  channel_11_friendly_name: "Channel 11"
  channel_12_friendly_name: "Channel 12"
  channel_13_friendly_name: "Channel 13"
  channel_14_friendly_name: "Channel 14"
  channel_15_friendly_name: "Channel 15"
  channel_16_friendly_name: "Channel 16"
  channel_17_friendly_name: "Channel 17"
  
  # CHANNEL ID´S (ONLY LOWER CASE LETTERS, NO SPACES) used for entity ids
  channel_01_id: channel_01
  channel_02_id: channel_02
  channel_03_id: channel_03
  channel_04_id: channel_04
  channel_05_id: channel_05
  channel_06_id: channel_06
  channel_07_id: channel_07
  channel_08_id: channel_08
  channel_09_id: channel_09
  channel_10_id: channel_10
  channel_11_id: channel_11
  channel_12_id: channel_12
  channel_13_id: channel_13
  channel_14_id: channel_14
  channel_15_id: channel_15
  channel_16_id: channel_16
  channel_17_id: channel_17

 # CHANNEL Alignments (ONLY change if you have offsets in channel vs temperature. Some have reported this if using multiple strings pr. room thermostat)
  channel_01_sensor: "0x00"
  channel_02_sensor: "0x01"
  channel_03_sensor: "0x02"
  channel_04_sensor: "0x03"
  channel_05_sensor: "0x04"
  channel_06_sensor: "0x05"
  channel_07_sensor: "0x06"
  channel_08_sensor: "0x07"
  channel_09_sensor: "0x08"
  channel_10_sensor: "0x09"
  channel_11_sensor: "0x0A"
  channel_12_sensor: "0x0B"
  channel_13_sensor: "0x0C"
  channel_14_sensor: "0x0D"
  channel_15_sensor: "0x0E"
  channel_16_sensor: "0x0F"
  channel_17_sensor: "0x14"
  
  channel_01: "0x00"
  channel_02: "0x01"
  channel_03: "0x02"
  channel_04: "0x03"
  channel_05: "0x04"
  channel_06: "0x05"
  channel_07: "0x06"
  channel_08: "0x07"
  channel_09: "0x08"
  channel_10: "0x09"
  channel_11: "0x0A"
  channel_12: "0x0B"
  channel_13: "0x0C"
  channel_14: "0x0D"
  channel_15: "0x0E"
  channel_16: "0x0F"
  channel_17: "0x14"

   # UPDATE TIME (GATEWAY)
  update_interval: 60s
 
  # PIN DEFINITIONS (Should in most cases not be changed) 
  rx_pin: '20'
  tx_pin: '21'
 
  # WiFi settings
  ssid_set: "<redacted>"
  password_set: "<redacted>"
 
########################################################################################
#                        CODE BELOW SHOULD NOT BE CHANGED                              #
########################################################################################  
 
esphome:
  name: ${device}
  
esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino
  
# Enable logging
logger:
  baud_rate: 0
 
# Enable Home Assistant API
api:
 
ota:
 
wifi:
  ssid: ${ssid_set}
  password: ${password_set}
 
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Wavin Fallback Hotspot"
    password: "<redacted>"
 
captive_portal:  
 
uart:
  - id: uart_${device}
    rx_pin: ${rx_pin}
    tx_pin: ${tx_pin}
    baud_rate: 38400
    stop_bits: 1
    parity: NONE
 
modbus:
    - id: ${device}_modbus
      uart_id: uart_${device}
      flow_control_pin: 10
 
modbus_controller:
  id: ${device}_modbus_controller
  address: 1
  modbus_id: wavin_modbus
  update_interval: ${update_interval}
 
packages:
  remote_package:
    url: https://github.com/nic6911/esphome_components
    ref: more_channels
    files: 
      - components/wavinahc9000v2/configs/basic.yaml # REQUIRED FOR WAVIN AHC 9000
      - components/wavinahc9000v2/configs/channel_01.yaml
      #- components/wavinahc9000v2/configs/channel_01_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_02.yaml
      #- components/wavinahc9000v2/configs/channel_02_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_03.yaml
      #- components/wavinahc9000v2/configs/channel_03_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_04.yaml 
      #- components/wavinahc9000v2/configs/channel_04_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_05.yaml 
      #- components/wavinahc9000v2/configs/channel_05_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_06.yaml 
      #- components/wavinahc9000v2/configs/channel_06_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_07.yaml 
      #- components/wavinahc9000v2/configs/channel_07_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_08.yaml 
      #- components/wavinahc9000v2/configs/channel_08_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_09.yaml 
      #- components/wavinahc9000v2/configs/channel_09_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_10.yaml 
      #- components/wavinahc9000v2/configs/channel_10_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_11.yaml 
      #- components/wavinahc9000v2/configs/channel_11_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_12.yaml
      #- components/wavinahc9000v2/configs/channel_12_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_13.yaml 
      #- components/wavinahc9000v2/configs/channel_13_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_14.yaml
      #- components/wavinahc9000v2/configs/channel_14_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_15.yaml 
      #- components/wavinahc9000v2/configs/channel_15_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_16.yaml 
      #- components/wavinahc9000v2/configs/channel_16_comfort.yaml # Only for channels with thermostat with IR sensor
      - components/wavinahc9000v2/configs/channel_17.yaml 
    refresh: 0s  

Hi,

you have most likely two strings on one thermostat - which requires you to edit the offset section so that it does not try to read the channel thermostat that is not there.
Read more here: https://github.com/heinekmadsen/esphome_components