Econext: Direct local control of Grant HP290 Econet replacement (Plum ecoMAX360i)

I’ve finally managed to get the port working, so I can publish the code :slight_smile:
In case anyone is interested in getting this set up, here’s some instructions, the readme’s in the github repos have a bit more information on this but it’s hopefully straight forward:

What you need:

  • Raspberry Pi or similar (emonPi works if you have SSH access)
  • ecoLINK3 USB-RS485 cable (should be currently plugged into your econet300)

Setup:

  1. Unplug the ecoLINK3 cable from the econet300 and plug it into your Pi
  2. Log into the Terminal to install the gateway/webserver:
# This is a oneshot script that downloads the latest release, installs the webserver,
# integrates it as systemd service and starts the service.
curl -fsSL https://raw.githubusercontent.com/LeeNuss/econext-gateway/main/deploy/bootstrap.sh | sudo bash
  1. Verify it’s running by opening http://<pi-ip>:8000/api/parameters in your browser - you should see all your controller parameters as JSON
  2. Install the HA integration via HACS: add https://github.com/LeeNuss/econext as a custom repository (type: Integration), download, restart, then add the integration “econext” with your Pi’s IP
  3. Optionally install the schedule card for editing weekly heating schedules: add https://github.com/LeeNuss/econext-schedule-card in HACS as a custom repository (type: Dashboard)

Important: Once you unplug the ecoLINK3 from the econet300, the econet24 cloud and app stop working. The econet300 module itself is no longer needed.

Repos:

This is a beta – I’ve only tested it on my own setup, both with controller and HP run the most recent grant software, so there are likely issues with different configurations. If you run into problems please let me know (ideally open a GitHub issue on the relevant repo) so I can track and fix them.

Here’s some screenshots of my Heatpump dashboard


5 Likes

Wow, this is outstanding! Very impressive @LeeNuss :clap: :partying_face:

What is the protocol between the gateway and the Plum controller? Is it standard RS485 Modbus RTU? How did you manage to reverse engineer?

I look forward to giving it a go…I’ll report back

I hope you don’t mind me splitting this out to a new thread, it deserves its thread and will avoid confusion.

Wow, amazing. It was super easy to setup, I had my emonHP right next to the Econet controller, so it was simple to move over the USB connection.

I’m running the gateway on my emonHP, then HomeAssistant is running on a separate device. I like the fact the gateway is nice and lightweight and easy to install with a single command!

Everything just seems top work! It’s very impressive :partying_face:

There are a few metrics I’m missing compared to my previous manual REST HA setup, maybe I’ve just missed them, but I can’t seem to find these metrics in the HA integration:

- actual_flow_temp (pram 14)
- actual_return_temp (pram 15)
- heat_pump_electrical_power (pram 211)
- heat_pump_thermal_power (pram 212)
- SCOP (pram 222)
- COP (pram 221)
- target flow temp (pram 12) - currently showing as 0 in econnext HA integration 

The thermal power and SCOP / COP figures are very wrong, but they might as well be included :rofl:

I’ve noticed this error when adjusting the thermostat set-point temperature, the command works fine, but this error is visible:

I’ve also noticed that the following sensors are not updating:

  • sensor.dhw_temperature
  • sensor.heat_pump_compressor_frequency
  • sensor.heat_pump_system_pressure
  • sensor.heat_pump_water_flow_rate
  • sensor.heat_pump_target_temperature
  • sensor.home_calculated_temperature
  • sensor.home_room_temperature_setpoint
  • sensor.home_thermostat_temperature

The outdoor temperature and indoor room temperature sensors are working fine.

1 Like

It’s not Modbus, the physical layer is the same (RS-485), but the protocol is plums own “GAZ-MODEM 3” protocol.
For reverse engineering: the econet300 runs embedded linux with python application/webserver, so the whole implementation is readable from the firmware. I extracted the file system from the flash (before realising you can simply get root access via two uart testpoints on it, would have been much simpler^^). Also ran that webserver with added debug logs to sniff the raw traffic between econet300 and the controller.

Great thanks yeah makes much more sense as separate thread :slight_smile:

2 Likes

thank you so much for trying it. I just released an update for the HA integration (should show up in HA update) with the parameters you wanted (hadn’t added the cop values as I though they where just too wrong, but agreed might as well :slight_smile:). also fixed target flow temp and the active_operation_mode error.

