Samsung ASHP schedu...
 
Notifications
Clear all

Samsung ASHP scheduling help

232 Posts
24 Users
27 Reactions
37.2 K Views
(@william1066)
Reputable Member Member
1333 kWhs
Joined: 2 years ago
Posts: 206
 

Posted by: @iancalderbank

how 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.

 

image
image

   
ReplyQuote
(@william1066)
Reputable Member Member
1333 kWhs
Joined: 2 years ago
Posts: 206
 

Posted by: @redzer_irl

I'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


   
ReplyQuote
(@iancalderbank)
Noble Member Contributor
3665 kWhs
Joined: 2 years ago
Posts: 643
 

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


   
ReplyQuote



(@iancalderbank)
Noble Member Contributor
3665 kWhs
Joined: 2 years ago
Posts: 643
 

@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


   
ReplyQuote
(@steven)
Active Member Member
106 kWhs
Joined: 2 years ago
Posts: 9
 

Posted by: @iancalderbank

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?

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.


   
👍
1
ReplyQuote
(@william1066)
Reputable Member Member
1333 kWhs
Joined: 2 years ago
Posts: 206
 

@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

 

image

   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

@william1066

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.


   
ReplyQuote
(@iancalderbank)
Noble Member Contributor
3665 kWhs
Joined: 2 years ago
Posts: 643
 

@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


   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

@iancalderbank

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.


   
ReplyQuote



(@iancalderbank)
Noble Member Contributor
3665 kWhs
Joined: 2 years ago
Posts: 643
 

@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


   
ReplyQuote
(@redzer_irl)
Trusted Member Member
561 kWhs
Joined: 2 years ago
Posts: 37
 

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.


   
👍
1
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

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.

 


   
ReplyQuote
Page 5 / 20
Share:

Join Us!

Heat Pump Dramas?

Thinking about installing a heat pump but unsure where to start? Already have one but it’s not performing as expected? Or are you locked in a frustrating dispute with an installer or manufacturer? We’re here to help.

Pre-Installation Planning
Post-Installation Troubleshooting
Performance Optimisation
✅ Complaint Support (Manufacturer & Installer)

👉 Book a one-to-one consultation now.

Latest Posts

x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
Shield Security