Posted by: @iancalderbankhow are you guys calculating COP with the samsung? I don't see a modbus register for energy (input or output)?
I have run a POE Ethernet to my electric box, with the olimex poe esp32 feeding home assistant, an open energy monitor pulse counter on the din rail power meter for the heat pump circuit.
Though if I did this again I would probably follow the shelly path.
Main issue is power in the electric cabinet, POE may be my only solution, until I can get an electrician to put a 3 amp circuit in the electric cabinet.
I am slowly getting there .... below in Grafana [hot water recharge], just need to add the CoP calculation now.
Posted by: @redzer_irlI'm not getting a great overall COP
Are you splitting DHW from Heating CoP?
Also you really need to measure CoP vs outside temperature using scatter plot
ok, my intent is put an ESP8266 with a CT clamp around the main power inside the outdoor unit. as I feel that's easiest place to get at the main power. Just need to sort 5V for the ESP when in there. there's 12V used by the modbus so not tricky.
I was going cutover the house to the ASHP this weekend but due to myself and mrs getting covid tail end of the week that put paid to doing anything other than survive. so back looking at the s/w side. Is anyone doing a control loop yet? what parameter are you writing to - presumably LWT? If so what modbus config are you using for the write (I'll be doing it from an ESP, starting from @steven 's config)
My octopus signup link https://share.octopus.energy/ebony-deer-230
210m2 house, Samsung 16kw Gen6 ASHP Self installed: Single circulation loop , PWM modulating pump.
My public ASHP stats: https://heatpumpmonitor.org/system/view?id=45
11.9kWp of PV
41kWh of Battery storage (3x Powerwall 2)
2x BEVs
@william1066 @steven @tomc is there any chance any of you could post the snippet of your code that builds and writes the modbus command(s) to the samsung to tell it do do something on a regular / automated basis? like turn on or off or get hotter or cooler.
the code thats been posted previously around replicating WL calculations makes perfect sense and I have my own ideas to develop on load comp, I'm just missing the basic pointer as to where to look to tell it to "do something".
Read registers working fine and stable for a week.
My octopus signup link https://share.octopus.energy/ebony-deer-230
210m2 house, Samsung 16kw Gen6 ASHP Self installed: Single circulation loop , PWM modulating pump.
My public ASHP stats: https://heatpumpmonitor.org/system/view?id=45
11.9kWp of PV
41kWh of Battery storage (3x Powerwall 2)
2x BEVs
Posted by: @iancalderbankis there any chance any of you could post the snippet of your code that builds and writes the modbus command(s) to the samsung to tell it do do something on a regular / automated basis?
Use ESPHome Modbus Number or Switch components depending on what it is you want to do. For example setting the DHW temperature:
number: - platform: modbus_controller modbus_controller_id: controller_id name: "DHW Water Temperature" id: dhw_water_temperature register_type: holding address: 74 value_type: U_WORD lambda: "return x * 0.1; " write_lambda: "return x * 10.0; "
You can use this to replace the "sensor" version, if you're using it, it acts as a read and write entity.
Note, register_type: holding may not be necessary for "number" controllers, it's not specified in the ESPHome docs, but it is referenced. Give it a go.
@iancalderbank Hi Ian
Below is my config for the switches. Right now I am only switching the space heating on or off, and the hot water on or off. This is baby steps for me, and I am letting the weather compensation set the flow temperature.
My approach is
#1 - setup the registers as switches, as below.
#2 - use the standard automation to switch heating on/off, ditto for hot water.
I have not managed to get the switch to switch off cleanly in the UI. It shows that is it switching off, then goes back on then back off again, not sure why. I tried adding the verify as below, that has not worked.
Once I move to the next step of more sophisticated control of flow temperature I can share, just a bit busy with work and other renovation diy right now.
modbus: - name: "samsung" type: serial baudrate: 9600 bytesize: 8 method: rtu parity: E port: /dev/ttyUSB0 stopbits: 1 switches: - name: Heating unique_id: samsung_gen6_16kw_heating slave: 1 address: 52 command_on: 1 command_off: 0 verify: input_type: holding delay: 10 address: 52 state_on: 1 state_off: 0 - name: Hot Water unique_id: samsung_gen6_16kw_hot_water slave: 1 address: 72 command_on: 1 command_off: 0 verify: input_type: holding delay: 10 address: 72 state_on: 1 state_off: 0
I have 50+ years experience with control systems, so if you need any help or assistance then please feel free to ask.
I would suggest that you try to clearly define what it is that you are trying to achieve, and what parameter measurements that you may require to achieve your objective.
If you don't have the functionality of a PID controller within your present software, it should be possible to program the required algorithms.
@steven thanks, so I tried the below, which all compiled and runs fine.
number: - platform: modbus_controller modbus_controller_id: ashp_modbus name: "Target Flow Temperature" id: target_flow_temperature register_type: holding address: 68 unit_of_measurement: "ºC" device_class: "temperature" value_type: U_WORD lambda: "return x * 0.1; " write_lambda: "return x * 10.0; "
I have the number entity in an HA dashboard. when I adjust the value of that entity within HA from 25 to 29, I see the ESP do this:
[12:16:32][D][modbus.number:023]: Number new state : 25.00 [12:16:32][D][number:012]: 'Target Flow Temperature': Sending state 25.000000 [12:16:32][D][modbus_controller.sensor:025]: Sensor new state: 0.00 [12:16:32][D][sensor:126]: 'Flow Rate': Sending state 0.00000 lpm with 1 decimals of accuracy [12:16:34][D][number:054]: 'Target Flow Temperature' - Setting number value [12:16:34][D][number:113]: New number value: 26.000000 [12:16:34][D][modbus.number:059]: Updating register: connected Sensor=Target Flow Temperature start address=0x44 register count=1 new value=26.00 (val=260.00) [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 26.000000 [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 26.000000 [12:16:34][D][number:054]: 'Target Flow Temperature' - Setting number value [12:16:34][D][number:113]: New number value: 27.000000 [12:16:34][D][modbus.number:059]: Updating register: connected Sensor=Target Flow Temperature start address=0x44 register count=1 new value=27.00 (val=270.00) [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 27.000000 [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 27.000000 [12:16:34][D][number:054]: 'Target Flow Temperature' - Setting number value [12:16:34][D][number:113]: New number value: 28.000000 [12:16:34][D][modbus.number:059]: Updating register: connected Sensor=Target Flow Temperature start address=0x44 register count=1 new value=28.00 (val=280.00) [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 28.000000 [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 28.000000 [12:16:34][D][number:054]: 'Target Flow Temperature' - Setting number value [12:16:34][D][number:113]: New number value: 29.000000 [12:16:34][D][modbus.number:059]: Updating register: connected Sensor=Target Flow Temperature start address=0x44 register count=1 new value=29.00 (val=290.00) [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 29.000000 [12:16:34][D][number:012]: 'Target Flow Temperature': Sending state 29.000000 [12:16:42][D][modbus_controller.sensor:025]: Sensor new state: 0.00 [12:16:42][D][sensor:126]: 'Compressor Frequency': Sending state 0.00000 Hz with 0 decimals of accuracy [12:16:42][D][modbus_controller.sensor:025]: Sensor new state: 146.00 [12:16:42][D][sensor:126]: 'Outdoor Temperature': Sending state 14.60000 ºC with 1 decimals of accuracy [12:16:42][D][modbus_controller.sensor:025]: Sensor new state: 198.00 [12:16:42][D][sensor:126]: 'Return Temperature': Sending state 19.80000 ºC with 1 decimals of accuracy [12:16:42][D][modbus_controller.sensor:025]: Sensor new state: 205.00 [12:16:42][D][sensor:126]: 'Flow Temperature': Sending state 20.50000 ºC with 1 decimals of accuracy [12:16:42][D][modbus.number:023]: Number new state : 25.00 [12:16:42][D][number:012]: 'Target Flow Temperature': Sending state 25.000000
which looks like HA told the ESP to increase that number, modbus updated the register, but then (last line) something (presumably the ASHP) put it right back to the value set on the controllers screen (which I've put deliberately low so I can see effect of overriding). So the end result is that the LWT didn't change.
I've got the heat pump system purely on the internal controller with the controller set to "target LWT" mode (indoor zone option->standard temperature->water outlet), maybe thats not the right mode?
My octopus signup link https://share.octopus.energy/ebony-deer-230
210m2 house, Samsung 16kw Gen6 ASHP Self installed: Single circulation loop , PWM modulating pump.
My public ASHP stats: https://heatpumpmonitor.org/system/view?id=45
11.9kWp of PV
41kWh of Battery storage (3x Powerwall 2)
2x BEVs
I suspected that you may have difficulty changing the 'target LWT', because I believe that it is actually an 'output', in being the result of internal calculations within the heat pump controller, so you actually have two controllers, your external one, and the heat pump controller both setting the same output value.
If you would like to send a copy of the Modbus Registers data, I may be able to suggest the correct parameter to change.
@derek-m my intent is to:
- within an automation platform (HA being my intended), calculate the Weather Comp temperature (Same algorithm as vendor uses).
- Send this temperature to the heat pump , to set the LWT.
- so in normal run, the same as the devices controller would do.
but then add to it by, within the same automation platform
- A "boost button" which will temporarily raise LWT by X for T (use case, I just wanna warm the house up NOW and s*d the efficiency)
the same automation platform also consumes data from the smart TRV heads , smart room stats and temperature probes around the house which I've already got. those fundamentally know allow it know to the temperature and heat demand from of almost all the areas of the house. It would then (in my ideal world) - based on all this data , do various bits of logic which I am a long way off writing down, but here's a couple of use cases:
- if "difficult to heat / very lossy room's smart room stat and sensor have a high delta T between target and actual" and "schedule of use for that room is now" then call "Boost".
That applies to our conservatory, which can be and often is air-sealed from the rest of the house and is not used all the time. I'd just be throwing money out the window if I run it as part of the always on downstairs core.
- if a "non-core room stat or smart TRV was just turned up" but main controller is OFF, then turn it back on . This is for time of day usage scenarios due to who does what when, where a non-core room (i.e. a bedroom) may need heating at odd times and that may be the only room needing heat.
I know that not all of the above is compatible with the "all rooms always on same temp" philosophy of perfect ASHP running, but my house is large, geographically and usage-wise complicated , and has different heat loads and losses. I doubt that I'll be able to run it as "one system" - only the main core rooms.
My octopus signup link https://share.octopus.energy/ebony-deer-230
210m2 house, Samsung 16kw Gen6 ASHP Self installed: Single circulation loop , PWM modulating pump.
My public ASHP stats: https://heatpumpmonitor.org/system/view?id=45
11.9kWp of PV
41kWh of Battery storage (3x Powerwall 2)
2x BEVs
I had converted the Samsung Modbus MIM-B19N section on registers from PDF into Excel just to make it a bit easier to understand for myself. The section on hidden registers is also included.
Posted by: @iancalderbank@derek-m my intent is to:
- within an automation platform (HA being my intended), calculate the Weather Comp temperature (Same algorithm as vendor uses).
- Send this temperature to the heat pump , to set the LWT.
- so in normal run, the same as the devices controller would do.
but then add to it by, within the same automation platform
- A "boost button" which will temporarily raise LWT by X for T (use case, I just wanna warm the house up NOW and s*d the efficiency)
the same automation platform also consumes data from the smart TRV heads , smart room stats and temperature probes around the house which I've already got. those fundamentally know allow it know to the temperature and heat demand from of almost all the areas of the house. It would then (in my ideal world) - based on all this data , do various bits of logic which I am a long way off writing down, but here's a couple of use cases:
- if "difficult to heat / very lossy room's smart room stat and sensor have a high delta T between target and actual" and "schedule of use for that room is now" then call "Boost".
That applies to our conservatory, which can be and often is air-sealed from the rest of the house and is not used all the time. I'd just be throwing money out the window if I run it as part of the always on downstairs core.
- if a "non-core room stat or smart TRV was just turned up" but main controller is OFF, then turn it back on . This is for time of day usage scenarios due to who does what when, where a non-core room (i.e. a bedroom) may need heating at odd times and that may be the only room needing heat.
I know that not all of the above is compatible with the "all rooms always on same temp" philosophy of perfect ASHP running, but my house is large, geographically and usage-wise complicated , and has different heat loads and losses. I doubt that I'll be able to run it as "one system" - only the main core rooms.
I am more knowledgeable in industrial control system and have never used HA, but I do believe that HA is capable of operating in a similar manner to an industrial system. If I suggest something that HA is not capable of doing then please let me know.
There could possibly be several different solutions to your problems, so it may be useful to consider each in turn.
Let's first of all deal with your requirement concerning your conservatory, which you may then be able to apply to other infrequently used rooms within your home.
1. You could consider installing an A2A (Air to Air) heat pump, which could be used to heat up a room quite quickly, and would be totally separate from your present A2W heat pump. An A2A can also be used for cooling, and can have up to at least three indoor units, so could serve several rooms from one outside unit. One of the benefits is that they heat up the air much quicker than radiators or UFH, so it is not necessary to plan too far ahead when deciding to use a normally 'not heated' room.
2. I don't normally recommend any form of zoning, but in your case I will make an exception. You could install zone valves for each of the not heated rooms, which are controlled by HA. This would then allow heating to be provided to any of the selected rooms, though it would require forward planning since it could take quite some time to bring the desired room up to temperature, with or without any boost to the LWT.
3. The heating process for (2) could be sped up by installing larger heat emitters in the selected rooms, or even fan assisted ones.
What are the pro's and con's of the different options.
An A2A system should reduce the heat demand of your A2W heat pump and could even be used as a supplementary heat source in cold weather extremes. It can also provide some cooling during hot weather extremes. It will of course use additional electrical energy to run, though this may be offset by savings made elsewhere. It will undoubtedly be the more expensive of the options.
Zoning of certain rooms could reduce the overall heat demand on the A2W heat pump, it could also be used in milder weather conditions to help reduce short cycling of the heat pump. Whilst the cheapest of the options, it could take quite some time for the selected room to be brought up to temperature, though it may be possible by measuring various temperatures, for HA to calculate the optimum time to commence the room heating prior to use.
Adding larger or fan assisted heat emitters could provide quicker heat up, but at additional installation cost.
I would suggest that you consider the options and come back with any questions.
I will do a separate post concerning control via HA a little later.
- 22 Forums
- 2,037 Topics
- 44.4 K Posts
- 29 Online
- 3,250 Members
Join Us!
Trusted Installers
Struggling to find a reliable heat pump installer? A poor installation can lead to inefficiencies and high running costs. We now connect homeowners with top-rated installers who deliver quality work and excellent service.
✅ Verified, trusted & experienced installers
✅ Nationwide coverage expanding
✅ Special offers available
Latest Posts
-
RE: The Rise and Fall of Europe’s Most Generous Green Subsidy
This is where the cold water storage tank was situated;...
By Dwynwen , 2 hours ago
-
RE: Help with understanding my Mitsubishi Ecodan air source heat pump
@majordennisbloodnok, the same thought occurred to me, ...
By Morgan , 2 hours ago
-
RE: Help me keep the faith with my air source heat pump installation
I agree with @mars. My install was not dissimilar. ...
By JamesPa , 3 hours ago
-
RE: Air Source Heat Pump - Side Alley Suitability
Thats probably fair enough. The degree-days calculatio...
By JamesPa , 3 hours ago
-
RE: ASHP Ecodan L9 error - No Heating but Hot Water
That’s interesting, but obviously concerning also…. Do ...
By SUNandAIR , 19 hours ago
-
RE: In the middle of an ASHP installation - a few questions (and issues)
Thank you @robs - that very useful data. The issue wa...
By Transparent , 23 hours ago
-
RE: Hitachi Yutaki SCombi Heat Pump - Thermal Off's
@trebor12345 The Auto function is supposed to adapt au...
By Heatgeek , 2 days ago
-
RE: The Great British Heat Pump Quiz
@allyfish thanks for the feedback and glad it was fun! ...
By Mars , 2 days ago
-
RE: help sizing rads based on room by room heat loss
If its 1988W at DT 50, which is how most radiators are ...
By JamesPa , 2 days ago
-
RE: Career change – entering the world of heating and heat pumps
@editor Mars, thank you. That's along the routes I was ...
By Lakey , 2 days ago
-
@editor thanks Mars, it's a rare occasion I'm looking f...
By big_si , 3 days ago
-
RE: Efficiency Concerns on newly installed Mitsubishi Ecodan 8.5kW
@ashp-bobba and @jamespa - thank you both for all your ...
By CBrenewable , 3 days ago
-
-
Win one of five "Heat Pumps 101" Courses
Heat pumps are gaining traction in the UK, but between ...
By Mars , 3 days ago
-
RE: Agile: average import cost vs other tariffs?
@toodles thanks for the analysis. I'll be really intere...
By Old_Scientist , 4 days ago
-
RE: Is this normal? Click of the DHW returning to space heating
@grantmethestrength Oh sorry to hear that, there should...
By ASHP-BOBBA , 4 days ago
-
@ashp-bobba TBH the ladies are rather disorganised, so ...
By Cathyem1 , 4 days ago
-
RE: Solar Power Output – Let’s Compare Generation Figures
And for those of us without an automatic irrigation sys...
By Majordennisbloodnok , 4 days ago
-
Logically, the lower frequency = more gentle, yes, but ...
By SUNandAIR , 4 days ago