However I couldn’t find anything specifically wrong about the sensors that aren’t updating. They all work fine on my setup. If this is a persistent issue I might need some logs to figure out what’s wrong (will write up some instructions for this later)

1 Like

Very impressive :clap:

I’ve just tried the latest HA HACS integration (beta3), this has now fixed the sensor updating issue :partying_face:

Thanks a lot for adding the additional sensors. I’ve now moved over to running this as my main setup. I’ll let you know if I spot anything else. Very impressed so far.

1 Like

I’ve been trying to set up the econet-schedule-card, I think I’ve got it installed correctly, but I’m getting this error:

Any ideas?

I’ve just noticed you’ve got an emonhub interfacer in the econext repoo. Does this work? Do you have an example config?

If this is functional, it would be great to get it merged into emonhub

Yes this works, happy to open a pr for thi. Have a look if there’s any other parameters you want to be added for emoncms. The api pulls over 1500 of them so I don’t want t just all of them being sent.

I think you entity prefix might be incorrect. Verify what the schedule entities begin with (you can see a list of them on the respective device page)

This is my dashboard setup for all schedules. My circuit is called UFH (which is used as device name), I installed simple tabs to have them all nicely organised like this:

type: grid
cards:
  - type: markdown
    text_only: true
    content: "## Schedules"
    grid_options:
      columns: full
  - type: custom:simple-tabs
    tabs:
      - title: UFH
        card:
          type: custom:econext-schedule-card
          schedule_entity_prefix: number.ufh_schedule
      - title: DHW
        card:
          type: custom:econext-schedule-card
          schedule_entity_prefix: number.dhw_dhw_schedule
      - title: Heat Pump
        card:
          type: custom:econext-schedule-card
          schedule_entity_prefix: number.heat_pump_heat_pump_schedule
      - title: Silent Mode
        card:
          type: custom:econext-schedule-card
          schedule_entity_prefix: number.heat_pump_silent_mode_schedule
    column_span: 2
    grid_options:
      columns: full
column_span: 2



I think the basic metrics are fine. The key things we need for the Emoncms MyHeatPump dashboard are:

FlowTemp, ReturnTemp, ElecPower, ElecEnergy, HeatPower, HeatEnergy, FlowRate, DHWtemp, OutdoorTemp

I think it’s also useful to have CompressorFreq, SystemPressure and FanSpeed,

Yes, you’re right I was using schedule_entity_prefix: number.econext_dhw_schedule, when actually the DHW schedule was number.dhw_dhw_schedule. It’s now working. Thanks :+1:

Very nice

I reworked the interfacer a bit so parameters can be added via the config, keeping the default parameters from the previous version. PR here: Add EconextGateway interfacer for GM3 heat pumps by LeeNuss · Pull Request #230 · openenergymonitor/emonhub · GitHub

1 Like

Sweet, it works really well. It’s been merged. I’ve added a config example with a few extra prams:

[[EconextGateway]]
    Type = EmonHubEconextInterfacer
    [[[init_settings]]]
        # Hostname or IP address of the econext-gateway
        host = localhost
        # Gateway API port
        port = 8000
    [[[runtimesettings]]]
        pubchannels = ToEmonCMS,
        # Poll interval in seconds
        pollinterval = 60
        nodeid = 30
        parameters = TempOutlet, TempReturn, ElectricPower, HeatingPower, Circuit1CalcTemp, Circuit1thermostat, flapValveStates
       # Full list of parameters: https://github.com/LeeNuss/econext-gateway/blob/main/docs/PARAMETERS.md

Nice work, thanks a lot :+1:

Do you know the parameter name for SystemPressure?

1 Like

Absolutely fantastic work! Installed very easily on a spare Pi I had lying around.

@LeeNuss do you if it’s possible to read the refrigerant system data that’s available on econet e.g

If you can see the item on the original web page, then you may be able to extract the name from the page code.

it’s AXEN_REGISTER_61

2 Likes

definitely possible, will need to see which parameter is the EXV Valve Outlet Temp, the other one’s are easily to find. Will add this into the integration and make a new release with it later

2 Likes

Just pushed a new release for the HA integration adding these values (and a few more) :slight_smile:

Nice work, I just updated. All seems to be working well. I can now see the refrigeration metrics listed. Thanks :+1: