Recommended hardware setup to switch resistors to simulate/change PT1000 temperature probe

Setup: Raspi 4 with native HA, all GPIO ports of the Raspi are free to use. Heating system has a PT1000 temperature probe that is mounted outside of the house and I cannot change that. Currently the PT1000 measures the outside temperature and triggers the heating/cooling according to it.

Using HA and the data from my energy system I would like to simulate different temperatures to the heating system in order to get it into e.g. cooling mode. So e.g. in the morning of a hot summer day it is 20°C outside which is too low for the cooling so it stays off. But: As I can pull the weather forecast in HA, I would like to increase the temperature measurement by increasing the resistance of the PT1000 by putting a resistor in series to the PT1000 probe. Bigger resistance, higher temperature, cooling starts working.

Ideally, if all my HA systems fail / have no power, the temperature probe should work as original, so with no additional resistor.

What is a recommended way to switch resistors? Using the GPIO pins from HA seems to be tricky, right? Would it be better to use a relais board? Do I have to buy a special board that opens the contact on power so the resistor is short when there is no power at all?

That’s an unusual ask I would think. I haven’t seen a situation where a relay is used to add or subtract resistance to a circuit, but it’s not unfeasible. Normally that’s taken care of using discrete components or using a decade box, but your objective is clearly to have a mechanical fallback to the default function in the event of a system-loss, so I can see where you are coming from.

Looking at a resistance table for the PT1000 I notice that the device appears to be linear in terms of the resistance over temperature, but I see another minor problem though:

The default resistance at 0C is 1000 ohm, at 10C it’s 1039.0 ohm, at 20C 1077.9 ohm and 30C it’s 1116.7 ohm. Problem being, if you add a relay the contact resistance is likely to add very slightly to this and the probe will read higher than designed (probably not a significant issue, but bear it in mind). The delta resistance in 1 degree C is going to be 3.9 ohms - that’s pretty small.

Another item to bear in mind is that the RT1000 might be returning a voltage straight back to the boiler rather than a resistance. You can probably tell this by looking at how many pins/wires are within the lead out to it, but if they are more than 2 or 3, it indicates that it’s possibly operating in a Wheatstone bridge and you’d need to be simulating that using a DAC (module?) on the rasp-pi4.

Anyhow, onto achievable goals. If it turns out that the external sensor is being read as a resistance, you may be able to use a single pole relay (SPST) to change over from the external sensor to a variable resistance simulated sensor by creating a paralleled potentiometer and resistor.
I played around with some values and found that a 2k ohm resistor (2x 1k ohm) in parallel with a 10k potentiometer would give you a workable range of 670 ohms right up to 1,700 ohms over the full movement of the wiper. That might provide you with a reasonable granularity which you need to simulate the external source and also provide the fall-back when the PI isn’t connected/functional. You could add in a second 1k potentiometer as a fine-adjustment, or play around with the values to create mixed series & parallel circuit which is better tuned.

To answer the questions at the bottom:

Using the GPIO pins from HA seems to be tricky, right? Would it be better to use a relais board? Do I have to buy a special board that opens the contact on power so the resistor is short when there is no power at all?

I’d do this using a relay attached to the GPIO with a power transistor and back-emf diode added for protection. Then initialise the relay once the PI is up and then drop the relay (using the pull-up or pull-down circuit on the PI) when the PI goes down. I don’t use the PI, but this seems do-able on ESP32 anyway.

1 Like

Many many thanks! Yes, this is a method even the manufacturer of the heating system said “whoah, I never thought about this, but yeah, this should work” - unfortunately this is the only option to hack the heating system without breaking into the board.
Yes, it is connected with two wires only, so direct resistor measurement. TBH I also wondered why/how such minimal resistor changes are used for heating control where some 0.1 degrees can change a lot.

The point you mentioned about the minimal resistor value made me think about the impact of the detour that the regular signal would have even when the relais is closed, so just the wiring would add a little bit and so I would already increase the temperature even when it is NOT going through the additional resistor.

If it helps to have the GPIO ports next to it, I could place the Raspi just next to the heating, connect the GPIO with boards like

or

in the way you described?

Of course next to the heating is RJ45, WLAN and Zigbee, so alternatively I would search for a network-controlled relais board I could trigger through HA? Like https://de.aliexpress.com/item/1005005130354236.html ?

Hey @Cabletwister,
Interesting project, I am definitely interested to see how you proceed.

