Gas fireplace (Mertik Maxitrol) with rfxtrx

Hi everyone,

I am having trouble setting up my 433mhz fireplace using an rfxtrx.
I have got my Somfy blinds, and the TapTile controller in my bathroom working ok, but it doesn’t seem to pickup my fireplace remote control.
I can send and receive commands using RFXmgr on Windows so I’m certain that the rfxtrx is capable.
I have tried setting ‘automatic_add’ for Cover, Senor, Light, and Switch, but still nothing.

Any ideas?

Thanks
James

Hi James,
Did you have any success in getting this to work? I’m in the same position with Somfy blinds working correctly and the gas fire working through RFXMGR but I can’t get Home Assistant to detect the existing remote signals using the same options and also tried binary sensor.
Thanks
Brett

Hi all, we’ve also got an Mertik Maxitrol fireplace and i could receive the signals of the remote with my rfxcom RFXtrx433E transceiver.

Packettype    = Thermostat3
subtype       = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr  = 10
ID            = 0x2B6A3 decimal:177827
Command       = On
Signal level  = 7  -64dBm
------------------------------------------------
------------------------------------------------
Packettype    = Thermostat3
subtype       = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr  = 11
ID            = 0x2B6A3 decimal:177827
Command       = Up
Signal level  = 7  -64dBm
------------------------------------------------
------------------------------------------------
Packettype    = Thermostat3
subtype       = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr  = 12
ID            = 0x2B6A3 decimal:177827
Command       = Down
Signal level  = 7  -64dBm
------------------------------------------------
------------------------------------------------
Packettype    = Thermostat3
subtype       = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr  = 14
ID            = 0x2B6A3 decimal:177827
Command       = Off
Signal level  = 7  -64dBm

How can i add these signals to Home Assistant?

Thanks,
Dennis

1 Like

Did somebody got this working? I have the same issue.

I am not sure if the rftrx component currently supports this. Maybe @b_weijenberg or @Danielhiversen can help out to give a hint how the id of this device type need to be structured in HA.

Here an OFF command for a Mertik G6R-H4TB:

Thermostat3 command: 08 42 01 03 02 B6 A3 00 00

Packettype = Thermostat3
subtype = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr = 3
ID = 0x2B6A3 decimal:177827
Command = Off

2 Likes

When I try with this command as device ID I get the following error on start up of Home Assistant:

2019-01-08 20:57:05 ERROR (Thread-12) [homeassistant.components.rfxtrx] Invalid device: 0842010302B6A30000

Hi there,

In case anyone else is looking for a way to control their fireplace using a Mertik Maxitrol remote, I managed to get this working using OpenMQTTGateway, running on an ESP8266 NodeMCU, with a cheap 433MHz transmitter for sending codes to my fireplace. All for less than $10,

In Home Assistant, I then created two switches. One is for power on/off and the other is for flame up/down. I created buttons for these in the Lovelace UI. All working quite nicely.

  - platform: mqtt
    name: Fireplace Power
    command_topic: "home/OpenMQTTGateway/commands/MQTTto433"
    payload_on: '{ "protocol": 31, "delay": 400, "length": 12, "repeat": 150, "value": 1267 }'
    payload_off: '{ "protocol": 31, "delay": 400, "length": 12, "repeat": 10, "value": 1271 }'
    optimistic: false
    retain: false

  - platform: mqtt
    name: Fireplace Flame
    command_topic: "home/OpenMQTTGateway/commands/MQTTto433"
    payload_on: '{ "protocol": 31, "delay": 400, "length": 12, "repeat": 10, "value": 1275 }'
    payload_off: '{ "protocol": 31, "delay": 400, "length": 12, "repeat": 10, "value": 1277 }'
    optimistic: false
    retain: false
1 Like

Hi,

pkozul, Can you share the NodeMCU code?

In version 0.113 of Home Assistant it will be possible to send RfxTrx event codes with the new rfxtrx.send service.

I just tested this in the beta release and this works great.

First capture and test the needed command code for each button of the fireplace remote in the Rfx Manager application. And copy this code so that it can be used in service call.

So I think this topic can be closed soon.

Here is it :

@aerodolphin Due to having to use Ethernet, I am currently controlling our fireplace using ESPHome and an ESP32-POE with 433MHz transmitter.

In case it’s of any help, below is my configuration YAML in ESPHome. As you can see, I have four commands (power on/off, and flame up/down). Each command is defined as a switch (i.e. 433MHz transmitter sends the code to the fireplace), as well as a binary sensor (HA detects when the original remote’s buttons are pressed, and also when the 433MHz transmitter sends the codes). The binary sensors are not really necessary, but I really wanted to make sure I was able to go full circle (due to being a control freak :slight_smile: ).

esphome:
  name: esp32_poe_2
  platform: ESP32
  board: esp32-poe

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0
  power_pin: GPIO12

logger:

api:

ota:

remote_transmitter:
  pin: GPIO32
  carrier_duty_percent: 100%

remote_receiver:
  pin: 
    number: GPIO33
    inverted: True
    mode: INPUT_PULLUP
  filter: 200us # default = 10us
  idle: 4ms # default = 10ms

binary_sensor:

