MC6 Thermostat

Hello Yu. I have some thermostats with manufacturing date previous than 2020 (see image) and I recently purchase a new one that comes to me with the FW 2.59E already installed. In the new one the backplight adjustnent works correctly and on my old ones no. I have ob them the 2.43Z installed. I than update one of them to the 2,59: the version for old toucjscreen does not work (no touchscreen operation) the -TXT version works but the backlight adjustnment was still not working. Even with the slider to 0 the backlight emits the full light and, at the night in the bedroom is quite annoing. Have you got a bugfix for it?

Regards,

Diego

I can get almost everything working using @Domaray code

But climate.salon is not found by home assisstant

and get this error

It’s not possible to configure mqtt sensor by adding platform: mqtt to the sensor configuration. Please check the documentation for more information on how to set up this integration.

To resolve this:

  1. Remove platform: mqtt occurences from the sensor: configuration in your YAML configuration file.
  2. Restart Home Assistant.

and

It’s not possible to configure mqtt climate by adding platform: mqtt to the climate configuration. Please check the documentation for more information on how to set up this integration.

To resolve this:

  1. Remove platform: mqtt occurences from the climate: configuration in your YAML configuration file.
  2. Restart Home Assistant.

Hi all,
I recently bought some MC6 thermostats (sold as BC107 by a chinese company), FCU, 2pipes version, I’m struggling to set it up with custom mosquitto MQTT server (user server in 3036 “hidden” menu).
I’m able to connect to wifi and set the user server options from the 1976 “hidden” menu but more than half ot the times the connection doesn’t work and, being unable to reach mosquitto and login, the wifi module reboots itself, losing in the process the MQTT parameters just inserted.

If I set modbus/TCP instead the connection is always stable and the register are available.
Has anyone faced a similar problem? I’d like to avoid the nodered integration, and access it directly via MQTT.

I’m working on a “native” MQTT yaml cofiguration, atm I’m strubbling with the basics, I’ll post any andvancement here…

I haven’t found a specific message on this topic so I’ll post it, sorry if it’s redundant.
For the one interested here you can find an extract of configuration.yaml to use MC6 thermostat directly via ModBus/TCP.
Prerequisites:

modbus:
  - name: MC6-ModBus
    type: tcp
    host: X.X.X.X     <--MC6 thermostat IP address as configured before
    port: 502    <--change if modified on MC6
    delay: 1     
    timeout: 10
    retries: 5
    retry_on_empty: true
    message_wait_milliseconds: 200
    climates:
      - name: "MC6"
        slave: 1    <--change if modified Dev ID on MC6
        address: 0
        target_temp_register: 64
        min_temp: 5
        max_temp: 35
        scan_interval: 30
        temperature_unit: C
        data_type: int16
        scale: 0.1
        offset: 0
        precision: 1
        write_registers: true
        hvac_mode_register:
          address: 62
          values:
            state_auto: 4
            state_cool: 1
            state_heat: 0
            state_fan_only: 2
            state_dry: 3
            state_off: 5
          write_registers: true
        hvac_onoff_register: 61
    sensors:
      - name: "MC6-test-Humi"
        unit_of_measurement: "%"
        slave: 1
        address: 2
        scale: 1
        offset: 0
        precision: 0

The configuration atm doesn’t allow for fan settings changes as they’re unsupported in the modbus climate entity, there is a feature reuest already opened, you can upvote it here if interested:

In the same thread you can find a workaroud for this issue.

https://file.io/6MM4nXaSV0tu

Hi i use this firmware modified to have a real heatstatus via mqtt ( when relay is on or off).
This is for old and new touch format. I’ve tryed many solution to integrate all via mqtt in home assistant with template, but it is very difficult, and at the end i’ve used nodered to transform in standard mqtt for home assistant hvac

In this firmware to use internal mqtt server it must to write a txt file in the usb memory of the thermostat ( you can connect a usb cable to a pc, and when connected to the thermostat you can see files and icon).

