Sirhc
1
Hello
I have the following function which is supposed to set a msg.colour payload to a specific colour for a button that the function feeds in the flow.
` var switch_colour = "";
var secondpayload = "";
var thirdpayload = "";
if (msg.payload.solar_systems[0].mode === 0) {
switch_colour = "#1db954";
msg.colour = switch_colour;
} else if ((msg.payload.solar_systems[0].mode === 1)) {
switch_colour = "#1db954";
secondpayload = { colour:{switch_colour}};
} else {
switch_colour = "#ff0000";
thirdpayload = { colour: { switch_colour }};
}
return [msg, secondpayload, thirdpayload];
`
But I am getting the following error: Node tried to send a message of type string
Any idea what I am doing wrong?
jbudd
2
Does it make a difference if you declare them as objects?
let secondpayload = {}
let thirdpayload = {}
I don't like the idea of calling them blahpayload since a message != it's payload
let msg3 = {}
msg3.colour = switch_colour
Sirhc
3
No that didn't do it, now I get an "undefined" in the payload.
jbudd
4
Where do you get an undefined payload?
I thought you wanted to set msg.colour? msg.colour is one property, msg.payload is another.
All we know about your flow is
As @jbudd says just change your function to this and it works. I take it that you have set the function node to 3 outputs?
Shouldn't this ...
... be this...
secondpayload = { colour: switch_colour };
... given that you defined ...
let secondpayload = {}
... before (as @jbudd proposed)?
Sirhc
7
Yes you are correct, I also worked that out a few hours ago thanks for the reply!
system
Closed
8
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.