Is it possible to integrate a Toshiba Estia heat pump?

I would like to integrate our Toshiba Estia HWS-805XWHT6-E heat pump into our Home Assistant.
Does anyone have this integrated? If yes, do you have a procedure and/or add-on? And by which HW module is it necessary to extend the heat pump?
I look forward to your response.

2 Likes

Hello, you already solved this ?
thx for answer

i am only thinking there is rs485 communication.
on the Hydrounit is TB07 connector and there are 2wires leads to Display.
on manual is possible mount more Displays
 MODBUS communication

you can indeed order a Modbus device and connect it to port TB07. See here for the documentation and the modbus adresses you can use:

If you have this working, could you please share the config files? To my knowledge you can only use or a second control unit OR a modbus device. Since I am using a second control unit I do not have this option, but concidering to remove my second control unit.

1 Like

After consultation of Toshiba, you can detach the control unit of the hydro-unit, place it somewhere else and then use the modbus device. I am ordering this now, but very curious if someone else already has this working. My ambition is to actively steer the heatpump to use energy when I have an overshoot on production with my solar panels (increase temperature of hot water tank, lower/increase temperature of home etc. etc.)

1 Like

I have a Toshiba Estia 16Kw and I am looking for better control and monitoring. Has anyone already managed to get the modbus from T.Estia running in HA?
thanks a lot joseph

Hi,
Have you managed to control your hydronic unit with home assistant via modbus?
I have been trying to contact Toshiba technical service in Spain for a while, and it seems mission impossible ;).
I appreciate all the information you can share, as I have the same pretension as you to control my Toshiba estia beta aerothermal system.
Thank you very much in advance,

Did any of you manage to connect via Modbus finally?

Hi all,
I apologize for my delay. I had other priorities to deal with.

Over the last period I found no other solution than to invest in a BMS-IFMB0AWR-E (ModBus) module for the communication of my Toshiba Estia heat pump with HA. I don’t have the knowledge to re-engineer the Toshiba Estia Controler.
The “TOSHIBA Home AC Control RB-N103S-G” module and similar cannot be used for ESTIA either.

My intention is to buy the BMS-IFMB0AWR-E module and the RS485 to Ethernet RJ45 converter for it. Then it should be realistic to communicate with ESTIA via ModBus.

Anyone want to collaborate on this? I am from Czech.

1 Like

Hi there,

I use Wirelles Adapter Type C, model HWS-IWF0010UP-E to monitor and control my Toshiba Estia heat pump via Toshiba Home AC control app and I also would like to integrate into my HA. I thought it might work with the Toshiba AC integration. Apparently, the wifi adapter HWS-IWF0010UP-E is not supported as I cannot see any available entities upon the integration. Has anyone else managed to successfully integrate your Toshiba Estia heat pump using the wireless adapter type C and Toshiba AC integration?

I want to collaborate. I have the modbus module in place and want to make the signal available via wifi to HA. I use an Elfin EW11 device. Now i am searching for the right modbus config settings on this device. It is not clear for me what the following setting should be:

Data bits. Parity, stop bits. Ctsrts


hi @burlap,
Thanks for the response.
I don’t know the “Elfin EW11” device. I don’t know if it has conversion to Modbus TCP. I want to use “Wavesare RS485 to Ethernet RJ45 converter”, which has RTU <=> TCP transparent conversion settings in the configuration.

If you have the “BMS-IFMB0AWR-E” module, it has a Modbus RTU output on the RS485 slave interface
 it is described in the manual in article 3.1

Is this what you think?

Thanks Petr, I have the BMS-IFMB0UEW-E. I am not sure if that should make a difference.
Thanks for the 8 bit + 2 zero bit config info. Still I am not receiving any data unfortunately. The Toshiba device is blinking only 0,1-0,2s per few seconds, what should indicate that it is functioning. I do not know how to check, so assume the RS485 to Wifi converter is wrongly configured


This is the configuration I have right now:

Basic Settings

Baud Rate 9600

Data Bit: 8

Stop Bit: 2

Parity: none

Buffer Settings

Buffer Size: 512

Gap Time: 50

Flow Control Settings

Flow Control: disable

Cli Settings

Cli: Disable

Protocol Settings

Protocol: Modbus

I think I have a live data link now with my Estia heat pump
 I thought that there should be a continous data-link, but it seems that only data is pushed when requested. So I can now request data to port 502. Big challange now is how to adress all the elements in Home Assistant


