Skip to content

edterbak/NodeRed_Heishamon_control

Repository files navigation

Latest version: 24.03 Stable release

ko-fi


About v24 Stable
This flow version works best with heishamon firmware 3.1 (or higher).
In fw3.1+ there are new additional topics available of which two are used in the flow. I have been using fw3.1 for a month now without any issues.
Note: There is a manual override available for the two new topics. But This flow will work with fw2.0, fw3.0 as well after these two topics have been set.

Here is a list of up-to-date firmware's for heishamon. https://github.com/Egyras/HeishaMon/tree/master/binaries


There are also some breaking changes with external sensors. They need to be reconnected to the right [WP Input] tab AND configured in the dashboard (SYSTEM > SENSORS).

Table of Content


Introduction

Heishamon hardware is created by Egyras. AWESOME job!
https://www.tindie.com/stores/thehognl/
It is able to communicate directly with a range of Panasonic heat pumps.

  • The heishamon board can receive information from the Panasonic heat pump and forwards it to a MQTT-broker.
  • The heishamon board can receive commands from the MQTT-broker and sends it to the Panasonic heat pump.

There are multiple options to connect to the heishamon and control your heat pump. As long as it is able to read and send MQTT information.

  • 1: MQTT > Home Assistant
  • 2: MQTT > OpenHab
  • 3: MQTT > Domoticz
  • 4: MQTT > Node Red
  • 5: MQTT > ... any other automation platform

All of the above options are ways to interact with the heat pump. (And all are good if your happy with it)
I have chosen Node Red (=NR). I already use a lot of NR functionality/automations combined with HomeAssistant. In many cases NR is the controller and HomeAssistant (=HA) is just the graphical front. This CAN be different if you want, as HA is also able to send/receive MQTT messages.

(Just to emphasize; because of the awesome design choice of the heishamon board, it presents everything in the MQTT standard, and that’s why it is able to interact with ANY software that can handle it.)
BUT...again, I choose the NR option because if I update or restart HA, the controller and automation's just continue.
I have chosen option 4 in the list above. In this GIT-page you can read about the NR functions and dashboard I built to control the Panasonic.
Back to top

Changes in v24.00 compared to v23.00 stable

  • Breaking change: New flow-tab "WP Input". All external sensors and triggers are now managed from this tab.
  • Breaking change: External sensors used with functions are now handled partly though the dashboard. (DASHBOARD > SYSTEM > SENSORS)
  • A lot of stability issues and bugs have been resolved. Thanks to all issue reporters and the Dutch www.tweakers.net users
  • First boot of new installations has been improved a lot.
  • The flow works correct using "Compensation Curve" or "Direct" mode.
  • The flow works correct using zone control "Water Temperature", "Thermostat (External)", "Thermostat (Internal)" or "Room sensor".
  • Resource improvement; CPU usage has been decreased by ~30%.

As always, enjoy your heat pump!

/Ed ter bak
Back to top

What can this Node Red flow do for you?

Only using the default room controller does not let you see historical data easily. This controller is not extremely user friendly as well. This Node Red dashboard offers a lot of ease for that with charts and bar-charts.

Additionally, I have built in a lot of extra functions to do specific tasks or automation's. More about that below...
Back to top


What do I need to make use of this flow?

  1. The heishamon module working with your heat pump.
  2. A functional MQTT broker. (Mosquitto/HiveMQ/EMQX/etc.)
  3. A functional Node Red instance.

1. Obviously, you need the heishamon pcb module connected to your heat pump and have it functional. Without this module, you can stop reading. 😄 See this site to get one: https://www.tindie.com/stores/thehognl/

2. You can use any broker that is 24/7 available. You can install it on any system, as long as heishamon and the broker can communicate with each other and the Node Red can communicate with the broker.
3. You can install node red on a lot of devices. It can be directly on Linux or a device like Raspberry Pi. You can also run it in a container (self hosted) or within Home Assistant (add-on). For all options see: https://nodered.org/
All of these options are good, as long as the Node Red application can communicate with the broker and the Node Red instance has persistent storage enabled.
The Node Red flow is stand-alone so: You do not require a database. You do not require HomeAssistant. If you have HomeAssistant also connected to heishamon >> Disable all related automation's!! 2 captains on 1 ship does not go well....

