Prana ventilation - heat exchanger - control from Home Assistant

Hi,

As there are no posts/hints how to control a Prana ventilation unit with heat exchange, I’m leaving here solution that I’ve used.
To simply emulate the infrared remote control I used an ESP32 controler + a cheap infrared led transmitter + ESPHome addon.

The code for the remote buttons emulated via ESPHome is:


remote_transmitter:
  pin: GPIO26
  # Infrared remotes use a 50% carrier signal
  carrier_duty_percent: 50%
  
switch:
  - platform: template
    name: "Power"
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9839, -4372, 752, -423, 752, -423, 752, -423, 752, -422, 752, -423, 752, -423, 752, -423, 752, -423, 752, 
-1529, 751, -1529, 752, -1528, 751, -1529, 751, -1529, 751, -1529, 751, -1529, 751, -1528, 752, -422, 751, 
-423, 751, -422, 752, -422, 751, -423, 751, -423, 751, -422, 752, -422, 752, -1529, 751, -1528, 752, -1528, 
751, -1528, 752, -1528, 753, -1526, 752, -1528, 752, -1527, 9837, -2107, 9822, -2121 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Light display
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9759, -4427, 700, -474, 700, -473, 701, -473, 700, -474, 700, -474, 699, -475, 700, -474, 700, -475, 699, -1582, 698, 
-1583, 698, -1583, 697, -1583, 697, -1584, 697, -1584, 696, -1585, 696, -1585, 695, -1585, 695, -478, 696, -478, 695, 
-479, 695, -479, 695, -480, 694, -480, 694, -480, 695, -479, 694, -1588, 693, -1588, 693, -1588, 692, -1589, 692, -1589, 691, -1590, 691, -1590, 9757, -2171 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Heat OFF
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9857, -4393, 737, -441, 738, -441, 738, -441, 737, -442, 737, -442, 737, -441, 738, -441, 737, -442, 737, -1548, 737, 
-1548, 737, -1548, 737, -1548, 737, -1548, 737, -1548, 737, -1548, 737, -1548, 738, -440, 739, -441, 738, -1548, 738, 
-1547, 739, -441, 738, -441, 739, -440, 739, -441, 738, -1547, 739, -1547, 738, -441, 738, -441, 738, -1547, 738, 
-1547, 738, -1546, 738, -1547, 9859, -2130, 9870, -2131 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Heat ON
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9865, -4395, 735, -443, 736, -443, 736, -443, 735, -444, 735, -444, 735, -444, 735, -444, 735, -444, 735, 
-1550, 735, -1550, 735, -1549, 736, -1549, 736, -1549, 737, -1547, 738, -1547, 738, -1547, 737, -1547, 738, 
-440, 739, -440, 738, -1547, 738, -440, 738, -440, 738, -440, 739, -440, 738, -440, 739, -1546, 738, -1546, 738, 
-440, 739, -1546, 738, -1546, 738, -1547, 738, -1546, 9856, -2127, 9856, -2127 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Fan speed maximum
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9782, -4402, 726, -447, 727, -447, 726, -447, 727, -447, 726, -447, 727, -447, 726, -447, 727, -447, 
727, -1554, 727, -1554, 726, -1554, 727, -1554, 727, -1554, 726, -1554, 727, -1554, 726, -1554, 727, 
-446, 727, -1554, 726, -447, 727, -1554, 727, -446, 727, -447, 726, -447, 727, -447, 727, -1554, 727, 
-446, 727, -1554, 727, -447, 726, -1555, 726, -1554, 726, -1555, 726, -1555, 9788, -2136 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Froze button on off
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9775, -4410, 719, -453, 720, -453, 720, -453, 720, -454, 719, -454, 720, -453, 720, -454, 720, -453, 720, 
-1561, 720, -1561, 719, -1562, 719, -1561, 719, -1561, 720, -1561, 719, -1561, 720, -1561, 719, -1561, 719, 
-454, 719, -1561, 720, -453, 720, -1561, 719, -454, 719, -454, 720, -453, 719, -454, 721, -1560, 719, 
-454, 720, -1561, 719, -454, 719, -1562, 719, -1562, 719, -1561, 9776, -2143 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Fan speed night mode
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9739, -4429, 673, -498, 675, -497, 675, -497, 676, -496, 677, -495, 678, -494, 678, -494, 679, -494, 678, -1601, 
679, -1600, 678, -1601, 678, -1601, 677, -1602, 677, -1602, 677, -1602, 677, -1602, 676, -1603, 676, -495, 677, 
-1603, 675, -1604, 675, -496, 676, -496, 676, -497, 675, -497, 674, -499, 674, -1606, 673, -499, 674, -498, 674, 
-1606, 673, -1606, 673, -1607, 671, -1608, 13, -3, 9698, -2215 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Fan speed minus
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9880, -4392, 734, -443, 734, -443, 732, -442, 731, -442, 731, -442, 732, -443, 730, -441, 731, -442, 732, 
-1548, 732, -1548, 732, -1547, 732, -1547, 732, -1548, 729, -1547, 732, -1548, 731, -1548, 731, -442, 732, 
-1548, 732, -1547, 732, -1547, 732, -442, 733, -441, 734, -441, 733, -441, 734, -1547, 734, -441, 735, 
-442, 734, -441, 733, -1548, 736, -1547, 735, -1547, 734, -1548, 9823, -2128 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Fan speed plus
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9831, -4401, 726, -454, 724, -454, 724, -455, 726, -454, 729, -455, 727, -454, 724, -454, 724, 
-454, 722, -1560, 724, -1560, 729, -1560, 726, -1560, 725, -1560, 723, -1560, 723, -1560, 724, 
-1559, 724, -454, 724, -454, 724, -1560, 724, -453, 724, -1559, 723, -452, 722, -453, 721, -453, 
720, -1559, 720, -1559, 720, -452, 721, -1558, 720, -453, 719, -1559, 720, -1559, 719, -1559, 9736, -2138 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Timer fan minus
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9657, -4398, 719, -444, 721, -443, 720, -444, 721, -443, 721, -443, 721, -444, 727, -437, 721, -444, 
720, -1550, 721, -1550, 720, -1550, 721, -1550, 720, -1550, 720, -1550, 720, -1550, 720, -1550, 720, 
-443, 721, -1550, 720, -1550, 720, -444, 720, -443, 721, -443, 721, -443, 721, -443, 720, -1551, 720, 
-444, 720, -444, 720, -1551, 720, -1551, 719, -1551, 720, -1551, 719, -1551, 9658, -2133 ]
          carrier_frequency: 38kHz

  - platform: template
    name: Timer fan plus
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [ 9626, -4396, 719, -444, 719, -444, 720, -444, 719, -444, 719, -445, 718, -445, 718, -445, 719, -445, 718, 
-1552, 718, -1552, 717, -1553, 717, -1552, 717, -1553, 716, -1553, 716, -1553, 716, -1554, 714, -448, 715, 
-448, 715, -447, 715, -1555, 714, -449, 714, -448, 714, -449, 714, -449, 714, -1556, 713, -1556, 713, -1557, 
712, -450, 713, -1557, 712, -1557, 713, -1557, 712, -1558, 9636, -2130 ]
          carrier_frequency: 38kHz

