Control radiator with wire pilot

Hello everyone, I can't find a topic how to control a radiator with a pilot wire. Does anyone have an example?

What is a pilot wire?

cable for operating controls for comfort, eco and frost protection radiators

What make and model number valves?

Do you mean this LoRaWAN device?

yes it's this device

I don't use it but I believe there are a number of lora related nodes. I suggest searching and also the forum to give you some ideas.

Hi Garry,
radiator iraya with pilote wire IST 04F 031 01
wire oilote => Pilot Wire

I need to pass the downlink frames (frm-payload) but I don't know how to do it with nodered (or with ttn for that matter). I can't find an example with nodered (or in ttn for test by downlink)

Hello now downlink is ok with node function :

let buff = Buffer.from(msg.payload, 'hex');
let base64data = buff.toString('base64')
msg.payload = {
"downlinks" : [{
"f_port": 125,
"frm_payload": base64data,
"priority": "NORMAL"
return msg;

The uplink with mqtt in also but i receive (by example)
msg.payload : buffer[8]
[ 17, 10, 0, 19, 0, 85, 32, 1 ]
how I convert the frame to plaintext (e.g. I need to retrieve the actuator firmware)

What text exactly does that represent?

I downlink this frame : 110000000002

I receive the uplink below :uplink_message:

f_port: 125
frm_payload: "EQoAEwBVIAE="

and out off the node base64 :man_shrugging:

05/03/2024 14:42:39[noeud: debug 122]( : 
msg.payload : buffer
[ 17, 1, 0, 0, 128, 0, 134 ]   <====== 

I don't know if I'm clear enough ?


What exactly is in the frame and what plaintext should it be converted to?

frm_payload: "EQoAEwBVIAE="

Plaintext===> Application name ttn in this sample

Envoyé à partir de Outlook pour Android

So you need to convert "EQoAEwBVIAE=" to "ttn"?

To nodered Colin.

Envoyé à partir de Outlook pour Android

Sorry, I don't understand.

Sorry yes to ttn.

This is not a string.

Printable ASCII chars (typically) start at 32.

17 is a DC1 control char
10 is an LF (Line feed)
0 is null or string terminator
19 is DC3
0 is null or string terminator
85 is U
32 is (space)
1 is SOH control char

Those bytes of data, in my experience, means the values are a portion of some binary format. e.g. perhaps 0+19 make up a 16 bit integer?

If you can point us to docs that spell out what this data means we can help you.

<Hello Steven,
Thanks for your reply.

I start with the codec of the device :
Codec here :
=> Encoder assistant
=> choise a product => Pilot wire (50-70-027)
Choose a function + advanced => Read application name
trame format => 110000008001

This trame is transmitted from nodered (mqtt out) to TTN application (downlink)
A receive in nodered :

downlinks: array[1]
0: object
f_port: 125
frm_payload: "EQAAAIAB"

Application in TTN send uplink (node red MQTT IN)

06/03/2024 14:08:40[noeud: debug 121]( : msg.payload : string[12]

And with a parser in node red i received this :

v3/pilotage-chauffages@ttn/devices/eui-xxxxxxxxxxx/up : msg.payload : Object
item2: ""

I'd like to receive the name of the app name but I don't know how. Sorry I'm a beginner you'll understand it quickly >

Hi, i understand what you are doing, but what I said still remains true: The Base64 data you are showing us is simply not a valid string.

I do not know the ttn or how it works but at a guess, you are doing something wrong and that reply means "bad data format expected base64 string" or "not permitted" for all I know?

You will need to clarify with someone who knows TTN - are you using the right topic? Are you sending the correct format payload to request this information?

for starters, that page states:

The frame to send (port 125) is available below :


But what is port 125? It is certainly not an MQTT topic!