As a first attempt, I would like to be able to read the following register and show it as a sensor in H.A.
Modbus register: 40022
Only read value
What: Water inlet temperature
IP Adress of Modbus RTU/ASCI over TCP/IP: 192.168.1.9
All registers are of the type: 16-bit signed holding register, in standard Modbus’ big endian notation.

How should I add this in a .yaml file to be able to read this value and safe it as a “sensor”?

Hi @burlap,
I don’t know the BMS-IFMB0UEW-E module at all. I did not find it among the modules that Toshiba offers for heat pumps of the Estie series. Could you send me a link to the manual/datasheet for it? And what was the price?

I am reading data from the electricity meter with RS485 and Modbus RTU now. The converter itself converts Modbus RTU <=> Modbus TCP.
In configuration.yaml I have the configuration below, which you could adequately modify for your settings s ESTIA. In HA, I already have access to the energy_l1_power sensor as well as other sensors,


modbus:
- name: energy
    close_comm_on_error: false
    retry_on_empty: true
    retries: 10
    delay: 10
    message_wait_milliseconds: 1000
    timeout: 10
    type: tcp     #type: rtuovertcp
    host: 192.168.1.152
    port: 502     #port: 4196
    sensors:
      - name: Pƙíkon - fáze L1
        unique_id: energy_l1_power
        count: 2
        data_type: float32
        precision: 2
        address: 12
        input_type: input
        slave: 1
        unit_of_measurement: W
        state_class: measurement
        device_class: power
      - name: Pƙíkon - fáze L2
        unique_id: energy_l2_power
        count: 2
        data_type: float32
        precision: 2
        address: 14
        input_type: input
        slave: 1
        unit_of_measurement: W
        state_class: measurement
        device_class: power

Hi @peter.skevor,

The BMS-IFMB0UEW-E is the updated version of the modbus device you are looking for / or already bought. I think it was around 450 EUR, not sure because my installer did not make a breakdown of all the seperate costs. The adressing is the same als with BMS-IFMB0AWR-E.

I will try to rewrite some of your code and see if I can get it running
 Do you already have your modbus device? Or still planning to buy?

Hi guys,

I got good news for you as I have fully integrated Toshiba Estia into Home assistant.

I have used:
BMS-IFMB0UEW-E - Toshiba RS485 modbus interface
Waveshare RS485 to ETH

Toshiba interface is preconfigured (no need of changing settings). Waveshare RS485 is easy to use with its web client configuration (I can share if needed - you need to set up TCP modbus server).

If you successfuly connect both devices the upcomming integration with help of modbus protocol built in home assistant (Modbus - Home Assistant) is quite easy.

You have to setup your new modbus device in configuration.yaml and then sensors and switches.

I am on the phone so I can’t post the code (copy in File editor doesn’t work for me now), so if you are interested I can post my whole code later.

Have a nice day.

Michal

1 Like

Hi Michal,

That is great news indeed! If you can share your full code would be great. Or i can share my email via a PM so you can share the files direct to me. Thanks in advance!

Hi @burlap,
Thanks for the price info. I am still waiting for the delivery of the ordered Toshiba module.

Hi Michal,

Could you find a moment to share the code? If you e mail the code to me (see PM) i can upload it as well.

Hi Guys,

sorry for the delay but I didn’t have time.

How to set up waveshare>

Add this to config.yaml