Back to top


Requirements on the Node Red install:

A - Persistent data folder.

B - Adjust settings.js.

C - TimeZone setup

D - Required Node Red libraries/pallets

But first; Why?
I found that after reboot of node red, the logic did not have all variables populated yet. This caused the system not to start automatically where it left off before reboot.
To be honest, this does not present a major problem to me, but it will reduce the overall WAF significantly when I don’t notice something like this in time. So, I had to look for a solution to make the programmed setpoints, and all other variables, stick. This is how I achieved that. (Maybe there are better options, feel free to help me on this 😊 )
Please also note that this flow writes to disk every 5 minutes. Storage on sd-card is not advised because of possible high wear levels.

A - Data folder

Make sure Node Red is installed with persistent local volume available.
If you have Node Red running directly inside Linux (not using docker) or on a RPI, this is already okay and you don't need to create a data folder. If you have Node Red running in a docker container, make sure you install with this parameter:

-v FOLDER:/data

Here you can choose the name "FOLDER" yourself which will be the local storage folder of NR.

If you are node red withing Home Assistant, which is a HA controlled container, follow these instructions: https://github.com/edterbak/NodeRed_Heishamon_control/tree/main/HomeAssistant

B - Adjust settings.js

You need to change some settings in settings.js
Why? If you reboot node red, you will notice some of the variables are not populated yet. Setpoints we have programmed earlier are gone. To make them persistent after reboots, you have to enable the local storage option. Below I have set the flush interval (write to disk) to 300s.

In a (proxmox) docker install, you can find this settings.js file in:

/var/lib/docker/volumes/FOLDER/_data

where 'FOLDER' is your own folder name chosen in part A.

On a Raspberry Pi, you can find this settings.js file here:

/home/pi/.node-red/settings.js".

Search for contextStorage: Put in the text as below:

contextStorage: {
	default: "memoryOnly",
	memoryOnly: { module: 'memory' },
	file: { module: 'localfilesystem', config: {flushInterval: '300'}, }
},

Reboot Node Red for the changes to load.

ATTENTION:
After you have done this, and you seem to have it operational, be sure to test if all settings stick after a reboot of Node Red. Things that should stick are: Virtual SP (Ta), Function toggles on the main page, Setpoints in WAR function/graph. Setpoints for RTC function/graph, Heat Pump power toggle on/off If this is not the case for you, you either need to correct this in settings (like given above), or choose not to use this NR flow, or even accept manual action needed after power loss situations.

C - Timezone setup

If you use a linux version, make sure you set your correct timezone. You can do this by running this command from CLI root and go through the setup process.

dpkg-reconfigure tzdata

You can check if it was successful by executing this command

timedatectl 

If you are running Node Red from within HomeAssistant, follow the instructions from HomeAssistant on how to do that.

D - Required Node Red libraries/pallets

To make use of the dashboard functionality, you need to install the dashboard library.
https://flows.nodered.org/node/node-red-dashboard
The scheduler makes use of the moment lib.
https://flows.nodered.org/node/node-red-contrib-moment
node-red-contrib-noop is used as well
https://flows.nodered.org/node/node-red-contrib-noop
node-red-contrib-dashboard-bar-chart-data (from v13+)
https://flows.nodered.org/node/node-red-contrib-dashboard-bar-chart-data
node-red-node-smooth (from 20+)
https://flows.nodered.org/node/node-red-node-smooth

Back to top

Flow installation:

Dashboard: http://IP:1880/ui (For HomeAssistant: http://IP:1880/endpoint/ui) Flows: http://IP:1880/#flow
  • In NR, click on the hamburger icon (three horizontal stripes) in the top right corner
  • Select Import
  • Copy/past the content of the .JSON file from this GIT. (or select a file to upload and select the flow.json file offered here)
  • Click on Import

Once imported, you need to adjust the settings of the MQTT server.

  1. Add the correct information of your broker
  2. Use QOS: 0 or 1 (maximum for heishamon).
  3. Use MQTT v3.1.1 (maximum for heishamon). Click on the hamburger icon and then configuration nodes. Find the MQTT broker part, double click it and change to your settings.

Important >> After import and correcting the MQTT settings, and you might want to connect custom external sensors.
By default the native Panasonic sensors will be used. But you can connect your custom sensor. For this go to the flow page to the tab [WP Input], the section indicated below in purple section.
You can also connect external signals to the flow in this tab.

** Note 1: The Panasonic Room Thermostat is not very accurate which might cause bad temperature control.
** Note 2: The Outside temperature sensor on the Panasonic might be subject to heating up due to direct sunlight. This can also have a negative impact on the functions. Personally I use OpenWeatherMap source for outside temperature, but anything is possible.

Back to top

Opening the dashboard

You can find the link to the dashboard like this:

Back to top

How to personalize or customize

It is advised to create a separate tab for your external sources. Any source available in Node Red can be conditioned and used as a sensor in the functions. If you do this in an 'personal tab', then it is likely easier to update later to newer versions. (no guarantees of course)

Back to top


How to create a backup of your current flow

There is no easy solution currently know by me to update only changed nodes or flows.
First: Create a backup of current version. Select all tabs by holding CTRL. Then in the right menu select Export > Download.


RightMouseClick on the GIF and select open in a new tab to see it full screen.
Back to top

How to update to a newer version

Update to newer version:
I found it is easiest to:
1, remove the tabs, WP MQTT, WP Dash, WP Control, WP Solar, WP Scheduler completely
2, remove all ui_base, ui_group and ui_tab references from the flows.
*Keep the MQTT (x.x.x.x) and Home Assistant references.
3, import new version
4, correct setup, eg. MQTT server.
5, re-connect your personalization’s.
*Not nessesary if you used a WP_Personal tab (see FAQ.md).
If there are better ideas about this, please inform me.


RightMouseClick on the GIF and select open in a new tab to see it full screen.
Back to top


The Dashboard

Home

This is the home page of the dashboard.

Visible is a short overview of the current status of the heat pump.
You can enable / disable, see the status and the result of each custom function.

In the column "HEAT" there are a number of custom functions. These functions build on top of each other and you should read them from top to bottom.

  1. Starting point is "Shift curve" or "Water temp." value. The [setpoint] for Compensation curve or Direct mode.
  2. When the WAR function is enabled, it replaces the [setpoint] from 1.
  3. When the RTC function is enabled, it corrects the [setpoint] from 2.
  4. When the SoftStart function is enabled, it corrects the [setpoint] from 3.
  5. When the Nightreduction function is enabled, it corrects the [setpoint] from 4. (Note: night reduction will be deprecated soon!)

More details and screenshots of each of the dashboard tabs are present in the collapsed section below.
Back to top

Settings


Here are some basic controls of the heat pump. (Not all, because the flow is designed for 1 zone config. )

Custom functions

Back to top

Pumpspeed


This function allows you to set dynamic pump speeds, depending on the current operation.
Set a different maximum water flow during DHW operation.
Set a different maximum water flow during HEAT operation.
You can set a default (low) maximum water flow. This is active when both operations are inactive (with active compressor).

Note: Do not set the maximum flow too low. It causes irratic behavior and a LOT of stop/starts.

Back to top

WAR

weather dependent temperature control.

! This function is only available when the heat pump is set to "Direct" mode. When the heat pump is set to "Compensation Curve" mode, the WAR function is automatically greyed out and disabled.

Question: Why have you created the same custom function while Panasonic provided the same function as "Compensation Curve"?
Answer: The native Panasonic implementation is limited to the in-built thermocouple or connected external temperature sensor. Both are affected by direct sunlight and show incorrect values then. The custom function is able to use any sensor which is able to produce values into Node Red. Personally I use "OpenWeatherMap" as a source. But any local sensor can be used.

You can import / export settings to the panasonic heat pump.

Back to top

RTC: (Room Temperature Correction)

This function adjusts the setpoint of the water depending on the room temperature.
When the temperature in a room gets too high, it will add "-1" to the current setpoint of the water temperature or shift.
You can set the room target temperature, the temperature limits and you can set the correction to be performed.

