Thanks, @yeti0815, that’s interesting. I have managed to instruct my IDM heatpump to use PV surplus, too. For now at least by the help of a similar script. But, my plan is to automate this either through HA or alternatives (evcc, openWB).
I see that You’re using a {{ unpack(pack("-1" |float, ">f"), ">B", offset=2) }}, {{ unpack(pack("-1" |float, ">f"), ">B") }} in order to set the array, which my scripts currently are setting with hard-coded values, which in turn were manually determined by the help of some online calculators.
Assuming that this is working the same way (conversion of decimal value to a hex-based float32) is there no simpler way to determine the array’s tuples or the array itself?
I do not now if this is the best way to do it, but I would like to come back to the origin of this threat, the module developed by @Galdan that retrieves the info of the IDM heatpumps using the cloud API.
First of all, thanks a lot to Tom for taking the time to code the module and share it with all of us. I have just get my new IDM iPump A heatpump installed and I have been able to install and have the module retrieving info from my heatpump without too many problems.
I have a very specific question. I would like to retrieve also the info about the “Own consumption” value of the heatpump. I know that the value is available, because I can see it in the IDMSmartNavigator application…
My goal is to be able to include the consumption of the heatpump in the energy dashboard of Home Assistant as an individual entity, now it is mixed in the “Untracked comsumption” category.
I believe You want to review the Modbus integration for this. Your system should be available locally (if it is not already, then IDM will surely enable this for You, just ask them via e-mail).
Once You‘re there, You need to create a sensor matching the so-called Modbus register. Then You can simply select the sensor in the Energy dashboard‘s configuration.
Let me know once the Modbus integration is available, I can help with subsequent steps.
I was thinking in to use the REST API, I feel more confortable with that, but seems that I will have to give an oportunity to the Modbus integration
Is there any way I can check if it is already enabled in my heatpump? In the menu (no expert mode) there is no any reference to the protocol. I have checked that using the mobile app I can connect locally to the heatpump, but I though that that was a Rest API connection, perhaps I was wrong.
I believe that IDM does not offer a REST API - which would have been great without a doubt. But of course, things might be different for Your particular heatpump.
AFAIK, there’s no way to see if the Modbus connection is enabled in the Navigator or the app, but You will know that it works, if You configure the integration. Mine looks like this:
modbus:
- name: 01-06-Waermepumpe
type: tcp
host: !secret waermepumpe_ip # the IP of the heatpump
port: !secret waermepumpe_modbus_port #in my case this is 502
sensors:
- name: Wärmepumpe Aktuelle Leistungsaufnahme
unique_id: 01-06-Waermepumpe-AktuelleLeistungsaufnahme
slave: 1
scale: 1
offset: 0
address: 4122
data_type: float32
scan_interval: 30
precision: 1
swap: word
unit_of_measurement: kW
device_class: power
This is the sensor that measures the current power consumption. It is configured against the heatpump’s Modbus register 4122, which may be different with Yours so I recommend researching those. Or, simply ask IDM for the overview of registers matching your product - they are usually quick and helpful with such things.
PS: I would recommend to try with the values from Your screenshot. So 281 could be the register that You‘re looking for.
Thanks @dubtec . I have made a first try and seems that nothing is listening in the port 502 of my heatpump. Perhaps it is in a different port, or Modbus is not enabled. I have already get in contact with the company that has made the installation in order to ask to check if Modbus is enabled, or enable it if it is not.
Meanwhile I have seen that in my heatpump (IDM iPump A) it is possible to set a PIN code that enables the local access to the heatpump. After defining that numeric PIN code I have been able to access locally the heatpump using the Android mobile app, and also I have seen that the heatpump is exposing a web service in port 80.
I have tried to access that service with a browser and…
Voilà! I am in via web interface. Perhaps there is a REST API after all.
I’m still waiting for the installer to confirm me that the Modbus protocol is enabled. They have said me that they do not share the expert code with the clients in order to avoid problems.
Well, I wouldn’t want to bet my money on that. But would be happy if it does apply to you.
IDM support will very probably be able to access your heatpump, as you’re using their cloud service and log in as technician to enable Modbus. In most cases they are way quicker than any local service / installation company. Try it, you’ll like it… mailto:[email protected]
Yes! I have good news. After the tech service (local one, not IDM) enable the Modbus protocol I have been able to read the “Own consumption” variable without problems with the config you have suggested.
A quick combination with PowerCalc and I am already able to follow the hourly energy consumption of the heatpump. Thanks a lot for your help.
What I have not been able to get is the documentation about other info available via Modbus, or how to read any other of that variables. Any indication, or documentation about that will be very helpfull for me.
In another forum I’ve found documentation for Navigator 2.0, which I believe You’re having, but it is in German. I’m not aware of an English version, and recommend to check with IDM directly in case your preferred translation tool doesn’t help. “4.1. Parameterliste” lists all registers one can use: https://www.photovoltaikforum.com/core/attachment/113433-ma-de-812170-modbus-tcp-navigator-2-0-pdf/
Hi Jtome,
Could you explain how you managed to accurately track hourly energy consumption in HA? I’ve been trying to achieve this using helpers, but the results aren’t as expected. I suspect the issue may be related to the unit of measurement—the data is in kW instead of kWh. The helper is currently outputting kW, which doesn’t seem to align with the Electrical Power Consumption values displayed in the IDM UI in kWh.
I’m not an expert in electrycity (indeed in Spanish) but as far as I know kW is a meassure of power, and kWh is a meassure of energy, totally different animals.
You want to track energy (kWh) because you pay for consumed energy (not by power used). There is ways to calculate energy from power and time. I have several escenarios.
There is devices that provide energy sensors (in kWh), nothing to do with these ones, you can add this sensors to the HA energy dashboard directly.
There are others devices that only inform of the instant power (kW), for calculate the energy consumed by this devices I am using a custom component, Powercalc. I think that this one is the answer to the problem you are facing.
Also I use the component Balance neto to calculate the hourly net balance, but perhaps this is specific only for Spain because of the way the compensation process work here (hourly based).