Now i try to create a ui to modify the internal scheduler of the themostat ( i use 24h scheduler, with 3 time range Mornig,Day,Evening.

And this is “in working” nodered e homeassistant config. The nodered flow is a modified version posted some time ago in this forum

https://file.io/1YjRpAEdD8R8

Bye
Tiziano

After some testing and debugging I’m posting here also a MQTT “native” configuration for this thermostat.
I have a 2 pipes fancoil device with Modbus and MQTT settings available (MQTT OR Modbus, not both)

This config allow for HA to subscribe and publish relevant messages to read and write settings to the device.

The config has been only lightly tested so it may contain some errors, post here if you find some.

MQTT
PRO: all feature available by design (fan, modes), with a little patience it should be possible to also send scheduling programs
CONS: no direct connection from HA to MC6, so if a message is lost/gets error the feedback is missing and the climate entity revert to its previous state when MC6 publish a new message; missing power command options (needs separate MQTT switch, with the same problems as the climate entity)

MODBUS
PRO: direct connection with the thermostat, automation gets immediate response to action (or get immediately an error)
CONS: missing fan mode feature, ATM needs modification to HA modbus code to modify temp settings

mqtt:
  - climate:
      name: MC6 Climate
      object_id: mc6_1
      unique_id: mc6_1
      # MC6 gets updates immediately but sends status messages only after some minutes, so it's better to update the UI optimistically
      optimistic: true
      # MC6 in MQTT config supports only 4 modes, cooling,heating,fan only and dehumidifying
      # MC6 discard the dry mode when sent by mqtt, it may report it's status if the dehumid settings is enabled on the thermostat (not tested)
      modes:
        - "cool"
        - "heat"
        - "fan_only"
        - "dry"
      mode_state_topic: "updData/MACADDRESS-lowercase"
      # from MC6 manual: mode(1 cool, 2 heat, 3 vent, 4 auto), but in my thermostat the Auto fnction is replaced by Dehumid
      mode_state_template: >-
        {% if value_json.mode == 1 %}
          cool
        {% elif value_json.mode == 2 %}
          heat
        {% elif value_json.mode == 3 %}
          fan_only
        {% elif value_json.mode == 4 %}
          dry
        {% endif %}
      mode_command_topic: "MACADDRESS-lowercase"
      mode_command_template: >-
        {% if (value | string) == "cool" %}
          { "mode": 1 }
        {% elif (value | string) == "heat" %}
          { "mode": 2 }
        {% elif (value | string) == "fan_only" %}
          { "mode": 3 }
        {% elif (value | string) == "dry" %}
          { "mode": 4 }
        {% endif %}
      # from MC6 manual: fan speed(1 high, 2 medium, 3 low, 4 auto)
      fan_modes:
        - "High"
        - "Medium"
        - "Low"
        - "Auto"
      fan_mode_state_topic: "updData/MACADDRESS-lowercase"
      fan_mode_state_template: >-
       {% if value_json.fan == 1 %}
          High
        {% elif value_json.fan == 2 %}
          Medium
        {% elif value_json.fan == 3 %}
          Low
        {% elif value_json.fan == 4 %}
          Auto
        {% endif %}
      fan_mode_command_topic: "MACADDRESS-lowercase"
      fan_mode_command_template: >-
       {% if value == "High" %}
         { "fan":3  }
        {% elif value == "Medium" %}
         { "fan":2  }
        {% elif value == "Low" %}
         { "fan":1  }
        {% elif value == "Auto" %}
         { "fan":4  }
        {% endif %}
      min_temp: 5
      max_temp: 30
      temp_step: 0.5
      current_temperature_topic: "updData/MACADDRESS-lowercase"
      # dividing by 10 when reading the settings
      current_temperature_template: "{{ value_json.temp | float / 10  }}"
      temperature_state_topic: "updData/MACADDRESS-lowercase"
      # dividing by 10 when reading the settings
      temperature_state_template: "{{ value_json.settemp | float / 10  }}"
      temperature_command_topic: "MACADDRESS-lowercase"
      # multiplying by 10 when writing the settings
      temperature_command_template: "{ \"settemp\":{{ (value * 10) | int }} }"
      current_humidity_topic: "updData/MACADDRESS-lowercase"
      # dividing by 10 when reading the settings
      current_humidity_template: "{{ value_json.humi | int  / 10  }}"
      precision: 0.1
      retain: false
      qos: 1

  - switch:
      unique_id: mc6_1_switch_onoff
      object_id: mc6_1_switch_onoff
      name: "MC6-1 Switch-onoff"
      state_topic: "updData/MACADDRESS-lowercase"
      optimistic: true
      state_on: "ON"
      state_off: "OFF"
      value_template: >-
       {% if value_json.onoff == 1 %}
          "ON"
        {% elif value_json.onoff == 2 %}
          "OFF"
        {% endif %}
      command_topic: "MACADDRESS-lowercase"
      payload_on: '{"onoff":1 }'
      payload_off: '{"onoff":2 }'


template:
  - sensor:
    - name: "MC6-1-Humi"
      device_class: humidity
      unit_of_measurement: '%'
      state: "{{ state_attr('climate.mc6_hvac', 'current_humidity') | float }}"

Would it be possible to share this again as it has expired.

MC6-259-MQTT-OT.hex and 2 more files

enjoy

Thanks, but it says the transfer is expired. Did you initiated a new transfer?

maybe you should not wait that long before starting the download :wink:

Yes, sorry. When I googled we transfer expiration it said they were alive for 30 days, but other hits I read now say 7 days.

Thanks for the help

Please, can some body publish a new link for OLD/NEW MC6 to enable MQTT? Thanks!

This IS my PCB but after few reads of the topics… Can be flashed without STLink? USB pinout work but only to get de bmp resources… Maybe SWDI with TTL USB?

From your picture it is not clear what’s you display release. You should check the batch number of this thermostat labelled on the display flat cable.

Programming can ONLY be done using the following:
JLink

ST jtag

OLD&NEW display FW

link expires on 25/12/2023

Hello.
Can anybody share latest firmware for old and new hardware?

Thanks in advance.

Cheers,
Mateusz

1 Like

Hello, I’m using the MC6 Thermostat with modbus integration. Everything was fine but the time synchronization of the device. Once settled to MODBUS the automatic time synchonization doesen’t work. Anyone knows how to fix it? Is the MC6 using the NTP protocol to the MODBUS server instead of the default one? Or is there any command to configure date and time via MODBUS?

Regards,

Diego

Time sync doesen’t work in modbus only in mqtt , setting the time zone.
I’ve asked this in the past to YuQiang and this is reply:

for the Modbus register it has not time and date , we will add this later

For the time sync in MQTT you can use the topc “Timezone” , if you want to enable the time sync just modify the data to the time zone you want to set , please note the time zone range is -12 to 12, if you want to disable the Time sync just set the time zone data to be 13 ;
As you know the time sync only works in Coud server mode, so if thermostat works in Modbus TCP this time sync feature would not work.

mc6-259-mqtt-ot-hex_2023-05-28_0802.zip

Got this from ringhio80 in October. After installing it the thermostat found version 2.70 by itself and I upgraded again.

1 Like

Thank you very much! :slight_smile:
Cheers,
Mateusz

@YuQiang any chance to include in the mqtt messages the valve status? like the modbus have? or the automatic time sync in the modbus?

Any chance to release it OTA, it is really time consuming to take the thermostats from the wall to update.

Hi bmpalmeida,

OTA feature has already released if your thermostat firmware is later than 242 .

We will add the valve status in next firmware 271 when we are not too busy .

Thanks.

Regards
Yu