Additionally it is possibility to use automation's. To have the pump shut down when above a trigger temperature and turn back ON again below a revert temperature.

Back to top

SoftStart:

Default behavior of the heat pump is when it starts up the compressor will go to high Hz for a period. Only when the returning water temperature approaches the setpoint, it ramps down the Hz and get more economic.

If the SoftStart function is enabled and the compressor starts, the water setpoint will be lowered. This should cause the compressor to ramp the compressor down quicker, within minutes. When ramp down of the compressor frequency has occurred, the HEAT setpoint restrictions will gradually be lifted.

There's an add-on to the SoftStart called SoftStart-Quietmode

SoftStart Quietmode

This is an extra (add-on) function to reduce the compressor frequency at startup even more.
Some heat pump models will start a run and always go up to 45 Hz in de first minute(s) regardless of the target temperature.
This Quietmode (when switched on) will put the heat pump in the Quietmode (level 3) at rest and waits till the run starts.
When the compressor turns on, the Quietmode will remain active for an amount of time and after this time switches back to the previous Quietmode (if set).
You can specify this fallback time in the Setup - Quietmode time (default 5 min).

Back to top

Solar²DHW:

The aim of this function is to increase efficiency (and save cost) by utilizing solar energy as much as possible. When there is solar energy in abundance, you can tell the heat pump to use that energy to heat up your DHW water tank. To determine if there is enough solar energy, you need any form of power measurement. This can be a P1 power meter, or a meter directly behind your panels.

Back to top

Scheduler

You can enable/disable a schedule, multiselect a day of the week, specify the time (hour + minute) and give the schedule a name.

I have added an option to create 10x schedules for the following actions:

  • Toggle heat pump power on / off
  • Set water setpoint (heat shift / heat direct)
  • Set room setpoint (RTC function)
  • Start Force DHW runs
  • Start Sterilization runs
  • Set Quiet modes
  • Set operating modes
  • Toggle a custom function on / off

On each line of the scheduler, you can indicate if the heat pump should be powered on for the task or not.

A recent addition to the scheduler is the possibility to add conditions for each of the scheduled tasks.
Note: Make sure the native panasonic scheduler (in the controller) is disabled to prevent unexpected behavior of the flow.

Conditions


Each line in the condition section is a blocking condition. If the condition is met, the scheduled task will be blocked.

Back to top

Charts

Temperature

Back to top

Energy

Back to top

Degree Days

Back to top

System

In this tab you have multiple sub-sections.

  1. LOG: See 1000 lines back of all logged events.
  2. HARDWARE: Basic readings of the hardware configuration.
  3. SENSOR: Select the external or 1wire sensors for custom functions.
  4. MQTT: Enable / disable general MQTT block. Basic reading of MQTT messages.
  5. MENU CONFIG: Enable / disable parts of the dashboard menu.
  6. SYSTEM HEALTH: Extended logging and system information.

Back to top


FAQ

Q - Can I forward the information coming mqtt messages from the heat pump towards my InfluxDB database?

Yes. There is a separate flow available to download. You can find it in the folder "heishamon2influxdb". It requires an additional contrib (node-red-contrib-influxdb). Install the contrib, download the flow, import it, configure the influxdb and your set. You do not need Domoticz or Home Assistant fot that now.

Q - I use the Node Red Addon in Home Assistant, how to go to the Node Red Gui for editing?

Most users should visit via a browser: 'http://Your_NodeRed_IP:1880/ui'
In my case this wasn't working, perhaps due to the use of the DuckDNS addon.
Use something like 'https://your.duckdns.org:1880/endpoint/ui/' instead.

Q - Can I use both WAR and RTC at the same time?

Yes. If you have both enabled, the WAR function first calculates the SP (Setpoint) depending on outside temperature. Next the RTC function will correct that SP(war) depending on the room temperature. The only SP going to the heat pump will be SP at the end of all the calculations/corrections.

Q - If I switch off the heatpomp via the Remote Controller will it disable the automation from the Node Red flow also?

No, both will work separately. If you turn the heat pump on via the Remote Controller, the pump will switch on.
Keep in mind however that if the Node Red flow decides it time to adjust some settings it will act accordingly and overwrite settings.