# Toshiba Estia 4
modbus:
  - name: Toshiba
    close_comm_on_error: true
    delay: 5
    timeout: 2
    type: tcp
    host: 192.168.0.7 # IP address of waveshare
    port: 1
    
    sensors:
      - name: VenkovnĂ­ teplota
        unit_of_measurement: °C
        state_class: measurement
        slave: 1
        address: 18
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        scale: 1
    
      - name: TUV
        unit_of_measurement: °C
        state_class: measurement
        slave: 1
        address: 5
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        scale: 1
       
      - name: Teplota_topeni_chlazeni
        unit_of_measurement: °C
        state_class: measurement
        slave: 1
        address: 3
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        scale: 1
        
      - name: Teplota TUV (aktuĂĄlnĂ­)
        unit_of_measurement: °C
        state_class: measurement
        slave: 1
        address: 16
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        scale: 1
        
      - name: Teplota podlaha (aktuĂĄlnĂ­)
        unit_of_measurement: °C
        state_class: measurement
        slave: 1
        address: 21
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        scale: 1
        
      - name: Okruh topenĂ­/chlazenĂ­
        slave: 1
        address: 0
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        
      - name: Okruh teplĂĄ voda
        slave: 1
        address: 1
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        
      - name: TopenĂ­ (1) / chlazenĂ­ (2)
        slave: 1
        address: 2
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        
      - name: Alarm status (0-ok, 1-alarm)
        slave: 1
        address: 11
        input_type: holding
        data_type: int16
        scan_interval: 30
        count: 1
        
    switches:
      - name: TeplĂĄ voda
        slave: 1
        address: 1
        command_on: 1
        command_off: 0
        write_type: holding
        verify:
            input_type: holding
            address: 1
            state_on: 1
            state_off: 0
            
      - name: TopenĂ­/chlazenĂ­
        slave: 1
        address: 0
        command_on: 1
        command_off: 0
        write_type: holding
        verify:
            input_type: holding
            address: 0
            state_on: 1
            state_off: 0
            
      - name: Pƙepínač chlazení/topení
        slave: 1
        address: 2
        command_on: 1 #topenĂ­
        command_off: 2 #chlazenĂ­
        write_type: holding
        verify:
            input_type: holding
            address: 2
            state_on: 1 #topenĂ­
            state_off: 2 #chlazeni
            
      - name: AutomatickĂ© ƙizenĂ­ teploty
        slave: 1
        address: 6
        command_on: 1
        command_off: 0
        write_type: holding
        verify:
            input_type: holding
            address: 6
            state_on: 1
            state_off: 0
            
      - name: TUV boost
        slave: 1
        address: 8
        command_on: 1
        command_off: 0
        write_type: holding
        verify:
            input_type: holding
            address: 8
            state_on: 1
            state_off: 0
            
      - name: TUV Anti-bacteria
        slave: 1
        address: 10
        command_on: 1
        command_off: 0
        write_type: holding
        verify:
            input_type: holding
            address: 10
            state_on: 1
            state_off: 0
            
input_number:
  setpoint_room:
    name: TeplĂĄ voda
    min: 40
    max: 55
    step: 1
    unit_of_measurement: °C
    
  setpoint_room2:
    name: OtopnĂĄ/chladĂ­cĂ­ voda
    min: 18
    max: 35
    step: 1
    unit_of_measurement: °C

Add this to automations.yaml

- id: slider_set_temp_TUV
  alias: Slider Set Temp TUV
  trigger:
    platform: state
    entity_id: input_number.setpoint_room
  action:
  - service: modbus.write_register
    data_template:
      hub: Toshiba
      unit: 1
      address: 5
      value: '{{ states.input_number.setpoint_room.state | int }}'

- id: slider_get_temp_TUV
  alias: Slider Get Temp TUV
  trigger:
    platform: state
    entity_id: sensor.TUV
  action:
  - service: input_number.set_value
    target:
      entity_id: input_number.setpoint_room
    data:
      value: '{{ states(''sensor.TUV'') | int }}'

- id: slider_set_temp_otopna
  alias: Slider Set Temp otopnĂĄ voda
  trigger:
    platform: state
    entity_id: input_number.setpoint_room2
  action:
  - service: modbus.write_register
    data_template:
      hub: Toshiba
      unit: 1
      address: 3
      value: '{{ states.input_number.setpoint_room2.state | int }}'

- id: slider_get_temp_otopna
  alias: Slider Get Temp otopnĂĄ voda
  trigger:
    platform: state
    entity_id: sensor.Teplota_topeni_chlazeni
  action:
  - service: input_number.set_value
    target:
      entity_id: input_number.setpoint_room2
    data:
      value: '{{ states(''sensor.Teplota_topeni_chlazeni'') | int }}'

- id: '1678601010685'
  alias: OznĂĄmenĂ­ - chyba Toshiba Estia
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.alarm_status_0_ok_1_alarm
    from: '0'
    to: '1'
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition: []
  action:
  - service: notify.mobile_app_poco_f2_pro
    data:
      title: Porucha tepelnĂ©ho čerpadla!
      message: DoĆĄlo k poruĆĄe tepelnĂ©ho čerpadla, okamĆŸitě volejte servis Toshiba.

And this is how it looks:

It is in czech language but I am sure you can translate it easily by translator.

Have a nice day.

Michal

1 Like