# TypeError: Cannot read property 'brightness' of undefined

**URL:** https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764
**Category:** General
**Created:** [17 March 2021 10:20 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764 "2021-03-17T10:20:15Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 10:20 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/1 "2021-03-17T10:20:15Z")

</div>

Hi,  
I'm using node-red-contrib-googlehome to connect my google home with node red and i have a problem  
when using a node that simulates color light the function node that is after it throws this error: "TypeError: Cannot read property 'brightness' of undefined". And i dont know why because when using a debug node and setting it to display msg.payload.params.brightness it show right value. Even when using a function node that has:"msg.ledbrightness=msg.payload.params.brightness;"code inside it no error is shown. Please help!  
Here is code from my function node that is throwing error:

```auto
if (msg.payload.params.color != undefined){
    msg.payload=msg.payload.params.color.spectrumRGB.toString(16);
    flow.ledcolor = msg.payload;
    if(msg.payload.length == 2){
        msg.payload = "0000"+msg.payload;
    }else if(msg.payload.length == 4){
        msg.payload = "00"+msg.payload;
    }
}else if(msg.payload.params.on != undefined){
    if(msg.payload.params.on){
        msg.payload=flow.ledcolor;
    }else{
        msg.payload="000000";
    }
}else{
    msg.payload=flow.ledcolor;
    msg.ledbrightness=msg.payload.params.brightness;
}

return msg;

```

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [17 March 2021 10:25 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/2 "2021-03-17T10:25:15Z")

</div>

> [@Toster](#):
>
> ```auto
> msg.payload = "0000"+msg.payload;
> }else if(msg.payload.length == 4){
> msg.payload = "00"+msg.payload;
> 
> ```

Because you overwrite msg.payload in above code section, therefore msg.payload.brightness is no longer is defined.  
[edit] may not be the case as i see you copy msg.payload and later replace it. But you may be replacing it with an empty value if the conditional where it's copied is not executed.

---

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 10:32 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/3 "2021-03-17T10:32:34Z")

</div>

Yeah! thats it but now when multipyling number by flow.ledbrightness here:

```auto
msg.r=msg.payload[0]*4*flow.ledbrightness;
msg.g=msg.payload[1]*4*flow.ledbrightness;
msg.b=msg.payload[2]*4*flow.ledbrightness;

return msg;

```

Values of msg.r, msg.g, and msg.b is NaN instead of value. Why?  
PS. I replaced:

```auto
msg.payload=flow.ledcolor;
msg.ledbrightness=msg.payload.params.brightness;

```

with:

```auto
flow.ledbrightness=msg.payload.params.brightness;
msg.payload=flow.ledcolor;

```

{edit} im using Hex to rgb converter that returnes array that is why there is [0], [1] and [2]

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [17 March 2021 10:36 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/4 "2021-03-17T10:36:13Z")

</div>

> [@Toster](#):
>
> `msg.r=msg.payload[0]*4*flow.ledbrightness;`

How did msg.payload become an array? as the code posted it was an object.  
Is this a different function node?

---

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 10:37 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/5 "2021-03-17T10:37:57Z")

</div>

im using node-red-contrib-color-convert which converts hex to array ![Zrzut ekranu](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/6/76eafc1f92b92c75a5ec9fcb88e3a1ba0a363aa9.png)

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [17 March 2021 10:40 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/6 "2021-03-17T10:40:11Z")

</div>

Hard to say not enough info. post flow and input objects

---

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 10:53 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/7 "2021-03-17T10:53:23Z")

</div>

Output from first node:  
first image-when changing brightness  
second image-when changing color  
third image-when changing on - off

The idea is

1. getting input from google home
2. searching what was changed

```auto
if (msg.payload.params.color != undefined){
    msg.payload=msg.payload.params.color.spectrumRGB.toString(16);
    flow.ledcolor = msg.payload;
    if(msg.payload.length == 2){
        msg.payload = "0000"+msg.payload;
    }else if(msg.payload.length == 4){
        msg.payload = "00"+msg.payload;
    }
}else if(msg.payload.params.on != undefined){
    if(msg.payload.params.on){
        msg.payload=flow.ledcolor;
    }else{
        msg.payload="000000";
    }
}else{
    flow.ledbrightness=msg.payload.params.brightness;
    msg.payload=flow.ledcolor;
}

return msg;

```

3.Changing HEX to RGB {takes string returnes array}  
4. making everything right value

```auto
msg.r=msg.payload[0]*4*flow.ledbrightness;
msg.g=msg.payload[1]*4*flow.ledbrightness;
msg.b=msg.payload[2]*4*flow.ledbrightness;

return msg;

```

1. deleting unnecesarry objects (for example in first one deletes msg.g msg.b and move msg.r to payload)

 ![brightness](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/5/f555edce5730c4dd7ad435ab78a8ae40a43fe25b.png) ![color](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/6/d6779db0e4ddcd7a5cf8591e72fe46a2aede4e7c.png) ![on-off](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/c/9cf29931131ad80374d78510a41ea35c77d7aaf4.png)

---

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 11:02 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/8 "2021-03-17T11:02:47Z")

</div>

i think i mis understood flow variables i will try with flow.get() and flow.set()

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [17 March 2021 11:05 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/9 "2021-03-17T11:05:12Z")

</div>

I was going to ask if they are supposed to be context storage vars.

---

<div class="post-metadata">

### Author: ![Toster](https://avatars.discourse-cdn.com/v4/letter/t/c57346/32.png) [@Toster](https://discourse.nodered.org/u/Toster)
#### Post date: [17 March 2021 11:06 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/10 "2021-03-17T11:06:27Z")

</div>

thank you for you attention everything is working 😃

---

<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: [31 March 2021 11:07 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-property-brightness-of-undefined/42764/11 "2021-03-31T11:07:11Z")

</div>

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