# Fireplace

  - platform: remote_receiver
    name: Fireplace On
    rc_switch_raw:
      code: '1010011110011'
      protocol:
        pulse_length: 380
        sync: [45, 1]
        zero: [1, 2]
        one: [2, 1]
        inverted: true
    filters:
      - delayed_off: 1000ms

  - platform: remote_receiver
    name: Fireplace Off
    rc_switch_raw:
      code: '1010011110111'
      protocol:
        pulse_length: 380
        sync: [45, 1]
        zero: [1, 2]
        one: [2, 1]
        inverted: true
    filters:
      - delayed_off: 1000ms

  - platform: remote_receiver
    name: Flame Up
    rc_switch_raw:
      code: '1010011111011'
      protocol:
        pulse_length: 380
        sync: [45, 1]
        zero: [1, 2]
        one: [2, 1]
        inverted: true
    filters:
      - delayed_off: 1000ms

  - platform: remote_receiver
    name: Flame Down
    rc_switch_raw:
      code: '1010011111101'
      protocol:
        pulse_length: 380
        sync: [45, 1]
        zero: [1, 2]
        one: [2, 1]
        inverted: true
    filters:
      - delayed_off: 1000ms

switch:

# Fireplace

  - platform: template
    name: Fireplace
    icon: "mdi:fireplace"
    optimistic: true
    assumed_state: true
    turn_on_action:
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 433MHz
#          code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 380, -760, 760, -380, 760, -17200 ]
#          repeat:
#            times: 120
      - remote_transmitter.transmit_rc_switch_raw:
          code: '1010011110011'
          protocol:
            pulse_length: 380
            sync: [1, 45]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 120
            wait_time: 10ms
    turn_off_action:
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 433MHz
#          code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 760, -380, 760, -380, 760, -17200 ]
#          repeat:
#            times: 60
      - remote_transmitter.transmit_rc_switch_raw:
          code: '1010011110111'
          protocol:
            pulse_length: 380
            sync: [1, 45]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 60
            wait_time: 10ms

  - platform: template
    name: Flame
    icon: "mdi:fire"
    optimistic: true
    assumed_state: true
    turn_on_action:
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 433MHz
#          code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -380, 380, -760, 760, -380, 760, -17200 ]
#          repeat:
#            times: 60
      - remote_transmitter.transmit_rc_switch_raw:
          code: '1010011111011'
          protocol:
            pulse_length: 380
            sync: [1, 45]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 60
            wait_time: 10ms
    turn_off_action:
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 433MHz
#          code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 760, -17200 ]
#          repeat:
#            times: 60
      - remote_transmitter.transmit_rc_switch_raw:
          code: '1010011111101'
          protocol:
            pulse_length: 380
            sync: [1, 45]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 60
            wait_time: 10ms

For testing purposes, I include all of these entities in a Lovelace card:

I have some photos of the hardware in another post (bottom half of the post):

Based on the message from @Marsman, I have successfully added controls for the Mertik G6R-H4T5 to Home Assistant. After capturing the command codes with RFXmgmr, I have added the following code to configuration.yaml:

input_boolean:
  haard_switch:

switch:
  platform: template
  switches:
    haard_switch:
      value_template: >
        {{ is_state('input_boolean.haard_switch', 'on') }}
      turn_on:
        - service: input_boolean.turn_on
          entity_id: input_boolean.haard_switch
        - service: rfxtrx.send
          data:
            event: 0842010C005A0F0177
      turn_off:
        - service: input_boolean.turn_off
          entity_id: input_boolean.haard_switch
        - service: rfxtrx.send
          data:
            event: 08420118005A0F0074
      icon_template: >-
          {% if is_state('switch.haard_switch', 'on') %}
            mdi:fireplace
          {% else %}
            mdi:fireplace-off
          {% endif %}

Hi Corne. Is it possible to supply me all the events from all the buttons. My remote broke and I would like to control my fireplace by home assistant instead of replacing the remote witch is really expensive and I already have a rfxcom. I can pair it as a new remote.

Thanks

Hi Tekno,

I hereby send you my configuration in HA. I have also added the signal information for Up and Down, however I don’t use these buttons. Good luck!

input_boolean:
  haard_switch:

switch:
  platform: template
  switches:
    haard_switch:
      value_template: >
        {{ is_state('input_boolean.haard_switch', 'on') }}
      turn_on:
        - service: input_boolean.turn_on
          entity_id: input_boolean.haard_switch
        - service: rfxtrx.send
          data:
            event: 0842010C005A0F0177
      turn_off:
        - service: input_boolean.turn_off
          entity_id: input_boolean.haard_switch
        - service: rfxtrx.send
          data:
            event: 08420118005A0F0074
      icon_template: >-
          {% if is_state('switch.haard_switch', 'on') %}
            mdi:fireplace
          {% else %}
            mdi:fireplace-off
          {% endif %}

6-8-2020 05:00:33:781= 08420114005A0F0277
Packettype = Thermostat3
subtype = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr = 20
ID = 0x05A0F decimal:23055
Command = Up
Signal level = 7 -64dBm

6-8-2020 05:00:54:161= 08420116005A0F0377
Packettype = Thermostat3
subtype = Mertik G6R-H4TB, G6R-H4T5, G6R-H4T, G6R-H4TV21-Z22
Sequence nbr = 22
ID = 0x05A0F decimal:23055
Command = Down
Signal level = 7 -64dBm

Thanks. I will let you know if it worked.

1 Like

I just found out that the Mertik Maxitrol has a (expensive) WiFi module that communicates using a serial interface with the gasblock controller (G6R-R4AU). So the WiFi module is nothing more than a protocol convertor.
If someone does have the WiFi module, we could monitor the serial connection and the integration in HA is piece of cake. :slight_smile: