# Change colour of button

**URL:** <https://discourse.nodered.org/t/change-colour-of-button/83842>\
**Category:** General\
**Created:** [19 December 2023 22:32 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842 "2023-12-19T22:32:45Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sirhc](https://avatars.discourse-cdn.com/v4/letter/s/b77776/32.png) [@Sirhc](https://discourse.nodered.org/u/Sirhc)\
**Post date:** [19 December 2023 22:32 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/1 "2023-12-19T22:32:45Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 December 2023 22:53 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/2 "2023-12-19T22:53:51Z")

</div>

Does it make a difference if you declare them as objects?

```auto
let secondpayload = {}
let thirdpayload = {}

```

I don't like the idea of calling them blah **payload** since a message != it's payload

> [@Sirhc](#):
>
> thirdpayload = { colour: { switch\_colour }};

```auto
let msg3 = {}
msg3.colour = switch_colour

```

---

<div class="post-metadata">

**Author:** ![Sirhc](https://avatars.discourse-cdn.com/v4/letter/s/b77776/32.png) [@Sirhc](https://discourse.nodered.org/u/Sirhc)\
**Post date:** [19 December 2023 23:17 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/3 "2023-12-19T23:17:02Z")

</div>

No that didn't do it, now I get an "undefined" in the payload.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 December 2023 23:32 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/4 "2023-12-19T23:32:58Z")

</div>

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

> [@Sirhc](#):
>
> 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.

---

<div class="post-metadata">

**Author:** ![Buckskin](https://avatars.discourse-cdn.com/v4/letter/b/b9e5f3/32.png) [@Buckskin](https://discourse.nodered.org/u/Buckskin)\
**Post date:** [19 December 2023 23:49 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/5 "2023-12-19T23:49:37Z")

</div>

> [@jbudd](#):
>
> ```auto
> let secondpayload = {}
> let thirdpayload = {}
> 
> ```

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?

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [20 December 2023 06:45 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/6 "2023-12-20T06:45:35Z")

</div>

Shouldn't this ...

> [@Sirhc](#):
>
> secondpayload = { colour:{switch\_colour}};

... be this...

```auto
secondpayload = { colour: switch_colour };

```

... given that you defined ...

```auto
let secondpayload = {}

```

... before (as @jbudd proposed)?

---

<div class="post-metadata">

**Author:** ![Sirhc](https://avatars.discourse-cdn.com/v4/letter/s/b77776/32.png) [@Sirhc](https://discourse.nodered.org/u/Sirhc)\
**Post date:** [20 December 2023 08:18 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/7 "2023-12-20T08:18:15Z")

</div>

Yes you are correct, I also worked that out a few hours ago 🙂 thanks for the reply!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [3 January 2024 08:18 UTC](https://discourse.nodered.org/t/change-colour-of-button/83842/8 "2024-01-03T08:18:53Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