I had a similar use case, technically different though. My heating system works on a 0 to 10V voltage input “signal” to define the set temperature. I’ve come up with a solution to simulate that voltage from an ESPHome programmed ESP32.

I decided against leaving any legacy component (the PT1000 in your case) in parallel. As a safety measure my ESP32 commands a safe set heating temperature when Home Assistant is not connected. Otherwise I have to say and raise as a thought to you: My home is so deeply linked to my home automation system that I’d rather fix the issue why Home Assistant does not do its job. The alternative - massively complicated fallback options like a PT1000 in parallel - are not justified. Barely my humble opinion.

That said:

  • Did you think about a dedicated microcontroller to circumvent issues with the RaspberryPi or HA?
  • Did you consider a safe minimum resistor?
  • Would it be an option to physically switch back to the PT1000 in case your RaspberryPi or other addition has issues?

If at all acceptable for you, my personal recommendation would be to replace the PT1000 by something that satisfies your needs while being a clean, deterministic and maintainable solution overall

1 Like

Good points, lots of food for thinking again.

My situation is: The heating system is still “on warranty” so I cannot change it internally, i.e. I have two pins where the original PT1000 is connected. The PT1000 is installed outside, presumably with the cable fixed to it, so I cannot even re-use the cable and e.g. just move to a different sensor.

The idea is to have the original sensor in use for 90% of the time and just add a bit of boost IF temp-forecast>35 AND Photovoltaics>2.000W

So the switch back to PT1000 should be just regular, especially in the 45 weeks of the year when I need no cooling. BUT your point is very good to use this opportunity and move to a proper control.

Hacking the heating by faking strange outside temps may sound weird at first but is more or less the only way to influence the functionality in a “smart” way, so based on knowledge (weather forecast) and maybe user actions (button pressed, presence, etc).

Therefore I don’t see it as an advantage for my use case (!) to have a dedicated microcontroller - it would need to much input from HA.

What I will think further is options to get the current outside temperature into HA. Good point. This could start as reference signal and maybe end up as main input for a resistor completely controlled by HA.
Worst thing I could think of is the relay being stuck between the two positions, giving no outside temp signal at all. That would really annoy the heating system and me.

The other relays would be used e.g. for the hot water circulation that I could trigger through a Zigbee Button. This would save water & energy.

Have you checked Ohmigo.io ?

They seem to have a device that generates any type of RTD temperature sensor, including Pt100,Pt1000, NTC etc and its now available with Home Assistant integration.

Some have used it also directly with its integrated Web GUI.

In my application I simulate temperature to reduce electricity consumption of my Heatpump during hours when Nordpool spotprices are high.

1 Like

Wow this https://www.ohmigo.io/en/product-page/ohmigo-ttl?currency=EUR is really great! Did not see it yet, thanks for the hint!

Furthermore: Everybody please check if their heating system can be switched to “external 1-10V control”. In the meantime (only a few days ago) I have learned that my heating system allows this, so it has two connectors with two wires each. One is for the general working mode (heating, cooling, off) and one is for target temperature. But: Then the whole control MUST be done externally. So this is not the “hack the PT1000 a bit to switch on the AC” but it is “build a full system control and take over responsibility”

2 Likes

Is the external PT1000 sensor not just used to adjust the heating flow temperature based on matching against a preselected heating curve? i.e. as it gets colder outside your flow temp increases automatically to create the same heat up time for a room?

In my (previous) Potterton system the room thermostats have a stepped rotary knob QAA70 that switches in various resistors. I have used a similar approach to yours on the thermostats to electronically adjust the sensed room temperature in each room to override the on/off boiler firing and the ‘amount’ differential from current temperature also adjusted the flow temperature.

It depends a lot on the system. My room thermostats check if room temperature is lower (heating mode) or higher (in cooling mode) than the selected room temp so they switch the 1-4 230V heating switches open or closed. This just depends on room temp, nothing else. The heating goss to heating only below 15 degrees and then increases heating temp according to outside temp and heating curve.

Other systems seem to be completely different.

My options are: Either just increase/lower the outside temperature just a bit or take over full control over the system. At least for now I would go with the first option.

Hello, for information I am doing something similar using an Esphome 4ch wifi relais module directly controlled with Home Assistant.

https://de.aliexpress.com/item/1005003332886159.html?spm=a2g0o.order_list.order_list_main.73.21ef5c5fK0P4md&gatewayAdapt=glo2deu

If you only need one resistance addition, esp devboard flashed with esphome and relay module is probably easiest.