I have a couple of flows set up as follows:
(TCP Client) -----> (Client Function) -----> (TCP Client Out)
(MQTT) ----/
(Inject) ---/
(Status) --/
(TCP Server) -----> (Server Function) ------> (TCP Server Out)
\--> (MQTT)
The client is connected to a smart thermostat and the server processes data from the outside world. The only communication between the two is via MQTT.
The Inject
node is used to periodically send a request to the thermostat otherwise it will close the connection.
The problem I have is that the Client Function
has no knowledge of the TCP Client
session information until it receives at least one packet, At that point it can save it and then use it on messages generated from MQTT
and Inject
. Unfortunately it will not receive data until it has sent something and if it sends something without the msg._session
set then, according to the documentation:
If
msg._session
is not present the payload is sent to all connected clients.
This means that the first message intended for the thermostat will also get sent to TCP Server Out
.
The only solution I can see is for the Client Function
to somehow get the session information from TCP Client
after the client has connected.
Is there any way to do this?