Heatpumps - warmlink support
Hi, would it be possible to add support for Heatpumps which use warmlink ? It use cloud.linked-go.com, but there are some changes which I figured out from app traffic. Like login using: https://cloud.linked-go.com:449/crmservice/api/app/user/login?lang=en
I can get full structure via proxy, question is if I can add this to your project or should I create a new one. I don't have much experience with HASS integrations, but can provide API calls part.
#!/bin/bash
cloudurl="https://cloud.linked-go.com:449/crmservice/api/app"
token=$(curl -s -H "Content-Type: application/json; charset=utf-8" -X POST \
-d '{"password": "XXXXX","loginSource": "IOS","areaCode": "en","appId": "16","type": "2","userName": "YYYYY"}' \
"${cloudurl}/user/login?lang=en" | jq -r '.objectResult."x-token"')
echo "${token}" > tmp/token
device=$(curl -s -H "Content-Type: application/json; charset=utf-8" \
-H "x-token: ${token}" -X POST "${cloudurl}/device/deviceList?lang=en" |
jq -r '.objectResult[]."device_code"')
echo "${device}" | tee -a tmp/device
curl -s -H "Content-Type: application/json; charset=utf-8" \
-H "x-token: ${token}" \
-d '{"appId":"16","deviceCode":"'${device}'"}' \
-X POST "${cloudurl}/device/getDeviceStatus?lang=en" | tee -a tmp/status
curl -s -H "Content-Type: application/json; charset=utf-8" \
-H "x-token: ${token}" \
-d '{"deviceCode": "'${device}'","appId": "16","protocalCodes": ["Power", "Mode", "ModeState", "O01~014", "O01~023", "H21", "R01", "R02", "R03", "T39", "T04", "T01", "T08", "T09", "T02", "H25", "H28", "H31", "H22", "hanControl", "R08", "R09", "R10", "R11", "R36", "R37", "R70", "R71", "R72", "R73", "R74", "H01", "H05", "MainBoard Version", "code_version", "R35", "H07", "H10", "H18", "H20", "H27", "H29", "H30", "H32", "H33", "H35", "H36", "H37", "H40", "H41", "H42", "H43", "H45", "A03", "A04", "A05", "A06", "A11", "A21", "A22", "A23", "A24", "A25", "A26", "A27", "A28", "A29", "A30", "A31", "A32", "A33", "A34", "A35", "A38", "A39", "A40", "F01", "F02", "F03", "F05", "F06", "F10", "F18", "F19", "F21", "F22", "F23", "F25", "F26", "F27", "F28", "F29", "D01", "D02", "D03", "D04", "D05-1", "D05-2", "D07", "D08", "D09", "D10", "D11", "D12", "D13", "D14", "D15", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D30", "E01", "E02", "E03", "E07", "E08", "E09", "E10", "E13", "E14", "E17", "E18", "E19", "E03-1", "E03-2", "E03-3", "E03-4", "E03-5", "E07-1", "E07-2", "E07-3", "E07-4", "E07-5", "R04", "R05", "R06", "R07", "R15", "R16", "R17", "R29", "R30", "R31", "R32", "R33", "R34", "R39", "R40", "R41", "R42", "R43", "R44", "R45", "R46", "R60", "R61", "R62", "P01", "P02", "P03", "P05", "P06", "P08", "P09", "P10", "P11", "P12", "P13", "P14", "P15", "P16", "G01", "G02", "G03", "G04", "G05", "C01", "C02", "C03", "C04", "C05", "C06", "C07", "C08", "C09", "C10", "C11", "C12", "O15", "O17", "S01~S10", "T03", "T05", "T06", "T07", "T13", "T15", "T10", "T11", "T12", "T27", "T28", "T29", "T30", "T31", "T32", "T33", "T34", "T35", "T36", "T37", "T38", "T40", "T41", "T42", "T43", "T44", "T46", "T47", "T48", "Fault1", "Fault5", "Fault6", "1250", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "KG1", "KG2", "KG3", "KG4", "KG5", "KG6", "KG7", "KG8", "KG9", "KG10", "KG11", "KG12", "KG13~KG28", "KG29~KG44", "KG45~KG60", "Timer_Mute_On_En", "TimerMuteOnHour", "TimerMuteOnMinute", "Timer_Mute_Off_En", "TimerMuteOffHour", "TimerMuteOffMinute", "2014", "compensate_slope", "compensate_offset", "InputCurrent1", "Z01", "Z17", "Zone 2 Water Target", "Zone 2 Cure Slope", "Zone 2 Curve Offset", "Zone 1 Room Temp", "Zone 2 Room Temp", "Zone 2 Mixing Temp", "Z02", "Z03", "Z05", "Z06", "Z04", "Z07", "Z08", "Z09", "Z10", "Z11", "Z12", "Z13", "Z14", "Z15", "Z19", "Z20", "M1 Start", "M1 End", "M2 Start", "M2 End", "M3 Start", "M3 End", "M4 Start", "M4 End", "M5 Start", "M5 End", "M6 Start", "M6 End", "M1_2 Enalbe", "M3_4 Enalbe", "M5_6 Enalbe", "M1 Mode", "M2 Mode", "M3 Mode", "M4 Mode", "M5 Mode", "M6 Mode", "M1 Hot Water Target", "M1 Heating Target", "M1 Cooling Target", "M2 Hot Water Target", "M2 Heating Target", "M2 Cooling Target", "M3 Hot Water Target", "M3 Heating Target", "M3 Cooling Target", "M4 Hot Water Target", "M4 Heating Target", "M4 Cooling Target", "M5 Hot Water Target", "M5 Heating Target", "M5 Cooling Target", "M6 Hot Water Target", "M6 Heating Target", "M6 Cooling Target", "M1 Max. Power", "M2 Max. Power", "M3 Max. Power", "M4 Max. Power", "M5 Max. Power", "M6 Max. Power", "SG01", "SG Status", "SG02", "SG03", "SG04", "SG05", "SG06", "SG07", "SG08"]}' \
-X POST "${cloudurl}/device/getDataByCode?lang=en" | tee -a tmp/codes
I have the WarmLink app and would appreciate if this could be added.
How can I add this directly into Home Assistant, please?
Following…..
@Ander3488 in the meantime I updated aquatemp project and provide very simple integration https://github.com/VAdamec/aquatemp (service and mqtt) it's not ideal but basics works (set temperature, read statuses and temperatures of coil, inlet/outlet, ...)
Hi,
I have the Warmlink App but with a DTU and not a Wi-Fi module.
I'm unable to login to the https://cloud.linked-go.com:449/crmservice/api/app/user/login?lang=en. My "normal" login details just do not work.
Also, struggling to understand what the setup should be using your integration and the one for Aquatemp. I know it must be just me....
I'm unbale to obtain the Wi-Fi module here in the UK and wondering if its available in your part of the world?
Regards
Bob
From: Vaclav Adamec @.> Sent: 24 February 2025 06:35 To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
@Ander3488https://github.com/Ander3488 in the meantime I update aquatemp project and provide very simple integration https://github.com/VAdamec/aquatemp (service and mqtt) it's not ideal but basics works (set temperature, read statuses and temperatures of coil, inlet/outlet, ...)
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2677542901, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDDI7M7FLZ6RKN5YXAD2RK4SRAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZXGU2DEOJQGE. You are receiving this because you were mentioned.Message ID: @.***>
[VAdamec]VAdamec left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2677542901
@Ander3488https://github.com/Ander3488 in the meantime I update aquatemp project and provide very simple integration https://github.com/VAdamec/aquatemp (service and mqtt) it's not ideal but basics works (set temperature, read statuses and temperatures of coil, inlet/outlet, ...)
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2677542901, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDDI7M7FLZ6RKN5YXAD2RK4SRAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZXGU2DEOJQGE. You are receiving this because you were mentioned.Message ID: @.***>
I have 4G too, but it doesn't matter. Integration reads and writes data to cloud, not contacting heatpump directly. For login you need password hash. I got mine using proxy app with ssl decode, not sure what type of hash it is, usually it's just base64 but not in this case and of course there is no documentation.
That’s interesting.
I have an iPhone and not sure how to obtain the above information.
What’s is password hash?
Really appreciating your help and patience.
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: Vaclav Adamec @.> Sent: Monday, February 24, 2025 4:45:02 PM To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
I have 4G too, but it doesn't matter. Integration reads and writes data to cloud, not contacting heatpump directly. For login you need password hash. I got mine using proxy app with ssl decode, not sure what type of hash it is, usually it's just base64 but not in this case and of course there is no documentation.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679048240, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDGTWD7JTUW6NMR6DTT2RNEA5AVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGA2DQMRUGA. You are receiving this because you were mentioned.Message ID: @.***>
[VAdamec]VAdamec left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679048240
I have 4G too, but it doesn't matter. Integration reads and writes data to cloud, not contacting heatpump directly. For login you need password hash. I got mine using proxy app with ssl decode, not sure what type of hash it is, usually it's just base64 but not in this case and of course there is no documentation.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679048240, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDGTWD7JTUW6NMR6DTT2RNEA5AVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGA2DQMRUGA. You are receiving this because you were mentioned.Message ID: @.***>
Check this: https://github.com/search?q=repo%3Aradical-squared%2Faquatemp+hash&type=code
Oh, I'm stupid, it simple
echo -n "PASSWORD" | openssl dgst -md5 | awk '{print $2}'
I’m not that hot on all this stuff and struggling. I have HA green but I can’t even login into the aquatemp integration and it logs me out of my WarmLink app. When I try and login in the cloud, it doesn’t recognise my details.
I would really love this to work for me.
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: Vaclav Adamec @.> Sent: Monday, February 24, 2025 5:08:41 PM To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Oh, I'm stupid, it simple
echo -n "PASSWORD" | openssl dgst -md5 | awk '{print $2}'
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHBF6PJAXMEHVMIALL2RNGZTAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGEZDINZWGE. You are receiving this because you were mentioned.Message ID: @.***>
[VAdamec]VAdamec left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761
Oh, I'm stupid, it simple
echo -n "PASSWORD" | openssl dgst -md5 | awk '{print $2}'
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHBF6PJAXMEHVMIALL2RNGZTAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGEZDINZWGE. You are receiving this because you were mentioned.Message ID: @.***>
Hi
I have now managed to obtain my login details with fiddler and can see my token but no username or password. Can you share your complete complete setup for WarmLink functionality please?
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: Bob Anderson @.> Sent: Monday, February 24, 2025 5:14:50 PM To: radical-squared/aquatemp @.>; radical-squared/aquatemp @.> Cc: Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
I’m not that hot on all this stuff and struggling. I have HA green but I can’t even login into the aquatemp integration and it logs me out of my WarmLink app. When I try and login in the cloud, it doesn’t recognise my details.
I would really love this to work for me.
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: Vaclav Adamec @.> Sent: Monday, February 24, 2025 5:08:41 PM To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Oh, I'm stupid, it simple
echo -n "PASSWORD" | openssl dgst -md5 | awk '{print $2}'
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHBF6PJAXMEHVMIALL2RNGZTAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGEZDINZWGE. You are receiving this because you were mentioned.Message ID: @.***>
[VAdamec]VAdamec left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761
Oh, I'm stupid, it simple
echo -n "PASSWORD" | openssl dgst -md5 | awk '{print $2}'
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2679124761, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHBF6PJAXMEHVMIALL2RNGZTAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGEZDINZWGE. You are receiving this because you were mentioned.Message ID: @.***>
check https://github.com/VAdamec/aquatemp/blob/main/test.sh password has to be hashed before send, test script doing that now
I've got a Trianco activair high temperature heat pump with a 4g DTU that uses the WarmLink app. Using the above test.sh script I was able to successfully get lots of info (I don't know what most of it means). Will probably have to run a capture to see what the app is actually pulling for this device, but this is a great starting point! Thank you.
I've got a Trianco activair high temperature heat pump with a 4g DTU that uses the WarmLink app. Using the above test.sh script I was able to successfully get lots of info (I don't know what most of it means). Will probably have to run a capture to see what the app is actually pulling for this device, but this is a great starting point! Thank you.
Hi, can you please share how you managed to get it to work?
I got this integration working with my Trianco and the Warmlink app. The integration already supports the API you just need to add your product ID to the common/consts.py file. I then also customised the parameters/entity_description and mapping json files. The HVACmode of '3' (DHW & Heating) wasn't defined so had to add that. Just add the codes / info that you want to poll in the entity_description file. Thanks @VAdamec for the work you did in capturing the device codes. My version is here. I also found another fork here that has added a bunch of extra product IDs.
This is taken from the first bit of this script (mentioned previously in this thread) and should give you the product ID:
#!/bin/bash
#
# Usage: bash test.sh <login> <pass>
#
# bash, curl, openssl and jq are needed
#
cloudurl="https://cloud.linked-go.com:449/crmservice/api/app"
login=$1
pass=$(echo -n "${2}" | openssl dgst -md5 | awk '{print $2}')
token=$(curl -s -H "Content-Type: application/json; charset=utf-8" -X POST \
-d '{"password": "'$pass'","loginSource": "IOS","areaCode": "en","appId": "16","type": "2","userName": "'$login'"}' \
"${cloudurl}/user/login?lang=en" | jq -r '.objectResult."x-token"')
device=$(curl -s -H "Content-Type: application/json; charset=utf-8" \
-H "x-token: ${token}" -X POST "${cloudurl}/device/deviceList?lang=en" |
jq -r '.objectResult[]."product_id"')
Save that into a file called test.sh and then run it with bash test.sh <login> <pass> substituting in your Warmlink username and password.
Hi,
Right I seem to have manged to obtain my deviceID =1501438265440362496 and have update the three files to suit. How do I now see my heat pump values.? When I login with the HA login screen using the API type is Aqua Temp, it says its "Success!" but No devices or entities. Can you please help and guide to where I,m now going wrong.
Really appreciate your all your help.
From: Bob Anderson Sent: Wednesday, April 16, 2025 15:38 To: radical-squared/aquatemp Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Hi,
Really sore to be a pain. I'm getting some information now but still not correct.
Do I insert my login details into the script itself i.e. '$pass' becomes '$mypasword' and the same for '$login'? or do i just need to insert these details in the bash -x test.sh
This is what I get out when I just run the bash -x test.sh #!/bin/bash cloudurl="https://cloud.linked-go.com:449/crmservice/api/app" login= pass=d41d8cd98f00b204e9800998ecf8427e
token=
device=
echo "DeviceID: "
Regards
From: Vaclav Adamec Sent: Wednesday, April 16, 2025 14:40 To: radical-squared/aquatemp Cc: Ander3488; Mention Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
[https://avatars.githubusercontent.com/u/5555130?s=20&v=4]VAdamec left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2809627578
Never share credentials, with anybody. I have Green too, just use Terminalhttps://community.home-assistant.io/t/home-assistant-community-add-on-ssh-web-terminal/33820, copy&paste test.sh script and run, that's all. You need to add some echo or use debug shell run to see output:
cat <<EOF> test.sh #!/bin/bash cloudurl="https://cloud.linked-go.com:449/crmservice/api/app" login=$1 pass=$(echo -n "${2}" | openssl dgst -md5 | awk '{print $2}')
token=$(curl -s -H "Content-Type: application/json; charset=utf-8" -X POST
-d '{"password": "'$pass'","loginSource": "IOS","areaCode": "en","appId": "16","type": "2","userName": "'$login'"}'
"${cloudurl}/user/login?lang=en" | jq -r '.objectResult."x-token"')
device=$(curl -s -H "Content-Type: application/json; charset=utf-8"
-H "x-token: ${token}" -X POST "${cloudurl}/device/deviceList?lang=en" |
jq -r '.objectResult[]."product_id"')
echo "DeviceID: ${device}" EOF
bash -x test.sh
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2809627578, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDGL4USZYTEA6WNM6SD2ZZMUTAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMBZGYZDONJXHA. You are receiving this because you were mentioned.
Check your HA logs. The integration might be crashing - check for an error, possibly to do with HVACmode.
Hi,
It’s just started working. I can see all my sensors that I require for COP.
Many many thanks again for all your help, your a star.
Regards Ande3488
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: arthuriansoft @.> Sent: Wednesday, April 16, 2025 10:53:20 PM To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Check your HA logs. The integration might be crashing - check for an error, possibly to do with HVACmode.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2810897615, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDCVBKPZKXQHZEX55RD2Z3GNBAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMJQHA4TONRRGU. You are receiving this because you were mentioned.Message ID: @.***>
[https://avatars.githubusercontent.com/u/102995991?s=20&v=4]arthuriansoft left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2810897615
Check your HA logs. The integration might be crashing - check for an error, possibly to do with HVACmode.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2810897615, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDCVBKPZKXQHZEX55RD2Z3GNBAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMJQHA4TONRRGU. You are receiving this because you were mentioned.Message ID: @.***>
Well done for persevering with it Bob! I hadn't thought to calculate CoP with this. What codes are you using to determine heat output in kWh?
Hi, I have installed EMONCMS and it does it all for you. All you need is the flow and return temps along with the flow rate ( I can't find this sensor, maybe you can help me, again) and your heat pump power (Volts x Amps). I'm using a cheap external ESP device for this and my water temps. I don't believe it to be that accurate, hence the need to get it all directly from the api.
If this all works (and Im sure it will) there is no need to spend ~ £500 for a Energy Heat Meter.
I found an excellent video by "Speak to the Geek" https://youtu.be/VOGLjONINqM?si=6B5pdq9gMfAidIGY, which is very good. YouTubehttps://youtu.be/VOGLjONINqM?si=6B5pdq9gMfAidIGY Share your videos with friends, family, and the world youtu.be
From: arthuriansoft Sent: Wednesday, April 16, 2025 23:19 To: radical-squared/aquatemp Cc: Ander3488; Mention Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Well done for persevering with it Bob! I hadn't thought to calculate CoP with this. What codes are you using to determine heat output in kWh?
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2810942207, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDBG4LNL32CQ4ODQNHL2Z3JNVAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMJQHE2DEMRQG4. You are receiving this because you were mentioned.
Add the following entity_description for the flow sensor:
{
"key": "T39",
"name": "Water Flow [T39]",
"platform": "sensor",
"device_class": "volume_flow_rate",
"unit_of_measurement": "m³/h"
},
I've updated my file if you're copying my fork.
Hi, thanks for that, now updated and working.
I noticed that your Product ID is the same as mine. My heat pump is a ECOHEAT-MHP9, which appears to be a rebranded PHNIX GreenTherm Series. I have the full Technical Manual, which includes the MODBUS RTU Comms Protocol, which you may find helpful, however unable to attach.
I have one last observation and request. When I have my App in Hot Water mode the api shows that its COOLING? and how do I obtain the sensor for the Domestic Hot Water is on. I found address 2019, bit9: O10, Hot water 3-way valve, however tried to add it but no luck.
Again many thanks for all your help.
From: arthuriansoft @.> Sent: 17 April 2025 21:40 To: radical-squared/aquatemp @.> Cc: Ander3488 @.>; Mention @.> Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
Add the following entity_description for the flow sensor:
{ "key": "T39", "name": "Water Flow [T39]", "platform": "sensor", "device_class": "volume_flow_rate", "unit_of_measurement": "m³/h" },
I've updated my file if you're copying my fork.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2813978493, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHEVB3V7L63SMLLBED22AGVXAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMJTHE3TQNBZGM. You are receiving this because you were mentioned.Message ID: @.***>
[https://avatars.githubusercontent.com/u/102995991?s=20&v=4]arthuriansoft left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2813978493
Add the following entity_description for the flow sensor:
{ "key": "T39", "name": "Water Flow [T39]", "platform": "sensor", "device_class": "volume_flow_rate", "unit_of_measurement": "m³/h" },
I've updated my file if you're copying my fork.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2813978493, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHEVB3V7L63SMLLBED22AGVXAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMJTHE3TQNBZGM. You are receiving this because you were mentioned.Message ID: @.***>
I would be interested in the modbus details, as I intend to switch to an ESPHome modbus solution in the future. If you have an account on community.home-assistant.io then please search for me there and send me a message, and we can take this 'off-line'.
As for the mode mapping, see the climate entity docs here. It would be possible to create presets that match the modes of this pump, but that means more invasive changes to this integration and I wasn't sure my meager python skills were up to it!
As for knowing when DHW is on, you might try "S07 Hot Water Switch". There's also "O10 Hot Water 3-way valve". Add them both and see if either matches what you want.
I have found out some of the modbus registers for a GreeenTherm WP by try and error using the warmlink app. However the Warmlink App has some bugs in it, e.g. it can show only 10 categories of parameters (al though there are more). E.g. in your code (parameters) you refer to key and values like 1156 and 1157. These might be MODBUS registers. I found: 1156 G05:Desinfection enabled : 1 1=yes 1157 R01:Domestic hot water target temperature : 47 C 1158 R02:Heating target temp : 48 C 1159 R03:Cooling target temp : 7 C Also I saw registers(?) 207x: 2074 T27:DC fan 1 speed : 0 rpm 2075 T28:DC fan 2 speed : 0 rpm 2076 T29:DC fan speed setpoint : 0 rpm 2077 T39:water volume throughput : 0 qm/h
Well done for persevering with it Bob! I hadn't thought to calculate CoP with this. What codes are you using to determine heat output in kWh?
You will need: T39:water volume throughput : [ qm/h], T01:Water inlet temp : [C] and T02:Water outlet temp : [C], then the Heat power can be calculated like:
heatpower=flow * 4.18/3.6 * (outlettemp-inlettemp)
. Much more complicated is to calculate/estimate the electric power consumption.
If you need the total (accumulated) energy, the heat pump has internal counters for: total produced heat for heating [kWh], and total produced heat for DHW [kWh], however, I do not know the Names of the values, only the MODBUS registers. BTW: I identified also internal counters for number of compressor starts and number of operating hours (of the compressor). I have also identified counters for electricity consumption, but here I could not find out the units. (it is not kWh). Ans also It seems that only the electric power of the compressor is accounted for. (Not enough to calculate the COP).
Hi, thanks for your encouragement and I certainly did find it very difficult to get any connection to the api. However much thanks goes to my new friend arthuriansoft for all his help.
I'm using a Template sensor with these sensors ((T02-T01) * 4180/3.6) / (HP power)) (W) and it provides the COP as a helper.
I'm fortunate that I have a Emporia Energy CT clamp on my supply to the HP. I did try and replicate this with the voltage T34 * amps T35, which does work to provide the power (which appears to be slightly less than the actual power from my DB)). However tried various options/attempts to obtain the energy with absolutely no success.
The real sensor I require for the cream on the cake is the "Hot Water 3-Way Valve" 010 and just can't obtain it. This appears to be tied up in address 2019 and sits at bit9: O10 Hot water 3-way valve (0-OFF/1-ON).
My next plan is to use a Sonoff relay device to obtain this as I have two, 2-port valves and not a 3-way valve.
Over all the system is working very well and obtaining a daily SCOP of around 3.6, this includes hot water production.
From: kollokollo Sent: Tuesday, April 22, 2025 13:15 To: radical-squared/aquatemp Cc: Ander3488; Mention Subject: Re: [radical-squared/aquatemp] Heatpumps - warmlink support (Issue #99)
[https://avatars.githubusercontent.com/u/15250834?s=20&v=4]kollokollo left a comment (radical-squared/aquatemp#99)https://github.com/radical-squared/aquatemp/issues/99#issuecomment-2821140562
Well done for persevering with it Bob! I hadn't thought to calculate CoP with this. What codes are you using to determine heat output in kWh?
You will need: T39:water volume throughput : [ qm/h], T01:Water inlet temp : [C] and T02:Water outlet temp : [C], then the Heat power can be calculated like: heatpower=flow4.18/3.6(outlettemp-inlettemp) . Much more complicated is to calculate/estimate the electric power consumption.
— Reply to this email directly, view it on GitHubhttps://github.com/radical-squared/aquatemp/issues/99#issuecomment-2821140562, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYJUQDHDWFMGISEJZPAYB2L22YXFRAVCNFSM6AAAAABXP7BEIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMRRGE2DANJWGI. You are receiving this because you were mentioned.
Hm, sounds great. My heat pump shows a smaller COP (averaged over the year) of 3.0. But I do also have the suspicion, that the total heat calculated by temperatures and flow is a bit too low. And also for the electricity consumption I do add 30W (for the electronics), 100W for chassis heater if it is on and another 100W for the cranck heater, if on. Also the water pump seems to consume about 50W if on. But I am not sure I I do this all right. I expected a higher avg COP. Also I am not sure, if the Fan-power is already included in the electric power measured by the heat pump. Do U have experience here? Yes, I can confirm, that register 2019 holds a bit pattern with the O-Parameters: 2019 O01-O23: Status Bits : 0x0000 I have also found a counter on register 2023 Counter number of compressor Starts since (?): and another one 2032 Counter operation hours of compressor
Another thing: My observation in the warmLink-App is also, that if you set a power limit in kW the real power limit is different (I have the 3 Phase heat pump). My suspicion is that it is Ampers instead of kW. And this might be the same for all electricity power reading (and also engery reading). But I could not really get that together properly. Theoretically one should be able to calculate the electric Power from T36 and T37 (or T35). There seems to be an undocumented register 2059 which could mean "heat power". Also 2060 (maybe COP). But the values seem to be not properly scaled.
I have experiented with a correction factor corrfak=SQRT(3)*0.67 for the power and energy reading. But this is just a guess. also 400V/230V seems to be SQRT(3). Maybe the Software is designed only for the 1-Phase heat pump version and for three phases they forgot to rescale?
Maybe you want to look at Register 2079. This could be a counter for electricity. But it seems to increase only if the compressor is on. And I can only make sense of the values if I scale it with some factor (0.61 fits best). Unfortunately I have no independent power meter for the total electric consumption of the heat pump.
I'm fortunate that I have a Emporia Energy CT clamp on my supply to the HP. I did try and replicate this with the voltage T34 * amps T35, which does work to provide the power (which appears to be slightly less than the actual power from my DB)). However tried various options/attempts to obtain the energy with absolutely no success.
To create an energy sensor (for use in the energy dashboard), first create a template helper sensor for the power:
{{ states('sensor.<name>_ac_input_current_t35')|float * states('sensor.<name>_ac_input_voltage_t34')|float }}
Substitute <name> for your heat pump device name.
Then create an integral helper using the power sensor as input. This sensor will always increase. If you want a sensor showing the usage for that day, create a utility meter helper based on the energy sensor.