Enjoy!

1 Like

Hi,

Could you try testing if Tasmota IR recognizes the codes from your remote?

It’s true it doesn’t use ESPHome which is very easy to use and might be a little hit and miss with ESP32 and Tasmato IR (ESP8266 would be preferable) but, if signal is identified, then with both a IR blaster and a receiver placed near the AC you can also use the original remote of AC and have it in sync with HA.

Indeed ESPHome was an easy solution in my case; in same ESP32 I have also BM3680 sensor. Currently I built an automation, so it’s like an autonomous system, I never had the chance to use remote since then manually to change ventilation speed for eg. (it is set automatically based on a CO2 sensor).

Hi there,

Nice to read that someone tried to integrate prana in HA.
I have prana that works with the app through Bluetooth.
Is there any chance to have it on my HA dashboard?
Thank you!
Marco

1 Like

Hi Marco,
My Prana model, even is an older one, have both Bluetooth and infrared control access. But debugging Bluetooth is something more difficult to do I guess, and don’t have time till now to invest in it… :slight_smile:

Hi, thank you!!
I figured out online that there’s a custom component with basic sensors and functions.

I will try if it works, if not IR remote by broadcom…

Marco

1 Like

I tried and it doesn’t work for me.
I really want to have this integration on home assistant.
Is there a chance to ask a developer to do it? Obviusly not for free.

Talked to Prana developers. They have no interest at the moment. Even promised WiFi model is postponed.
But I’d also contribute financially to BT integration via HA.
I have 3 BT enabled Pranas and my HA runs on RPi in a Docker. My ideal scenario is to stick BT dongle into RPi, pass it to HA container and control all 3 recuperators centrally.

1 Like

Hi, great!
I really want an integration that works without hassles, maybe a broadlink for infrared would be easyer.

If there is a developer that wants to earn some money i would pay for that integration.

For me Infrared means 3 IR controllers + wiring etc. I’d prefer BT dongle in RPI. Played with old 2.0 dongle - no joy. Looks like need to order BLE one.

Another alternative maybe is to develop something on ESP32/ESP8266 chips which have Bluetooth and can work additionally independent of HA, eg. using a web interface.

1 Like

Good suggestion. Then you can place the ESP in a best position between rooms and avoid interference.

it is a great idea but i never used esphome and i don’t know how to cede esphome…
Any suggestion?
Thanks!