Q - I know the function SOFTSTART is experimental, but can you explain what this function does?

The idea behind this function is that when the compressor is just started, the frequency of the compressor goes up to 45+Hz. Well out of the efficient range. This is caused by the inner controller of the heat pump. When turned on, it 'wants' to see the impact of the compressor. It looks at the returning water temperature for this. Only when the water temperature returning towards the heat pump is nearing the target temperature, it will start to lower the compressor frequency and get in a stable/efficient mode. Throttling...
This late throttling behavior can be quiet energy consuming, it can cause the heat pump to generate too much heat at the start and turn off again.

This SOFTSTART function, when enabled, looks at the moment when the compressor is on, and lower the setpoint to just above the temperature of the returning water. This will in theory cause the heat pump to start throttling down a lot quicker.
This function can be useful directly after defrost cycles when the pump starts again, or when the temperature difference between outside/inside is getting smaller.

Q - How do I add my Entities from Home Assistant like living room temperature?

In the Node Red Gui (http://Your_NodeRed_IP:1880/ui) you will have to go to the [WP Input] tab;
In the square "REQUIRED INPUTS FOR FUNCTIONS" you will have to add a node (left pane under Home Assistant) named "Events: state".
You can drag and drop this in the square mentioned first.
It will replace the "TOP33 - panasonic_heat_pump/main/Room_Thermostat_Temp"-node eventually, which you should disable if not using.
Select the newly created node, then double click to open up the properties window;
Give is a name of your choosing like 'LivingRoom_temperature'
In the Entity box you can try to find your sensor entity (assuming you have already setup the MQTT settings earlier).
Make sure that in the 'Output properties' you have a MSG.PAYLOAD = EVENT STATE
Check the box 'output on connect' and make sure at the bottom this node is enabled.
Finally press DONE to close the properties dialog and connect your node to the function node 'set.T_woonkamer_BT'

Q - How to use a dark theme in the dashboard?

In the Node Red Gui (http://Your_NodeRed_IP:1880/ui) press the top most right arrow-down sign and select dashboard;
Now press the Theme-tab and pick your style.

Q - How to update flow to latest version and keep my inputs, MQTT and Home Assistant settings?

Create a personal tab (WP Personal) and place your inputs here (P1, Temperature sensors)
Give those inputs.sensors each an own [Link Out] node
Connect those [Link Out] nodes to the already existing [Link In] nodes by double clicking the [Link Out] node and select the corresponding one from the list.
Some images to explain this:



Follow the update procedure from the Readme as described here: https://github.com/edterbak/NodeRed_Heishamon_control#how-to-update-to-a-newer-version

Back to top


Release changelog

All changelog items from v23.00 - v24.00 are collapsed below. only the latest changes (v24.00+) will always be shown.

[2023-06-06] v23.01 Stable. Changes:

  • [FIX] Export error. A missing connection in WP Manager tab. For some reason this connection did not want to be exported, no matter what. Remove + new wire solved it. (= NR Bug)

[2023-06-12] v23.02 Stable. Changes:

  • [FIX] Cool mode in Home Dashboard. Kept showing incorrect HEAT setpoint. Now it is correct.
  • [FIX] Cool menu area. You now see [setpoint lower limit] more clearly
  • [FIX] SoftStart function + cool mode kept showing heat setpoint in the graph. This has now been fixed.

[2023-07-09] v23.03 Stable. Changes:

  • [FIX] Cool function. Complete rewrite of the cool function. I expect no more NaN for sending cool setpoints.
  • [Enhancement] Added manual lower limit for the cool function.
  • [Enhancement] Setpoint changes from cool function will not be sent when heat pump is off, or cool is not in operating mode.
  • [Enhancement] Updated HELP in cool section.

[2023-07-20] v23.04 Stable. Changes:

  • [New feature] Add conditions to the scheduler. This is a nice addition to the existing scheduler.

[2023-07-22] v23.05 Stable. Changes:

  • [New feature] Add to scheduler the option to set the DHW setpoint temperature. (#120)

[2023-08-21] v23.06 Stable. Changes:

  • [New feature] Scheduler - Conditions now allow multiselect.
  • [FIX] Scheduler - after reboot the conditions were not shown in dashboard #126
  • [FIX] COOL function - [error] [function:COOL function] is resolved #127

[2023-08-21] v23.07 Stable. Changes:

  • [FIX] Scheduler - Due to grouping the scheduler did not function anymore. This should now be improved a lot. #128
  • [FIX] Home dashboard did not show correct temperature behind 'Water temp'. Related to #123.
  • [FIX] Detection on persistent storage should now work properly.

[2023-09-01] v23.08 Stable. Changes:

  • [FIX] Scheduler - There seems to be a NodeRed bug in the JUNCTION functionality during export/import. I have now removed it from the scheduler tab. I will start replacing the junction nodes with other nodes due to this crazy issue. For now, it seems that all is working. Sorry for the possible hassle this might have caused. :( #128 Update 2023-09-02: v23.08 is stable again. Confirmed.

[2023-09-01] v23.09 Stable. Changes:

  • [FIX] Pumpspeed function not behaving nicely at times. #118 Now fixed.
  • [FIX] Removed operation mode 7 + 8 as they never have been functional at all.
  • [ENHANCEMENT] Scheduler - Item nr #121. Add Scheduler option to turn on/off different functions (WAR/RTC.. ) See image below.


Back to top

[06-12-2023] v24.01 Stable.

  • [FIX] SCHEDULER - In some situations the task "Change Operating mode" did not get executed. This is now fixed.
  • [FIX] Corrected [SYSTEM] > [about] text. It was still showing changelo of v23.xx

[06-12-2023] v24.02 Stable.

  • [Enhancement] SoftStart function. It was doing a generic round vs round-UP to calculate the corrected setpoint. This resulted in frequent compressor stops. Now this has been significantly been improved.
  • [Enhancement] Boost DHW now function. It did not revert operating mode, and did not revert the DHW setpoint. Now it does both.
  • [FIX] Increased the compatibility with new K/L Panasonic heat pump series. 6 new topics added to the flow to read.
  • [NEW] Add connection check with the broker. You will find this under [SYSTEM] > [MQTT]
    Pressing [TEST] will send a message to the broker. The flow also listens to this topic. If the message is NOT received withing 10 seconds, an error line will be added to the [SYSTEM] > [LOG] section

[14-01-2024] v24.03 Stable. Happy new year everyone!

  • [New] Added SMOOTH function to the input signals TOP14 (Outside_Temp) and TOP33 (Room_Thermostat_Temp). Average is taken over 4 measurements. On top of THAT result, there is now a rate limiter of 1 measurement per 5 minutes. For this purpose more than enough.
  • [New] Added new input signal for start-DHW. This version is without 'forceful mode'
  • [FIX] The efficiency graph now shows COP (HEAT) over a longer period.
  • [FIX] The new heatpump series K and L should now be supported. There was an error in the topic.
  • [FIX] The WAR function showed incorrect temperatures (20c). This is now fixed.

Back to top


Acknowledgments

Back to top

Donations

By multiple users of the flow, I have been asked to put up a donation on the site. I was never that fond of that idea, because it is just my hobby and I like doing it. In addition, I do not want to change the expectation of users, the open character of the communication here (moving from one enthusiast>enthusiast to a supplier>client relationship).
This is just a hobby, and I do not expect I can quit my daytime job anytime soon.. Ghhehehe.. And of course it will stay like this.
But the constant raising eyebrows of my social circle why I don't have such a button (because so many people do it), and the curiosity about how many users actually want to make a donation have won me over to try such a button. Let's see.

But most important. In no way you are obliged to make any donation!! The flow remains completely free, free to use as you want, as always at your own risk.

ko-fi

Back to top


My request to you:
When you choose to use/try this (Feel free to do so), PLEASE give feedback on any issues you encounter. You can use the [Issues] section to report to me.
When making an issue, please give as much info as you think is required to solve this. Steps to reproduce. Maybe a screenshot etc. Reporting this will help me help you :)
Thank you in advance.

Back to top

(back to top)

About

a Node Red flow to interact with Heishamon (a panasonic heatpump through an ESP board)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published